MCPcopy Index your code
hub / github.com/dbcli/mycli / extend_columns

Method extend_columns

mycli/sqlcompleter.py:1024–1043  ·  view source on GitHub ↗

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'])

Source from the content-addressed store, hash-verified

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"]

Callers 4

completerFunction · 0.95
fk_completerFunction · 0.95
refresh_tablesFunction · 0.80

Calls 3

escaped_namesMethod · 0.95
addMethod · 0.80
errorMethod · 0.45

Tested by 3

completerFunction · 0.76
fk_completerFunction · 0.76