datajunction-server 0.0.1a64.dev1__tar.gz → 0.0.1a64.dev3__tar.gz

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