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

Method populate_enum_values

mycli/sqlcompleter.py:1800–1824  ·  view source on GitHub ↗
(
        self,
        scoped_tbls: list[tuple[str | None, str, str | None]],
        column: str,
        parent: str | None = None,
    )

Source from the content-addressed store, hash-verified

1798 return columns
1799
1800 def populate_enum_values(
1801 self,
1802 scoped_tbls: list[tuple[str | None, str, str | None]],
1803 column: str,
1804 parent: str | None = None,
1805 ) -> list[str]:
1806 values: list[str] = []
1807 meta = self.dbmetadata["enum_values"]
1808 column_key = self._escape_identifier(column)
1809 parent_key = self._strip_backticks(parent) if parent else None
1810
1811 for schema, relname, alias in scoped_tbls:
1812 if parent_key and not self._matches_parent(parent_key, schema, relname, alias):
1813 continue
1814
1815 schema = schema or self.dbname
1816 table_meta = meta.get(schema, {})
1817 escaped_relname = self.escape_name(relname)
1818
1819 for rel_key in {relname, escaped_relname}:
1820 columns = table_meta.get(rel_key)
1821 if columns and column_key in columns:
1822 values.extend(columns[column_key])
1823
1824 return list(dict.fromkeys(values))
1825
1826 def _escape_identifier(self, name: str) -> str:
1827 return self.escape_name(self._strip_backticks(name))

Calls 5

_escape_identifierMethod · 0.95
_strip_backticksMethod · 0.95
_matches_parentMethod · 0.95
escape_nameMethod · 0.95
getMethod · 0.45