datajunction-server 0.0.1a83.dev2__tar.gz → 0.0.1a83.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/PKG-INFO +1 -1
- datajunction_server-0.0.1a83.dev3/datajunction_server/__about__.py +4 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/dag.py +6 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/functions.py +618 -0
- datajunction_server-0.0.1a83.dev2/datajunction_server/__about__.py +0 -4
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/.coveragerc +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/.env +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/.env.integration +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/.flake8 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/.gitignore +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/.isort.cfg +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/.pre-commit-config.yaml +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/.pylintrc +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/Dockerfile +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/Makefile +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/README.md +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/README +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/env.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/script.py.mako +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2023_12_20_1829-724445d2b29d_initial_migration.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_01_08_2034-945d44abcd32_add_dimension_links.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_01_11_2032-c74b11566d82_add_column_order.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_01_18_2011-20f060b02772_switch_enum_values.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_01_23_0617-c9cef8864ecb_add_missing_table_attribute_to_source_.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_01_23_1655-a8e22109be24_availability_state_s_valid_through_ts_.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_02_22_0713-d61fb7e48cc3_cascade_deletes_to_dimension_links.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_04_30_1556-de7ec1c82fe0_add_query_requests.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_05_09_1420-9b1227ff17f4_update_backfill_spec.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_05_21_0012-57fc93ef6947_add_query_id_to_queryrequest.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_06_21_1301-640a814db2d8_add_collection_tables.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_07_12_0348-34171c92dd6d_set_user_username_to_be_unique.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_08_18_0036-f3c9b40deb6f_add_create_by_to_nodes_node_revisions_.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_10_24_0015-4d6ab789e456_add_a_map_of_links_to_availability_state.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic/versions/2024_10_26_0340-70904373eab3_add_indexes_on_history_and_node_tables.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3/datajunction_server}/alembic.ini +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/access/authentication/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/access/authentication/basic.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/access/authentication/github.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/access/authentication/google.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/access/authentication/whoami.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/attributes.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/catalogs.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/client.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/collection.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/cubes.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/data.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/dimensions.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/djsql.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/engines.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/main.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/queries/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/queries/catalogs.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/queries/dag.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/queries/engines.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/queries/nodes.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/queries/sql.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/queries/tags.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/resolvers/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/resolvers/nodes.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/resolvers/tags.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/availabilitystate.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/catalog_engine.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/column.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/errors.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/materialization.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/metricmetadata.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/node.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/sql.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/tag.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/scalars/user.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/graphql/utils.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/health.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/helpers.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/history.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/logging.conf +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/main.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/materializations.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/measures.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/metrics.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/namespaces.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/nodes.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/notification.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/sql.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/tags.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/api/users.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/cli.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/config.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/constants.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/construction/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/construction/build.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/construction/build_v2.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/construction/dimensions.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/construction/dj_query.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/construction/exceptions.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/construction/utils.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/attributetype.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/availabilitystate.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/backfill.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/base.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/catalog.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/collection.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/column.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/database.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/dimensionlink.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/engine.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/history.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/materialization.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/measure.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/metricmetadata.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/namespace.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/node.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/partition.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/queryrequest.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/tag.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/database/user.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/enum.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/errors.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/access/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/access/authentication/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/access/authentication/basic.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/access/authentication/github.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/access/authentication/google.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/access/authentication/http.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/access/authentication/tokens.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/access/authorization.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/client.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/engines.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/materializations.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/namespaces.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/nodes.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/templates/client_setup.j2 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/templates/create_cube.j2 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/templates/create_dimension.j2 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/templates/create_metric.j2 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/templates/create_transform.j2 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/templates/link_dimension.j2 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/templates/namespace_mapping.j2 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/templates/register_table.j2 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/templates/set_column_attributes.j2 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/internal/validation.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/materialization/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/materialization/jobs/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/materialization/jobs/cube_materialization.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/materialization/jobs/job_types.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/materialization/jobs/materialization_job.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/access.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/attribute.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/base.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/catalog.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/collection.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/column.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/cube.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/database.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/dimensionlink.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/engine.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/history.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/materialization.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/measure.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/metric.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/node.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/node_type.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/partition.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/query.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/sql.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/table.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/tag.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/models/user.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/naming.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/service_clients.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/decompose.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/ast.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/sql/parsing/types.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/superset.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/transpilation.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/typing.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/datajunction_server/utils.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/init_data/seed.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/pdm.lock +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/pyproject.toml +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/requirements/docker.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/requirements/test.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/scripts/docs-snippets.js +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/scripts/docs-snippets.sh +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/scripts/generate-openapi.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/access_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/attributes_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/catalog_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/client_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/collections_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/cubes_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/data_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/dimension_links_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/dimensions_access_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/dimensions_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/djql_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/engine_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/create_cube.repairs_cube.namespace.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/create_cube.repairs_cube.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/create_dimension.repair_order.namespace.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/create_dimension.repair_order.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/create_metric.num_repair_orders.namespace.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/create_metric.num_repair_orders.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/create_transform.regional_level_agg.namespace.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/create_transform.regional_level_agg.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/dimension_links.repair_orders.namespace.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/dimension_links.repair_orders.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/include_client_setup.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/notebook.create_cube.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/notebook.create_transform.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/notebook.link_dimension.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/notebook.set_attribute.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/client_test/register_table.txt +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_measures_cube.full.druid_spec.json +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_measures_cube.full.partition.druid_spec.json +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_measures_cube.full.partition.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_measures_cube.full.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_measures_cube.incremental.categorical.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_measures_cube.incremental.druid_spec.json +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_measures_cube.incremental.patched.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_measures_cube.incremental.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_metrics_cube.incremental.categorical.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_metrics_cube.incremental.druid_spec.json +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/druid_metrics_cube.incremental.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.full.config.json +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.full.materializations.json +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.full.partition.config.json +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.full.partition.materializations.json +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.full.partition.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.full.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.incremental.additional.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.incremental.categorical.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.incremental.config.json +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.incremental.lookback.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/files/materializations_test/spark_sql.incremental.query.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/graphql/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/graphql/catalog_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/graphql/common_dimensions_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/graphql/engine_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/graphql/find_nodes_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/graphql/measures_sql_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/graphql/tags_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/health_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/helpers_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/history_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/materializations_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/measures_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/metrics_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/namespaces_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/nodes_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/nodes_update_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/notification_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/routers_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/sql_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/sql_v2_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/tags_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/api/users_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/conftest.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/construction/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/construction/build_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/construction/build_v2_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/construction/compile_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/construction/exceptions_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/construction/fixtures.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/construction/inference_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/construction/utils_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/default.duckdb +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/duckdb.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/errors_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/examples.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/integration/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/integration/basic_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/internal/authentication/basic_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/internal/authentication/github_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/internal/authentication/http_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/internal/authentication/token_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/internal/authentication/whoami_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/migrations_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/models/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/models/catalog_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/models/hash_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/models/measure_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/models/node_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/models/query_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/pytest.ini +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/service_clients_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/dag_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/decompose_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/functions_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/backends/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/backends/antlr4_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/backends/types_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/__init__.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/parsing/test_ast.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/sql/utils.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/superset_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/transpilation_test.py +0 -0
- {datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/tests/utils_test.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: datajunction-server
|
|
3
|
-
Version: 0.0.1a83.
|
|
3
|
+
Version: 0.0.1a83.dev3
|
|
4
4
|
Summary: DataJunction server library for running to a DataJunction server
|
|
5
5
|
Project-URL: repository, https://github.com/DataJunction/dj
|
|
6
6
|
Author-email: DataJunction Authors <yian.shang@gmail.com>
|
|
@@ -7,6 +7,7 @@ from typing import Dict, List, Optional, Set, Union
|
|
|
7
7
|
from sqlalchemy import and_, func, join, literal, or_, select
|
|
8
8
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
9
9
|
from sqlalchemy.orm import aliased, contains_eager, joinedload, selectinload
|
|
10
|
+
from sqlalchemy.sql import text
|
|
10
11
|
from sqlalchemy.sql.operators import is_
|
|
11
12
|
|
|
12
13
|
from datajunction_server.database.attributetype import AttributeType, ColumnAttribute
|
|
@@ -377,6 +378,7 @@ async def get_dimensions_dag( # pylint: disable=too-many-locals
|
|
|
377
378
|
# ----
|
|
378
379
|
# If attributes was set to False, we only need to return the dimension nodes
|
|
379
380
|
if not with_attributes:
|
|
381
|
+
await session.execute(text("SET LOCAL work_mem='256MB'"))
|
|
380
382
|
result = await session.execute(
|
|
381
383
|
select(Node)
|
|
382
384
|
.select_from(paths)
|
|
@@ -474,8 +476,12 @@ async def get_dimensions_dag( # pylint: disable=too-many-locals
|
|
|
474
476
|
non_empty_roles = [role for role in roles if role]
|
|
475
477
|
return f"[{'->'.join(non_empty_roles)}]" if non_empty_roles else ""
|
|
476
478
|
|
|
479
|
+
# from sqlalchemy.dialects import postgresql
|
|
480
|
+
# print(final_query.compile(dialect=postgresql.dialect(), compile_kwargs={"literal_binds": True}))
|
|
481
|
+
|
|
477
482
|
# Only include a given column it's an attribute on a dimension node or
|
|
478
483
|
# if the column is tagged with the attribute type 'dimension'
|
|
484
|
+
await session.execute(text("SET LOCAL work_mem='256MB'"))
|
|
479
485
|
dimension_attributes = (await session.execute(final_query)).all()
|
|
480
486
|
return sorted(
|
|
481
487
|
[
|
|
@@ -3245,6 +3245,13 @@ def infer_type(
|
|
|
3245
3245
|
return arg.type
|
|
3246
3246
|
|
|
3247
3247
|
|
|
3248
|
+
@Max.register # type: ignore
|
|
3249
|
+
def infer_type(
|
|
3250
|
+
arg: ct.TimestampType,
|
|
3251
|
+
) -> ct.TimestampType:
|
|
3252
|
+
return arg.type
|
|
3253
|
+
|
|
3254
|
+
|
|
3248
3255
|
class MaxBy(Function):
|
|
3249
3256
|
"""
|
|
3250
3257
|
max_by(val, key) - Returns the value of val corresponding to the maximum value of key.
|
|
@@ -4483,6 +4490,611 @@ class FunctionRegistryDict(dict):
|
|
|
4483
4490
|
) from exc
|
|
4484
4491
|
|
|
4485
4492
|
|
|
4493
|
+
class NflxFunctions(Function):
|
|
4494
|
+
"""
|
|
4495
|
+
All Netflix-specific UDFs to be registered into the DJ backend.
|
|
4496
|
+
"""
|
|
4497
|
+
|
|
4498
|
+
|
|
4499
|
+
class NfDateint(NflxFunctions):
|
|
4500
|
+
"""
|
|
4501
|
+
nf_dateint
|
|
4502
|
+
Returns the date as an integer in the format yyyyMMdd.
|
|
4503
|
+
|
|
4504
|
+
Examples:
|
|
4505
|
+
|
|
4506
|
+
select nf_dateint(20180531) -> 20180531
|
|
4507
|
+
select nf_dateint(‘2018-05-31’) -> 20180531
|
|
4508
|
+
select nf_dateint('20180531') -> 20180531
|
|
4509
|
+
select nf_dateint('2018-31-05', 'yyyy-dd-MM') -> 20180531
|
|
4510
|
+
select nf_dateint(1527806973000) -> 20180531
|
|
4511
|
+
select nf_dateint(1527806973) -> 20180531
|
|
4512
|
+
select nf_dateint(date '2018-05-31') -> 20180531
|
|
4513
|
+
select nf_dateint(timestamp '2018-05-31 12:20:21.010') -> 20180531
|
|
4514
|
+
select nf_dateint('2018-05-31T12:20:21.010') -> 20180531
|
|
4515
|
+
"""
|
|
4516
|
+
|
|
4517
|
+
|
|
4518
|
+
@NfDateint.register # type: ignore
|
|
4519
|
+
def infer_type( # noqa: F811
|
|
4520
|
+
arg: Union[
|
|
4521
|
+
ct.IntegerType,
|
|
4522
|
+
ct.StringType,
|
|
4523
|
+
ct.TimestampType,
|
|
4524
|
+
ct.DateType,
|
|
4525
|
+
ct.BigIntType,
|
|
4526
|
+
ct.IntegerBase,
|
|
4527
|
+
],
|
|
4528
|
+
) -> ct.IntegerType:
|
|
4529
|
+
return ct.IntegerType()
|
|
4530
|
+
|
|
4531
|
+
|
|
4532
|
+
class NfDateintToday(NflxFunctions):
|
|
4533
|
+
"""
|
|
4534
|
+
Returns the dateint value equivalent to the current_date.
|
|
4535
|
+
|
|
4536
|
+
Examples:
|
|
4537
|
+
|
|
4538
|
+
select nf_dateint_today() -> 20180531 // Returns the UTC date
|
|
4539
|
+
"""
|
|
4540
|
+
|
|
4541
|
+
|
|
4542
|
+
@NfDateintToday.register # type: ignore
|
|
4543
|
+
def infer_type() -> ct.IntegerType: # noqa: F811
|
|
4544
|
+
return ct.IntegerType()
|
|
4545
|
+
|
|
4546
|
+
|
|
4547
|
+
class NfDatestr(NflxFunctions):
|
|
4548
|
+
"""
|
|
4549
|
+
Returns the date as a string in the format ‘yyyy-MM-dd’
|
|
4550
|
+
|
|
4551
|
+
Examples:
|
|
4552
|
+
|
|
4553
|
+
select nf_datestr(20180531) -> 2018-05-31
|
|
4554
|
+
select nf_datestr(‘2018-05-31’) -> 2018-05-31
|
|
4555
|
+
select nf_datestr('20180531') -> 2018-05-31
|
|
4556
|
+
select nf_datestr('2018-31-05', 'yyyy-dd-MM') -> 2018-05-31
|
|
4557
|
+
select nf_datestr(1527806973000) -> 2018-05-31
|
|
4558
|
+
select nf_datestr(1527806973) -> 2018-05-31
|
|
4559
|
+
select nf_datestr(date '2018-05-31') -> 2018-05-31
|
|
4560
|
+
select nf_datestr(timestamp '2018-05-31 12:20:21.010') -> 2018-05-31
|
|
4561
|
+
select nf_datestr('2018-05-31T12:20:21.010') -> 2018-05-31
|
|
4562
|
+
"""
|
|
4563
|
+
|
|
4564
|
+
|
|
4565
|
+
@NfDatestr.register # type: ignore
|
|
4566
|
+
def infer_type( # noqa: F811
|
|
4567
|
+
arg: Union[ct.IntegerType, ct.StringType, ct.TimestampType, ct.DateType],
|
|
4568
|
+
) -> ct.StringType:
|
|
4569
|
+
return ct.StringType()
|
|
4570
|
+
|
|
4571
|
+
|
|
4572
|
+
class NfDatestrToday(NflxFunctions):
|
|
4573
|
+
"""
|
|
4574
|
+
Returns the datestr value in the format 'yyyy-MM-dd' at the start of the query session
|
|
4575
|
+
"""
|
|
4576
|
+
|
|
4577
|
+
|
|
4578
|
+
@NfDatestrToday.register # type: ignore
|
|
4579
|
+
def infer_type() -> ct.StringType: # noqa: F811
|
|
4580
|
+
return ct.StringType()
|
|
4581
|
+
|
|
4582
|
+
|
|
4583
|
+
class NfFromUnixtime(NflxFunctions):
|
|
4584
|
+
"""
|
|
4585
|
+
Converts epoch seconds or milliseconds to timestamp. There's an optional second
|
|
4586
|
+
parameter to specify the timestamp format or the reference date in epoch.
|
|
4587
|
+
|
|
4588
|
+
select nf_from_unixtime(1527745543) -> 2018-05-31 05:45:43.0
|
|
4589
|
+
select nf_from_unixtime(1527745543000) -> 2018-05-31 05:45:43.0
|
|
4590
|
+
select nf_from_unixtime(1527745543, 'yyyy/MM/dd') -> 2018/05/31
|
|
4591
|
+
"""
|
|
4592
|
+
|
|
4593
|
+
|
|
4594
|
+
@NfDatestrToday.register # type: ignore
|
|
4595
|
+
def infer_type( # noqa: F811
|
|
4596
|
+
arg: ct.IntegerType,
|
|
4597
|
+
format: Optional[ct.StringType] = None,
|
|
4598
|
+
) -> ct.TimestampType:
|
|
4599
|
+
return ct.TimestampType()
|
|
4600
|
+
|
|
4601
|
+
|
|
4602
|
+
class NfFromUnixtimeMs(NflxFunctions):
|
|
4603
|
+
"""
|
|
4604
|
+
Converts epoch milliseconds to timestamp. There's an optional second parameter to specify
|
|
4605
|
+
the timestamp format
|
|
4606
|
+
"""
|
|
4607
|
+
|
|
4608
|
+
|
|
4609
|
+
@NfFromUnixtime.register # type: ignore
|
|
4610
|
+
def infer_type( # noqa: F811
|
|
4611
|
+
arg: ct.IntegerType,
|
|
4612
|
+
format: Optional[ct.StringType] = None,
|
|
4613
|
+
) -> ct.TimestampType:
|
|
4614
|
+
return ct.TimestampType()
|
|
4615
|
+
|
|
4616
|
+
|
|
4617
|
+
class NfFromUnixtimeTz(NflxFunctions):
|
|
4618
|
+
"""
|
|
4619
|
+
Converts epoch seconds or milliseconds to timestamp in a given timezone.
|
|
4620
|
+
|
|
4621
|
+
select nf_from_unixtime_tz(1527745543, 'GMT+05:00') -> 2018-05-31 10:45:43.0
|
|
4622
|
+
select nf_from_unixtime_tz(1527745543000, 'GMT+05:00') -> 2018-05-31 10:45:43.0
|
|
4623
|
+
select nf_from_unixtime_tz(1527745543, 'Europe/Paris') -> 2018-05-31 07:45:43.0
|
|
4624
|
+
"""
|
|
4625
|
+
|
|
4626
|
+
|
|
4627
|
+
@NfFromUnixtimeTz.register # type: ignore
|
|
4628
|
+
def infer_type( # noqa: F811
|
|
4629
|
+
arg: ct.IntegerType,
|
|
4630
|
+
timezone: ct.StringType,
|
|
4631
|
+
) -> ct.TimestampType: # noqa: F811
|
|
4632
|
+
return ct.TimestampType()
|
|
4633
|
+
|
|
4634
|
+
|
|
4635
|
+
class NfFromUnixtimeMsTz(NflxFunctions):
|
|
4636
|
+
"""
|
|
4637
|
+
Converts epoch milliseconds to timestamp in a given timezone.
|
|
4638
|
+
"""
|
|
4639
|
+
|
|
4640
|
+
|
|
4641
|
+
@NfFromUnixtimeMsTz.register # type: ignore
|
|
4642
|
+
def infer_type( # noqa: F811
|
|
4643
|
+
arg: ct.IntegerType,
|
|
4644
|
+
timezone: ct.StringType,
|
|
4645
|
+
) -> ct.TimestampType: # noqa: F811
|
|
4646
|
+
return ct.TimestampType()
|
|
4647
|
+
|
|
4648
|
+
|
|
4649
|
+
class NfFromUnixtimeTzFormat(NflxFunctions):
|
|
4650
|
+
"""
|
|
4651
|
+
Converts epoch seconds or milliseconds to timestamp in a given timezone and
|
|
4652
|
+
returns the output in the specified format
|
|
4653
|
+
|
|
4654
|
+
select nf_from_unixtime_tz_format(1527745543, 'Europe/Paris',
|
|
4655
|
+
'yyyy-MM-dd HH:mm:ss.SSSZZ') -> 2018-05-31 07:45
|
|
4656
|
+
"""
|
|
4657
|
+
|
|
4658
|
+
|
|
4659
|
+
@NfFromUnixtimeTzFormat.register # type: ignore
|
|
4660
|
+
def infer_type( # noqa: F811
|
|
4661
|
+
arg: ct.IntegerType,
|
|
4662
|
+
timezone: ct.StringType,
|
|
4663
|
+
format: ct.StringType,
|
|
4664
|
+
) -> ct.TimestampType:
|
|
4665
|
+
return ct.TimestampType()
|
|
4666
|
+
|
|
4667
|
+
|
|
4668
|
+
class NfFromUnixtimeMsTzFormat(NflxFunctions):
|
|
4669
|
+
"""
|
|
4670
|
+
Converts epoch milliseconds to timestamp in a given timezone in a given timezone
|
|
4671
|
+
and returns the output in the specified format.
|
|
4672
|
+
"""
|
|
4673
|
+
|
|
4674
|
+
|
|
4675
|
+
@NfFromUnixtimeMsTzFormat.register # type: ignore
|
|
4676
|
+
def infer_type( # noqa: F811
|
|
4677
|
+
arg: ct.IntegerType,
|
|
4678
|
+
timezone: ct.StringType,
|
|
4679
|
+
format: ct.StringType,
|
|
4680
|
+
) -> ct.TimestampType:
|
|
4681
|
+
return ct.TimestampType()
|
|
4682
|
+
|
|
4683
|
+
|
|
4684
|
+
class NfToUnixtime(NflxFunctions):
|
|
4685
|
+
"""
|
|
4686
|
+
Converts the input to epoch seconds.
|
|
4687
|
+
|
|
4688
|
+
select nf_to_unixtime(20180531) -> 1527724800
|
|
4689
|
+
select nf_to_unixtime('2018-05-31') -> 1527724800
|
|
4690
|
+
select nf_to_unixtime('20180531') -> 1527724800
|
|
4691
|
+
select nf_to_unixtime('2018-31-05', 'yyyy-dd-MM') -> 1527724800
|
|
4692
|
+
select nf_to_unixtime(date '2018-05-31') -> 1527724800
|
|
4693
|
+
select nf_to_unixtime(timestamp '2018-05-31 12:20:21.010') -> 1527769221
|
|
4694
|
+
select nf_to_unixtime('2018-05-31T12:20:21.010') -> 2018-05-31
|
|
4695
|
+
select nf_to_unixtime(nf_from_unixtime_tz(1527745543, 'GMT+05:00')) -> 1527745543
|
|
4696
|
+
"""
|
|
4697
|
+
|
|
4698
|
+
|
|
4699
|
+
@NfToUnixtime.register # type: ignore
|
|
4700
|
+
def infer_type( # noqa: F811
|
|
4701
|
+
arg: Union[
|
|
4702
|
+
ct.IntegerType,
|
|
4703
|
+
ct.LongType,
|
|
4704
|
+
ct.StringType,
|
|
4705
|
+
ct.DateType,
|
|
4706
|
+
ct.TimestampType,
|
|
4707
|
+
],
|
|
4708
|
+
) -> ct.IntegerType:
|
|
4709
|
+
return ct.IntegerType()
|
|
4710
|
+
|
|
4711
|
+
|
|
4712
|
+
class NfToUnixtimeMs(NflxFunctions):
|
|
4713
|
+
"""
|
|
4714
|
+
Converts the input to epoch milliseconds.
|
|
4715
|
+
"""
|
|
4716
|
+
|
|
4717
|
+
|
|
4718
|
+
@NfToUnixtimeMs.register # type: ignore
|
|
4719
|
+
def infer_type( # noqa: F811
|
|
4720
|
+
arg: Union[
|
|
4721
|
+
ct.IntegerType,
|
|
4722
|
+
ct.LongType,
|
|
4723
|
+
ct.StringType,
|
|
4724
|
+
ct.DateType,
|
|
4725
|
+
ct.TimestampType,
|
|
4726
|
+
],
|
|
4727
|
+
) -> ct.IntegerType:
|
|
4728
|
+
return ct.IntegerType()
|
|
4729
|
+
|
|
4730
|
+
|
|
4731
|
+
class NfToUnixtimeNow(NflxFunctions):
|
|
4732
|
+
"""
|
|
4733
|
+
Returns epoch seconds at the start of the session.
|
|
4734
|
+
"""
|
|
4735
|
+
|
|
4736
|
+
|
|
4737
|
+
@NfToUnixtimeNow.register # type: ignore
|
|
4738
|
+
def infer_type() -> ct.IntegerType: # noqa: F811
|
|
4739
|
+
return ct.IntegerType()
|
|
4740
|
+
|
|
4741
|
+
|
|
4742
|
+
class NfToUnixtimeNowMs(NflxFunctions):
|
|
4743
|
+
"""
|
|
4744
|
+
Returns epoch milliseconds at the start of the session.
|
|
4745
|
+
"""
|
|
4746
|
+
|
|
4747
|
+
|
|
4748
|
+
@NfToUnixtimeNowMs.register # type: ignore
|
|
4749
|
+
def infer_type() -> ct.IntegerType: # noqa: F811
|
|
4750
|
+
return ct.IntegerType()
|
|
4751
|
+
|
|
4752
|
+
|
|
4753
|
+
class NfDate(NflxFunctions):
|
|
4754
|
+
"""
|
|
4755
|
+
Converts the input to Spark date type in the format 'yyyy-MM-dd'
|
|
4756
|
+
|
|
4757
|
+
Examples:
|
|
4758
|
+
|
|
4759
|
+
select nf_date(20180531) -> 2018-05-31
|
|
4760
|
+
select nf_date(‘2018-05-31’) -> 2018-05-31
|
|
4761
|
+
select nf_date('20180531') -> 2018-05-31
|
|
4762
|
+
select nf_date('2018-31-05', 'yyyy-dd-MM') -> 2018-05-31
|
|
4763
|
+
select nf_date(1527806973000) -> 2018-05-31
|
|
4764
|
+
select nf_date(date '2018-05-31') -> 2018-05-31
|
|
4765
|
+
select nf_date(timestamp '2018-05-31 12:20:21.010') -> 2018-05-31
|
|
4766
|
+
select nf_date('2018-05-31T12:20:21.010') -> 2018-05-31
|
|
4767
|
+
"""
|
|
4768
|
+
|
|
4769
|
+
|
|
4770
|
+
@NfDate.register # type: ignore
|
|
4771
|
+
def infer_type( # noqa: F811
|
|
4772
|
+
arg: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
4773
|
+
) -> ct.DateType:
|
|
4774
|
+
return ct.DateType()
|
|
4775
|
+
|
|
4776
|
+
|
|
4777
|
+
class NfDateToday(NflxFunctions):
|
|
4778
|
+
"""
|
|
4779
|
+
Returns the date value at the start of the query session
|
|
4780
|
+
"""
|
|
4781
|
+
|
|
4782
|
+
|
|
4783
|
+
@NfDateToday.register # type: ignore
|
|
4784
|
+
def infer_type() -> ct.DateType: # noqa: F811
|
|
4785
|
+
return ct.DateType()
|
|
4786
|
+
|
|
4787
|
+
|
|
4788
|
+
class NfTimestamp(NflxFunctions):
|
|
4789
|
+
"""
|
|
4790
|
+
Converts the input to Spark timestamp type in the format 'yyyy-MM-dd HH:mm:ss.SSSSSS'
|
|
4791
|
+
|
|
4792
|
+
Examples:
|
|
4793
|
+
|
|
4794
|
+
select nf_timestamp(20180531) -> 2018-05-31 00:00:00.000
|
|
4795
|
+
select nf_timestamp(‘2018-05-31’) -> 2018-05-31 00:00:00.000
|
|
4796
|
+
select nf_timestamp('20180531') -> 2018-05-31 00:00:00.000
|
|
4797
|
+
select nf_timestamp('2018-31-05 12:20:21.010', 'yyyy-dd-MM HH:mm:ss.SSS') -> 2018-05-31 12:20:21.01
|
|
4798
|
+
select nf_timestamp(1527806973012) -> 2018-05-31 22:49:33.012
|
|
4799
|
+
select nf_timestamp(date '2018-05-31') -> 2018-05-31 00:00:00.000
|
|
4800
|
+
select nf_timestamp(timestamp '2018-05-31 12:20:21') -> 2018-05-31 12:20:21.000
|
|
4801
|
+
select nf_timestamp('2018-05-31T12:20:21.010+05:00') -> 2018-05-31 07:20:21.010
|
|
4802
|
+
"""
|
|
4803
|
+
|
|
4804
|
+
|
|
4805
|
+
@NfTimestamp.register # type: ignore
|
|
4806
|
+
def infer_type( # noqa: F811
|
|
4807
|
+
arg: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
4808
|
+
) -> ct.TimestampType:
|
|
4809
|
+
return ct.TimestampType()
|
|
4810
|
+
|
|
4811
|
+
|
|
4812
|
+
class NfTimestampNow(NflxFunctions):
|
|
4813
|
+
"""
|
|
4814
|
+
Returns the timestamp value at the start of the query session
|
|
4815
|
+
"""
|
|
4816
|
+
|
|
4817
|
+
|
|
4818
|
+
@NfTimestampNow.register # type: ignore
|
|
4819
|
+
def infer_type() -> ct.TimestampType: # noqa: F811
|
|
4820
|
+
return ct.TimestampType()
|
|
4821
|
+
|
|
4822
|
+
|
|
4823
|
+
class NfDateadd(NflxFunctions):
|
|
4824
|
+
"""
|
|
4825
|
+
The result returned is of the same type as input.
|
|
4826
|
+
|
|
4827
|
+
Supported units for dates: Year, month, day, week, quarter Supported units for timestamps:
|
|
4828
|
+
Year, month, day, week, quarter, hour, minute, second, millisecond
|
|
4829
|
+
|
|
4830
|
+
Examples:
|
|
4831
|
+
|
|
4832
|
+
select nf_dateadd(20180531, 2) -> 20180602 as an integer
|
|
4833
|
+
select nf_dateadd(‘2018-05-31’, -10) -> 2018-05-21
|
|
4834
|
+
select nf_dateadd('20180531', 2) -> 20180602 as a string
|
|
4835
|
+
select nf_dateadd('20180531', '-3M') -> 20180228
|
|
4836
|
+
select nf_dateadd('quarter', 1, timestamp '2018-05-31 12:20:21') -> 2018-08-31 12:20:21.000
|
|
4837
|
+
"""
|
|
4838
|
+
|
|
4839
|
+
|
|
4840
|
+
@NfDateadd.register # type: ignore
|
|
4841
|
+
def infer_type( # noqa: F811
|
|
4842
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType],
|
|
4843
|
+
num_days: ct.IntegerBase,
|
|
4844
|
+
) -> Union[ct.IntegerType, ct.StringType, ct.DateType]:
|
|
4845
|
+
return input.type
|
|
4846
|
+
|
|
4847
|
+
|
|
4848
|
+
@NfDateadd.register # type: ignore
|
|
4849
|
+
def infer_type( # noqa: F811
|
|
4850
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType],
|
|
4851
|
+
offset: ct.StringType,
|
|
4852
|
+
) -> Union[ct.IntegerType, ct.StringType, ct.DateType]:
|
|
4853
|
+
return input.type
|
|
4854
|
+
|
|
4855
|
+
|
|
4856
|
+
@NfDateadd.register # type: ignore
|
|
4857
|
+
def infer_type( # noqa: F811
|
|
4858
|
+
unit: ct.StringType,
|
|
4859
|
+
value: ct.IntegerType,
|
|
4860
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType],
|
|
4861
|
+
) -> Union[ct.IntegerType, ct.StringType, ct.DateType]:
|
|
4862
|
+
return input.type
|
|
4863
|
+
|
|
4864
|
+
|
|
4865
|
+
class NfDatediff(NflxFunctions):
|
|
4866
|
+
"""
|
|
4867
|
+
nf_datediff(input1, input2): Returns the number of days (input2-input1).
|
|
4868
|
+
Input1 and Input2 must be of the same type.
|
|
4869
|
+
nf_datediff(unit, input1, input2): Returns the difference between the input
|
|
4870
|
+
dates in terms of the specified unit
|
|
4871
|
+
Supported intervals: year, quarter,month, week, day, hour, minute, second, millisecond
|
|
4872
|
+
|
|
4873
|
+
Examples:
|
|
4874
|
+
|
|
4875
|
+
select nf_datediff(20180531, 20180604); -> 4
|
|
4876
|
+
select nf_datediff('2018-06-04', '2018-05-31');-> -4
|
|
4877
|
+
select nf_datediff('month', '20180201', '20180531') -> 3
|
|
4878
|
+
select nf_datediff('second', timestamp '2018-05-31 12:20:21',
|
|
4879
|
+
timestamp '2018-05-31 02:20:21') -> -36000
|
|
4880
|
+
"""
|
|
4881
|
+
|
|
4882
|
+
|
|
4883
|
+
@NfDatediff.register # type: ignore
|
|
4884
|
+
def infer_type( # noqa: F811
|
|
4885
|
+
input1: Union[ct.IntegerType, ct.StringType, ct.DateType],
|
|
4886
|
+
input2: Union[ct.IntegerType, ct.StringType, ct.DateType],
|
|
4887
|
+
) -> ct.IntegerType:
|
|
4888
|
+
return ct.IntegerType()
|
|
4889
|
+
|
|
4890
|
+
|
|
4891
|
+
@NfDatediff.register # type: ignore
|
|
4892
|
+
def infer_type( # noqa: F811
|
|
4893
|
+
unit: ct.StringType,
|
|
4894
|
+
input1: Union[ct.IntegerType, ct.StringType, ct.DateType],
|
|
4895
|
+
input2: Union[ct.IntegerType, ct.StringType, ct.DateType],
|
|
4896
|
+
) -> ct.IntegerType:
|
|
4897
|
+
return ct.IntegerType()
|
|
4898
|
+
|
|
4899
|
+
|
|
4900
|
+
class NfDatetrunc(NflxFunctions):
|
|
4901
|
+
"""
|
|
4902
|
+
nf_datetrunc(unit, input): Returns the input truncated to the given unit
|
|
4903
|
+
|
|
4904
|
+
Examples:
|
|
4905
|
+
|
|
4906
|
+
Given input as timestamp 2018-05-31 12:20:21.321
|
|
4907
|
+
unit truncated value
|
|
4908
|
+
second 2018-05-31 12:20:21.000
|
|
4909
|
+
minute 2018-05-31 12:20:00.000
|
|
4910
|
+
hour 2018-05-31 12:00:00.000
|
|
4911
|
+
day 2018-05-31 00:00:00.000
|
|
4912
|
+
week 2018-05-28 00:00:00.000
|
|
4913
|
+
month 2018-05-01 00:00:00.000
|
|
4914
|
+
quarter 2018-04-01 00:00:00.000
|
|
4915
|
+
year 2018-01-01 00:00:00.000
|
|
4916
|
+
|
|
4917
|
+
select nf_datetrunc('month', 20180531) -> 20180501
|
|
4918
|
+
"""
|
|
4919
|
+
|
|
4920
|
+
|
|
4921
|
+
@NfDatetrunc.register # type: ignore
|
|
4922
|
+
def infer_type( # noqa: F811
|
|
4923
|
+
unit: ct.StringType,
|
|
4924
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
4925
|
+
) -> ct.ColumnType:
|
|
4926
|
+
return input.type
|
|
4927
|
+
|
|
4928
|
+
|
|
4929
|
+
class NfYear(NflxFunctions):
|
|
4930
|
+
"""
|
|
4931
|
+
Extracts year as an integer from the input
|
|
4932
|
+
|
|
4933
|
+
Examples:
|
|
4934
|
+
|
|
4935
|
+
select nf_year(20180531) -> 2018
|
|
4936
|
+
select nf_year(‘2018-05-31’) -> 2018
|
|
4937
|
+
select nf_year('20180531') -> 2018
|
|
4938
|
+
select nf_year(date '2018-05-31') -> 2018
|
|
4939
|
+
select nf_year(timestamp '2018-05-31 12:20:21.010') -> 2018
|
|
4940
|
+
select nf_year('2018-05-31T12:20:21.010') -> 2018
|
|
4941
|
+
"""
|
|
4942
|
+
|
|
4943
|
+
|
|
4944
|
+
@NfYear.register # type: ignore
|
|
4945
|
+
def infer_type( # noqa: F811
|
|
4946
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
4947
|
+
) -> ct.IntegerType:
|
|
4948
|
+
return ct.IntegerType()
|
|
4949
|
+
|
|
4950
|
+
|
|
4951
|
+
class NfMonth(NflxFunctions):
|
|
4952
|
+
"""
|
|
4953
|
+
Extracts month of year as an integer from the input (1 to 12)
|
|
4954
|
+
"""
|
|
4955
|
+
|
|
4956
|
+
|
|
4957
|
+
@NfMonth.register # type: ignore
|
|
4958
|
+
def infer_type( # noqa: F811
|
|
4959
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
4960
|
+
) -> ct.IntegerType:
|
|
4961
|
+
return ct.IntegerType()
|
|
4962
|
+
|
|
4963
|
+
|
|
4964
|
+
class NfDay(NflxFunctions):
|
|
4965
|
+
"""
|
|
4966
|
+
Extracts day of month as an integer from the input (1 to 31)
|
|
4967
|
+
"""
|
|
4968
|
+
|
|
4969
|
+
|
|
4970
|
+
@NfDay.register # type: ignore
|
|
4971
|
+
def infer_type( # noqa: F811
|
|
4972
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
4973
|
+
) -> ct.IntegerType:
|
|
4974
|
+
return ct.IntegerType()
|
|
4975
|
+
|
|
4976
|
+
|
|
4977
|
+
class NfWeek(NflxFunctions):
|
|
4978
|
+
"""
|
|
4979
|
+
Extracts week of year as an integer from the input (1 to 53).
|
|
4980
|
+
The value is incremented every Monday.
|
|
4981
|
+
"""
|
|
4982
|
+
|
|
4983
|
+
|
|
4984
|
+
@NfWeek.register # type: ignore
|
|
4985
|
+
def infer_type( # noqa: F811
|
|
4986
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
4987
|
+
) -> ct.IntegerType:
|
|
4988
|
+
return ct.IntegerType()
|
|
4989
|
+
|
|
4990
|
+
|
|
4991
|
+
class NfDayOfWeek(NflxFunctions):
|
|
4992
|
+
"""
|
|
4993
|
+
Returns ISO day of week.
|
|
4994
|
+
"""
|
|
4995
|
+
|
|
4996
|
+
|
|
4997
|
+
@NfDayOfWeek.register # type: ignore
|
|
4998
|
+
def infer_type( # noqa: F811
|
|
4999
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
5000
|
+
) -> ct.IntegerType:
|
|
5001
|
+
return ct.IntegerType()
|
|
5002
|
+
|
|
5003
|
+
|
|
5004
|
+
class NfQuarter(NflxFunctions):
|
|
5005
|
+
"""
|
|
5006
|
+
Extracts quarter.
|
|
5007
|
+
"""
|
|
5008
|
+
|
|
5009
|
+
|
|
5010
|
+
@NfQuarter.register # type: ignore
|
|
5011
|
+
def infer_type( # noqa: F811
|
|
5012
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
5013
|
+
) -> ct.IntegerType:
|
|
5014
|
+
return ct.IntegerType()
|
|
5015
|
+
|
|
5016
|
+
|
|
5017
|
+
class NfHour(NflxFunctions):
|
|
5018
|
+
"""
|
|
5019
|
+
Extracts hour.
|
|
5020
|
+
"""
|
|
5021
|
+
|
|
5022
|
+
|
|
5023
|
+
@NfHour.register # type: ignore
|
|
5024
|
+
def infer_type( # noqa: F811
|
|
5025
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
5026
|
+
) -> ct.IntegerType:
|
|
5027
|
+
return ct.IntegerType()
|
|
5028
|
+
|
|
5029
|
+
|
|
5030
|
+
class NfMinute(NflxFunctions):
|
|
5031
|
+
"""
|
|
5032
|
+
Extracts minute.
|
|
5033
|
+
"""
|
|
5034
|
+
|
|
5035
|
+
|
|
5036
|
+
@NfMinute.register # type: ignore
|
|
5037
|
+
def infer_type( # noqa: F811
|
|
5038
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
5039
|
+
) -> ct.IntegerType:
|
|
5040
|
+
return ct.IntegerType()
|
|
5041
|
+
|
|
5042
|
+
|
|
5043
|
+
class NfSecond(NflxFunctions):
|
|
5044
|
+
"""
|
|
5045
|
+
Extracts week of year as an integer from the input (1 to 53).
|
|
5046
|
+
The value is incremented every Monday.
|
|
5047
|
+
"""
|
|
5048
|
+
|
|
5049
|
+
|
|
5050
|
+
@NfSecond.register # type: ignore
|
|
5051
|
+
def infer_type( # noqa: F811
|
|
5052
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
5053
|
+
) -> ct.IntegerType:
|
|
5054
|
+
return ct.IntegerType()
|
|
5055
|
+
|
|
5056
|
+
|
|
5057
|
+
class NfMillisecond(NflxFunctions):
|
|
5058
|
+
"""
|
|
5059
|
+
Extracts week of year as an integer from the input (1 to 53).
|
|
5060
|
+
The value is incremented every Monday.
|
|
5061
|
+
"""
|
|
5062
|
+
|
|
5063
|
+
|
|
5064
|
+
@NfMillisecond.register # type: ignore
|
|
5065
|
+
def infer_type( # noqa: F811
|
|
5066
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
5067
|
+
) -> ct.IntegerType:
|
|
5068
|
+
return ct.IntegerType()
|
|
5069
|
+
|
|
5070
|
+
|
|
5071
|
+
class NfDateformat(NflxFunctions):
|
|
5072
|
+
"""
|
|
5073
|
+
Returns a string representing the input in the given Joda format
|
|
5074
|
+
|
|
5075
|
+
select nf_dateformat(20180531, 'yyyyddMM') -> 20183105
|
|
5076
|
+
select nf_dateformat(timestamp '2018-05-31 12:20:21.010', 'yyyy MMM dd HH:mm:ss.SSS zzz')
|
|
5077
|
+
-> 2018 May 31 12:20:21.010 UTC
|
|
5078
|
+
select nf_dateformat('2018-05-31T12:20:21.010', 'yyyy MMM dd HH:mm:ss.SSS zzz')
|
|
5079
|
+
-> 2018 May 31 12:20:21.010 UTC
|
|
5080
|
+
"""
|
|
5081
|
+
|
|
5082
|
+
|
|
5083
|
+
@NfDateformat.register # type: ignore
|
|
5084
|
+
def infer_type( # noqa: F811
|
|
5085
|
+
input: Union[ct.IntegerType, ct.StringType, ct.DateType, ct.TimestampType],
|
|
5086
|
+
format: ct.StringType,
|
|
5087
|
+
) -> ct.StringType:
|
|
5088
|
+
return ct.StringType()
|
|
5089
|
+
|
|
5090
|
+
|
|
5091
|
+
def register_nflx_udfs():
|
|
5092
|
+
for cls in NflxFunctions.__subclasses__():
|
|
5093
|
+
snake_cased = re.sub(r"(?<!^)(?=[A-Z])", "_", cls.__name__)
|
|
5094
|
+
function_registry[cls.__name__.upper()] = cls
|
|
5095
|
+
function_registry[snake_cased.upper()] = cls
|
|
5096
|
+
|
|
5097
|
+
|
|
4486
5098
|
function_registry = FunctionRegistryDict()
|
|
4487
5099
|
for cls in Function.__subclasses__():
|
|
4488
5100
|
snake_cased = re.sub(r"(?<!^)(?=[A-Z])", "_", cls.__name__)
|
|
@@ -4495,3 +5107,9 @@ for cls in TableFunction.__subclasses__():
|
|
|
4495
5107
|
snake_cased = re.sub(r"(?<!^)(?=[A-Z])", "_", cls.__name__)
|
|
4496
5108
|
table_function_registry[cls.__name__.upper()] = cls
|
|
4497
5109
|
table_function_registry[snake_cased.upper()] = cls
|
|
5110
|
+
|
|
5111
|
+
|
|
5112
|
+
for cls in NflxFunctions.__subclasses__():
|
|
5113
|
+
snake_cased = re.sub(r"(?<!^)(?=[A-Z])", "_", cls.__name__)
|
|
5114
|
+
function_registry[cls.__name__.upper()] = cls
|
|
5115
|
+
function_registry[snake_cased.upper()] = cls
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datajunction_server-0.0.1a83.dev2 → datajunction_server-0.0.1a83.dev3}/.pre-commit-config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|