Skip to main content

Do not repeat yourself in SQL scripts by listing the same fields again and again.

Project description

horst makes it more easy to handle many depending SQL statements in a SQL script or SQL procedure. The main support of horst is: Identical field lists in SELECT, INSERT, JOIN, WHERE, GROUP are managed at ONE code line.

I created horst to manage the beast of data transformation with a chain of SQL statements in SQL procedures. In these procedures we use temporary tables to collect records, transform these records and write the results into the target table. Each additional new information aka field was a pain in the ass as we have to investigate where to add these new field. With horst it became a nice task.

supported SQL languages

.Google BigQuery

Extended BNF of horst

statement = table_declaration
| clone_table
| drop tables
| list_fields
| join_fields
| comment

table_declaration = create table table_name field_list
clone_table = clone table ID as ID {add field_list | without field_names}
list_fields = table_name {as table_alias} fields {with type} {without field_names}
join_fields = table_name {as table_alias} on table_name {as table_alias} {(with | without) field_names}
comment = -- *

field_list = field_definition {, field_definition}
field_definition = field_name field_type
field_type = INTEGER | STRING | TIMESTAMP
field_names = field_name {, field_name}
field_name = ID
table_name = ID
table_alias = ID
ID = RegEx([a-zA-Z_][a-zA-Z0-9_]*) \

code example
$ python horst.py this_horst_script
file with horst code: horst.this_horst_script.sql
result sql file: this_horst_script.sql

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

horst-0.3.14.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

horst-0.3.14-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file horst-0.3.14.tar.gz.

File metadata

  • Download URL: horst-0.3.14.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for horst-0.3.14.tar.gz
Algorithm Hash digest
SHA256 1ba6fcb80ebe97eb95f5b1efc27156ac65a96ce475332da71b98eb51b667a393
MD5 b3e2b35e342d77f27e937fade60b5d3a
BLAKE2b-256 9f2c1b3049abc2fde69be2e869e9c87bd77e61cd8fbdbcd1fd2ad181ea28dc2f

See more details on using hashes here.

File details

Details for the file horst-0.3.14-py3-none-any.whl.

File metadata

  • Download URL: horst-0.3.14-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for horst-0.3.14-py3-none-any.whl
Algorithm Hash digest
SHA256 df4b0a1890ad11671961ee3e4819f04ca6942f05ad5148608366e91d0a2e9f22
MD5 35a124083f3554688529eff2318e278c
BLAKE2b-256 a0e0333270cb581874d3f4d441db4fb4d243d3b927cebb7f080d764f0d6373b6

See more details on using hashes here.

Supported by

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