Skip to main content
Glama

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
NameRequiredDescriptionDefault
sqlYesThe SQL string to analyze

Implementation Reference

  • 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", [])
            ),
        )
  • 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)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ajitpratap0/GoSQLX'

If you have feedback or need assistance with the MCP directory API, please join our Discord server