datajunction-server 0.0.1a94.dev0__tar.gz → 0.0.1a95.dev0__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.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/PKG-INFO +1 -1
- datajunction_server-0.0.1a95.dev0/datajunction_server/__about__.py +5 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/data.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/resolvers/nodes.py +5 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/node.py +8 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/helpers.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/history.py +35 -15
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/materializations.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/nodes.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/notifications.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/tags.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/users.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/construction/build_v2.py +29 -9
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/history.py +10 -38
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/notification_preference.py +1 -1
- datajunction_server-0.0.1a95.dev0/datajunction_server/internal/history.py +39 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/namespaces.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/nodes.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/notifications.py +1 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/history.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/notifications.py +1 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/decompose.py +15 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/ast.py +5 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/graphql/find_nodes_test.py +2 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/history_test.py +94 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/notifications_test.py +2 -1
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/sql_v2_test.py +31 -32
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/decompose_test.py +8 -2
- datajunction_server-0.0.1a94.dev0/datajunction_server/__about__.py +0 -5
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/.coveragerc +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/.env +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/.env.integration +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/.flake8 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/.gitignore +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/.isort.cfg +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/.pre-commit-config.yaml +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/Dockerfile +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/Makefile +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/README.md +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/README +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/env.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/script.py.mako +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2023_12_20_1829-724445d2b29d_initial_migration.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_01_08_2034-945d44abcd32_add_dimension_links.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_01_11_2032-c74b11566d82_add_column_order.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_01_18_2011-20f060b02772_switch_enum_values.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_01_23_0617-c9cef8864ecb_add_missing_table_attribute_to_source_.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_01_23_1655-a8e22109be24_availability_state_s_valid_through_ts_.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_02_22_0713-d61fb7e48cc3_cascade_deletes_to_dimension_links.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_04_30_1556-de7ec1c82fe0_add_query_requests.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_05_09_1420-9b1227ff17f4_update_backfill_spec.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_05_21_0012-57fc93ef6947_add_query_id_to_queryrequest.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_06_21_1301-640a814db2d8_add_collection_tables.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_07_12_0348-34171c92dd6d_set_user_username_to_be_unique.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_08_18_0036-f3c9b40deb6f_add_create_by_to_nodes_node_revisions_.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_10_24_0015-4d6ab789e456_add_a_map_of_links_to_availability_state.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2024_10_26_0340-70904373eab3_add_indexes_on_history_and_node_tables.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2025_01_19_1808-9650f9b728a2_add_query_ast_for_noderevision.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2025_01_24_0020-bec3296d7537_add_custom_metadata_field_to_nodes.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2025_02_11_1619-c3d5f327296c_notificationpreferences.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2025_03_14_1513-ae9eba981a2d_add_index_on_display_name.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2025_03_14_2304-135fa5833fed_added_column_description.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic/versions/2025_04_05_2149-a2d7ea04cf79_add_formatting_metric_metadata.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/alembic.ini +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/access/authentication/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/access/authentication/basic.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/access/authentication/github.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/access/authentication/google.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/access/authentication/whoami.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/attributes.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/catalogs.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/client.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/collection.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/cubes.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/dimensions.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/djsql.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/engines.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/main.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/queries/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/queries/catalogs.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/queries/dag.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/queries/engines.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/queries/nodes.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/queries/sql.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/queries/tags.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/resolvers/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/resolvers/tags.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/availabilitystate.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/catalog_engine.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/column.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/errors.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/materialization.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/metricmetadata.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/sql.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/tag.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/scalars/user.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/graphql/utils.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/health.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/logging.conf +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/main.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/measures.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/metrics.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/namespaces.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/api/sql.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/config.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/constants.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/construction/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/construction/build.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/construction/dimensions.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/construction/dj_query.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/construction/exceptions.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/construction/utils.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/attributetype.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/availabilitystate.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/backfill.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/base.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/catalog.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/collection.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/column.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/database.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/dimensionlink.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/engine.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/materialization.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/measure.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/metricmetadata.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/namespace.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/node.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/partition.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/queryrequest.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/tag.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/database/user.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/enum.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/errors.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/access/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/access/authentication/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/access/authentication/basic.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/access/authentication/github.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/access/authentication/google.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/access/authentication/http.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/access/authentication/tokens.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/access/authorization.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/caching/cachelib_cache.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/caching/interface.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/caching/noop_cache.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/client.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/cube_materializations.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/engines.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/materializations.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/templates/client_setup.j2 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/templates/create_cube.j2 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/templates/create_dimension.j2 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/templates/create_metric.j2 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/templates/create_transform.j2 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/templates/link_dimension.j2 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/templates/namespace_mapping.j2 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/templates/register_table.j2 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/templates/set_column_attributes.j2 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/internal/validation.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/materialization/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/materialization/jobs/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/materialization/jobs/cube_materialization.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/materialization/jobs/job_types.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/materialization/jobs/materialization_job.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/access.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/attribute.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/base.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/catalog.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/collection.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/column.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/cube.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/cube_materialization.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/database.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/dimensionlink.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/engine.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/materialization.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/measure.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/metric.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/node.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/node_type.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/partition.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/query.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/sql.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/table.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/tag.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/models/user.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/naming.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/service_clients.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/dag.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/functions.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/sql/parsing/types.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/superset.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/transpilation.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/typing.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/datajunction_server/utils.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/init_data/seed.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/pdm.lock +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/pyproject.toml +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/requirements/docker.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/requirements/test.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/scripts/docs-snippets.js +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/scripts/docs-snippets.sh +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/scripts/generate-openapi.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/access_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/attributes_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/catalog_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/client_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/collections_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/cubes_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/data_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/dimension_links_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/dimensions_access_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/dimensions_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/djql_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/engine_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/create_cube.repairs_cube.namespace.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/create_cube.repairs_cube.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/create_dimension.repair_order.namespace.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/create_dimension.repair_order.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/create_metric.num_repair_orders.namespace.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/create_metric.num_repair_orders.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/create_transform.regional_level_agg.namespace.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/create_transform.regional_level_agg.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/dimension_links.repair_orders.namespace.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/dimension_links.repair_orders.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/include_client_setup.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/notebook.create_cube.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/notebook.create_transform.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/notebook.link_dimension.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/notebook.set_attribute.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/client_test/register_table.txt +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.druid_spec.json +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.partition.druid_spec.json +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.partition.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.categorical.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.druid_spec.json +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.patched.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.categorical.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.druid_spec.json +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.full.config.json +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.full.materializations.json +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.config.json +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.materializations.json +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.full.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.incremental.additional.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.incremental.categorical.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.incremental.config.json +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.incremental.lookback.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/files/materializations_test/spark_sql.incremental.query.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/graphql/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/graphql/catalog_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/graphql/common_dimensions_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/graphql/engine_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/graphql/measures_sql_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/graphql/tags_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/health_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/helpers_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/materializations_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/measures_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/metrics_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/namespaces_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/nodes_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/nodes_update_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/routers_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/sql_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/tags_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/api/users_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/conftest.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/construction/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/construction/build_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/construction/build_v2_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/construction/compile_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/construction/conftest.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/construction/exceptions_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/construction/inference_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/construction/utils_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/default.duckdb +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/duckdb.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/errors_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/examples.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/integration/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/integration/basic_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/internal/authentication/basic_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/internal/authentication/github_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/internal/authentication/http_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/internal/authentication/token_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/internal/authentication/whoami_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/internal/caching/cachelib_cache_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/internal/caching/noop_cache_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/migrations_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/models/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/models/catalog_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/models/hash_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/models/measure_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/models/node_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/models/query_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/service_clients_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/dag_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/functions_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/backends/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/backends/antlr4_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/backends/types_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/__init__.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/parsing/test_ast.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/sql/utils.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/superset_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/tests/transpilation_test.py +0 -0
- {datajunction_server-0.0.1a94.dev0 → datajunction_server-0.0.1a95.dev0}/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.
|
|
3
|
+
Version: 0.0.1a95.dev0
|
|
4
4
|
Summary: DataJunction server library for running to a DataJunction server
|
|
5
5
|
Project-URL: Homepage, https://datajunction.io
|
|
6
6
|
Project-URL: Repository, https://github.com/DataJunction/dj
|
|
@@ -18,7 +18,7 @@ from datajunction_server.api.helpers import (
|
|
|
18
18
|
from datajunction_server.api.sql import get_node_sql
|
|
19
19
|
from datajunction_server.api.helpers import get_save_history
|
|
20
20
|
from datajunction_server.database.availabilitystate import AvailabilityState
|
|
21
|
-
from datajunction_server.database.history import
|
|
21
|
+
from datajunction_server.database.history import History
|
|
22
22
|
from datajunction_server.database.node import Node, NodeRevision
|
|
23
23
|
from datajunction_server.database.user import User
|
|
24
24
|
from datajunction_server.errors import (
|
|
@@ -31,6 +31,7 @@ from datajunction_server.internal.access.authorization import (
|
|
|
31
31
|
validate_access_requests,
|
|
32
32
|
)
|
|
33
33
|
from datajunction_server.internal.engines import get_engine
|
|
34
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
34
35
|
from datajunction_server.models import access
|
|
35
36
|
from datajunction_server.models.node import AvailabilityStateBase
|
|
36
37
|
from datajunction_server.models.node_type import NodeType
|
|
@@ -115,7 +115,11 @@ def load_node_revision_options(node_revision_fields):
|
|
|
115
115
|
"cube_metrics" in node_revision_fields
|
|
116
116
|
or "cube_dimensions" in node_revision_fields
|
|
117
117
|
)
|
|
118
|
-
if
|
|
118
|
+
if (
|
|
119
|
+
"columns" in node_revision_fields
|
|
120
|
+
or is_cube_request
|
|
121
|
+
or "primary_key" in node_revision_fields
|
|
122
|
+
):
|
|
119
123
|
options.append(
|
|
120
124
|
selectinload(DBNodeRevision.columns).options(
|
|
121
125
|
joinedload(Column.attributes).joinedload(
|
|
@@ -138,7 +138,14 @@ class NodeRevision:
|
|
|
138
138
|
table: Optional[str]
|
|
139
139
|
|
|
140
140
|
# Only metrics will have these fields
|
|
141
|
-
required_dimensions:
|
|
141
|
+
required_dimensions: List[Column] | None = None
|
|
142
|
+
|
|
143
|
+
@strawberry.field
|
|
144
|
+
def primary_key(self, root: "DBNodeRevision") -> list[str]:
|
|
145
|
+
"""
|
|
146
|
+
The primary key of the node
|
|
147
|
+
"""
|
|
148
|
+
return [col.name for col in root.primary_key()]
|
|
142
149
|
|
|
143
150
|
@strawberry.field
|
|
144
151
|
def metric_metadata(self, root: "DBNodeRevision") -> MetricMetadata | None:
|
|
@@ -31,7 +31,7 @@ from datajunction_server.database.attributetype import AttributeType
|
|
|
31
31
|
from datajunction_server.database.catalog import Catalog
|
|
32
32
|
from datajunction_server.database.column import Column
|
|
33
33
|
from datajunction_server.database.engine import Engine
|
|
34
|
-
from datajunction_server.database.history import
|
|
34
|
+
from datajunction_server.database.history import History
|
|
35
35
|
from datajunction_server.database.namespace import NodeNamespace
|
|
36
36
|
from datajunction_server.database.node import (
|
|
37
37
|
MissingParent,
|
|
@@ -49,6 +49,7 @@ from datajunction_server.errors import (
|
|
|
49
49
|
ErrorCode,
|
|
50
50
|
)
|
|
51
51
|
from datajunction_server.internal.engines import get_engine
|
|
52
|
+
from datajunction_server.internal.history import EntityType
|
|
52
53
|
from datajunction_server.models import access
|
|
53
54
|
from datajunction_server.models.attribute import RESERVED_ATTRIBUTE_NAMESPACE
|
|
54
55
|
from datajunction_server.models.history import status_change_history
|
|
@@ -3,17 +3,26 @@ History related APIs.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
import logging
|
|
6
|
-
from typing import List
|
|
6
|
+
from typing import List, Optional
|
|
7
7
|
|
|
8
8
|
from fastapi import Depends, Query
|
|
9
9
|
from sqlalchemy import select
|
|
10
10
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
11
|
+
from sqlalchemy.orm import aliased
|
|
12
|
+
from sqlalchemy import and_, cast, func, String
|
|
11
13
|
|
|
12
14
|
from datajunction_server.api.helpers import get_history
|
|
13
|
-
from datajunction_server.database.history import
|
|
15
|
+
from datajunction_server.database.history import History
|
|
16
|
+
from datajunction_server.database.notification_preference import NotificationPreference
|
|
17
|
+
from datajunction_server.database.user import User
|
|
14
18
|
from datajunction_server.internal.access.authentication.http import SecureAPIRouter
|
|
19
|
+
from datajunction_server.internal.history import EntityType
|
|
15
20
|
from datajunction_server.models.history import HistoryOutput
|
|
16
|
-
from datajunction_server.utils import
|
|
21
|
+
from datajunction_server.utils import (
|
|
22
|
+
get_and_update_current_user,
|
|
23
|
+
get_session,
|
|
24
|
+
get_settings,
|
|
25
|
+
)
|
|
17
26
|
|
|
18
27
|
_logger = logging.getLogger(__name__)
|
|
19
28
|
settings = get_settings()
|
|
@@ -44,26 +53,37 @@ async def list_history(
|
|
|
44
53
|
|
|
45
54
|
@router.get("/history/", response_model=List[HistoryOutput])
|
|
46
55
|
async def list_history_by_node_context(
|
|
47
|
-
node: str,
|
|
56
|
+
node: Optional[str] = None,
|
|
57
|
+
only_subscribed: bool = False,
|
|
48
58
|
offset: int = 0,
|
|
49
59
|
limit: int = Query(default=100, lte=100),
|
|
50
60
|
*,
|
|
51
61
|
session: AsyncSession = Depends(get_session),
|
|
62
|
+
current_user: User = Depends(get_and_update_current_user),
|
|
52
63
|
) -> List[HistoryOutput]:
|
|
53
64
|
"""
|
|
54
65
|
List all activity history for a node context
|
|
55
66
|
"""
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
67
|
+
statement = select(History)
|
|
68
|
+
if node:
|
|
69
|
+
statement = statement.where(History.node == node)
|
|
70
|
+
if only_subscribed:
|
|
71
|
+
np_alias = aliased(NotificationPreference)
|
|
72
|
+
statement = statement.join(
|
|
73
|
+
np_alias,
|
|
74
|
+
and_(
|
|
75
|
+
cast(History.entity_type, String) == cast(np_alias.entity_type, String),
|
|
76
|
+
History.entity_name == np_alias.entity_name,
|
|
77
|
+
cast(History.activity_type, String).in_(
|
|
78
|
+
func.array_to_string(np_alias.activity_types, ","),
|
|
79
|
+
),
|
|
80
|
+
np_alias.user_id == current_user.id,
|
|
81
|
+
),
|
|
65
82
|
)
|
|
66
|
-
|
|
67
|
-
|
|
83
|
+
|
|
84
|
+
statement = (
|
|
85
|
+
statement.order_by(History.created_at.desc()).offset(offset).limit(limit)
|
|
68
86
|
)
|
|
87
|
+
result = await session.execute(statement)
|
|
88
|
+
hist = result.scalars().all()
|
|
69
89
|
return [HistoryOutput.from_orm(entry) for entry in hist]
|
|
@@ -16,11 +16,12 @@ from datajunction_server.api.helpers import get_save_history
|
|
|
16
16
|
from datajunction_server.database import Node, NodeRevision
|
|
17
17
|
from datajunction_server.database.backfill import Backfill
|
|
18
18
|
from datajunction_server.database.column import Column, ColumnAttribute
|
|
19
|
-
from datajunction_server.database.history import
|
|
19
|
+
from datajunction_server.database.history import History
|
|
20
20
|
from datajunction_server.database.user import User
|
|
21
21
|
from datajunction_server.errors import DJDoesNotExistException, DJInvalidInputException
|
|
22
22
|
from datajunction_server.internal.access.authentication.http import SecureAPIRouter
|
|
23
23
|
from datajunction_server.internal.access.authorization import validate_access
|
|
24
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
24
25
|
from datajunction_server.internal.materializations import (
|
|
25
26
|
create_new_materialization,
|
|
26
27
|
schedule_materialization_jobs,
|
|
@@ -29,7 +29,7 @@ from datajunction_server.api.tags import get_tags_by_name
|
|
|
29
29
|
from datajunction_server.database import DimensionLink
|
|
30
30
|
from datajunction_server.database.attributetype import ColumnAttribute
|
|
31
31
|
from datajunction_server.database.column import Column
|
|
32
|
-
from datajunction_server.database.history import
|
|
32
|
+
from datajunction_server.database.history import History
|
|
33
33
|
from datajunction_server.database.node import Node, NodeRevision
|
|
34
34
|
from datajunction_server.database.partition import Partition
|
|
35
35
|
from datajunction_server.database.user import User
|
|
@@ -46,6 +46,7 @@ from datajunction_server.internal.access.authorization import (
|
|
|
46
46
|
validate_access,
|
|
47
47
|
validate_access_requests,
|
|
48
48
|
)
|
|
49
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
49
50
|
from datajunction_server.internal.nodes import (
|
|
50
51
|
activate_node,
|
|
51
52
|
copy_to_new_node,
|
|
@@ -10,11 +10,12 @@ from fastapi.responses import JSONResponse
|
|
|
10
10
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
11
11
|
from sqlalchemy.future import select
|
|
12
12
|
|
|
13
|
-
from datajunction_server.database.history import ActivityType, EntityType, History
|
|
14
13
|
from datajunction_server.database.notification_preference import NotificationPreference
|
|
15
14
|
from datajunction_server.database.user import User
|
|
15
|
+
from datajunction_server.database.history import History
|
|
16
16
|
from datajunction_server.errors import DJDoesNotExistException
|
|
17
17
|
from datajunction_server.internal.access.authentication.http import SecureAPIRouter
|
|
18
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
18
19
|
from datajunction_server.internal.notifications import (
|
|
19
20
|
get_entity_notification_preferences,
|
|
20
21
|
get_user_notification_preferences,
|
|
@@ -11,11 +11,12 @@ from sqlalchemy.orm import joinedload
|
|
|
11
11
|
|
|
12
12
|
from datajunction_server.api.helpers import get_save_history
|
|
13
13
|
from datajunction_server.database import Node
|
|
14
|
-
from datajunction_server.database.history import
|
|
14
|
+
from datajunction_server.database.history import History
|
|
15
15
|
from datajunction_server.database.tag import Tag
|
|
16
16
|
from datajunction_server.database.user import User
|
|
17
17
|
from datajunction_server.errors import DJAlreadyExistsException, DJDoesNotExistException
|
|
18
18
|
from datajunction_server.internal.access.authentication.http import SecureAPIRouter
|
|
19
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
19
20
|
from datajunction_server.models.node import NodeMinimumDetail
|
|
20
21
|
from datajunction_server.models.node_type import NodeType
|
|
21
22
|
from datajunction_server.models.tag import CreateTag, TagOutput, UpdateTag
|
|
@@ -10,10 +10,11 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
10
10
|
from sqlalchemy.orm import joinedload, selectinload
|
|
11
11
|
|
|
12
12
|
from datajunction_server.database.column import Column
|
|
13
|
-
from datajunction_server.database.history import
|
|
13
|
+
from datajunction_server.database.history import History
|
|
14
14
|
from datajunction_server.database.node import Node, NodeRevision
|
|
15
15
|
from datajunction_server.database.user import User
|
|
16
16
|
from datajunction_server.internal.access.authentication.http import SecureAPIRouter
|
|
17
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
17
18
|
from datajunction_server.models.node import NodeMinimumDetail
|
|
18
19
|
from datajunction_server.models.user import UserActivity
|
|
19
20
|
from datajunction_server.utils import get_session, get_settings
|
|
@@ -166,7 +166,7 @@ async def get_measures_query(
|
|
|
166
166
|
preaggregate = preagg_requested and all(
|
|
167
167
|
len(metrics2measures[metric.name][0]) > 0
|
|
168
168
|
and all(
|
|
169
|
-
measure.rule.type
|
|
169
|
+
measure.rule.type in (Aggregability.FULL, Aggregability.LIMITED)
|
|
170
170
|
for measure in metrics2measures[metric.name][0]
|
|
171
171
|
)
|
|
172
172
|
for metric in children
|
|
@@ -194,13 +194,17 @@ async def get_measures_query(
|
|
|
194
194
|
parent_ast.select.projection = [
|
|
195
195
|
expr
|
|
196
196
|
for expr in parent_ast.select.projection
|
|
197
|
-
if
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
197
|
+
if (
|
|
198
|
+
(identifier := expr.alias_or_name.identifier(False))
|
|
199
|
+
and (
|
|
200
|
+
from_amenable_name(identifier).split(SEPARATOR)[-1]
|
|
201
|
+
in parents_to_measures[parent_node.name]
|
|
202
|
+
or identifier in parents_to_measures[parent_node.name]
|
|
203
|
+
or from_amenable_name(identifier) in dimensions_without_roles
|
|
204
|
+
)
|
|
205
|
+
)
|
|
203
206
|
]
|
|
207
|
+
|
|
204
208
|
await refresh_if_needed(session, parent_node.current, ["columns"])
|
|
205
209
|
parent_ast = rename_columns(parent_ast, parent_node.current, preaggregate)
|
|
206
210
|
|
|
@@ -289,19 +293,35 @@ def build_preaggregate_query(
|
|
|
289
293
|
built_parent_ref = parent_node.name + "_built"
|
|
290
294
|
parent_node_cte = parent_ast.to_cte(ast.Name(amenable_name(built_parent_ref)))
|
|
291
295
|
from_table = ast.Table(ast.Name(amenable_name(built_parent_ref)))
|
|
296
|
+
|
|
297
|
+
# Find all required GROUP BY columns based on each of the measure's aggregation rules.
|
|
298
|
+
# If the measure supports full aggregation, there are no required group-by columns, but if it
|
|
299
|
+
# supports limited aggregation, we need to aggregate to the specified level.
|
|
300
|
+
required_group_by_columns = [
|
|
301
|
+
ast.Column.from_existing(
|
|
302
|
+
parent_ast.select.column_mapping[group_by_col],
|
|
303
|
+
table=from_table,
|
|
304
|
+
)
|
|
305
|
+
for metric in metrics2measures
|
|
306
|
+
for measures in metrics2measures[metric][0]
|
|
307
|
+
if measures.rule.level
|
|
308
|
+
for group_by_col in measures.rule.level
|
|
309
|
+
]
|
|
310
|
+
|
|
292
311
|
final_query = ast.Query(
|
|
293
312
|
ctes=existing_ctes + [parent_node_cte],
|
|
294
313
|
select=ast.Select(
|
|
295
314
|
projection=[
|
|
296
315
|
ast.Column.from_existing(col, table=from_table)
|
|
297
316
|
for col in parent_ast.select.projection
|
|
298
|
-
if col.semantic_type == SemanticType.DIMENSION # type: ignore
|
|
317
|
+
if col and col.semantic_type == SemanticType.DIMENSION # type: ignore
|
|
299
318
|
],
|
|
300
319
|
from_=ast.From(relations=[ast.Relation(primary=from_table)]),
|
|
301
320
|
group_by=[
|
|
302
321
|
ast.Column(dim.alias_or_name, _table=from_table)
|
|
303
322
|
for dim in dimensional_columns
|
|
304
|
-
]
|
|
323
|
+
]
|
|
324
|
+
+ required_group_by_columns,
|
|
305
325
|
),
|
|
306
326
|
)
|
|
307
327
|
|
|
@@ -4,50 +4,22 @@ from datetime import datetime, timezone
|
|
|
4
4
|
from functools import partial
|
|
5
5
|
from typing import Any, Dict, Optional
|
|
6
6
|
|
|
7
|
-
from sqlalchemy import
|
|
7
|
+
from sqlalchemy import (
|
|
8
|
+
JSON,
|
|
9
|
+
BigInteger,
|
|
10
|
+
DateTime,
|
|
11
|
+
Enum,
|
|
12
|
+
Index,
|
|
13
|
+
Integer,
|
|
14
|
+
String,
|
|
15
|
+
)
|
|
8
16
|
from sqlalchemy.orm import Mapped, mapped_column
|
|
9
17
|
|
|
10
18
|
from datajunction_server.database.base import Base
|
|
11
|
-
from datajunction_server.
|
|
19
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
12
20
|
from datajunction_server.typing import UTCDatetime
|
|
13
21
|
|
|
14
22
|
|
|
15
|
-
class ActivityType(StrEnum):
|
|
16
|
-
"""
|
|
17
|
-
An activity type
|
|
18
|
-
"""
|
|
19
|
-
|
|
20
|
-
CREATE = "create"
|
|
21
|
-
DELETE = "delete"
|
|
22
|
-
RESTORE = "restore"
|
|
23
|
-
UPDATE = "update"
|
|
24
|
-
REFRESH = "refresh"
|
|
25
|
-
TAG = "tag"
|
|
26
|
-
SET_ATTRIBUTE = "set_attribute"
|
|
27
|
-
STATUS_CHANGE = "status_change"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
class EntityType(StrEnum):
|
|
31
|
-
"""
|
|
32
|
-
An entity type for which activity can occur
|
|
33
|
-
"""
|
|
34
|
-
|
|
35
|
-
ATTRIBUTE = "attribute"
|
|
36
|
-
AVAILABILITY = "availability"
|
|
37
|
-
BACKFILL = "backfill"
|
|
38
|
-
CATALOG = "catalog"
|
|
39
|
-
COLUMN_ATTRIBUTE = "column_attribute"
|
|
40
|
-
DEPENDENCY = "dependency"
|
|
41
|
-
ENGINE = "engine"
|
|
42
|
-
LINK = "link"
|
|
43
|
-
MATERIALIZATION = "materialization"
|
|
44
|
-
NAMESPACE = "namespace"
|
|
45
|
-
NODE = "node"
|
|
46
|
-
PARTITION = "partition"
|
|
47
|
-
QUERY = "query"
|
|
48
|
-
TAG = "tag"
|
|
49
|
-
|
|
50
|
-
|
|
51
23
|
class History(Base):
|
|
52
24
|
"""
|
|
53
25
|
An event to store as part of the server's activity history
|
|
@@ -16,7 +16,7 @@ from sqlalchemy import (
|
|
|
16
16
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
17
17
|
|
|
18
18
|
from datajunction_server.database.base import Base
|
|
19
|
-
from datajunction_server.
|
|
19
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
20
20
|
from datajunction_server.database.user import User
|
|
21
21
|
from datajunction_server.typing import UTCDatetime
|
|
22
22
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Enums for history events"""
|
|
2
|
+
|
|
3
|
+
from datajunction_server.enum import StrEnum
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ActivityType(StrEnum):
|
|
7
|
+
"""
|
|
8
|
+
An activity type
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
CREATE = "create"
|
|
12
|
+
DELETE = "delete"
|
|
13
|
+
RESTORE = "restore"
|
|
14
|
+
UPDATE = "update"
|
|
15
|
+
REFRESH = "refresh"
|
|
16
|
+
TAG = "tag"
|
|
17
|
+
SET_ATTRIBUTE = "set_attribute"
|
|
18
|
+
STATUS_CHANGE = "status_change"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class EntityType(StrEnum):
|
|
22
|
+
"""
|
|
23
|
+
An entity type for which activity can occur
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
ATTRIBUTE = "attribute"
|
|
27
|
+
AVAILABILITY = "availability"
|
|
28
|
+
BACKFILL = "backfill"
|
|
29
|
+
CATALOG = "catalog"
|
|
30
|
+
COLUMN_ATTRIBUTE = "column_attribute"
|
|
31
|
+
DEPENDENCY = "dependency"
|
|
32
|
+
ENGINE = "engine"
|
|
33
|
+
LINK = "link"
|
|
34
|
+
MATERIALIZATION = "materialization"
|
|
35
|
+
NAMESPACE = "namespace"
|
|
36
|
+
NODE = "node"
|
|
37
|
+
PARTITION = "partition"
|
|
38
|
+
QUERY = "query"
|
|
39
|
+
TAG = "tag"
|
|
@@ -12,7 +12,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
12
12
|
from sqlalchemy.orm import joinedload
|
|
13
13
|
|
|
14
14
|
from datajunction_server.api.helpers import get_node_namespace
|
|
15
|
-
from datajunction_server.database.history import
|
|
15
|
+
from datajunction_server.database.history import History
|
|
16
16
|
from datajunction_server.database.namespace import NodeNamespace
|
|
17
17
|
from datajunction_server.database.node import Column, Node, NodeRevision
|
|
18
18
|
from datajunction_server.database.user import User
|
|
@@ -21,6 +21,7 @@ from datajunction_server.errors import (
|
|
|
21
21
|
DJDoesNotExistException,
|
|
22
22
|
DJInvalidInputException,
|
|
23
23
|
)
|
|
24
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
24
25
|
from datajunction_server.internal.nodes import (
|
|
25
26
|
get_cube_revision_metadata,
|
|
26
27
|
hard_delete_node,
|
|
@@ -24,7 +24,7 @@ from datajunction_server.construction.build_v2 import compile_node_ast
|
|
|
24
24
|
from datajunction_server.database.attributetype import AttributeType, ColumnAttribute
|
|
25
25
|
from datajunction_server.database.column import Column
|
|
26
26
|
from datajunction_server.database.dimensionlink import DimensionLink
|
|
27
|
-
from datajunction_server.database.history import
|
|
27
|
+
from datajunction_server.database.history import History
|
|
28
28
|
from datajunction_server.database.materialization import Materialization
|
|
29
29
|
from datajunction_server.database.metricmetadata import MetricMetadata
|
|
30
30
|
from datajunction_server.database.node import MissingParent, Node, NodeRevision
|
|
@@ -42,6 +42,7 @@ from datajunction_server.internal.materializations import (
|
|
|
42
42
|
create_new_materialization,
|
|
43
43
|
schedule_materialization_jobs,
|
|
44
44
|
)
|
|
45
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
45
46
|
from datajunction_server.internal.validation import NodeValidator, validate_node_data
|
|
46
47
|
from datajunction_server.models import access
|
|
47
48
|
from datajunction_server.models.attribute import (
|
|
@@ -9,7 +9,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
9
9
|
from sqlalchemy.orm import selectinload
|
|
10
10
|
|
|
11
11
|
from datajunction_server.database.notification_preference import NotificationPreference
|
|
12
|
-
from datajunction_server.
|
|
12
|
+
from datajunction_server.internal.history import EntityType
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
async def get_user_notification_preferences(
|
|
@@ -6,7 +6,8 @@ from typing import TYPE_CHECKING, Any, Dict, Optional
|
|
|
6
6
|
|
|
7
7
|
from pydantic.main import BaseModel
|
|
8
8
|
|
|
9
|
-
from datajunction_server.database.history import
|
|
9
|
+
from datajunction_server.database.history import History
|
|
10
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
10
11
|
from datajunction_server.typing import UTCDatetime
|
|
11
12
|
|
|
12
13
|
if TYPE_CHECKING:
|
|
@@ -4,7 +4,7 @@ from typing import List, Optional
|
|
|
4
4
|
|
|
5
5
|
from pydantic.main import BaseModel
|
|
6
6
|
|
|
7
|
-
from datajunction_server.
|
|
7
|
+
from datajunction_server.internal.history import ActivityType, EntityType
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class NotificationPreferenceModel(BaseModel):
|
|
@@ -104,6 +104,11 @@ class MeasureExtractor:
|
|
|
104
104
|
type=Aggregability.FULL
|
|
105
105
|
if func.quantifier != ast.SetQuantifier.Distinct
|
|
106
106
|
else Aggregability.LIMITED,
|
|
107
|
+
level=(
|
|
108
|
+
[str(arg) for arg in func.args]
|
|
109
|
+
if func.quantifier == ast.SetQuantifier.Distinct
|
|
110
|
+
else None
|
|
111
|
+
),
|
|
107
112
|
),
|
|
108
113
|
),
|
|
109
114
|
]
|
|
@@ -126,6 +131,11 @@ class MeasureExtractor:
|
|
|
126
131
|
type=Aggregability.FULL
|
|
127
132
|
if func.quantifier != ast.SetQuantifier.Distinct
|
|
128
133
|
else Aggregability.LIMITED,
|
|
134
|
+
level=(
|
|
135
|
+
[str(arg) for arg in func.args]
|
|
136
|
+
if func.quantifier == ast.SetQuantifier.Distinct
|
|
137
|
+
else None
|
|
138
|
+
),
|
|
129
139
|
),
|
|
130
140
|
),
|
|
131
141
|
Measure(
|
|
@@ -136,6 +146,11 @@ class MeasureExtractor:
|
|
|
136
146
|
type=Aggregability.FULL
|
|
137
147
|
if func.quantifier != ast.SetQuantifier.Distinct
|
|
138
148
|
else Aggregability.LIMITED,
|
|
149
|
+
level=(
|
|
150
|
+
[str(arg) for arg in func.args]
|
|
151
|
+
if func.quantifier == ast.SetQuantifier.Distinct
|
|
152
|
+
else None
|
|
153
|
+
),
|
|
139
154
|
),
|
|
140
155
|
),
|
|
141
156
|
]
|
|
@@ -846,7 +846,11 @@ class Column(Aliasable, Named, Expression):
|
|
|
846
846
|
return column_namespace, column_name, subscript_name
|
|
847
847
|
|
|
848
848
|
@classmethod
|
|
849
|
-
def from_existing(
|
|
849
|
+
def from_existing(
|
|
850
|
+
cls,
|
|
851
|
+
col: Union[Aliasable, Expression, "Column"],
|
|
852
|
+
table: "TableExpression",
|
|
853
|
+
):
|
|
850
854
|
"""
|
|
851
855
|
Build a selectable column from an existing one
|
|
852
856
|
"""
|
|
@@ -592,6 +592,7 @@ async def test_find_transform(
|
|
|
592
592
|
name
|
|
593
593
|
}
|
|
594
594
|
}
|
|
595
|
+
primaryKey
|
|
595
596
|
}
|
|
596
597
|
}
|
|
597
598
|
}
|
|
@@ -617,6 +618,7 @@ async def test_find_transform(
|
|
|
617
618
|
],
|
|
618
619
|
"extractedMeasures": None,
|
|
619
620
|
"metricMetadata": None,
|
|
621
|
+
"primaryKey": [],
|
|
620
622
|
},
|
|
621
623
|
"name": "default.repair_orders_fact",
|
|
622
624
|
"type": "TRANSFORM",
|