datajunction-server 0.0.1a36__tar.gz → 0.0.1a37.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.1a36 → datajunction_server-0.0.1a37.dev0}/PKG-INFO +1 -1
- datajunction_server-0.0.1a37.dev0/alembic/versions/2023_11_21_1611-d1a8716cf2d2_add_materialization_strategy_and_job_.py +69 -0
- datajunction_server-0.0.1a37.dev0/curl-format.txt +9 -0
- datajunction_server-0.0.1a37.dev0/datajunction_server/__about__.py +4 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/attributes.py +1 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/client.py +4 -5
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/cubes.py +1 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/data.py +2 -5
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/dimensions.py +2 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/health.py +2 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/helpers.py +6 -4
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/main.py +1 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/materializations.py +35 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/metrics.py +18 -22
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/namespaces.py +1 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/nodes.py +1 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/tags.py +2 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/build.py +19 -4
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/dj_query.py +2 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/utils.py +2 -1
- datajunction_server-0.0.1a37.dev0/datajunction_server/enum.py +21 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/errors.py +3 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/materializations.py +10 -38
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/namespaces.py +2 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/nodes.py +17 -4
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/__init__.py +0 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/cube_materialization.py +2 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/materialization_job.py +23 -20
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/attribute.py +3 -3
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/column.py +2 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/cube.py +2 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/engine.py +2 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/history.py +3 -3
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/materialization.py +170 -51
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/measure.py +2 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/node.py +7 -33
- datajunction_server-0.0.1a37.dev0/datajunction_server/models/node_type.py +22 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/partition.py +25 -12
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/query.py +2 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/dag.py +18 -14
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/ast.py +1 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/types.py +3 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/typing.py +4 -3
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/utils.py +3 -2
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/dj.internal.db +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/pyproject.toml +3 -0
- datajunction_server-0.0.1a37.dev0/tester.py +24 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/client_test.py +6 -9
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/cubes_test.py +31 -29
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/data_test.py +50 -7
- datajunction_server-0.0.1a37.dev0/tests/api/materializations_test.py +43 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/metrics_test.py +4 -9
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/nodes_test.py +195 -90
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/sql_test.py +2 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/construction/build_test.py +2 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/construction/fixtures.py +19 -3
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/construction/utils_test.py +7 -7
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/models/node_test.py +1 -1
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/service_clients_test.py +13 -2
- datajunction_server-0.0.1a37.dev0/tests/sql/parsing/queries/__init__.py +0 -0
- datajunction_server-0.0.1a36/datajunction_server/__about__.py +0 -4
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/.coveragerc +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/.env +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/.env.integration +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/.flake8 +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/.gitignore +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/.isort.cfg +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/.pre-commit-config.yaml +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/.pylintrc +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/Dockerfile +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/Makefile +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/README.md +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/README +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/env.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/script.py.mako +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_07_07_2006-4e1ff36c27c6_initial_migration.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_07_11_2337-bd313a10e2a8_add_bound_dimensions_attribute_to_.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_07_14_0428-5c3d0c958c3c_add_node_to_history.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_07_30_1608-4147da2ac841_add_deactivated_to_materialization.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_08_02_0055-ccc77abcf899_add_deactivated_to_namespace.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_08_08_1856-cde75f986a62_user_model.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_08_18_2348-fe8d3dbe512a_store_column_level_lineage.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_09_18_1346-f2e9ef937daf_add_measures.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_09_20_2049-879128f3e778_add_display_name_to_column.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_09_21_0033-b75e5163b09d_add_description_and_display_name_to_.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_10_02_1642-d8fa1e6371a7_add_url_to_availability_state.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_10_08_1438-58e246fba34b_add_partitions_and_backfills.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_10_24_0354-87cf9c00ac00_add_metric_metadata.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/alembic.ini +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/basic.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/github.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/google.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/whoami.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/catalogs.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/djsql.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/engines.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/catalogs.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/engines.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/main.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/history.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/logging.conf +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/measures.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/sql.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/config.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/constants.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/dimensions.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/exceptions.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/basic.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/github.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/google.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/http.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/tokens.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authorization.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/engines.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/__init__.py +0 -0
- /datajunction_server-0.0.1a36/datajunction_server/sql/parsing/backends/__init__.py → /datajunction_server-0.0.1a37.dev0/datajunction_server/materialization/jobs/job_types.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/access.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/base.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/catalog.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/database.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/metric.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/table.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/tag.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/user.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/service_clients.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/functions.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/__init__.py +0 -0
- {datajunction_server-0.0.1a36/datajunction_server/sql/parsing/backends/grammar → datajunction_server-0.0.1a37.dev0/datajunction_server/sql/parsing/backends}/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
- {datajunction_server-0.0.1a36/tests → datajunction_server-0.0.1a37.dev0/datajunction_server/sql/parsing/backends/grammar}/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/superset.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/transpilation.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/default.duckdb +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/dj.copy.db +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/dj.demo.db +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/dj.test.db +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/pdm.lock +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/requirements/docker.txt +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/requirements/test.txt +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/scripts/docs-snippets.js +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/scripts/docs-snippets.sh +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/scripts/generate-openapi.py +0 -0
- {datajunction_server-0.0.1a36/tests/api → datajunction_server-0.0.1a37.dev0/tests}/__init__.py +0 -0
- {datajunction_server-0.0.1a36/tests/api/graphql → datajunction_server-0.0.1a37.dev0/tests/api}/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/attributes_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/catalog_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/dimensions_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/djql_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/engine_test.py +0 -0
- {datajunction_server-0.0.1a36/tests/construction → datajunction_server-0.0.1a37.dev0/tests/api/graphql}/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/graphql/catalog_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/graphql/engine_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/health_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/helpers_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/history_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/measures_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/namespaces_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/node_update_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/routers_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/api/tags_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/conftest.py +0 -0
- {datajunction_server-0.0.1a36/tests/integration → datajunction_server-0.0.1a37.dev0/tests/construction}/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/construction/compile_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/construction/exceptions_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/construction/inference_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/default.duckdb +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/duckdb.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/errors_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/examples.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/fixes_test.py +0 -0
- {datajunction_server-0.0.1a36/tests/models → datajunction_server-0.0.1a37.dev0/tests/integration}/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/integration/basic_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/basic_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/github_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/http_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/token_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/whoami_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/migrations_test.py +0 -0
- {datajunction_server-0.0.1a36/tests/sql → datajunction_server-0.0.1a37.dev0/tests/models}/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/models/catalog_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/models/hash_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/models/measure_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/models/query_test.py +0 -0
- {datajunction_server-0.0.1a36/tests/sql/parsing → datajunction_server-0.0.1a37.dev0/tests/sql}/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/dag_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/functions_test.py +0 -0
- {datajunction_server-0.0.1a36/tests/sql/parsing/backends → datajunction_server-0.0.1a37.dev0/tests/sql/parsing}/__init__.py +0 -0
- {datajunction_server-0.0.1a36/tests/sql/parsing/queries → datajunction_server-0.0.1a37.dev0/tests/sql/parsing/backends}/__init__.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/backends/antlr4_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/backends/types_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/test_ast.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/sql/utils.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/superset_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/transpilation_test.py +0 -0
- {datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/tests/utils_test.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: datajunction-server
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.1a37.dev0
|
|
4
4
|
Summary: DataJunction server library for running to a DataJunction server
|
|
5
5
|
Project-URL: repository, https://github.com/DataJunction/dj
|
|
6
6
|
Author-email: DataJunction Authors <yian.shang@gmail.com>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"""Add materialization strategy and job type
|
|
2
|
+
|
|
3
|
+
Revision ID: d1a8716cf2d2
|
|
4
|
+
Revises: 87cf9c00ac00
|
|
5
|
+
Create Date: 2023-11-21 16:11:01.741721+00:00
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
# pylint: disable=no-member, invalid-name, missing-function-docstring, unused-import, no-name-in-module
|
|
9
|
+
|
|
10
|
+
import sqlalchemy as sa
|
|
11
|
+
import sqlmodel
|
|
12
|
+
|
|
13
|
+
from alembic import op
|
|
14
|
+
|
|
15
|
+
# revision identifiers, used by Alembic.
|
|
16
|
+
revision = "d1a8716cf2d2"
|
|
17
|
+
down_revision = "87cf9c00ac00"
|
|
18
|
+
branch_labels = None
|
|
19
|
+
depends_on = None
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def upgrade():
|
|
23
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
24
|
+
with op.batch_alter_table("materialization", schema=None) as batch_op:
|
|
25
|
+
batch_op.add_column(
|
|
26
|
+
sa.Column(
|
|
27
|
+
"strategy",
|
|
28
|
+
sa.Enum(
|
|
29
|
+
"FULL",
|
|
30
|
+
"SNAPSHOT",
|
|
31
|
+
"INCREMENTAL_TIME",
|
|
32
|
+
"VIEW",
|
|
33
|
+
name="materializationstrategy",
|
|
34
|
+
),
|
|
35
|
+
nullable=True,
|
|
36
|
+
),
|
|
37
|
+
)
|
|
38
|
+
batch_op.drop_constraint("node_revision_engine_uniq", type_="unique")
|
|
39
|
+
batch_op.create_unique_constraint(
|
|
40
|
+
"name_node_revision_uniq",
|
|
41
|
+
["name", "node_revision_id"],
|
|
42
|
+
)
|
|
43
|
+
batch_op.drop_constraint(
|
|
44
|
+
"fk_materialization_engine_id_engine",
|
|
45
|
+
type_="foreignkey",
|
|
46
|
+
)
|
|
47
|
+
batch_op.drop_column("engine_id")
|
|
48
|
+
|
|
49
|
+
# ### end Alembic commands ###
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def downgrade():
|
|
53
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
54
|
+
with op.batch_alter_table("materialization", schema=None) as batch_op:
|
|
55
|
+
batch_op.add_column(sa.Column("engine_id", sa.INTEGER(), nullable=False))
|
|
56
|
+
batch_op.create_foreign_key(
|
|
57
|
+
"fk_materialization_engine_id_engine",
|
|
58
|
+
"engine",
|
|
59
|
+
["engine_id"],
|
|
60
|
+
["id"],
|
|
61
|
+
)
|
|
62
|
+
batch_op.drop_constraint("name_node_revision_uniq", type_="unique")
|
|
63
|
+
batch_op.create_unique_constraint(
|
|
64
|
+
"node_revision_engine_uniq",
|
|
65
|
+
["name", "node_revision_id", "engine_id"],
|
|
66
|
+
)
|
|
67
|
+
batch_op.drop_column("strategy")
|
|
68
|
+
|
|
69
|
+
# ### end Alembic commands ###
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
time_namelookup: %{time_namelookup}s\n
|
|
2
|
+
time_connect: %{time_connect}s\n
|
|
3
|
+
time_appconnect: %{time_appconnect}s\n
|
|
4
|
+
time_pretransfer: %{time_pretransfer}s\n
|
|
5
|
+
time_redirect: %{time_redirect}s\n
|
|
6
|
+
time_starttransfer: %{time_starttransfer}s\n
|
|
7
|
+
----------\n
|
|
8
|
+
time_total: %{time_total}s\n
|
|
9
|
+
|
|
@@ -15,7 +15,7 @@ from datajunction_server.models.attribute import (
|
|
|
15
15
|
AttributeType,
|
|
16
16
|
MutableAttributeTypeFields,
|
|
17
17
|
)
|
|
18
|
-
from datajunction_server.models.
|
|
18
|
+
from datajunction_server.models.node_type import NodeType
|
|
19
19
|
from datajunction_server.utils import get_session, get_settings
|
|
20
20
|
|
|
21
21
|
_logger = logging.getLogger(__name__)
|
{datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/client.py
RENAMED
|
@@ -10,7 +10,8 @@ from sqlmodel import Session
|
|
|
10
10
|
|
|
11
11
|
from datajunction_server.api.helpers import get_node_by_name
|
|
12
12
|
from datajunction_server.internal.access.authentication.http import SecureAPIRouter
|
|
13
|
-
from datajunction_server.models.
|
|
13
|
+
from datajunction_server.models.materialization import MaterializationJobTypeEnum
|
|
14
|
+
from datajunction_server.models.node_type import NodeType
|
|
14
15
|
from datajunction_server.utils import get_session, get_settings
|
|
15
16
|
|
|
16
17
|
_logger = logging.getLogger(__name__)
|
|
@@ -125,10 +126,8 @@ def client_code_for_adding_materialization(
|
|
|
125
126
|
"{node.name}"
|
|
126
127
|
)
|
|
127
128
|
materialization = MaterializationConfig(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
version="{materialization.engine.version}",
|
|
131
|
-
),
|
|
129
|
+
job="{MaterializationJobTypeEnum.find_match(materialization.job).name.lower()}",
|
|
130
|
+
strategy="{materialization.strategy}",
|
|
132
131
|
schedule="{materialization.schedule}",
|
|
133
132
|
config={with_b.strip()},
|
|
134
133
|
)
|
{datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/cubes.py
RENAMED
|
@@ -18,7 +18,7 @@ from datajunction_server.models.cube import (
|
|
|
18
18
|
DimensionValues,
|
|
19
19
|
)
|
|
20
20
|
from datajunction_server.models.metric import TranslatedSQL
|
|
21
|
-
from datajunction_server.models.
|
|
21
|
+
from datajunction_server.models.node_type import NodeType
|
|
22
22
|
from datajunction_server.models.query import QueryCreate
|
|
23
23
|
from datajunction_server.service_clients import QueryServiceClient
|
|
24
24
|
from datajunction_server.utils import (
|
{datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/data.py
RENAMED
|
@@ -31,11 +31,8 @@ from datajunction_server.internal.engines import get_engine
|
|
|
31
31
|
from datajunction_server.models import History, User, access
|
|
32
32
|
from datajunction_server.models.history import ActivityType, EntityType
|
|
33
33
|
from datajunction_server.models.metric import TranslatedSQL
|
|
34
|
-
from datajunction_server.models.node import
|
|
35
|
-
|
|
36
|
-
AvailabilityStateBase,
|
|
37
|
-
NodeType,
|
|
38
|
-
)
|
|
34
|
+
from datajunction_server.models.node import AvailabilityState, AvailabilityStateBase
|
|
35
|
+
from datajunction_server.models.node_type import NodeType
|
|
39
36
|
from datajunction_server.models.query import QueryCreate, QueryWithResults
|
|
40
37
|
from datajunction_server.service_clients import QueryServiceClient
|
|
41
38
|
from datajunction_server.utils import (
|
|
@@ -16,7 +16,8 @@ from datajunction_server.internal.access.authorization import (
|
|
|
16
16
|
validate_access_requests,
|
|
17
17
|
)
|
|
18
18
|
from datajunction_server.models import User, access
|
|
19
|
-
from datajunction_server.models.node import NodeRevisionOutput
|
|
19
|
+
from datajunction_server.models.node import NodeRevisionOutput
|
|
20
|
+
from datajunction_server.models.node_type import NodeType
|
|
20
21
|
from datajunction_server.sql.dag import (
|
|
21
22
|
get_nodes_with_common_dimensions,
|
|
22
23
|
get_nodes_with_dimension,
|
{datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/health.py
RENAMED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Application healthchecks.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
import enum
|
|
6
5
|
from typing import List
|
|
7
6
|
|
|
8
7
|
from fastapi import APIRouter, Depends
|
|
9
8
|
from sqlalchemy import select
|
|
10
9
|
from sqlmodel import Session, SQLModel
|
|
11
10
|
|
|
11
|
+
from datajunction_server.enum import StrEnum
|
|
12
12
|
from datajunction_server.utils import get_session, get_settings
|
|
13
13
|
|
|
14
14
|
settings = get_settings()
|
|
@@ -16,7 +16,7 @@ settings = get_settings()
|
|
|
16
16
|
router = APIRouter(tags=["health"])
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
class HealthcheckStatus(
|
|
19
|
+
class HealthcheckStatus(StrEnum):
|
|
20
20
|
"""
|
|
21
21
|
Possible health statuses.
|
|
22
22
|
"""
|
|
@@ -61,8 +61,8 @@ from datajunction_server.models.node import (
|
|
|
61
61
|
NodeRevision,
|
|
62
62
|
NodeRevisionBase,
|
|
63
63
|
NodeStatus,
|
|
64
|
-
NodeType,
|
|
65
64
|
)
|
|
65
|
+
from datajunction_server.models.node_type import NodeType
|
|
66
66
|
from datajunction_server.models.query import ColumnMetadata, QueryWithResults
|
|
67
67
|
from datajunction_server.service_clients import QueryServiceClient
|
|
68
68
|
from datajunction_server.sql.dag import get_nodes_with_dimension
|
|
@@ -953,9 +953,11 @@ async def query_event_stream( # pylint: disable=too-many-arguments
|
|
|
953
953
|
break
|
|
954
954
|
|
|
955
955
|
# Check the current state of the query
|
|
956
|
-
query_next = query_service_client.get_query(
|
|
957
|
-
|
|
958
|
-
|
|
956
|
+
query_next = query_service_client.get_query( # type: ignore # pragma: no cover
|
|
957
|
+
query_id=query_id,
|
|
958
|
+
)
|
|
959
|
+
if query_next.state in END_JOB_STATES: # pragma: no cover
|
|
960
|
+
_logger.info( # pragma: no cover
|
|
959
961
|
"query end state detected (%s), sending final event to the client",
|
|
960
962
|
query_next.state,
|
|
961
963
|
)
|
|
@@ -21,13 +21,16 @@ from datajunction_server.internal.materializations import (
|
|
|
21
21
|
)
|
|
22
22
|
from datajunction_server.materialization.jobs import MaterializationJob
|
|
23
23
|
from datajunction_server.models import access
|
|
24
|
+
from datajunction_server.models.base import labelize
|
|
24
25
|
from datajunction_server.models.history import ActivityType, EntityType, History
|
|
25
26
|
from datajunction_server.models.materialization import (
|
|
26
27
|
MaterializationConfigInfoUnified,
|
|
27
28
|
MaterializationInfo,
|
|
29
|
+
MaterializationJobTypeEnum,
|
|
30
|
+
MaterializationStrategy,
|
|
28
31
|
UpsertMaterialization,
|
|
29
32
|
)
|
|
30
|
-
from datajunction_server.models.
|
|
33
|
+
from datajunction_server.models.node_type import NodeType
|
|
31
34
|
from datajunction_server.models.partition import Backfill, PartitionBackfill
|
|
32
35
|
from datajunction_server.models.user import User
|
|
33
36
|
from datajunction_server.service_clients import QueryServiceClient
|
|
@@ -44,6 +47,27 @@ settings = get_settings()
|
|
|
44
47
|
router = SecureAPIRouter(tags=["materializations"])
|
|
45
48
|
|
|
46
49
|
|
|
50
|
+
@router.get(
|
|
51
|
+
"/materialization/info",
|
|
52
|
+
status_code=200,
|
|
53
|
+
name="Materialization Jobs Info",
|
|
54
|
+
)
|
|
55
|
+
def materialization_jobs_info() -> JSONResponse:
|
|
56
|
+
"""
|
|
57
|
+
Materialization job types and strategies
|
|
58
|
+
"""
|
|
59
|
+
return JSONResponse(
|
|
60
|
+
status_code=200,
|
|
61
|
+
content={
|
|
62
|
+
"job_types": [value.value.dict() for value in MaterializationJobTypeEnum],
|
|
63
|
+
"strategies": [
|
|
64
|
+
{"name": value, "label": labelize(value)}
|
|
65
|
+
for value in MaterializationStrategy
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
|
|
47
71
|
@router.post(
|
|
48
72
|
"/nodes/{node_name}/materialization/",
|
|
49
73
|
status_code=201,
|
|
@@ -73,6 +97,14 @@ def upsert_materialization( # pylint: disable=too-many-locals
|
|
|
73
97
|
current_revision = node.current
|
|
74
98
|
old_materializations = {mat.name: mat for mat in current_revision.materializations}
|
|
75
99
|
|
|
100
|
+
if data.strategy == MaterializationStrategy.INCREMENTAL_TIME:
|
|
101
|
+
if not node.current.temporal_partition_columns():
|
|
102
|
+
raise DJException( # pragma: no cover
|
|
103
|
+
http_status_code=HTTPStatus.BAD_REQUEST,
|
|
104
|
+
message="Cannot create materialization with strategy "
|
|
105
|
+
f"`{data.strategy}` without specifying a time partition column!",
|
|
106
|
+
)
|
|
107
|
+
|
|
76
108
|
# Create a new materialization
|
|
77
109
|
new_materialization = create_new_materialization(
|
|
78
110
|
session,
|
|
@@ -204,9 +236,10 @@ def list_node_materializations(
|
|
|
204
236
|
node.current.version, # type: ignore
|
|
205
237
|
materialization.name, # type: ignore
|
|
206
238
|
)
|
|
239
|
+
if materialization.strategy != MaterializationStrategy.INCREMENTAL_TIME:
|
|
240
|
+
info.urls = [info.urls[0]]
|
|
207
241
|
materialization = MaterializationConfigInfoUnified(
|
|
208
242
|
**materialization.dict(),
|
|
209
|
-
**{"engine": materialization.engine.dict()},
|
|
210
243
|
**info.dict(),
|
|
211
244
|
backfills=materialization.backfills,
|
|
212
245
|
)
|
|
@@ -6,7 +6,6 @@ from http import HTTPStatus
|
|
|
6
6
|
from typing import List, Optional
|
|
7
7
|
|
|
8
8
|
from fastapi import Depends, HTTPException, Query
|
|
9
|
-
from sqlalchemy.exc import NoResultFound
|
|
10
9
|
from sqlalchemy.sql.operators import is_
|
|
11
10
|
from sqlmodel import Session, select
|
|
12
11
|
|
|
@@ -23,8 +22,8 @@ from datajunction_server.models.node import (
|
|
|
23
22
|
MetricMetadataOptions,
|
|
24
23
|
MetricUnit,
|
|
25
24
|
Node,
|
|
26
|
-
NodeType,
|
|
27
25
|
)
|
|
26
|
+
from datajunction_server.models.node_type import NodeType
|
|
28
27
|
from datajunction_server.sql.dag import get_shared_dimensions
|
|
29
28
|
from datajunction_server.utils import get_current_user, get_session, get_settings
|
|
30
29
|
|
|
@@ -103,31 +102,28 @@ async def get_common_dimensions(
|
|
|
103
102
|
"""
|
|
104
103
|
Return common dimensions for a set of metrics.
|
|
105
104
|
"""
|
|
106
|
-
metric_nodes = []
|
|
107
105
|
errors = []
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
if node.type != NodeType.METRIC:
|
|
117
|
-
errors.append(
|
|
118
|
-
DJError(
|
|
119
|
-
message=f"Not a metric node: {node_name}",
|
|
120
|
-
code=ErrorCode.NODE_TYPE_ERROR,
|
|
121
|
-
),
|
|
122
|
-
)
|
|
123
|
-
metric_nodes.append(node)
|
|
124
|
-
except NoResultFound:
|
|
106
|
+
statement = (
|
|
107
|
+
select(Node)
|
|
108
|
+
.where(Node.name.in_(metric)) # type: ignore # pylint: disable=no-member
|
|
109
|
+
.where(is_(Node.deactivated_at, None))
|
|
110
|
+
)
|
|
111
|
+
metric_nodes = session.exec(statement).all()
|
|
112
|
+
for node in metric_nodes:
|
|
113
|
+
if node.type != NodeType.METRIC:
|
|
125
114
|
errors.append(
|
|
126
115
|
DJError(
|
|
127
|
-
message=f"
|
|
128
|
-
code=ErrorCode.
|
|
116
|
+
message=f"Not a metric node: {node.name}",
|
|
117
|
+
code=ErrorCode.NODE_TYPE_ERROR,
|
|
129
118
|
),
|
|
130
119
|
)
|
|
120
|
+
if not metric_nodes:
|
|
121
|
+
errors.append(
|
|
122
|
+
DJError(
|
|
123
|
+
message=f"Metric nodes not found: {','.join(metric)}",
|
|
124
|
+
code=ErrorCode.UNKNOWN_NODE,
|
|
125
|
+
),
|
|
126
|
+
)
|
|
131
127
|
|
|
132
128
|
if errors:
|
|
133
129
|
raise DJException(errors=errors)
|
|
@@ -37,8 +37,8 @@ from datajunction_server.models.node import (
|
|
|
37
37
|
Node,
|
|
38
38
|
NodeMinimumDetail,
|
|
39
39
|
NodeNamespace,
|
|
40
|
-
NodeType,
|
|
41
40
|
)
|
|
41
|
+
from datajunction_server.models.node_type import NodeType
|
|
42
42
|
from datajunction_server.utils import get_current_user, get_session, get_settings
|
|
43
43
|
|
|
44
44
|
_logger = logging.getLogger(__name__)
|
{datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/nodes.py
RENAMED
|
@@ -74,10 +74,10 @@ from datajunction_server.models.node import (
|
|
|
74
74
|
NodeRevisionBase,
|
|
75
75
|
NodeRevisionOutput,
|
|
76
76
|
NodeStatus,
|
|
77
|
-
NodeType,
|
|
78
77
|
NodeValidation,
|
|
79
78
|
UpdateNode,
|
|
80
79
|
)
|
|
80
|
+
from datajunction_server.models.node_type import NodeType
|
|
81
81
|
from datajunction_server.models.partition import (
|
|
82
82
|
Granularity,
|
|
83
83
|
Partition,
|
{datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/tags.py
RENAMED
|
@@ -12,7 +12,8 @@ from datajunction_server.errors import DJDoesNotExistException, DJException
|
|
|
12
12
|
from datajunction_server.internal.access.authentication.http import SecureAPIRouter
|
|
13
13
|
from datajunction_server.models import History, User
|
|
14
14
|
from datajunction_server.models.history import ActivityType, EntityType
|
|
15
|
-
from datajunction_server.models.node import NodeMinimumDetail
|
|
15
|
+
from datajunction_server.models.node import NodeMinimumDetail
|
|
16
|
+
from datajunction_server.models.node_type import NodeType
|
|
16
17
|
from datajunction_server.models.tag import CreateTag, Tag, TagOutput, UpdateTag
|
|
17
18
|
from datajunction_server.utils import get_current_user, get_session, get_settings
|
|
18
19
|
|
|
@@ -17,7 +17,8 @@ from datajunction_server.models.column import Column, SemanticType
|
|
|
17
17
|
from datajunction_server.models.engine import Dialect
|
|
18
18
|
from datajunction_server.models.materialization import GenericCubeConfig
|
|
19
19
|
from datajunction_server.models.metric import TranslatedSQL
|
|
20
|
-
from datajunction_server.models.node import BuildCriteria, Node, NodeRevision
|
|
20
|
+
from datajunction_server.models.node import BuildCriteria, Node, NodeRevision
|
|
21
|
+
from datajunction_server.models.node_type import NodeType
|
|
21
22
|
from datajunction_server.sql.dag import get_shared_dimensions
|
|
22
23
|
from datajunction_server.sql.parsing.ast import CompileContext
|
|
23
24
|
from datajunction_server.sql.parsing.backends.antlr4 import ast, parse
|
|
@@ -583,7 +584,14 @@ def _get_node_table(
|
|
|
583
584
|
)
|
|
584
585
|
else:
|
|
585
586
|
name = to_namespaced_name(node.name)
|
|
586
|
-
table = ast.Table(
|
|
587
|
+
table = ast.Table(
|
|
588
|
+
name,
|
|
589
|
+
_columns=[
|
|
590
|
+
ast.Column(name=ast.Name(col.name), _type=col.type)
|
|
591
|
+
for col in node.columns
|
|
592
|
+
],
|
|
593
|
+
_dj_node=node,
|
|
594
|
+
)
|
|
587
595
|
elif node.availability and node.availability.is_available(
|
|
588
596
|
criteria=build_criteria,
|
|
589
597
|
): # pragma: no cover
|
|
@@ -596,11 +604,15 @@ def _get_node_table(
|
|
|
596
604
|
else None
|
|
597
605
|
),
|
|
598
606
|
),
|
|
607
|
+
_columns=[
|
|
608
|
+
ast.Column(name=ast.Name(col.name), _type=col.type)
|
|
609
|
+
for col in node.columns
|
|
610
|
+
],
|
|
599
611
|
_dj_node=node,
|
|
600
612
|
)
|
|
601
613
|
if table and as_select: # pragma: no cover
|
|
602
614
|
return ast.Select(
|
|
603
|
-
projection=
|
|
615
|
+
projection=table.columns, # type: ignore
|
|
604
616
|
from_=ast.From(relations=[ast.Relation(table)]),
|
|
605
617
|
)
|
|
606
618
|
return table
|
|
@@ -736,7 +748,10 @@ def rename_columns(built_ast: ast.Query, node: NodeRevision):
|
|
|
736
748
|
projection.append(expression)
|
|
737
749
|
else:
|
|
738
750
|
expression = expression.copy()
|
|
739
|
-
if isinstance(
|
|
751
|
+
if isinstance(
|
|
752
|
+
expression,
|
|
753
|
+
ast.Aliasable,
|
|
754
|
+
) and not isinstance( # pragma: no cover
|
|
740
755
|
expression,
|
|
741
756
|
ast.Wildcard,
|
|
742
757
|
):
|
|
@@ -7,7 +7,8 @@ from sqlmodel import Session
|
|
|
7
7
|
|
|
8
8
|
from datajunction_server.construction.build import build_metric_nodes, build_node
|
|
9
9
|
from datajunction_server.construction.utils import try_get_dj_node
|
|
10
|
-
from datajunction_server.models.node import Node
|
|
10
|
+
from datajunction_server.models.node import Node
|
|
11
|
+
from datajunction_server.models.node_type import NodeType
|
|
11
12
|
from datajunction_server.sql.parsing import ast
|
|
12
13
|
from datajunction_server.sql.parsing.backends.antlr4 import parse
|
|
13
14
|
from datajunction_server.utils import amenable_name
|
|
@@ -8,7 +8,8 @@ from sqlalchemy.orm.exc import NoResultFound
|
|
|
8
8
|
from sqlmodel import Session, select
|
|
9
9
|
|
|
10
10
|
from datajunction_server.errors import DJError, DJErrorException, ErrorCode
|
|
11
|
-
from datajunction_server.models.node import Node, NodeRevision
|
|
11
|
+
from datajunction_server.models.node import Node, NodeRevision
|
|
12
|
+
from datajunction_server.models.node_type import NodeType
|
|
12
13
|
|
|
13
14
|
if TYPE_CHECKING:
|
|
14
15
|
from datajunction_server.sql.parsing.ast import Column, Name
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Backwards-compatible StrEnum for both Python >= and < 3.11
|
|
3
|
+
"""
|
|
4
|
+
import enum
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
if sys.version_info >= (3, 11):
|
|
8
|
+
from enum import ( # noqa # pylint: disable=unused-import # pragma: no cover
|
|
9
|
+
IntEnum,
|
|
10
|
+
StrEnum,
|
|
11
|
+
)
|
|
12
|
+
else:
|
|
13
|
+
|
|
14
|
+
class StrEnum(str, enum.Enum): # pragma: no cover
|
|
15
|
+
"""Backwards compatible StrEnum for Python < 3.11""" # pragma: no cover
|
|
16
|
+
|
|
17
|
+
def __str__(self):
|
|
18
|
+
return str(self.value)
|
|
19
|
+
|
|
20
|
+
class IntEnum(int, enum.Enum): # pragma: no cover
|
|
21
|
+
"""Backwards compatible IntEnum for Python < 3.11""" # pragma: no cover
|
{datajunction_server-0.0.1a36 → datajunction_server-0.0.1a37.dev0}/datajunction_server/errors.py
RENAMED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
Errors and warnings.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from enum import Enum
|
|
6
5
|
from typing import Any, Dict, List, Literal, Optional, TypedDict
|
|
7
6
|
|
|
8
7
|
from sqlmodel import SQLModel
|
|
9
8
|
|
|
9
|
+
from datajunction_server.enum import IntEnum
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
|
|
12
|
+
class ErrorCode(IntEnum):
|
|
12
13
|
"""
|
|
13
14
|
Error codes.
|
|
14
15
|
"""
|
|
@@ -7,16 +7,9 @@ from sqlmodel import Session
|
|
|
7
7
|
|
|
8
8
|
from datajunction_server.construction.build import build_node, get_measures_query
|
|
9
9
|
from datajunction_server.errors import DJException, DJInvalidInputException
|
|
10
|
-
from datajunction_server.
|
|
11
|
-
from datajunction_server.
|
|
12
|
-
DruidCubeMaterializationJob,
|
|
13
|
-
MaterializationJob,
|
|
14
|
-
SparkSqlMaterializationJob,
|
|
15
|
-
TrinoMaterializationJob,
|
|
16
|
-
)
|
|
17
|
-
from datajunction_server.models import Engine, NodeRevision, access
|
|
10
|
+
from datajunction_server.materialization.jobs import MaterializationJob
|
|
11
|
+
from datajunction_server.models import NodeRevision, access
|
|
18
12
|
from datajunction_server.models.column import SemanticType
|
|
19
|
-
from datajunction_server.models.engine import Dialect
|
|
20
13
|
from datajunction_server.models.materialization import (
|
|
21
14
|
DruidCubeConfig,
|
|
22
15
|
GenericMaterializationConfig,
|
|
@@ -27,7 +20,7 @@ from datajunction_server.models.materialization import (
|
|
|
27
20
|
UpsertMaterialization,
|
|
28
21
|
)
|
|
29
22
|
from datajunction_server.models.metric import TranslatedSQL
|
|
30
|
-
from datajunction_server.models.
|
|
23
|
+
from datajunction_server.models.node_type import NodeType
|
|
31
24
|
from datajunction_server.models.query import ColumnMetadata
|
|
32
25
|
from datajunction_server.service_clients import QueryServiceClient
|
|
33
26
|
from datajunction_server.sql.parsing import ast
|
|
@@ -38,24 +31,6 @@ from datajunction_server.utils import SEPARATOR
|
|
|
38
31
|
MAX_COLUMN_NAME_LENGTH = 128
|
|
39
32
|
|
|
40
33
|
|
|
41
|
-
def materialization_job_from_engine(engine: Engine) -> MaterializationJob:
|
|
42
|
-
"""
|
|
43
|
-
Finds the appropriate materialization job based on the choice of engine.
|
|
44
|
-
"""
|
|
45
|
-
engine_to_job_mapping = {
|
|
46
|
-
Dialect.SPARK: SparkSqlMaterializationJob,
|
|
47
|
-
Dialect.TRINO: TrinoMaterializationJob,
|
|
48
|
-
Dialect.DRUID: DruidCubeMaterializationJob,
|
|
49
|
-
None: SparkSqlMaterializationJob,
|
|
50
|
-
}
|
|
51
|
-
if engine.dialect not in engine_to_job_mapping:
|
|
52
|
-
raise DJInvalidInputException( # pragma: no cover
|
|
53
|
-
f"The engine used for materialization ({engine.name}) "
|
|
54
|
-
"must have a dialect configured.",
|
|
55
|
-
)
|
|
56
|
-
return engine_to_job_mapping[engine.dialect] # type: ignore
|
|
57
|
-
|
|
58
|
-
|
|
59
34
|
def rewrite_metrics_expressions(
|
|
60
35
|
session: Session,
|
|
61
36
|
current_revision: NodeRevision,
|
|
@@ -111,7 +86,6 @@ def rewrite_metrics_expressions(
|
|
|
111
86
|
def build_cube_materialization_config(
|
|
112
87
|
session: Session,
|
|
113
88
|
current_revision: NodeRevision,
|
|
114
|
-
engine: Engine,
|
|
115
89
|
upsert: UpsertMaterialization,
|
|
116
90
|
validate_access: access.ValidateAccessFn,
|
|
117
91
|
) -> DruidCubeConfig:
|
|
@@ -157,9 +131,9 @@ def build_cube_materialization_config(
|
|
|
157
131
|
raise DJInvalidInputException( # pragma: no cover
|
|
158
132
|
message=(
|
|
159
133
|
"No change has been made to the materialization config for "
|
|
160
|
-
f"node `{current_revision.name}` and
|
|
134
|
+
f"node `{current_revision.name}` and job `{upsert.job.name}` as"
|
|
161
135
|
" the config does not have valid configuration for "
|
|
162
|
-
f"engine `{
|
|
136
|
+
f"engine `{upsert.job.name}`."
|
|
163
137
|
),
|
|
164
138
|
) from exc
|
|
165
139
|
|
|
@@ -179,6 +153,7 @@ def build_non_cube_materialization_config(
|
|
|
179
153
|
orderby=[],
|
|
180
154
|
)
|
|
181
155
|
generic_config = GenericMaterializationConfig(
|
|
156
|
+
lookback_window=upsert.config.lookback_window,
|
|
182
157
|
query=str(materialization_ast),
|
|
183
158
|
spark=upsert.config.spark if upsert.config.spark else {},
|
|
184
159
|
upstream_tables=[
|
|
@@ -203,7 +178,6 @@ def create_new_materialization(
|
|
|
203
178
|
Create a new materialization based on the input values.
|
|
204
179
|
"""
|
|
205
180
|
generic_config = None
|
|
206
|
-
engine = get_engine(session, upsert.engine.name, upsert.engine.version)
|
|
207
181
|
temporal_partition = current_revision.temporal_partition_columns()
|
|
208
182
|
if current_revision.type in (
|
|
209
183
|
NodeType.DIMENSION,
|
|
@@ -225,22 +199,20 @@ def create_new_materialization(
|
|
|
225
199
|
generic_config = build_cube_materialization_config(
|
|
226
200
|
session,
|
|
227
201
|
current_revision,
|
|
228
|
-
engine,
|
|
229
202
|
upsert,
|
|
230
203
|
validate_access,
|
|
231
204
|
)
|
|
232
205
|
materialization_name = (
|
|
233
|
-
f"{
|
|
234
|
-
if temporal_partition
|
|
235
|
-
else engine.name
|
|
206
|
+
f"{upsert.job.name.lower()}__{upsert.strategy.name.lower()}"
|
|
207
|
+
+ (f"__{temporal_partition[0].name}" if temporal_partition else "")
|
|
236
208
|
)
|
|
237
209
|
return Materialization(
|
|
238
210
|
name=materialization_name,
|
|
239
211
|
node_revision=current_revision,
|
|
240
|
-
engine=engine,
|
|
241
212
|
config=generic_config,
|
|
242
213
|
schedule=upsert.schedule or "@daily",
|
|
243
|
-
|
|
214
|
+
strategy=upsert.strategy,
|
|
215
|
+
job=upsert.job.value.job_class, # type: ignore
|
|
244
216
|
)
|
|
245
217
|
|
|
246
218
|
|
|
@@ -18,7 +18,8 @@ from datajunction_server.errors import (
|
|
|
18
18
|
from datajunction_server.models import History, User
|
|
19
19
|
from datajunction_server.models.cube import CubeRevisionMetadata
|
|
20
20
|
from datajunction_server.models.history import ActivityType, EntityType
|
|
21
|
-
from datajunction_server.models.node import Node, NodeNamespace, NodeRevision
|
|
21
|
+
from datajunction_server.models.node import Node, NodeNamespace, NodeRevision
|
|
22
|
+
from datajunction_server.models.node_type import NodeType
|
|
22
23
|
from datajunction_server.typing import UTCDatetime
|
|
23
24
|
from datajunction_server.utils import SEPARATOR
|
|
24
25
|
|