Extend column metadata :param column_data: list of (rel_name, column_name) tuples :param kind: either 'tables' or 'views' :return:
(self, column_data: list[tuple[str, str]], kind: Literal['tables', 'views'])
| 1022 | self.all_completions.add(relname[0]) |
| 1023 | |
| 1024 | def extend_columns(self, column_data: list[tuple[str, str]], kind: Literal['tables', 'views']) -> None: |
| 1025 | """Extend column metadata |
| 1026 | |
| 1027 | :param column_data: list of (rel_name, column_name) tuples |
| 1028 | :param kind: either 'tables' or 'views' |
| 1029 | :return: |
| 1030 | """ |
| 1031 | column_data_ll = [self.escaped_names(d) for d in column_data] |
| 1032 | |
| 1033 | metadata = self.dbmetadata[kind] |
| 1034 | for relname, column in column_data_ll: |
| 1035 | if relname not in metadata[self.dbname]: |
| 1036 | _logger.error("relname '%s' was not found in db '%s'", relname, self.dbname) |
| 1037 | # this could happen back when the completer populated via two calls: |
| 1038 | # SHOW TABLES then SELECT table_name, column_name from information_schema.columns |
| 1039 | # it's a slight race, but much more likely on Vitess picking random shards for each. |
| 1040 | # see discussion in https://github.com/dbcli/mycli/pull/1182 (tl;dr - let's keep it) |
| 1041 | continue |
| 1042 | metadata[self.dbname][relname].append(column) |
| 1043 | self.all_completions.add(column) |
| 1044 | |
| 1045 | def extend_enum_values(self, enum_data: Iterable[tuple[str, str, list[str]]]) -> None: |
| 1046 | metadata = self.dbmetadata["enum_values"] |