extract_metadata
Extract tables, columns, and functions from SQL queries to analyze database structure and dependencies.
Instructions
Extract tables, columns, and functions referenced in SQL.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The SQL string to analyze |
Implementation Reference
- python/pygosqlx/core.py:440-476 (handler)The `extract_metadata` handler function which wraps the underlying C library call and transforms the JSON output into a `Metadata` dataclass.
def extract_metadata(sql: str) -> Metadata: """Extract comprehensive metadata from a SQL statement. This returns tables, columns, functions, and their qualified variants in a single call. Args: sql: The SQL string to analyze. Returns: Metadata object containing all extracted information. Raises: ParseError: If the SQL is syntactically invalid. GoSQLXError: If the gosqlx_extract_metadata function is not available. """ if not _has_func("gosqlx_extract_metadata"): raise GoSQLXError( "gosqlx_extract_metadata not available in this library build. " "Rebuild the shared library with the latest cbinding." ) lib = _get_lib() data = _call_and_decode(lib.gosqlx_extract_metadata, sql.encode("utf-8")) _check_parse_error(data) return Metadata( tables=data.get("tables", []), columns=data.get("columns", []), functions=data.get("functions", []), tables_qualified=_parse_qualified_names( data.get("tables_qualified", []) ), columns_qualified=_parse_qualified_names( data.get("columns_qualified", []) ), ) - python/pygosqlx/core.py:70-79 (schema)The `Metadata` dataclass schema definition used for returning results from the `extract_metadata` tool.
class Metadata: """Comprehensive metadata extracted from a SQL query.""" tables: List[str] = field(default_factory=list) columns: List[str] = field(default_factory=list) functions: List[str] = field(default_factory=list) tables_qualified: List[QualifiedName] = field(default_factory=list) columns_qualified: List[QualifiedName] = field(default_factory=list)