SQL queries formatting (and soon basic schema less validation)
Project description
sqlvalidator
SQL queries formatting (and soon basic schema less validation)
Formatting
Formatting can be used in 2 ways:
- formatting Python files that contain SQL strings tagged with
# sqlformat
from the command line:
sqlvalidator --format myfile.py
or sqlvalidator --format myproject/
- formatting Python strings that represent SQL:
sqlvalidator.format_sql("SELECT * FROM table")
Both output the same formatted string for the same input SQL.
One can verify that all files are correctly formatted using
sqlvalidator --check-format pyfile.py
Which won't write the file back and just return a status code. Status code 0 means nothing would change. Status code 1 means some files would reformatted.
Validation
To be implemented yet, but should become the main added-value of this lib.
Suggested API:
import sqlvalidator
sql_query = sqlvalidator.parse("SELECT * from table")
if not sql_query.is_valid():
print(sql_query.errors)
Ideally, this package should provide a basic SQL validation:
- not using a missing column
- existing functions
- correct aggregations
- schema-less (not assume that table names and columns in those exist)
- types correctness in functions
(only on SELECT-statements)
More advanced features:
- depending on the backend (standard SQL, postgresql, BigQuery, Legacy BigQuery...)
- Flexible internal SQL representation to do advanced validation
- With provided schema (to validate that columns exist)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sqlvalidator-0.0.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bee1e9f2a0a48150cb169085611b2c55835c397962ece7af0abd575948c74081 |
|
MD5 | 738b51191d74bd0cba09d6e8e3863e2c |
|
BLAKE2b-256 | 75635d2c9dd793189439a3ae08fbafafc1c588c9642993b7e7fd2ade7e141376 |