(self, table_metadata)
| 843 | user_type_strings.append(user_type.export_as_string()) |
| 844 | |
| 845 | def _add_table_metadata(self, table_metadata): |
| 846 | old_indexes = {} |
| 847 | old_meta = self.tables.get(table_metadata.name, None) |
| 848 | if old_meta: |
| 849 | # views are not queried with table, so they must be transferred to new |
| 850 | table_metadata.views = old_meta.views |
| 851 | # indexes will be updated with what is on the new metadata |
| 852 | old_indexes = old_meta.indexes |
| 853 | |
| 854 | # note the intentional order of add before remove |
| 855 | # this makes sure the maps are never absent something that existed before this update |
| 856 | for index_name, index_metadata in table_metadata.indexes.items(): |
| 857 | self.indexes[index_name] = index_metadata |
| 858 | |
| 859 | for index_name in (n for n in old_indexes if n not in table_metadata.indexes): |
| 860 | self.indexes.pop(index_name, None) |
| 861 | |
| 862 | self.tables[table_metadata.name] = table_metadata |
| 863 | |
| 864 | def _drop_table_metadata(self, table_name): |
| 865 | table_meta = self.tables.pop(table_name, None) |
no test coverage detected