datajunction-server 0.0.1a48__tar.gz → 0.0.1a49.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/PKG-INFO +2 -2
  2. datajunction_server-0.0.1a49.dev0/alembic/versions/2024_05_21_0012-57fc93ef6947_add_query_id_to_queryrequest.py +28 -0
  3. datajunction_server-0.0.1a49.dev0/datajunction_server/__about__.py +4 -0
  4. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/data.py +102 -4
  5. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/helpers.py +3 -15
  6. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/nodes.py +14 -4
  7. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/sql.py +122 -41
  8. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/construction/build.py +76 -85
  9. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/node.py +16 -3
  10. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/queryrequest.py +4 -1
  11. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/materialization/jobs/cube_materialization.py +0 -2
  12. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/types.py +2 -2
  13. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/data_test.py +64 -1
  14. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/nodes_test.py +44 -7
  15. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/sql_test.py +10 -12
  16. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/examples.py +10 -0
  17. datajunction_server-0.0.1a48/datajunction_server/__about__.py +0 -4
  18. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/.coveragerc +0 -0
  19. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/.env +0 -0
  20. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/.env.integration +0 -0
  21. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/.flake8 +0 -0
  22. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/.gitignore +0 -0
  23. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/.isort.cfg +0 -0
  24. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/.pre-commit-config.yaml +0 -0
  25. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/.pylintrc +0 -0
  26. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/Dockerfile +0 -0
  27. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/Makefile +0 -0
  28. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/README.md +0 -0
  29. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/README +0 -0
  30. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/env.py +0 -0
  31. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/script.py.mako +0 -0
  32. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/versions/2023_12_20_1829-724445d2b29d_initial_migration.py +0 -0
  33. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/versions/2024_01_08_2034-945d44abcd32_add_dimension_links.py +0 -0
  34. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/versions/2024_01_11_2032-c74b11566d82_add_column_order.py +0 -0
  35. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/versions/2024_01_18_2011-20f060b02772_switch_enum_values.py +0 -0
  36. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/versions/2024_01_23_0617-c9cef8864ecb_add_missing_table_attribute_to_source_.py +0 -0
  37. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/versions/2024_01_23_1655-a8e22109be24_availability_state_s_valid_through_ts_.py +0 -0
  38. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/versions/2024_02_22_0713-d61fb7e48cc3_cascade_deletes_to_dimension_links.py +0 -0
  39. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/versions/2024_04_30_1556-de7ec1c82fe0_add_query_requests.py +0 -0
  40. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic/versions/2024_05_09_1420-9b1227ff17f4_update_backfill_spec.py +0 -0
  41. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/alembic.ini +0 -0
  42. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/__init__.py +0 -0
  43. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/__init__.py +0 -0
  44. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/access/authentication/__init__.py +0 -0
  45. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/access/authentication/basic.py +0 -0
  46. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/access/authentication/github.py +0 -0
  47. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/access/authentication/google.py +0 -0
  48. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/access/authentication/whoami.py +0 -0
  49. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/attributes.py +0 -0
  50. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/catalogs.py +0 -0
  51. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/client.py +0 -0
  52. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/cubes.py +0 -0
  53. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/dimensions.py +0 -0
  54. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/djsql.py +0 -0
  55. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/engines.py +0 -0
  56. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/graphql/__init__.py +0 -0
  57. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/graphql/catalogs.py +0 -0
  58. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/graphql/engines.py +0 -0
  59. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/graphql/main.py +0 -0
  60. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/health.py +0 -0
  61. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/history.py +0 -0
  62. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/logging.conf +0 -0
  63. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/main.py +0 -0
  64. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/materializations.py +0 -0
  65. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/measures.py +0 -0
  66. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/metrics.py +0 -0
  67. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/namespaces.py +0 -0
  68. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/api/tags.py +0 -0
  69. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/config.py +0 -0
  70. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/constants.py +0 -0
  71. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/construction/__init__.py +0 -0
  72. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/construction/dimensions.py +0 -0
  73. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/construction/dj_query.py +0 -0
  74. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/construction/exceptions.py +0 -0
  75. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/construction/utils.py +0 -0
  76. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/__init__.py +0 -0
  77. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/attributetype.py +0 -0
  78. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/availabilitystate.py +0 -0
  79. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/backfill.py +0 -0
  80. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/base.py +0 -0
  81. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/catalog.py +0 -0
  82. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/column.py +0 -0
  83. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/database.py +0 -0
  84. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/dimensionlink.py +0 -0
  85. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/engine.py +0 -0
  86. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/history.py +0 -0
  87. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/materialization.py +0 -0
  88. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/measure.py +0 -0
  89. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/metricmetadata.py +0 -0
  90. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/namespace.py +0 -0
  91. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/partition.py +0 -0
  92. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/tag.py +0 -0
  93. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/database/user.py +0 -0
  94. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/enum.py +0 -0
  95. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/errors.py +0 -0
  96. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/__init__.py +0 -0
  97. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/access/__init__.py +0 -0
  98. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/access/authentication/__init__.py +0 -0
  99. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/access/authentication/basic.py +0 -0
  100. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/access/authentication/github.py +0 -0
  101. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/access/authentication/google.py +0 -0
  102. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/access/authentication/http.py +0 -0
  103. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/access/authentication/tokens.py +0 -0
  104. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/access/authorization.py +0 -0
  105. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/engines.py +0 -0
  106. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/materializations.py +0 -0
  107. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/namespaces.py +0 -0
  108. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/nodes.py +0 -0
  109. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/internal/validation.py +0 -0
  110. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/materialization/__init__.py +0 -0
  111. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/materialization/jobs/__init__.py +0 -0
  112. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/materialization/jobs/job_types.py +0 -0
  113. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/materialization/jobs/materialization_job.py +0 -0
  114. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/__init__.py +0 -0
  115. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/access.py +0 -0
  116. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/attribute.py +0 -0
  117. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/base.py +0 -0
  118. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/catalog.py +0 -0
  119. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/column.py +0 -0
  120. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/cube.py +0 -0
  121. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/database.py +0 -0
  122. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/dimensionlink.py +0 -0
  123. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/engine.py +0 -0
  124. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/history.py +0 -0
  125. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/materialization.py +0 -0
  126. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/measure.py +0 -0
  127. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/metric.py +0 -0
  128. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/node.py +0 -0
  129. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/node_type.py +0 -0
  130. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/partition.py +0 -0
  131. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/query.py +0 -0
  132. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/table.py +0 -0
  133. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/tag.py +0 -0
  134. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/models/user.py +0 -0
  135. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/naming.py +0 -0
  136. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/service_clients.py +0 -0
  137. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/__init__.py +0 -0
  138. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/dag.py +0 -0
  139. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/functions.py +0 -0
  140. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/__init__.py +0 -0
  141. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/ast.py +0 -0
  142. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/__init__.py +0 -0
  143. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
  144. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
  145. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
  146. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
  147. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/__init__.py +0 -0
  148. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
  149. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
  150. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
  151. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
  152. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
  153. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
  154. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
  155. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
  156. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/superset.py +0 -0
  157. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/transpilation.py +0 -0
  158. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/typing.py +0 -0
  159. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/datajunction_server/utils.py +0 -0
  160. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/pdm.lock +0 -0
  161. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/pyproject.toml +0 -0
  162. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/requirements/docker.txt +0 -0
  163. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/requirements/test.txt +0 -0
  164. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/scripts/docs-snippets.js +0 -0
  165. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/scripts/docs-snippets.sh +0 -0
  166. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/scripts/generate-openapi.py +0 -0
  167. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/__init__.py +0 -0
  168. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/__init__.py +0 -0
  169. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/attributes_test.py +0 -0
  170. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/catalog_test.py +0 -0
  171. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/client_test.py +0 -0
  172. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/cubes_test.py +0 -0
  173. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/dimension_links_test.py +0 -0
  174. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/dimensions_test.py +0 -0
  175. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/djql_test.py +0 -0
  176. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/engine_test.py +0 -0
  177. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.druid_spec.json +0 -0
  178. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.partition.druid_spec.json +0 -0
  179. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.partition.query.sql +0 -0
  180. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.query.sql +0 -0
  181. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.categorical.query.sql +0 -0
  182. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.druid_spec.json +0 -0
  183. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.patched.query.sql +0 -0
  184. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.query.sql +0 -0
  185. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.categorical.query.sql +0 -0
  186. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.druid_spec.json +0 -0
  187. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.query.sql +0 -0
  188. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.full.config.json +0 -0
  189. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.full.materializations.json +0 -0
  190. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.config.json +0 -0
  191. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.materializations.json +0 -0
  192. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.query.sql +0 -0
  193. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.full.query.sql +0 -0
  194. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.incremental.additional.query.sql +0 -0
  195. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.incremental.categorical.query.sql +0 -0
  196. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.incremental.config.json +0 -0
  197. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.incremental.lookback.query.sql +0 -0
  198. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/files/materializations_test/spark_sql.incremental.query.sql +0 -0
  199. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/graphql/__init__.py +0 -0
  200. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/graphql/catalog_test.py +0 -0
  201. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/graphql/engine_test.py +0 -0
  202. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/health_test.py +0 -0
  203. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/helpers_test.py +0 -0
  204. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/history_test.py +0 -0
  205. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/materializations_test.py +0 -0
  206. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/measures_test.py +0 -0
  207. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/metrics_test.py +0 -0
  208. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/namespaces_test.py +0 -0
  209. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/node_update_test.py +0 -0
  210. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/routers_test.py +0 -0
  211. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/api/tags_test.py +0 -0
  212. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/conftest.py +0 -0
  213. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/construction/__init__.py +0 -0
  214. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/construction/build_test.py +0 -0
  215. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/construction/compile_test.py +0 -0
  216. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/construction/exceptions_test.py +0 -0
  217. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/construction/fixtures.py +0 -0
  218. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/construction/inference_test.py +0 -0
  219. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/construction/utils_test.py +0 -0
  220. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/default.duckdb +0 -0
  221. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/duckdb.sql +0 -0
  222. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/errors_test.py +0 -0
  223. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/fixes_test.py +0 -0
  224. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/integration/__init__.py +0 -0
  225. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/integration/basic_test.py +0 -0
  226. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/internal/authentication/basic_test.py +0 -0
  227. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/internal/authentication/github_test.py +0 -0
  228. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/internal/authentication/http_test.py +0 -0
  229. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/internal/authentication/token_test.py +0 -0
  230. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/internal/authentication/whoami_test.py +0 -0
  231. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/migrations_test.py +0 -0
  232. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/models/__init__.py +0 -0
  233. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/models/catalog_test.py +0 -0
  234. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/models/hash_test.py +0 -0
  235. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/models/measure_test.py +0 -0
  236. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/models/node_test.py +0 -0
  237. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/models/query_test.py +0 -0
  238. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/pytest.ini +0 -0
  239. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/service_clients_test.py +0 -0
  240. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/__init__.py +0 -0
  241. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/dag_test.py +0 -0
  242. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/functions_test.py +0 -0
  243. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/__init__.py +0 -0
  244. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/backends/__init__.py +0 -0
  245. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/backends/antlr4_test.py +0 -0
  246. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/backends/types_test.py +0 -0
  247. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/__init__.py +0 -0
  248. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
  249. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
  250. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
  251. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
  252. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
  253. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
  254. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
  255. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
  256. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
  257. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
  258. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
  259. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
  260. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
  261. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
  262. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
  263. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
  264. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
  265. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
  266. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
  267. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
  268. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
  269. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
  270. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
  271. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
  272. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
  273. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
  274. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
  275. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
  276. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
  277. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
  278. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
  279. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
  280. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
  281. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
  282. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
  283. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
  284. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
  285. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
  286. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
  287. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
  288. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
  289. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
  290. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
  291. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
  292. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
  293. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
  294. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
  295. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
  296. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
  297. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
  298. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
  299. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
  300. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
  301. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
  302. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
  303. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
  304. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
  305. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
  306. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
  307. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
  308. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
  309. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
  310. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
  311. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
  312. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
  313. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
  314. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
  315. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
  316. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
  317. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
  318. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
  319. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
  320. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
  321. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
  322. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
  323. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
  324. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
  325. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
  326. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
  327. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
  328. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
  329. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
  330. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
  331. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
  332. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
  333. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
  334. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
  335. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
  336. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
  337. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
  338. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
  339. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
  340. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
  341. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
  342. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
  343. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
  344. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
  345. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
  346. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
  347. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
  348. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
  349. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
  350. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
  351. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
  352. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
  353. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
  354. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
  355. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
  356. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
  357. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
  358. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
  359. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
  360. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
  361. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
  362. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
  363. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
  364. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
  365. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
  366. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
  367. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
  368. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
  369. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
  370. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
  371. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
  372. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
  373. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
  374. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
  375. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
  376. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
  377. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
  378. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
  379. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
  380. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
  381. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
  382. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
  383. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
  384. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
  385. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
  386. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
  387. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
  388. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
  389. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
  390. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
  391. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
  392. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
  393. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
  394. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
  395. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
  396. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
  397. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
  398. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
  399. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
  400. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
  401. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
  402. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
  403. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
  404. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
  405. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
  406. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
  407. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
  408. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
  409. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
  410. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
  411. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
  412. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
  413. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
  414. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
  415. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
  416. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
  417. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
  418. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
  419. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
  420. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
  421. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
  422. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
  423. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
  424. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
  425. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
  426. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
  427. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
  428. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
  429. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
  430. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
  431. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
  432. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
  433. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
  434. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
  435. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
  436. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
  437. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
  438. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
  439. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
  440. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
  441. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
  442. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
  443. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
  444. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
  445. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
  446. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
  447. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/parsing/test_ast.py +0 -0
  448. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/sql/utils.py +0 -0
  449. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/superset_test.py +0 -0
  450. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/transpilation_test.py +0 -0
  451. {datajunction_server-0.0.1a48 → datajunction_server-0.0.1a49.dev0}/tests/utils_test.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.1
2
2
  Name: datajunction-server
3
- Version: 0.0.1a48
3
+ Version: 0.0.1a49.dev0
4
4
  Summary: DataJunction server library for running to a DataJunction server
5
5
  Project-URL: repository, https://github.com/DataJunction/dj
6
6
  Author-email: DataJunction Authors <yian.shang@gmail.com>
@@ -0,0 +1,28 @@
1
+ """Add query_id to queryrequest
2
+
3
+ Revision ID: 57fc93ef6947
4
+ Revises: 9b1227ff17f4
5
+ Create Date: 2024-05-21 00:12:11.303914+00:00
6
+
7
+ """
8
+ # pylint: disable=no-member, invalid-name, missing-function-docstring, unused-import, no-name-in-module
9
+
10
+ import sqlalchemy as sa
11
+
12
+ from alembic import op
13
+
14
+ # revision identifiers, used by Alembic.
15
+ revision = "57fc93ef6947"
16
+ down_revision = "9b1227ff17f4"
17
+ branch_labels = None
18
+ depends_on = None
19
+
20
+
21
+ def upgrade():
22
+ with op.batch_alter_table("queryrequest", schema=None) as batch_op:
23
+ batch_op.add_column(sa.Column("query_id", sa.String(), nullable=True))
24
+
25
+
26
+ def downgrade():
27
+ with op.batch_alter_table("queryrequest", schema=None) as batch_op:
28
+ batch_op.drop_column("query_id")
@@ -0,0 +1,4 @@
1
+ """
2
+ Version for Hatch
3
+ """
4
+ __version__ = "0.0.1a49.dev0"
@@ -5,7 +5,7 @@ Data related APIs.
5
5
  from http import HTTPStatus
6
6
  from typing import Annotated, Dict, List, Optional
7
7
 
8
- from fastapi import Depends, Header, Query, Request
8
+ from fastapi import BackgroundTasks, Depends, Header, Query, Request
9
9
  from fastapi.responses import JSONResponse
10
10
  from sqlalchemy.ext.asyncio import AsyncSession
11
11
  from sqlalchemy.orm import joinedload, selectinload
@@ -15,7 +15,7 @@ from datajunction_server.api.helpers import (
15
15
  build_sql_for_multiple_metrics,
16
16
  query_event_stream,
17
17
  )
18
- from datajunction_server.api.sql import get_sql
18
+ from datajunction_server.api.sql import get_node_sql
19
19
  from datajunction_server.database.availabilitystate import AvailabilityState
20
20
  from datajunction_server.database.history import ActivityType, EntityType, History
21
21
  from datajunction_server.database.node import Node, NodeRevision
@@ -181,11 +181,12 @@ async def get_data( # pylint: disable=too-many-locals
181
181
  validate_access: access.ValidateAccessFn = Depends( # pylint: disable=W0621
182
182
  validate_access,
183
183
  ),
184
+ background_tasks: BackgroundTasks,
184
185
  ) -> QueryWithResults:
185
186
  """
186
187
  Gets data for a node
187
188
  """
188
- query = await get_sql(
189
+ query, query_request = await get_node_sql(
189
190
  node_name,
190
191
  dimensions,
191
192
  filters,
@@ -196,6 +197,7 @@ async def get_data( # pylint: disable=too-many-locals
196
197
  engine_version=engine_version,
197
198
  current_user=current_user,
198
199
  validate_access=validate_access,
200
+ background_tasks=background_tasks,
199
201
  )
200
202
  node = await Node.get_by_name(session, node_name, raise_if_not_exists=True)
201
203
  available_engines = node.current.catalog.engines # type: ignore
@@ -221,12 +223,108 @@ async def get_data( # pylint: disable=too-many-locals
221
223
  query_create,
222
224
  headers={"Cache-Control": cache_control},
223
225
  )
226
+ query_request.query_id = result.id
227
+
224
228
  # Inject column info if there are results
225
229
  if result.results.__root__: # pragma: no cover
226
- result.results.__root__[0].columns = query.columns
230
+ result.results.__root__[0].columns = query.columns # type: ignore
227
231
  return result
228
232
 
229
233
 
234
+ @router.get("/stream/{node_name}", response_model=QueryWithResults)
235
+ async def get_data_stream_for_node( # pylint: disable=R0914, R0913
236
+ node_name: str,
237
+ *,
238
+ dimensions: List[str] = Query([], description="Dimensional attributes to group by"),
239
+ filters: List[str] = Query([], description="Filters on dimensional attributes"),
240
+ orderby: List[str] = Query([], description="Expression to order by"),
241
+ limit: Optional[int] = Query(
242
+ None,
243
+ description="Number of rows to limit the data retrieved to",
244
+ ),
245
+ cache_control: Annotated[str, Header()] = "",
246
+ session: AsyncSession = Depends(get_session),
247
+ request: Request,
248
+ query_service_client: QueryServiceClient = Depends(get_query_service_client),
249
+ engine_name: Optional[str] = None,
250
+ engine_version: Optional[str] = None,
251
+ current_user: Optional[User] = Depends(get_current_user),
252
+ validate_access: access.ValidateAccessFn = Depends( # pylint: disable=W0621
253
+ validate_access,
254
+ ),
255
+ background_tasks: BackgroundTasks,
256
+ ) -> QueryWithResults:
257
+ """
258
+ Return data for a node using server side events
259
+ """
260
+ query, query_request = await get_node_sql(
261
+ node_name,
262
+ dimensions,
263
+ filters,
264
+ orderby,
265
+ limit,
266
+ session=session,
267
+ engine_name=engine_name,
268
+ engine_version=engine_version,
269
+ current_user=current_user,
270
+ validate_access=validate_access,
271
+ background_tasks=background_tasks,
272
+ )
273
+ if query_request and query_request.query_id:
274
+ return EventSourceResponse(
275
+ query_event_stream(
276
+ query=QueryWithResults(
277
+ id=query_request.query_id,
278
+ submitted_query=query_request.query,
279
+ results=[],
280
+ errors=[],
281
+ ),
282
+ query_service_client=query_service_client,
283
+ columns=query.columns, # type: ignore
284
+ request=request,
285
+ ),
286
+ )
287
+
288
+ node = await Node.get_by_name(session, node_name, raise_if_not_exists=True)
289
+ available_engines = node.current.catalog.engines # type: ignore
290
+ engine = (
291
+ await get_engine(session, engine_name, engine_version) # type: ignore
292
+ if engine_name
293
+ else available_engines[0]
294
+ )
295
+ if engine not in available_engines:
296
+ raise DJInvalidInputException( # pragma: no cover
297
+ f"The selected engine is not available for the node {node_name}. "
298
+ f"Available engines include: {', '.join(engine.name for engine in available_engines)}",
299
+ )
300
+
301
+ query_create = QueryCreate(
302
+ engine_name=engine.name,
303
+ catalog_name=node.current.catalog.name, # type: ignore
304
+ engine_version=engine.version,
305
+ submitted_query=query.sql,
306
+ async_=True,
307
+ )
308
+ initial_query_info = query_service_client.submit_query(
309
+ query_create,
310
+ headers={"Cache-Control": cache_control or "max-age=86400"},
311
+ )
312
+
313
+ # Save the external query id reference
314
+ query_request.query_id = initial_query_info.id
315
+ session.add(query_request)
316
+ await session.commit()
317
+
318
+ return EventSourceResponse(
319
+ query_event_stream(
320
+ query=initial_query_info,
321
+ query_service_client=query_service_client,
322
+ columns=query.columns, # type: ignore
323
+ request=request,
324
+ ),
325
+ )
326
+
327
+
230
328
  @router.get(
231
329
  "/data/query/{query_id}",
232
330
  response_model=QueryWithResults,
@@ -21,6 +21,7 @@ from datajunction_server.construction.build import (
21
21
  build_materialized_cube_node,
22
22
  build_metric_nodes,
23
23
  build_node,
24
+ get_default_criteria,
24
25
  rename_columns,
25
26
  validate_shared_dimensions,
26
27
  )
@@ -50,10 +51,9 @@ from datajunction_server.errors import (
50
51
  from datajunction_server.internal.engines import get_engine
51
52
  from datajunction_server.models import access
52
53
  from datajunction_server.models.attribute import RESERVED_ATTRIBUTE_NAMESPACE
53
- from datajunction_server.models.engine import Dialect
54
54
  from datajunction_server.models.history import status_change_history
55
55
  from datajunction_server.models.metric import TranslatedSQL
56
- from datajunction_server.models.node import BuildCriteria, NodeStatus
56
+ from datajunction_server.models.node import NodeStatus
57
57
  from datajunction_server.models.node_type import NodeType
58
58
  from datajunction_server.models.query import ColumnMetadata, QueryWithResults
59
59
  from datajunction_server.naming import LOOKUP_CHARS
@@ -204,19 +204,7 @@ async def get_query( # pylint: disable=too-many-arguments
204
204
  Get a query for a metric, dimensions, and filters
205
205
  """
206
206
  node = await Node.get_by_name(session, node_name)
207
-
208
- # Builds the node for the engine's dialect if one is set or defaults to Spark
209
- if (
210
- not engine
211
- and node.current # type: ignore
212
- and node.current.catalog # type: ignore
213
- and node.current.catalog.engines # type: ignore
214
- ):
215
- engine = node.current.catalog.engines[0] # type: ignore
216
- build_criteria = BuildCriteria(
217
- dialect=(engine.dialect if engine and engine.dialect else Dialect.SPARK),
218
- )
219
-
207
+ build_criteria = get_default_criteria(node.current, engine) # type: ignore
220
208
  query_ast = await build_node(
221
209
  session=session,
222
210
  node=node.current, # type: ignore
@@ -26,6 +26,7 @@ from datajunction_server.api.helpers import (
26
26
  from datajunction_server.api.namespaces import create_node_namespace
27
27
  from datajunction_server.api.tags import get_tags_by_name
28
28
  from datajunction_server.constants import NODE_LIST_MAX
29
+ from datajunction_server.database import DimensionLink
29
30
  from datajunction_server.database.attributetype import ColumnAttribute
30
31
  from datajunction_server.database.column import Column
31
32
  from datajunction_server.database.history import ActivityType, EntityType, History
@@ -103,7 +104,7 @@ from datajunction_server.sql.dag import (
103
104
  get_downstream_nodes,
104
105
  get_upstream_nodes,
105
106
  )
106
- from datajunction_server.sql.parsing.backends.antlr4 import parse
107
+ from datajunction_server.sql.parsing.backends.antlr4 import parse, parse_rule
107
108
  from datajunction_server.utils import (
108
109
  Version,
109
110
  get_current_user,
@@ -967,11 +968,10 @@ async def refresh_source_node(
967
968
  if new_columns:
968
969
  # check if any of the columns have changed (only continue with update if they have)
969
970
  column_changes = {col.identifier() for col in current_revision.columns} != {
970
- col.identifier() for col in new_columns
971
+ (col.name, str(parse_rule(str(col.type), "dataType")))
972
+ for col in new_columns
971
973
  }
972
974
 
973
- # FIXME: there is a bug with type translation (bigint != long) - fix it. # pylint: disable=fixme
974
-
975
975
  # if the columns haven't changed and the node has a table, we can skip the update
976
976
  if not column_changes:
977
977
  if not source_node.missing_table: # type: ignore
@@ -998,6 +998,16 @@ async def refresh_source_node(
998
998
  schema_=current_revision.schema_,
999
999
  table=current_revision.table,
1000
1000
  status=current_revision.status,
1001
+ dimension_links=[
1002
+ DimensionLink(
1003
+ dimension_id=link.dimension_id,
1004
+ join_sql=link.join_sql,
1005
+ join_type=link.join_type,
1006
+ join_cardinality=link.join_cardinality,
1007
+ materialization_conf=link.materialization_conf,
1008
+ )
1009
+ for link in current_revision.dimension_links
1010
+ ],
1001
1011
  )
1002
1012
  new_revision.version = str(old_version.next_major_version())
1003
1013
  new_revision.columns = [
@@ -3,9 +3,9 @@
3
3
  SQL related APIs.
4
4
  """
5
5
  import logging
6
- from typing import List, Optional
6
+ from typing import List, Optional, Tuple
7
7
 
8
- from fastapi import Depends, Query
8
+ from fastapi import BackgroundTasks, Depends, Query
9
9
  from sqlalchemy.ext.asyncio import AsyncSession
10
10
 
11
11
  from datajunction_server.api.helpers import (
@@ -15,12 +15,14 @@ from datajunction_server.api.helpers import (
15
15
  validate_orderby,
16
16
  )
17
17
  from datajunction_server.construction.build import get_measures_query
18
+ from datajunction_server.database import Engine
18
19
  from datajunction_server.database.queryrequest import QueryBuildType, QueryRequest
19
20
  from datajunction_server.database.user import User
20
21
  from datajunction_server.internal.access.authentication.http import SecureAPIRouter
21
22
  from datajunction_server.internal.access.authorization import validate_access
22
23
  from datajunction_server.internal.engines import get_engine
23
24
  from datajunction_server.models import access
25
+ from datajunction_server.models.access import AccessControlStore
24
26
  from datajunction_server.models.metric import TranslatedSQL
25
27
  from datajunction_server.models.user import UserOutput
26
28
  from datajunction_server.utils import get_current_user, get_session, get_settings
@@ -108,12 +110,52 @@ async def get_measures_sql_for_cube(
108
110
  return measures_query
109
111
 
110
112
 
111
- @router.get(
112
- "/sql/{node_name}/",
113
- response_model=TranslatedSQL,
114
- name="Get SQL For A Node",
115
- )
116
- async def get_sql( # pylint: disable=too-many-locals
113
+ async def build_and_save_node_sql( # pylint: disable=too-many-locals
114
+ node_name: str,
115
+ dimensions: List[str] = Query([]),
116
+ filters: List[str] = Query([]),
117
+ orderby: List[str] = Query([]),
118
+ limit: Optional[int] = None,
119
+ *,
120
+ session: AsyncSession = Depends(get_session),
121
+ engine: Engine,
122
+ access_control: AccessControlStore,
123
+ ) -> QueryRequest:
124
+ """
125
+ Build node SQL and save it to query requests
126
+ """
127
+ query_ast = await get_query(
128
+ session=session,
129
+ node_name=node_name,
130
+ dimensions=dimensions,
131
+ filters=filters,
132
+ orderby=orderby,
133
+ limit=limit,
134
+ engine=engine,
135
+ access_control=access_control,
136
+ )
137
+ columns = [
138
+ assemble_column_metadata(col) # type: ignore
139
+ for col in query_ast.select.projection
140
+ ]
141
+ query = str(query_ast)
142
+ query_request = await QueryRequest.save_query_request(
143
+ session=session,
144
+ nodes=[node_name],
145
+ dimensions=dimensions,
146
+ filters=filters,
147
+ orderby=orderby,
148
+ limit=limit,
149
+ engine_name=engine.name if engine else None,
150
+ engine_version=engine.version if engine else None,
151
+ query_type=QueryBuildType.NODE,
152
+ query=query,
153
+ columns=[col.dict() for col in columns],
154
+ )
155
+ return query_request
156
+
157
+
158
+ async def get_node_sql( # pylint: disable=too-many-locals
117
159
  node_name: str,
118
160
  dimensions: List[str] = Query([]),
119
161
  filters: List[str] = Query([]),
@@ -123,11 +165,10 @@ async def get_sql( # pylint: disable=too-many-locals
123
165
  session: AsyncSession = Depends(get_session),
124
166
  engine_name: Optional[str] = None,
125
167
  engine_version: Optional[str] = None,
126
- current_user: Optional[User] = Depends(get_current_user),
127
- validate_access: access.ValidateAccessFn = Depends( # pylint: disable=W0621
128
- validate_access,
129
- ),
130
- ) -> TranslatedSQL:
168
+ current_user: Optional[User],
169
+ validate_access: access.ValidateAccessFn, # pylint: disable=redefined-outer-name
170
+ background_tasks: BackgroundTasks,
171
+ ) -> Tuple[TranslatedSQL, QueryRequest]:
131
172
  """
132
173
  Return SQL for a node.
133
174
  """
@@ -156,45 +197,85 @@ async def get_sql( # pylint: disable=too-many-locals
156
197
  engine_version=engine.version if engine else None,
157
198
  query_type=QueryBuildType.NODE,
158
199
  ):
159
- return TranslatedSQL(
160
- sql=query_request.query,
161
- columns=query_request.columns,
162
- dialect=engine.dialect if engine else None,
200
+ # Update the node SQL in a background task to keep it up-to-date
201
+ background_tasks.add_task(
202
+ build_and_save_node_sql,
203
+ node_name=node_name,
204
+ dimensions=dimensions,
205
+ filters=filters,
206
+ orderby=orderby,
207
+ limit=limit,
208
+ session=session,
209
+ engine=engine,
210
+ access_control=access_control,
211
+ )
212
+ return (
213
+ TranslatedSQL(
214
+ sql=query_request.query,
215
+ columns=query_request.columns,
216
+ dialect=engine.dialect if engine else None,
217
+ ),
218
+ query_request,
163
219
  )
164
220
 
165
- query_ast = await get_query(
166
- session=session,
221
+ query_request = await build_and_save_node_sql(
167
222
  node_name=node_name,
168
223
  dimensions=dimensions,
169
224
  filters=filters,
170
225
  orderby=orderby,
171
226
  limit=limit,
172
- engine=engine,
227
+ session=session,
228
+ engine=engine, # type: ignore
173
229
  access_control=access_control,
174
230
  )
175
- columns = [
176
- assemble_column_metadata(col) # type: ignore
177
- for col in query_ast.select.projection
178
- ]
179
- query = str(query_ast)
180
- await QueryRequest.save_query_request(
181
- session=session,
182
- nodes=[node_name],
183
- dimensions=dimensions,
184
- filters=filters,
185
- orderby=orderby,
186
- limit=limit,
187
- engine_name=engine.name if engine else None,
188
- engine_version=engine.version if engine else None,
189
- query_type=QueryBuildType.NODE,
190
- query=query,
191
- columns=[col.dict() for col in columns],
231
+ return (
232
+ TranslatedSQL(
233
+ sql=query_request.query,
234
+ columns=query_request.columns,
235
+ dialect=engine.dialect if engine else None,
236
+ ),
237
+ query_request,
192
238
  )
193
- return TranslatedSQL(
194
- sql=query,
195
- columns=columns,
196
- dialect=engine.dialect if engine else None,
239
+
240
+
241
+ @router.get(
242
+ "/sql/{node_name}/",
243
+ response_model=TranslatedSQL,
244
+ name="Get SQL For A Node",
245
+ )
246
+ async def get_sql( # pylint: disable=too-many-locals
247
+ node_name: str,
248
+ dimensions: List[str] = Query([]),
249
+ filters: List[str] = Query([]),
250
+ orderby: List[str] = Query([]),
251
+ limit: Optional[int] = None,
252
+ *,
253
+ session: AsyncSession = Depends(get_session),
254
+ engine_name: Optional[str] = None,
255
+ engine_version: Optional[str] = None,
256
+ current_user: Optional[User] = Depends(get_current_user),
257
+ validate_access: access.ValidateAccessFn = Depends( # pylint: disable=W0621
258
+ validate_access,
259
+ ),
260
+ background_tasks: BackgroundTasks,
261
+ ) -> TranslatedSQL:
262
+ """
263
+ Return SQL for a node.
264
+ """
265
+ translated_sql, _ = await get_node_sql(
266
+ node_name,
267
+ dimensions,
268
+ filters,
269
+ orderby,
270
+ limit,
271
+ session=session,
272
+ engine_name=engine_name,
273
+ engine_version=engine_version,
274
+ current_user=current_user,
275
+ validate_access=validate_access,
276
+ background_tasks=background_tasks,
197
277
  )
278
+ return translated_sql
198
279
 
199
280
 
200
281
  @router.get("/sql/", response_model=TranslatedSQL, name="Get SQL For Metrics")