--- id: sql-metadata version: "3.0.1" license: MIT license_treatment: permissive maintenance: active --- # sql-metadata — Uses sqlglot to parse SQL queries and extract metadata License: permissive · Maintenance: active · Downloads: 6.8M/mo ## What it is and what it does sql-metadata wraps sqlglot to parse SQL queries and extract structural metadata without executing them. It identifies columns, tables, aliases, query types (SELECT, INSERT, UPDATE, DELETE, etc.), and values from INSERT statements. The parser automatically resolves column aliases back to their source columns, table aliases to their actual table names, and subquery aliases to their definitions—useful when you need to understand query dependencies without running the query itself. The package supports MySQL, PostgreSQL, SQLite, MSSQL, and Apache Hive syntax. It provides both raw token extraction and semantic analysis: you can get columns grouped by their clause (SELECT, WHERE, JOIN, ORDER BY, etc.), output column names preserving aliases, WITH clause definitions, and limit/offset values. It raises InvalidQueryDefinition for structurally invalid SQL, making error handling straightforward. Use it for: - Extract column and table dependencies from queries to build data lineage or impact analysis tools - Validate query structure and detect referenced tables before execution in data pipelines - Resolve aliases and normalize queries for logging, auditing, or query rewriting systems - Analyze INSERT statements to map input values to their target columns programmatically - Build IDE or documentation tools that need to understand query structure without parsing SQL yourself ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Parses SQL queries using sqlglot and extracts metadata: column names, table names, aliases, query types, and values from INSERT statements. Yes. Low install friction, active maintenance, MIT license, no known vulnerabilities, and a single well-maintained dependency. Install it if you need to extract or analyze SQL query structure—it handles the parsing complexity so you don't have to. ## Install pip install sql-metadata uv add sql-metadata poetry add sql-metadata ## Installing sql-metadata Before you install: Low friction: pure Python wheel with a single runtime dependency (sqlglot). Actively maintained with a release 45 days ago and 882 repository stars. License in practice: MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects. Quickstart: pip install sql-metadata from sql_metadata import Parser parser = Parser("SELECT a, b FROM users WHERE id = 1") print(parser.columns) # ['a', 'b'] print(parser.tables) # ['users'] Verify before relying: - Whether performance characteristics are acceptable for large or complex queries - Coverage completeness for edge cases across all five supported SQL dialects ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 6.8M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags sql query parser, extract columns from sql, sql metadata extraction, table and column detection, sql query analysis, alias resolution sql, sql query introspection, sql-parsing, metadata-extraction, query-analysis [View on SkillFed](https://skillfed.io/packages/sql-metadata) · [View on PyPI](https://pypi.org/project/sql-metadata/)