datajunction-server 0.0.1a64.dev1__tar.gz → 0.0.1a64.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/.env +1 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/.gitignore +2 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/PKG-INFO +1 -1
- datajunction_server-0.0.1a64.dev3/datajunction_server/__about__.py +4 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/helpers.py +8 -2
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/nodes.py +4 -4
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/sql.py +14 -1
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/config.py +5 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/constants.py +0 -3
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/construction/build_v2.py +33 -10
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/nodes.py +4 -2
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/construction/build_v2_test.py +143 -0
- datajunction_server-0.0.1a64.dev1/datajunction_server/__about__.py +0 -4
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/.coveragerc +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/.env.integration +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/.flake8 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/.isort.cfg +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/.pre-commit-config.yaml +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/.pylintrc +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/Dockerfile +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/Makefile +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/README.md +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/README +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/env.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/script.py.mako +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2023_12_20_1829-724445d2b29d_initial_migration.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_01_08_2034-945d44abcd32_add_dimension_links.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_01_11_2032-c74b11566d82_add_column_order.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_01_18_2011-20f060b02772_switch_enum_values.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_01_23_0617-c9cef8864ecb_add_missing_table_attribute_to_source_.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_01_23_1655-a8e22109be24_availability_state_s_valid_through_ts_.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_02_22_0713-d61fb7e48cc3_cascade_deletes_to_dimension_links.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_04_30_1556-de7ec1c82fe0_add_query_requests.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_05_09_1420-9b1227ff17f4_update_backfill_spec.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_05_21_0012-57fc93ef6947_add_query_id_to_queryrequest.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_06_21_1301-640a814db2d8_add_collection_tables.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_07_12_0348-34171c92dd6d_set_user_username_to_be_unique.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/versions/2024_08_18_0036-f3c9b40deb6f_add_create_by_to_nodes_node_revisions_.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic.ini +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/access/authentication/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/access/authentication/basic.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/access/authentication/github.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/access/authentication/google.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/access/authentication/whoami.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/attributes.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/catalogs.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/client.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/collection.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/cubes.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/data.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/dimensions.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/djsql.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/engines.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/catalogs.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/engines.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/main.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/resolvers/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/resolvers/nodes.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/scalars/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/scalars/availabilitystate.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/scalars/catalog_engine.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/scalars/column.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/scalars/materialization.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/scalars/metricmetadata.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/scalars/node.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/scalars/user.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/graphql/utils.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/health.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/history.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/logging.conf +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/main.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/materializations.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/measures.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/metrics.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/namespaces.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/tags.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/api/users.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/construction/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/construction/build.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/construction/dimensions.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/construction/dj_query.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/construction/exceptions.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/construction/utils.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/attributetype.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/availabilitystate.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/backfill.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/base.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/catalog.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/collection.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/column.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/database.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/dimensionlink.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/engine.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/history.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/materialization.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/measure.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/metricmetadata.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/namespace.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/node.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/partition.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/queryrequest.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/tag.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/database/user.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/enum.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/errors.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/access/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/access/authentication/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/access/authentication/basic.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/access/authentication/github.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/access/authentication/google.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/access/authentication/http.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/access/authentication/tokens.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/access/authorization.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/client.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/engines.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/materializations.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/namespaces.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/templates/client_setup.j2 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/templates/create_cube.j2 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/templates/create_dimension.j2 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/templates/create_metric.j2 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/templates/create_transform.j2 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/templates/link_dimension.j2 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/templates/namespace_mapping.j2 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/templates/register_table.j2 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/templates/set_column_attributes.j2 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/internal/validation.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/materialization/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/materialization/jobs/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/materialization/jobs/cube_materialization.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/materialization/jobs/job_types.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/materialization/jobs/materialization_job.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/access.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/attribute.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/base.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/catalog.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/collection.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/column.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/cube.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/database.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/dimensionlink.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/engine.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/history.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/materialization.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/measure.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/metric.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/node.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/node_type.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/partition.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/query.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/sql.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/table.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/tag.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/models/user.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/naming.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/service_clients.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/dag.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/functions.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/ast.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/sql/parsing/types.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/superset.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/transpilation.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/typing.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/datajunction_server/utils.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/pdm.lock +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/pyproject.toml +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/requirements/docker.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/requirements/test.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/scripts/docs-snippets.js +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/scripts/docs-snippets.sh +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/scripts/generate-openapi.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/access_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/attributes_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/catalog_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/client_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/collections_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/cubes_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/data_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/dimension_links_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/dimensions_access_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/dimensions_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/djql_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/engine_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/create_cube.repairs_cube.namespace.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/create_cube.repairs_cube.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/create_dimension.repair_order.namespace.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/create_dimension.repair_order.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/create_metric.num_repair_orders.namespace.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/create_metric.num_repair_orders.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/create_transform.regional_level_agg.namespace.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/create_transform.regional_level_agg.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/dimension_links.repair_orders.namespace.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/dimension_links.repair_orders.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/include_client_setup.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/notebook.create_cube.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/notebook.create_transform.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/notebook.link_dimension.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/notebook.set_attribute.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/client_test/register_table.txt +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_measures_cube.full.druid_spec.json +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_measures_cube.full.partition.druid_spec.json +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_measures_cube.full.partition.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_measures_cube.full.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_measures_cube.incremental.categorical.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_measures_cube.incremental.druid_spec.json +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_measures_cube.incremental.patched.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_measures_cube.incremental.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_metrics_cube.incremental.categorical.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_metrics_cube.incremental.druid_spec.json +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/druid_metrics_cube.incremental.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.full.config.json +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.full.materializations.json +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.full.partition.config.json +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.full.partition.materializations.json +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.full.partition.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.full.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.incremental.additional.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.incremental.categorical.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.incremental.config.json +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.incremental.lookback.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/files/materializations_test/spark_sql.incremental.query.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/graphql/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/graphql/catalog_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/graphql/engine_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/graphql/find_nodes_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/health_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/helpers_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/history_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/materializations_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/measures_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/metrics_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/namespaces_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/nodes_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/nodes_update_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/routers_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/sql_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/sql_v2_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/tags_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/api/users_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/conftest.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/construction/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/construction/build_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/construction/compile_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/construction/exceptions_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/construction/fixtures.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/construction/inference_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/construction/utils_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/default.duckdb +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/duckdb.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/errors_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/examples.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/integration/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/integration/basic_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/internal/authentication/basic_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/internal/authentication/github_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/internal/authentication/http_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/internal/authentication/token_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/internal/authentication/whoami_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/migrations_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/models/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/models/catalog_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/models/hash_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/models/measure_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/models/node_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/models/query_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/pytest.ini +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/service_clients_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/dag_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/functions_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/backends/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/backends/antlr4_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/backends/types_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/__init__.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/parsing/test_ast.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/sql/utils.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/superset_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/transpilation_test.py +0 -0
- {datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/tests/utils_test.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: datajunction-server
|
|
3
|
-
Version: 0.0.1a64.
|
|
3
|
+
Version: 0.0.1a64.dev3
|
|
4
4
|
Summary: DataJunction server library for running to a DataJunction server
|
|
5
5
|
Project-URL: repository, https://github.com/DataJunction/dj
|
|
6
6
|
Author-email: DataJunction Authors <yian.shang@gmail.com>
|
|
@@ -198,6 +198,7 @@ async def get_query( # pylint: disable=too-many-arguments
|
|
|
198
198
|
limit: Optional[int] = None,
|
|
199
199
|
engine: Optional[Engine] = None,
|
|
200
200
|
access_control: Optional[access.AccessControlStore] = None,
|
|
201
|
+
use_materialized: bool = True,
|
|
201
202
|
) -> ast.Query:
|
|
202
203
|
"""
|
|
203
204
|
Get a query for a metric, dimensions, and filters
|
|
@@ -208,7 +209,11 @@ async def get_query( # pylint: disable=too-many-arguments
|
|
|
208
209
|
|
|
209
210
|
node = await Node.get_by_name(session, node_name, raise_if_not_exists=True)
|
|
210
211
|
build_criteria = get_default_criteria(node.current, engine) # type: ignore
|
|
211
|
-
query_builder = await QueryBuilder.create(
|
|
212
|
+
query_builder = await QueryBuilder.create(
|
|
213
|
+
session,
|
|
214
|
+
node.current, # type: ignore
|
|
215
|
+
use_materialized=use_materialized,
|
|
216
|
+
)
|
|
212
217
|
query_ast = await (
|
|
213
218
|
query_builder.ignore_errors()
|
|
214
219
|
.with_access_control(access_control)
|
|
@@ -370,6 +375,7 @@ async def validate_cube( # pylint: disable=too-many-locals
|
|
|
370
375
|
selectinload(NodeRevision.parents),
|
|
371
376
|
),
|
|
372
377
|
],
|
|
378
|
+
include_inactive=False,
|
|
373
379
|
),
|
|
374
380
|
key=lambda x: metrics_sorting_order.get(x.name, 0),
|
|
375
381
|
)
|
|
@@ -597,8 +603,8 @@ async def build_sql_for_multiple_metrics( # pylint: disable=too-many-arguments,
|
|
|
597
603
|
engine_name: Optional[str] = None,
|
|
598
604
|
engine_version: Optional[str] = None,
|
|
599
605
|
access_control: Optional[access.AccessControlStore] = None,
|
|
600
|
-
use_materialized: bool = True,
|
|
601
606
|
ignore_errors: bool = True,
|
|
607
|
+
use_materialized: bool = True,
|
|
602
608
|
) -> Tuple[TranslatedSQL, Engine, Catalog]:
|
|
603
609
|
"""
|
|
604
610
|
Build SQL for multiple metrics. Used by both /sql and /data endpoints
|
|
@@ -25,7 +25,6 @@ from datajunction_server.api.helpers import (
|
|
|
25
25
|
)
|
|
26
26
|
from datajunction_server.api.namespaces import create_node_namespace
|
|
27
27
|
from datajunction_server.api.tags import get_tags_by_name
|
|
28
|
-
from datajunction_server.constants import NODE_LIST_MAX
|
|
29
28
|
from datajunction_server.database import DimensionLink
|
|
30
29
|
from datajunction_server.database.attributetype import ColumnAttribute
|
|
31
30
|
from datajunction_server.database.column import Column
|
|
@@ -280,16 +279,17 @@ async def list_all_nodes_with_details(
|
|
|
280
279
|
Node.type == node_type if node_type else True,
|
|
281
280
|
is_(Node.deactivated_at, None),
|
|
282
281
|
)
|
|
283
|
-
.
|
|
282
|
+
.order_by(NodeRevision.updated_at.desc())
|
|
283
|
+
.limit(settings.node_list_max)
|
|
284
284
|
) # Very high limit as a safeguard
|
|
285
285
|
results = [
|
|
286
286
|
NodeIndexItem(name=row[0], display_name=row[1], description=row[2], type=row[3])
|
|
287
287
|
for row in (await session.execute(nodes_query)).all()
|
|
288
288
|
]
|
|
289
|
-
if len(results) ==
|
|
289
|
+
if len(results) == settings.node_list_max: # pragma: no cover
|
|
290
290
|
_logger.warning(
|
|
291
291
|
"%s limit reached when returning all nodes, all nodes may not be captured in results",
|
|
292
|
-
|
|
292
|
+
settings.node_list_max,
|
|
293
293
|
)
|
|
294
294
|
approvals = [
|
|
295
295
|
approval.access_object.name
|
|
@@ -64,6 +64,7 @@ async def get_measures_sql_for_cube_v2(
|
|
|
64
64
|
validate_access: access.ValidateAccessFn = Depends( # pylint: disable=W0621
|
|
65
65
|
validate_access,
|
|
66
66
|
),
|
|
67
|
+
use_materialized: bool = True,
|
|
67
68
|
) -> List[GeneratedSQL]:
|
|
68
69
|
"""
|
|
69
70
|
Return measures SQL for a set of metrics with dimensions and filters.
|
|
@@ -92,6 +93,7 @@ async def get_measures_sql_for_cube_v2(
|
|
|
92
93
|
validate_access=validate_access,
|
|
93
94
|
include_all_columns=include_all_columns,
|
|
94
95
|
sql_transpilation_library=settings.sql_transpilation_library,
|
|
96
|
+
use_materialized=use_materialized,
|
|
95
97
|
)
|
|
96
98
|
return measures_query
|
|
97
99
|
|
|
@@ -107,6 +109,7 @@ async def build_and_save_node_sql( # pylint: disable=too-many-locals
|
|
|
107
109
|
engine: Engine,
|
|
108
110
|
access_control: AccessControlStore,
|
|
109
111
|
ignore_errors: bool = True,
|
|
112
|
+
use_materialized: bool = True,
|
|
110
113
|
) -> QueryRequest:
|
|
111
114
|
"""
|
|
112
115
|
Build node SQL and save it to query requests
|
|
@@ -132,6 +135,7 @@ async def build_and_save_node_sql( # pylint: disable=too-many-locals
|
|
|
132
135
|
engine_name=engine.name if engine else None,
|
|
133
136
|
engine_version=engine.version if engine else None,
|
|
134
137
|
access_control=access_control,
|
|
138
|
+
use_materialized=use_materialized,
|
|
135
139
|
)
|
|
136
140
|
# We save the request for both the cube and the metrics, so that if someone makes either
|
|
137
141
|
# of these types of requests, they'll go to the cached query
|
|
@@ -169,6 +173,7 @@ async def build_and_save_node_sql( # pylint: disable=too-many-locals
|
|
|
169
173
|
engine.version if engine else None,
|
|
170
174
|
access_control=access_control,
|
|
171
175
|
ignore_errors=ignore_errors,
|
|
176
|
+
use_materialized=use_materialized,
|
|
172
177
|
)
|
|
173
178
|
query = translated_sql.sql
|
|
174
179
|
columns = translated_sql.columns
|
|
@@ -182,6 +187,7 @@ async def build_and_save_node_sql( # pylint: disable=too-many-locals
|
|
|
182
187
|
limit=limit,
|
|
183
188
|
engine=engine,
|
|
184
189
|
access_control=access_control,
|
|
190
|
+
use_materialized=use_materialized,
|
|
185
191
|
)
|
|
186
192
|
columns = [
|
|
187
193
|
assemble_column_metadata(col) # type: ignore
|
|
@@ -219,6 +225,7 @@ async def get_node_sql( # pylint: disable=too-many-locals
|
|
|
219
225
|
validate_access: access.ValidateAccessFn, # pylint: disable=redefined-outer-name
|
|
220
226
|
background_tasks: BackgroundTasks,
|
|
221
227
|
ignore_errors: bool = True,
|
|
228
|
+
use_materialized: bool = True,
|
|
222
229
|
) -> Tuple[TranslatedSQL, QueryRequest]:
|
|
223
230
|
"""
|
|
224
231
|
Return SQL for a node.
|
|
@@ -259,6 +266,7 @@ async def get_node_sql( # pylint: disable=too-many-locals
|
|
|
259
266
|
session=session,
|
|
260
267
|
engine=engine,
|
|
261
268
|
access_control=access_control,
|
|
269
|
+
use_materialized=use_materialized,
|
|
262
270
|
)
|
|
263
271
|
return (
|
|
264
272
|
TranslatedSQL(
|
|
@@ -279,6 +287,7 @@ async def get_node_sql( # pylint: disable=too-many-locals
|
|
|
279
287
|
engine=engine, # type: ignore
|
|
280
288
|
access_control=access_control,
|
|
281
289
|
ignore_errors=ignore_errors,
|
|
290
|
+
use_materialized=use_materialized,
|
|
282
291
|
)
|
|
283
292
|
return (
|
|
284
293
|
TranslatedSQL(
|
|
@@ -311,6 +320,7 @@ async def get_sql( # pylint: disable=too-many-locals
|
|
|
311
320
|
),
|
|
312
321
|
background_tasks: BackgroundTasks,
|
|
313
322
|
ignore_errors: Optional[bool] = True,
|
|
323
|
+
use_materialized: Optional[bool] = True,
|
|
314
324
|
) -> TranslatedSQL:
|
|
315
325
|
"""
|
|
316
326
|
Return SQL for a node.
|
|
@@ -328,12 +338,13 @@ async def get_sql( # pylint: disable=too-many-locals
|
|
|
328
338
|
validate_access=validate_access,
|
|
329
339
|
background_tasks=background_tasks,
|
|
330
340
|
ignore_errors=ignore_errors, # type: ignore
|
|
341
|
+
use_materialized=use_materialized, # type: ignore
|
|
331
342
|
)
|
|
332
343
|
return translated_sql
|
|
333
344
|
|
|
334
345
|
|
|
335
346
|
@router.get("/sql/", response_model=TranslatedSQL, name="Get SQL For Metrics")
|
|
336
|
-
async def get_sql_for_metrics(
|
|
347
|
+
async def get_sql_for_metrics( # pylint: disable=too-many-locals
|
|
337
348
|
metrics: List[str] = Query([]),
|
|
338
349
|
dimensions: List[str] = Query([]),
|
|
339
350
|
filters: List[str] = Query([]),
|
|
@@ -348,6 +359,7 @@ async def get_sql_for_metrics(
|
|
|
348
359
|
validate_access,
|
|
349
360
|
),
|
|
350
361
|
ignore_errors: Optional[bool] = True,
|
|
362
|
+
use_materialized: Optional[bool] = True,
|
|
351
363
|
) -> TranslatedSQL:
|
|
352
364
|
"""
|
|
353
365
|
Return SQL for a set of metrics with dimensions and filters
|
|
@@ -392,6 +404,7 @@ async def get_sql_for_metrics(
|
|
|
392
404
|
engine_version,
|
|
393
405
|
access_control,
|
|
394
406
|
ignore_errors=ignore_errors, # type: ignore
|
|
407
|
+
use_materialized=use_materialized, # type: ignore
|
|
395
408
|
)
|
|
396
409
|
|
|
397
410
|
await QueryRequest.save_query_request(
|
|
@@ -91,6 +91,8 @@ class Settings(
|
|
|
91
91
|
# Interval in seconds with which to expire caching of any indexes
|
|
92
92
|
index_cache_expire = 60
|
|
93
93
|
|
|
94
|
+
default_catalog_id: int = 0
|
|
95
|
+
|
|
94
96
|
# SQLAlchemy engine config
|
|
95
97
|
db_pool_size = 20
|
|
96
98
|
db_max_overflow = 20
|
|
@@ -103,6 +105,9 @@ class Settings(
|
|
|
103
105
|
db_keepalives_interval = 10
|
|
104
106
|
db_keepalives_count = 5
|
|
105
107
|
|
|
108
|
+
# Maximum amount of nodes to return for requests to list all nodes
|
|
109
|
+
node_list_max = 10000
|
|
110
|
+
|
|
106
111
|
@property
|
|
107
112
|
def celery(self) -> Celery:
|
|
108
113
|
"""
|
|
@@ -101,6 +101,7 @@ async def get_measures_query( # pylint: disable=too-many-locals
|
|
|
101
101
|
cast_timestamp_to_ms: bool = False, # pylint: disable=unused-argument
|
|
102
102
|
include_all_columns: bool = False,
|
|
103
103
|
sql_transpilation_library: Optional[str] = None,
|
|
104
|
+
use_materialized: bool = True,
|
|
104
105
|
) -> List[GeneratedSQL]:
|
|
105
106
|
"""
|
|
106
107
|
Builds the measures SQL for a set of metrics with dimensions and filters.
|
|
@@ -158,7 +159,11 @@ async def get_measures_query( # pylint: disable=too-many-locals
|
|
|
158
159
|
measures_queries = []
|
|
159
160
|
for parent_node, _ in common_parents.items(): # type: ignore
|
|
160
161
|
measure_columns, dimensional_columns = [], []
|
|
161
|
-
query_builder = await QueryBuilder.create(
|
|
162
|
+
query_builder = await QueryBuilder.create(
|
|
163
|
+
session,
|
|
164
|
+
parent_node.current,
|
|
165
|
+
use_materialized=use_materialized,
|
|
166
|
+
)
|
|
162
167
|
parent_ast = await (
|
|
163
168
|
query_builder.ignore_errors()
|
|
164
169
|
.with_access_control(access_control)
|
|
@@ -233,9 +238,15 @@ class QueryBuilder: # pylint: disable=too-many-instance-attributes,too-many-pub
|
|
|
233
238
|
validation, allowing for dynamic node query generation based on runtime conditions.
|
|
234
239
|
"""
|
|
235
240
|
|
|
236
|
-
def __init__(
|
|
241
|
+
def __init__(
|
|
242
|
+
self,
|
|
243
|
+
session: AsyncSession,
|
|
244
|
+
node_revision: NodeRevision,
|
|
245
|
+
use_materialized: bool = True,
|
|
246
|
+
):
|
|
237
247
|
self.session = session
|
|
238
248
|
self.node_revision = node_revision
|
|
249
|
+
self.use_materialized = use_materialized
|
|
239
250
|
|
|
240
251
|
self._filters: List[str] = []
|
|
241
252
|
self._required_dimensions: List[str] = [
|
|
@@ -262,12 +273,13 @@ class QueryBuilder: # pylint: disable=too-many-instance-attributes,too-many-pub
|
|
|
262
273
|
cls,
|
|
263
274
|
session: AsyncSession,
|
|
264
275
|
node_revision: NodeRevision,
|
|
276
|
+
use_materialized: bool = True,
|
|
265
277
|
) -> "QueryBuilder":
|
|
266
278
|
"""
|
|
267
279
|
Create a QueryBuilder instance for the node revision.
|
|
268
280
|
"""
|
|
269
281
|
await session.refresh(node_revision, ["required_dimensions", "dimension_links"])
|
|
270
|
-
instance = cls(session, node_revision)
|
|
282
|
+
instance = cls(session, node_revision, use_materialized=use_materialized)
|
|
271
283
|
return instance
|
|
272
284
|
|
|
273
285
|
def ignore_errors(self):
|
|
@@ -464,6 +476,7 @@ class QueryBuilder: # pylint: disable=too-many-instance-attributes,too-many-pub
|
|
|
464
476
|
filters=self._filters,
|
|
465
477
|
build_criteria=self._build_criteria,
|
|
466
478
|
ctes_mapping=self.cte_mapping,
|
|
479
|
+
use_materialized=self.use_materialized,
|
|
467
480
|
)
|
|
468
481
|
|
|
469
482
|
def initialize_final_query_ast(self, node_ast, node_alias):
|
|
@@ -523,6 +536,7 @@ class QueryBuilder: # pylint: disable=too-many-instance-attributes,too-many-pub
|
|
|
523
536
|
link,
|
|
524
537
|
self._filters,
|
|
525
538
|
self.cte_mapping,
|
|
539
|
+
use_materialized=self.use_materialized,
|
|
526
540
|
)
|
|
527
541
|
dimension_join.node_query = convert_to_cte(
|
|
528
542
|
dimension_node_query,
|
|
@@ -751,6 +765,7 @@ async def build_dimension_node_query(
|
|
|
751
765
|
link: DimensionLink,
|
|
752
766
|
filters: List[str],
|
|
753
767
|
cte_mapping: Dict[str, ast.Query],
|
|
768
|
+
use_materialized: bool = True,
|
|
754
769
|
):
|
|
755
770
|
"""
|
|
756
771
|
Builds a dimension node query with the requested filters
|
|
@@ -778,6 +793,7 @@ async def build_dimension_node_query(
|
|
|
778
793
|
filters=filters, # type: ignore
|
|
779
794
|
build_criteria=build_criteria,
|
|
780
795
|
ctes_mapping=cte_mapping,
|
|
796
|
+
use_materialized=use_materialized,
|
|
781
797
|
)
|
|
782
798
|
return dimension_node_query
|
|
783
799
|
|
|
@@ -949,6 +965,7 @@ async def build_ast( # pylint: disable=too-many-arguments,too-many-locals
|
|
|
949
965
|
build_criteria: Optional[BuildCriteria] = None,
|
|
950
966
|
access_control=None,
|
|
951
967
|
ctes_mapping: Dict[str, ast.Query] = None,
|
|
968
|
+
use_materialized: bool = True,
|
|
952
969
|
) -> ast.Query:
|
|
953
970
|
"""
|
|
954
971
|
Recursively replaces DJ node references with query ASTs. These are replaced with
|
|
@@ -974,14 +991,19 @@ async def build_ast( # pylint: disable=too-many-arguments,too-many-locals
|
|
|
974
991
|
for ref_expr in reference_expressions:
|
|
975
992
|
|
|
976
993
|
# Try to find a materialized table attached to this node, if one exists.
|
|
977
|
-
physical_table =
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
994
|
+
physical_table = None
|
|
995
|
+
if use_materialized:
|
|
996
|
+
logger.debug("Checking for physical node: %s", referenced_node.name)
|
|
997
|
+
physical_table = cast(
|
|
998
|
+
Optional[ast.Table],
|
|
999
|
+
get_table_for_node(
|
|
1000
|
+
referenced_node,
|
|
1001
|
+
build_criteria=build_criteria,
|
|
1002
|
+
),
|
|
1003
|
+
)
|
|
1004
|
+
|
|
984
1005
|
if not physical_table:
|
|
1006
|
+
logger.debug("Didn't find physical node: %s", referenced_node.name)
|
|
985
1007
|
# Build a new CTE with the query AST if there is no materialized table
|
|
986
1008
|
if referenced_node.name not in ctes_mapping:
|
|
987
1009
|
node_query = parse(cast(str, referenced_node.query))
|
|
@@ -994,6 +1016,7 @@ async def build_ast( # pylint: disable=too-many-arguments,too-many-locals
|
|
|
994
1016
|
build_criteria=build_criteria,
|
|
995
1017
|
access_control=access_control,
|
|
996
1018
|
ctes_mapping=ctes_mapping,
|
|
1019
|
+
use_materialized=use_materialized,
|
|
997
1020
|
)
|
|
998
1021
|
cte_name = ast.Name(amenable_name(referenced_node.name))
|
|
999
1022
|
query_ast = query_ast.to_cte(cte_name, parent_ast=query)
|
|
@@ -83,10 +83,12 @@ from datajunction_server.sql.parsing import ast
|
|
|
83
83
|
from datajunction_server.sql.parsing.ast import CompileContext
|
|
84
84
|
from datajunction_server.sql.parsing.backends.antlr4 import parse
|
|
85
85
|
from datajunction_server.typing import UTCDatetime
|
|
86
|
-
from datajunction_server.utils import SEPARATOR, Version, VersionUpgrade
|
|
86
|
+
from datajunction_server.utils import SEPARATOR, Version, VersionUpgrade, get_settings
|
|
87
87
|
|
|
88
88
|
_logger = logging.getLogger(__name__)
|
|
89
89
|
|
|
90
|
+
settings = get_settings()
|
|
91
|
+
|
|
90
92
|
|
|
91
93
|
def get_node_column(node: Node, column_name: str) -> Column:
|
|
92
94
|
"""
|
|
@@ -260,7 +262,7 @@ async def create_node_revision(
|
|
|
260
262
|
raise DJException(
|
|
261
263
|
f"Cannot create nodes with multi-catalog dependencies: {set(catalog_ids)}",
|
|
262
264
|
)
|
|
263
|
-
catalog_id = next(iter(catalog_ids),
|
|
265
|
+
catalog_id = next(iter(catalog_ids), settings.default_catalog_id)
|
|
264
266
|
parent_refs = (
|
|
265
267
|
(
|
|
266
268
|
await session.execute(
|
|
@@ -35,6 +35,7 @@ async def create_source(
|
|
|
35
35
|
table: str,
|
|
36
36
|
columns: List[Column],
|
|
37
37
|
current_user: User,
|
|
38
|
+
query: str = None,
|
|
38
39
|
) -> Tuple[Node, NodeRevision]:
|
|
39
40
|
"""Create source node."""
|
|
40
41
|
source_node = Node(
|
|
@@ -50,6 +51,7 @@ async def create_source(
|
|
|
50
51
|
display_name=display_name,
|
|
51
52
|
type=NodeType.SOURCE,
|
|
52
53
|
version="1",
|
|
54
|
+
query=query,
|
|
53
55
|
schema_=schema_,
|
|
54
56
|
table=table,
|
|
55
57
|
columns=columns,
|
|
@@ -136,7 +138,12 @@ async def events(session: AsyncSession, current_user: User) -> Node:
|
|
|
136
138
|
Column(name="utc_date", type=ct.BigIntType(), order=4),
|
|
137
139
|
],
|
|
138
140
|
current_user=current_user,
|
|
141
|
+
query=(
|
|
142
|
+
"SELECT event_id, user_id, device_id, country_code, "
|
|
143
|
+
"latency, utc_date FROM test.events"
|
|
144
|
+
),
|
|
139
145
|
)
|
|
146
|
+
|
|
140
147
|
return events_node
|
|
141
148
|
|
|
142
149
|
|
|
@@ -262,6 +269,7 @@ async def devices(
|
|
|
262
269
|
Column(name="device_manufacturer", type=ct.StringType(), order=2),
|
|
263
270
|
],
|
|
264
271
|
current_user=current_user,
|
|
272
|
+
query="SELECT device_id, device_name, device_manufacturer FROM test.devices",
|
|
265
273
|
)
|
|
266
274
|
|
|
267
275
|
devices_dim_node, _ = await create_node_with_query(
|
|
@@ -312,6 +320,7 @@ async def manufacturers_dim(
|
|
|
312
320
|
Column(name="created_on", type=ct.TimestampType(), order=2),
|
|
313
321
|
],
|
|
314
322
|
current_user=current_user,
|
|
323
|
+
query="SELECT manufacturer_name, company_name, created_on FROM test.manufacturers",
|
|
315
324
|
)
|
|
316
325
|
manufacturers_dim_node, _ = await create_node_with_query(
|
|
317
326
|
session,
|
|
@@ -365,6 +374,7 @@ async def country_dim(
|
|
|
365
374
|
Column(name="population", type=ct.IntegerType(), order=3),
|
|
366
375
|
],
|
|
367
376
|
current_user=current_user,
|
|
377
|
+
query="SELECT country_code, country_name, region_code, population FROM test.countries",
|
|
368
378
|
)
|
|
369
379
|
|
|
370
380
|
await create_source(
|
|
@@ -378,6 +388,7 @@ async def country_dim(
|
|
|
378
388
|
Column(name="region_name", type=ct.StringType(), order=1),
|
|
379
389
|
],
|
|
380
390
|
current_user=current_user,
|
|
391
|
+
query="SELECT region_code, region_name FROM test.regions",
|
|
381
392
|
)
|
|
382
393
|
|
|
383
394
|
await create_node_with_query(
|
|
@@ -1324,6 +1335,138 @@ async def test_query_builder(
|
|
|
1324
1335
|
assert not query_builder.include_dimensions_in_groupby
|
|
1325
1336
|
|
|
1326
1337
|
|
|
1338
|
+
@pytest.mark.asyncio
|
|
1339
|
+
async def test_build_transform_sql_without_materialized_tables(
|
|
1340
|
+
session: AsyncSession,
|
|
1341
|
+
events: Node, # pylint: disable=unused-argument
|
|
1342
|
+
events_agg: Node,
|
|
1343
|
+
devices: Node, # pylint: disable=unused-argument
|
|
1344
|
+
events_agg_devices_link: DimensionLink, # pylint: disable=unused-argument
|
|
1345
|
+
manufacturers_dim: Node, # pylint: disable=unused-argument
|
|
1346
|
+
country_dim: Node, # pylint: disable=unused-argument
|
|
1347
|
+
events_agg_countries_link: DimensionLink, # pylint: disable=unused-argument
|
|
1348
|
+
):
|
|
1349
|
+
"""
|
|
1350
|
+
Test building a transform node with filters and dimensions that forces skipping the materialized
|
|
1351
|
+
tables for the dependent nodes.
|
|
1352
|
+
"""
|
|
1353
|
+
query_builder = await QueryBuilder.create(
|
|
1354
|
+
session,
|
|
1355
|
+
events_agg.current,
|
|
1356
|
+
use_materialized=False,
|
|
1357
|
+
)
|
|
1358
|
+
query_ast = await (
|
|
1359
|
+
query_builder.filter_by("shared.manufacturers.company_name = 'Apple'")
|
|
1360
|
+
.filter_by("shared.manufacturers.created_at > 20240101")
|
|
1361
|
+
.filter_by("shared.countries.region_name = 'APAC'")
|
|
1362
|
+
.add_dimension("shared.devices.device_manufacturer")
|
|
1363
|
+
.add_dimension("shared.countries.region_name")
|
|
1364
|
+
.build()
|
|
1365
|
+
)
|
|
1366
|
+
expected = """
|
|
1367
|
+
WITH
|
|
1368
|
+
source_DOT_events AS (
|
|
1369
|
+
SELECT event_id,
|
|
1370
|
+
user_id,
|
|
1371
|
+
device_id,
|
|
1372
|
+
country_code,
|
|
1373
|
+
latency,
|
|
1374
|
+
utc_date
|
|
1375
|
+
FROM test.events
|
|
1376
|
+
),
|
|
1377
|
+
agg_DOT_events AS (
|
|
1378
|
+
SELECT source_DOT_events.user_id,
|
|
1379
|
+
source_DOT_events.utc_date,
|
|
1380
|
+
source_DOT_events.device_id,
|
|
1381
|
+
source_DOT_events.country_code,
|
|
1382
|
+
SUM(source_DOT_events.latency) AS total_latency
|
|
1383
|
+
FROM source_DOT_events
|
|
1384
|
+
GROUP BY source_DOT_events.user_id, source_DOT_events.device_id, source_DOT_events.country_code
|
|
1385
|
+
),
|
|
1386
|
+
source_DOT_devices AS (
|
|
1387
|
+
SELECT device_id,
|
|
1388
|
+
device_name,
|
|
1389
|
+
device_manufacturer
|
|
1390
|
+
FROM test.devices
|
|
1391
|
+
),
|
|
1392
|
+
shared_DOT_devices AS (
|
|
1393
|
+
SELECT CAST(source_DOT_devices.device_id AS INT) device_id,
|
|
1394
|
+
CAST(source_DOT_devices.device_name AS STRING) device_name,
|
|
1395
|
+
source_DOT_devices.device_manufacturer
|
|
1396
|
+
FROM source_DOT_devices
|
|
1397
|
+
),
|
|
1398
|
+
source_DOT_countries AS (
|
|
1399
|
+
SELECT country_code,
|
|
1400
|
+
country_name,
|
|
1401
|
+
region_code,
|
|
1402
|
+
population
|
|
1403
|
+
FROM test.countries
|
|
1404
|
+
),
|
|
1405
|
+
source_DOT_regions AS (
|
|
1406
|
+
SELECT region_code,
|
|
1407
|
+
region_name
|
|
1408
|
+
FROM test.regions
|
|
1409
|
+
),
|
|
1410
|
+
shared_DOT_regions AS (
|
|
1411
|
+
SELECT source_DOT_regions.region_code,
|
|
1412
|
+
source_DOT_regions.region_name
|
|
1413
|
+
FROM source_DOT_regions
|
|
1414
|
+
),
|
|
1415
|
+
shared_DOT_countries AS (
|
|
1416
|
+
SELECT countries.country_code,
|
|
1417
|
+
countries.country_name,
|
|
1418
|
+
shared_DOT_regions.region_code,
|
|
1419
|
+
shared_DOT_regions.region_name,
|
|
1420
|
+
countries.population
|
|
1421
|
+
FROM source_DOT_countries countries JOIN shared_DOT_regions ON countries.region_code = shared_DOT_regions.region_code
|
|
1422
|
+
WHERE shared_DOT_regions.region_name = 'APAC'
|
|
1423
|
+
),
|
|
1424
|
+
source_DOT_manufacturers AS (
|
|
1425
|
+
SELECT manufacturer_name,
|
|
1426
|
+
company_name,
|
|
1427
|
+
created_on
|
|
1428
|
+
FROM test.manufacturers
|
|
1429
|
+
),
|
|
1430
|
+
shared_DOT_manufacturers AS (
|
|
1431
|
+
SELECT CAST(manufacturers.manufacturer_name AS STRING) name,
|
|
1432
|
+
CAST(manufacturers.company_name AS STRING) company_name,
|
|
1433
|
+
manufacturers.created_on AS created_at,
|
|
1434
|
+
COUNT( DISTINCT devices.device_id) AS devices_produced
|
|
1435
|
+
FROM source_DOT_manufacturers manufacturers JOIN shared_DOT_devices devices ON manufacturers.manufacturer_name = devices.device_manufacturer
|
|
1436
|
+
WHERE CAST(manufacturers.company_name AS STRING) = 'Apple' AND manufacturers.created_on > 20240101
|
|
1437
|
+
)
|
|
1438
|
+
|
|
1439
|
+
SELECT agg_DOT_events.user_id,
|
|
1440
|
+
agg_DOT_events.utc_date,
|
|
1441
|
+
agg_DOT_events.device_id,
|
|
1442
|
+
agg_DOT_events.country_code,
|
|
1443
|
+
agg_DOT_events.total_latency,
|
|
1444
|
+
shared_DOT_devices.device_manufacturer shared_DOT_devices_DOT_device_manufacturer,
|
|
1445
|
+
shared_DOT_countries.region_name shared_DOT_countries_DOT_region_name,
|
|
1446
|
+
shared_DOT_manufacturers.company_name shared_DOT_manufacturers_DOT_company_name,
|
|
1447
|
+
shared_DOT_manufacturers.created_at shared_DOT_manufacturers_DOT_created_at
|
|
1448
|
+
FROM agg_DOT_events INNER JOIN shared_DOT_devices ON shared_DOT_devices.device_id = agg_DOT_events.device_id
|
|
1449
|
+
INNER JOIN shared_DOT_countries ON agg_DOT_events.country_code = shared_DOT_countries.country_code
|
|
1450
|
+
INNER JOIN shared_DOT_manufacturers ON shared_DOT_manufacturers.name = shared_DOT_devices.device_manufacturer
|
|
1451
|
+
"""
|
|
1452
|
+
assert str(query_ast).strip() == str(parse(expected)).strip()
|
|
1453
|
+
|
|
1454
|
+
query_builder = await QueryBuilder.create(
|
|
1455
|
+
session,
|
|
1456
|
+
events_agg.current,
|
|
1457
|
+
use_materialized=True,
|
|
1458
|
+
)
|
|
1459
|
+
query_ast = await (
|
|
1460
|
+
query_builder.filter_by("shared.manufacturers.company_name = 'Apple'")
|
|
1461
|
+
.filter_by("shared.manufacturers.created_at > 20240101")
|
|
1462
|
+
.filter_by("shared.countries.region_name = 'APAC'")
|
|
1463
|
+
.add_dimension("shared.devices.device_manufacturer")
|
|
1464
|
+
.add_dimension("shared.countries.region_name")
|
|
1465
|
+
.build()
|
|
1466
|
+
)
|
|
1467
|
+
assert str(query_ast).strip() != str(parse(expected)).strip()
|
|
1468
|
+
|
|
1469
|
+
|
|
1327
1470
|
@pytest.mark.asyncio
|
|
1328
1471
|
async def test_build_transform_with_multijoin_dimensions_with_extra_ctes(
|
|
1329
1472
|
session: AsyncSession,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/.pre-commit-config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datajunction_server-0.0.1a64.dev1 → datajunction_server-0.0.1a64.dev3}/alembic/script.py.mako
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|