Skip to main content

Add your description here

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

sql_complexity-0.1.3.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sql_complexity-0.1.3-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file sql_complexity-0.1.3.tar.gz.

File metadata

  • Download URL: sql_complexity-0.1.3.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.5

File hashes

Hashes for sql_complexity-0.1.3.tar.gz
Algorithm Hash digest
SHA256 83591b07934b5c589a988dda975844596cc7a448dcf6514b1d8a10ff7b5e74c5
MD5 c41c04a294b7665d377a3610f448c388
BLAKE2b-256 a0402c3291638bfdf2915b399a644cb7266e3e2dcf13d7ff7e6c1bc5a55ec6a1

See more details on using hashes here.

File details

Details for the file sql_complexity-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for sql_complexity-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 36bbd8cea086dd2e7657d7159706075a721a54ea53ecf8b306402bdd646b6bc7
MD5 f471cae8afaac218418c23dbd30c1652
BLAKE2b-256 8352154ef8d0810d25fa8c679a7875525e469ad603d041f41240a8ec93a40467

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page