{"id":28314,"library":"syntaqlite","title":"Syntaqlite","description":"A SQLite SQL toolkit providing parsing, formatting, validation, and an MCP server. Current version 0.5.7. Release cadence is active with frequent minor releases; breaking changes occur across minor versions (e.g., semantic renamed to analysis in 0.5.1).","status":"active","version":"0.5.7","language":"python","source_language":"en","source_url":"https://github.com/LalitMaganti/syntaqlite","tags":["sql","sqlite","parser","formatter","validator","mcp"],"install":[{"cmd":"pip install syntaqlite","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"Correct import for the main parsing engine.","symbol":"Engine","correct":"from syntaqlite import Engine"},{"note":"format_sql is a top-level function; there is no formatter submodule.","wrong":"from syntaqlite.formatter import format_sql","symbol":"format_sql","correct":"from syntaqlite import format_sql"},{"note":"The 'semantic' module was renamed to 'analysis' in v0.5.1. 'analyze' is a top-level function.","wrong":"from syntaqlite.semantic import analyze","symbol":"analyze","correct":"from syntaqlite import analyze"},{"note":"validate is a top-level function.","wrong":"from syntaqlite.validator import validate","symbol":"validate","correct":"from syntaqlite import validate"}],"quickstart":{"code":"from syntaqlite import Engine, format_sql, analyze, validate\n\nengine = Engine()\nsql = \"SELECT * FROM foo WHERE bar = 1\"\nparsed = engine.parse(sql)\nprint(parsed.statements)\n\nformatted = format_sql(sql)\nprint(formatted)\n\nissues = validate(sql)\nprint(issues)\n\nanalysis = analyze(sql)\nprint(analysis)","lang":"python","description":"Demonstrates parsing, formatting, validation, and analysis with a single SQL statement."},"warnings":[{"fix":"Replace 'semantic' with 'analysis' in imports, or use top-level functions 'analyze' directly.","message":"In v0.5.1, the 'semantic' module was renamed to 'analysis'. Code using 'from syntaqlite.semantic import ...' will break.","severity":"breaking","affected_versions":"<0.5.1"},{"fix":"Use Python API validate() or CLI 'syntaqlite check' for validation.","message":"The 'validate' subcommand was removed from the CLI in v0.5.1, causing release pipeline failures. The Python validate() function still exists.","severity":"gotcha","affected_versions":"0.5.0+"},{"fix":"Download v0.5.7+ binaries, or build from source if on older glibc.","message":"Linux CLI binaries built before v0.5.7 may require glibc >= 2.39, causing 'GLIBC_2.39 not found' on older systems (e.g., RHEL 8, Ubuntu 20.04).","severity":"gotcha","affected_versions":"<0.5.7"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Use 'from syntaqlite.analysis import ...' or 'from syntaqlite import analyze'.","cause":"The 'semantic' module was renamed to 'analysis' in v0.5.1.","error":"ModuleNotFoundError: No module named 'syntaqlite.semantic'"},{"fix":"Ensure you installed a recent version (>=0.4.0) and use 'from syntaqlite import format_sql'.","cause":"format_sql is not available in very early versions (pre-0.1?), or the import is incorrect.","error":"AttributeError: module 'syntaqlite' has no attribute 'format_sql'"},{"fix":"Upgrade to v0.5.7+ or install via pip (Python API) which bundles its own binaries.","cause":"Pre-built Linux CLI binaries from before v0.5.7 require a newer glibc than the host system.","error":"GLIBC_2.39 not found"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}