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

Method extend_foreign_keys

mycli/sqlcompleter.py:1056–1072  ·  view source on GitHub ↗

Extend FK metadata. :param fk_data: iterable of (table_name, column_name, referenced_table_name, referenced_column_name)

(self, fk_data: Iterable[tuple[str, str, str, str]])

Source from the content-addressed store, hash-verified

1054 table_meta[column_escaped] = values
1055
1056 def extend_foreign_keys(self, fk_data: Iterable[tuple[str, str, str, str]]) -> None:
1057 """Extend FK metadata.
1058
1059 :param fk_data: iterable of (table_name, column_name, referenced_table_name, referenced_column_name)
1060 """
1061 metadata = self.dbmetadata["foreign_keys"]
1062 schema_meta = metadata.setdefault(self.dbname, {})
1063 schema_meta.setdefault("tables", {})
1064 schema_meta.setdefault("relations", [])
1065 for table, col, ref_table, ref_col in fk_data:
1066 table = self.escape_name(table)
1067 col = self.escape_name(col)
1068 ref_table = self.escape_name(ref_table)
1069 ref_col = self.escape_name(ref_col)
1070 schema_meta["tables"].setdefault(table, set()).add(ref_table)
1071 schema_meta["tables"].setdefault(ref_table, set()).add(table)
1072 schema_meta["relations"].append((table, col, ref_table, ref_col))
1073
1074 def _fk_join_conditions(self, tables: list[tuple[str | None, str, str]]) -> list[str]:
1075 """Return FK-based join condition strings for the tables currently in the query.

Callers 3

fk_completerFunction · 0.95
refresh_foreign_keysFunction · 0.80

Calls 2

escape_nameMethod · 0.95
addMethod · 0.80

Tested by 2

fk_completerFunction · 0.76