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.12.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

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

horst-0.3.12-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: horst-0.3.12.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.5

File hashes

Hashes for horst-0.3.12.tar.gz
Algorithm Hash digest
SHA256 fee48fb5c62fa5a0ae12f24deb074db0a65bef20375f2901e26b77c26f4d4c2c
MD5 4b2b87326c9f4483b409ca6c25394902
BLAKE2b-256 e687dc2154ab8fa91bca3fe5f55ff80f7a030eac644a3ad4a2448b7dea5e1369

See more details on using hashes here.

File details

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

File metadata

  • Download URL: horst-0.3.12-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.5

File hashes

Hashes for horst-0.3.12-py3-none-any.whl
Algorithm Hash digest
SHA256 3c429d4533b9a35a0c8f042b993e49ea9a02779640ab9c77dacf9dc560d5e8aa
MD5 45caf0864d6532994406ea10dd05b807
BLAKE2b-256 7725d1d576a1a56ba38000c838b9edb70f444347206694516e71dd62948ac31b

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