Registry / serialization / sqlvalidator

sqlvalidator

JSON →
library0.0.20pypypi✓ verified 82d ago

SQLValidator is a Python library (current version 0.0.20) for formatting, syntactic, and semantic validation of SQL queries. It's built on `sqlparse` and provides a simple `SQLValidation` object and a helper `validate_sql` function. Releases are typically driven by new SQL feature support and bug fixes, with minor versions often adding functionality.

pip install sqlvalidator
INSTALL
IMPORT
SIG · SQLVALIDATOR
S
sqlvalidator
serializationpythonv0.0.20
Install
1.6s avg
Import
Disk
16MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.0.20 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.910 runs
installs and imports cleanly · install 0.0s · import 0.000s · 18MB
glibc
py 3.103.910 runs
installs and imports cleanly · install 1.6s · import 0.000s · 19MB
16MB installed
● package 16MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

SQLValidation
from sqlvalidator import sql_validator
from sqlvalidator import SQLValidation
format_sql
from sqlvalidator import format_sql
parse
from sqlvalidator import parse

Demonstrates basic syntactic validation, formatting, and more advanced semantic validation by providing a table schema. The `is_valid` property and `errors` list provide detailed results.

from sqlvalidator import SQLValidation # Example 1: Basic syntax validation and formatting sql_query_1 = "SELECT * FROM users WHERE id = 1 AND name = 'Alice'" sql_obj_1 = SQLValidation(sql_query_1) print(f"Query 1 validation result: {sql_obj_1.validate()}") print(f"Query 1 errors: {sql_obj_1.errors}") print(f"Formatted Query 1:\n{sql_obj_1.format()}") # Example 2: Semantic validation with table schema sql_query_2 = "SELECT first_name, email FROM employees WHERE department_id = 10" sql_obj_2 = SQLValidation(sql_query_2) # Define table schema for semantic validation tables_schema = { 'employees': ['id', 'first_name', 'last_name', 'email', 'department_id'], 'departments': ['id', 'name'] } sql_obj_2.validate(tables=tables_schema) print(f"\nQuery 2 validation result (semantic): {sql_obj_2.is_valid}") print(f"Query 2 errors (semantic): {sql_obj_2.errors}") # Example 3: Invalid query invalid_sql = "SELECT FROM users WHERE id = 1" sql_obj_3 = SQLValidation(invalid_sql) sql_obj_3.validate() print(f"\nInvalid query errors: {sql_obj_3.errors}")
Debug
Known issues
gotchaSemantic validation (checking for valid table/column names) requires passing a `tables` dictionary to the `validate()` method. Without it, only syntactic validation is performed.
fix
Always provide the `tables` parameter for semantic validation: `sql_obj.validate(tables={'table_name': ['col1', 'col2']})`.
affects: All versions
gotchaThe library is in early `0.0.x` versions. While no major breaking changes are explicitly documented between minor releases yet, the API might evolve in future `0.x` versions before reaching a stable `1.0.0` release.
fix
Pin your dependency to a specific minor version (`sqlvalidator==0.0.20`) and review changelogs when upgrading to a new minor version.
affects: 0.0.1 to 0.0.20
gotchaThe `SQLValidation` object processes a single SQL query string. Passing multiple concatenated queries (e.g., `"SELECT 1; SELECT 2;"`) may lead to unexpected parsing or validation results, as `sqlvalidator` focuses on validating individual statements.
fix
If you have multiple queries, parse and validate them individually. Consider using `sqlparse.parse` to split complex scripts into individual statements first.
affects: All versions
Upgrade
Version history
0.0.20latest on PyPI · released Dec 25, 2022
Audit
Dependencies
sqlparserequiredCore parsing and formatting engine for SQL statements.
Agent activity
17 hits · last 30 days
node
14
Meta
1
OpenAI (training)
1
Resources
sqlvalidator — pip install sqlvalidator · libregistry