A SQL complexity library and CLI
Project description
SQL Complexity Estimator
This package provides a simple algorithm to calculate complexity of SQL expressions.
It's based on SQLGlot abstract syntax tree, so the provided SQL must be compatible with SQLGlot engines.
The rules are the following:
- +1 per join expression
- +1 per predicate after WHERE or HAVING
- +1 per CTE
- +1 per GROUP BY expression
- +1 per UNION or INTERSECT
- +1 per function call
- +1 per CASE expression
This package is inspired on the comments of this stack overflow thread.
Install
python -m pip install sql-complexity
poetry add sql-complexity
uv add sql-complexity
Run with uvx
uvx --refresh sql-complexity
Run from the CLI
sql-complexity some.sql
cat myfile.sql | sql-complexity
Using it in your code
from sql_complexity import SQLComplexityAssessment
assessor = SQLComplexityAssessment()
score = assessor.assess(contents)
print(score)
print(score.total)
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sql_complexity-0.1.5.tar.gz.
File metadata
- Download URL: sql_complexity-0.1.5.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4293558fe9ddfff09727b9ba591869f1b2f02a0d44cff26132587f35d42d6412
|
|
| MD5 |
4e886f786a96e00ceb88a8b553f1497e
|
|
| BLAKE2b-256 |
4e8b4167710f583fb687ba15cbe988e90d15b0077e497d1ac41828080481bf05
|
File details
Details for the file sql_complexity-0.1.5-py3-none-any.whl.
File metadata
- Download URL: sql_complexity-0.1.5-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87d264e9ca8a464072d81fd26b25686e4606724aaa59b7f27c4d96583f23877e
|
|
| MD5 |
f7dabac6aa14eed6d749f461c0eaa453
|
|
| BLAKE2b-256 |
43de7767ea8c990405882b97a201cc6b6b07e785b54f7ae73cad3e797bbed378
|