datajunction-server 0.0.1a47__tar.gz → 0.0.1a47.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 (450) hide show
  1. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/PKG-INFO +2 -2
  2. datajunction_server-0.0.1a47.dev0/datajunction_server/__about__.py +4 -0
  3. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/nodes.py +1 -0
  4. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/nodes.py +2 -0
  5. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/functions.py +160 -18
  6. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/ast.py +11 -1
  7. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/functions_test.py +147 -15
  8. datajunction_server-0.0.1a47/datajunction_server/__about__.py +0 -4
  9. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/.coveragerc +0 -0
  10. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/.env +0 -0
  11. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/.env.integration +0 -0
  12. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/.flake8 +0 -0
  13. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/.gitignore +0 -0
  14. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/.isort.cfg +0 -0
  15. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/.pre-commit-config.yaml +0 -0
  16. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/.pylintrc +0 -0
  17. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/Dockerfile +0 -0
  18. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/Makefile +0 -0
  19. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/README.md +0 -0
  20. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/README +0 -0
  21. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/env.py +0 -0
  22. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/script.py.mako +0 -0
  23. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/versions/2023_12_20_1829-724445d2b29d_initial_migration.py +0 -0
  24. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/versions/2024_01_08_2034-945d44abcd32_add_dimension_links.py +0 -0
  25. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/versions/2024_01_11_2032-c74b11566d82_add_column_order.py +0 -0
  26. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/versions/2024_01_18_2011-20f060b02772_switch_enum_values.py +0 -0
  27. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/versions/2024_01_23_0617-c9cef8864ecb_add_missing_table_attribute_to_source_.py +0 -0
  28. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/versions/2024_01_23_1655-a8e22109be24_availability_state_s_valid_through_ts_.py +0 -0
  29. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/versions/2024_02_22_0713-d61fb7e48cc3_cascade_deletes_to_dimension_links.py +0 -0
  30. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/versions/2024_04_30_1556-de7ec1c82fe0_add_query_requests.py +0 -0
  31. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic/versions/2024_05_09_1420-9b1227ff17f4_update_backfill_spec.py +0 -0
  32. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/alembic.ini +0 -0
  33. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/__init__.py +0 -0
  34. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/__init__.py +0 -0
  35. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/access/authentication/__init__.py +0 -0
  36. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/access/authentication/basic.py +0 -0
  37. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/access/authentication/github.py +0 -0
  38. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/access/authentication/google.py +0 -0
  39. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/access/authentication/whoami.py +0 -0
  40. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/attributes.py +0 -0
  41. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/catalogs.py +0 -0
  42. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/client.py +0 -0
  43. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/cubes.py +0 -0
  44. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/data.py +0 -0
  45. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/dimensions.py +0 -0
  46. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/djsql.py +0 -0
  47. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/engines.py +0 -0
  48. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/graphql/__init__.py +0 -0
  49. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/graphql/catalogs.py +0 -0
  50. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/graphql/engines.py +0 -0
  51. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/graphql/main.py +0 -0
  52. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/health.py +0 -0
  53. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/helpers.py +0 -0
  54. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/history.py +0 -0
  55. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/logging.conf +0 -0
  56. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/main.py +0 -0
  57. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/materializations.py +0 -0
  58. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/measures.py +0 -0
  59. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/metrics.py +0 -0
  60. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/namespaces.py +0 -0
  61. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/sql.py +0 -0
  62. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/api/tags.py +0 -0
  63. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/config.py +0 -0
  64. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/constants.py +0 -0
  65. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/construction/__init__.py +0 -0
  66. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/construction/build.py +0 -0
  67. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/construction/dimensions.py +0 -0
  68. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/construction/dj_query.py +0 -0
  69. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/construction/exceptions.py +0 -0
  70. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/construction/utils.py +0 -0
  71. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/__init__.py +0 -0
  72. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/attributetype.py +0 -0
  73. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/availabilitystate.py +0 -0
  74. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/backfill.py +0 -0
  75. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/base.py +0 -0
  76. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/catalog.py +0 -0
  77. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/column.py +0 -0
  78. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/database.py +0 -0
  79. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/dimensionlink.py +0 -0
  80. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/engine.py +0 -0
  81. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/history.py +0 -0
  82. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/materialization.py +0 -0
  83. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/measure.py +0 -0
  84. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/metricmetadata.py +0 -0
  85. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/namespace.py +0 -0
  86. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/node.py +0 -0
  87. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/partition.py +0 -0
  88. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/queryrequest.py +0 -0
  89. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/tag.py +0 -0
  90. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/database/user.py +0 -0
  91. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/enum.py +0 -0
  92. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/errors.py +0 -0
  93. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/__init__.py +0 -0
  94. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/access/__init__.py +0 -0
  95. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/access/authentication/__init__.py +0 -0
  96. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/access/authentication/basic.py +0 -0
  97. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/access/authentication/github.py +0 -0
  98. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/access/authentication/google.py +0 -0
  99. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/access/authentication/http.py +0 -0
  100. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/access/authentication/tokens.py +0 -0
  101. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/access/authorization.py +0 -0
  102. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/engines.py +0 -0
  103. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/materializations.py +0 -0
  104. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/namespaces.py +0 -0
  105. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/internal/validation.py +0 -0
  106. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/materialization/__init__.py +0 -0
  107. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/materialization/jobs/__init__.py +0 -0
  108. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/materialization/jobs/cube_materialization.py +0 -0
  109. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/materialization/jobs/job_types.py +0 -0
  110. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/materialization/jobs/materialization_job.py +0 -0
  111. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/__init__.py +0 -0
  112. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/access.py +0 -0
  113. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/attribute.py +0 -0
  114. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/base.py +0 -0
  115. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/catalog.py +0 -0
  116. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/column.py +0 -0
  117. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/cube.py +0 -0
  118. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/database.py +0 -0
  119. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/dimensionlink.py +0 -0
  120. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/engine.py +0 -0
  121. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/history.py +0 -0
  122. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/materialization.py +0 -0
  123. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/measure.py +0 -0
  124. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/metric.py +0 -0
  125. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/node.py +0 -0
  126. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/node_type.py +0 -0
  127. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/partition.py +0 -0
  128. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/query.py +0 -0
  129. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/table.py +0 -0
  130. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/tag.py +0 -0
  131. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/models/user.py +0 -0
  132. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/naming.py +0 -0
  133. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/service_clients.py +0 -0
  134. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/__init__.py +0 -0
  135. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/dag.py +0 -0
  136. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/__init__.py +0 -0
  137. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/__init__.py +0 -0
  138. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
  139. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
  140. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
  141. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
  142. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/__init__.py +0 -0
  143. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
  144. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
  145. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
  146. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
  147. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
  148. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
  149. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
  150. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
  151. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/sql/parsing/types.py +0 -0
  152. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/superset.py +0 -0
  153. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/transpilation.py +0 -0
  154. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/typing.py +0 -0
  155. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/datajunction_server/utils.py +0 -0
  156. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/pdm.lock +0 -0
  157. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/pyproject.toml +0 -0
  158. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/requirements/docker.txt +0 -0
  159. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/requirements/test.txt +0 -0
  160. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/scripts/docs-snippets.js +0 -0
  161. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/scripts/docs-snippets.sh +0 -0
  162. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/scripts/generate-openapi.py +0 -0
  163. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/__init__.py +0 -0
  164. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/__init__.py +0 -0
  165. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/attributes_test.py +0 -0
  166. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/catalog_test.py +0 -0
  167. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/client_test.py +0 -0
  168. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/cubes_test.py +0 -0
  169. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/data_test.py +0 -0
  170. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/dimension_links_test.py +0 -0
  171. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/dimensions_test.py +0 -0
  172. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/djql_test.py +0 -0
  173. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/engine_test.py +0 -0
  174. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.druid_spec.json +0 -0
  175. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.partition.druid_spec.json +0 -0
  176. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.partition.query.sql +0 -0
  177. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.query.sql +0 -0
  178. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.categorical.query.sql +0 -0
  179. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.druid_spec.json +0 -0
  180. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.patched.query.sql +0 -0
  181. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.query.sql +0 -0
  182. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.categorical.query.sql +0 -0
  183. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.druid_spec.json +0 -0
  184. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.query.sql +0 -0
  185. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.full.config.json +0 -0
  186. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.full.materializations.json +0 -0
  187. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.config.json +0 -0
  188. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.materializations.json +0 -0
  189. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.query.sql +0 -0
  190. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.full.query.sql +0 -0
  191. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.incremental.additional.query.sql +0 -0
  192. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.incremental.categorical.query.sql +0 -0
  193. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.incremental.config.json +0 -0
  194. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.incremental.lookback.query.sql +0 -0
  195. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/files/materializations_test/spark_sql.incremental.query.sql +0 -0
  196. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/graphql/__init__.py +0 -0
  197. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/graphql/catalog_test.py +0 -0
  198. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/graphql/engine_test.py +0 -0
  199. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/health_test.py +0 -0
  200. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/helpers_test.py +0 -0
  201. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/history_test.py +0 -0
  202. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/materializations_test.py +0 -0
  203. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/measures_test.py +0 -0
  204. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/metrics_test.py +0 -0
  205. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/namespaces_test.py +0 -0
  206. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/node_update_test.py +0 -0
  207. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/nodes_test.py +0 -0
  208. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/routers_test.py +0 -0
  209. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/sql_test.py +0 -0
  210. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/api/tags_test.py +0 -0
  211. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/conftest.py +0 -0
  212. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/construction/__init__.py +0 -0
  213. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/construction/build_test.py +0 -0
  214. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/construction/compile_test.py +0 -0
  215. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/construction/exceptions_test.py +0 -0
  216. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/construction/fixtures.py +0 -0
  217. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/construction/inference_test.py +0 -0
  218. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/construction/utils_test.py +0 -0
  219. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/default.duckdb +0 -0
  220. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/duckdb.sql +0 -0
  221. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/errors_test.py +0 -0
  222. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/examples.py +0 -0
  223. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/fixes_test.py +0 -0
  224. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/integration/__init__.py +0 -0
  225. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/integration/basic_test.py +0 -0
  226. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/internal/authentication/basic_test.py +0 -0
  227. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/internal/authentication/github_test.py +0 -0
  228. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/internal/authentication/http_test.py +0 -0
  229. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/internal/authentication/token_test.py +0 -0
  230. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/internal/authentication/whoami_test.py +0 -0
  231. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/migrations_test.py +0 -0
  232. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/models/__init__.py +0 -0
  233. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/models/catalog_test.py +0 -0
  234. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/models/hash_test.py +0 -0
  235. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/models/measure_test.py +0 -0
  236. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/models/node_test.py +0 -0
  237. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/models/query_test.py +0 -0
  238. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/pytest.ini +0 -0
  239. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/service_clients_test.py +0 -0
  240. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/__init__.py +0 -0
  241. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/dag_test.py +0 -0
  242. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/__init__.py +0 -0
  243. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/backends/__init__.py +0 -0
  244. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/backends/antlr4_test.py +0 -0
  245. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/backends/types_test.py +0 -0
  246. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/__init__.py +0 -0
  247. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
  248. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
  249. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
  250. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
  251. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
  252. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
  253. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
  254. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
  255. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
  256. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
  257. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
  258. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
  259. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
  260. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
  261. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
  262. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
  263. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
  264. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
  265. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
  266. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
  267. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
  268. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
  269. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
  270. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
  271. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
  272. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
  273. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
  274. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
  275. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
  276. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
  277. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
  278. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
  279. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
  280. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
  281. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
  282. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
  283. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
  284. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
  285. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
  286. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
  287. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
  288. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
  289. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
  290. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
  291. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
  292. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
  293. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
  294. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
  295. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
  296. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
  297. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
  298. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
  299. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
  300. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
  301. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
  302. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
  303. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
  304. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
  305. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
  306. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
  307. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
  308. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
  309. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
  310. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
  311. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
  312. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
  313. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
  314. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
  315. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
  316. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
  317. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
  318. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
  319. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
  320. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
  321. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
  322. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
  323. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
  324. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
  325. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
  326. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
  327. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
  328. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
  329. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
  330. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
  331. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
  332. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
  333. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
  334. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
  335. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
  336. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
  337. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
  338. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
  339. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
  340. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
  341. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
  342. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
  343. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
  344. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
  345. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
  346. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
  347. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
  348. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
  349. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
  350. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
  351. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
  352. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
  353. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
  354. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
  355. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
  356. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
  357. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
  358. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
  359. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
  360. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
  361. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
  362. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
  363. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
  364. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
  365. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
  366. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
  367. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
  368. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
  369. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
  370. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
  371. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
  372. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
  373. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
  374. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
  375. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
  376. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
  377. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
  378. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
  379. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
  380. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
  381. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
  382. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
  383. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
  384. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
  385. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
  386. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
  387. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
  388. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
  389. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
  390. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
  391. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
  392. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
  393. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
  394. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
  395. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
  396. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
  397. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
  398. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
  399. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
  400. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
  401. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
  402. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
  403. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
  404. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
  405. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
  406. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
  407. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
  408. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
  409. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
  410. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
  411. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
  412. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
  413. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
  414. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
  415. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
  416. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
  417. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
  418. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
  419. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
  420. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
  421. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
  422. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
  423. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
  424. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
  425. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
  426. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
  427. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
  428. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
  429. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
  430. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
  431. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
  432. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
  433. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
  434. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
  435. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
  436. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
  437. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
  438. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
  439. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
  440. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
  441. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
  442. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
  443. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
  444. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
  445. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
  446. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/parsing/test_ast.py +0 -0
  447. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/sql/utils.py +0 -0
  448. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/superset_test.py +0 -0
  449. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.dev0}/tests/transpilation_test.py +0 -0
  450. {datajunction_server-0.0.1a47 → datajunction_server-0.0.1a47.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.1a47
3
+ Version: 0.0.1a47.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,4 @@
1
+ """
2
+ Version for Hatch
3
+ """
4
+ __version__ = "0.0.1a47.dev0"
@@ -622,6 +622,7 @@ async def create_cube(
622
622
  """
623
623
  Create a cube node.
624
624
  """
625
+ print("data", data)
625
626
  await raise_if_node_exists(session, data.name)
626
627
 
627
628
  # if the node previously existed and now is inactive
@@ -732,6 +732,8 @@ async def update_cube_node( # pylint: disable=too-many-locals
732
732
  """
733
733
  Update cube node based on changes
734
734
  """
735
+ node = await Node.get_cube_by_name(session, node_revision.name)
736
+ node_revision = node.current # type: ignore
735
737
  minor_changes = has_minor_changes(node_revision, data)
736
738
  old_metrics = [m.name for m in node_revision.cube_metrics()]
737
739
  old_dimensions = node_revision.cube_dimensions()
@@ -278,28 +278,48 @@ class Aggregate(Function):
278
278
  ast,
279
279
  )
280
280
 
281
- expr, start, merge = args
281
+ if len(args) == 4:
282
+ expr, start, merge, finish = args
283
+ else:
284
+ expr, start, merge = args
285
+ finish = None
286
+
282
287
  available_identifiers = {
283
288
  identifier.name: idx for idx, identifier in enumerate(merge.identifiers)
284
289
  }
285
- columns = list(
290
+ merge_columns = list(
286
291
  merge.expr.filter(
287
292
  lambda x: isinstance(x, ast.Column)
288
293
  and x.alias_or_name.name in available_identifiers,
289
294
  ),
290
295
  )
291
- for col in columns:
296
+ finish_columns = (
297
+ list(
298
+ finish.expr.filter(
299
+ lambda x: isinstance(x, ast.Column)
300
+ and x.alias_or_name.name in available_identifiers,
301
+ ),
302
+ )
303
+ if finish
304
+ else []
305
+ )
306
+ for col in merge_columns:
292
307
  if available_identifiers.get(col.alias_or_name.name) == 0:
293
308
  col.add_type(start.type)
294
309
  if available_identifiers.get(col.alias_or_name.name) == 1:
295
310
  col.add_type(expr.type.element.type)
311
+ for col in finish_columns:
312
+ if (
313
+ available_identifiers.get(col.alias_or_name.name) == 0
314
+ ): # pragma: no cover
315
+ col.add_type(start.type)
296
316
 
297
317
 
298
318
  @Aggregate.register # type: ignore
299
319
  def infer_type(
300
320
  expr: ct.ListType,
301
- start: ct.PrimitiveType,
302
- merge: ct.PrimitiveType,
321
+ start: ct.ColumnType,
322
+ merge: ct.ColumnType,
303
323
  ) -> ct.ColumnType:
304
324
  return merge.expr.type
305
325
 
@@ -1028,6 +1048,13 @@ def infer_type(
1028
1048
  return arrays[0].type
1029
1049
 
1030
1050
 
1051
+ @Concat.register # type: ignore
1052
+ def infer_type(
1053
+ *maps: ct.MapType,
1054
+ ) -> ct.MapType:
1055
+ return maps[0].type
1056
+
1057
+
1031
1058
  class ConcatWs(Function):
1032
1059
  """
1033
1060
  concat_ws(separator, [str | array(str)]+) - Returns the concatenation of the
@@ -3130,19 +3157,48 @@ def infer_type(map_: ct.MapType) -> ct.ColumnType:
3130
3157
  return ct.ListType(element_type=map_.type.value.type)
3131
3158
 
3132
3159
 
3133
- # TODO # pylint: disable=fixme
3134
- # class MapZipWith(Function):
3135
- # """
3136
- # map_zip_with(map1, map2, function) - Returns a merged map of two given maps by
3137
- # applying function to the pair of values with the same key.
3138
- # """
3139
- #
3140
- #
3141
- # @MapZipWith.register # type: ignore
3142
- # def infer_type(
3143
- # map1: ct.MapType, map2: ct.MapType, function: ct.ColumnType
3144
- # ) -> ct.ColumnType:
3145
- # return ct.MapType()
3160
+ class MapZipWith(Function):
3161
+ """
3162
+ map_zip_with(map1, map2, function) - Returns a merged map of two given maps by
3163
+ applying function to the pair of values with the same key.
3164
+ """
3165
+
3166
+ @staticmethod
3167
+ def compile_lambda(*args):
3168
+ """
3169
+ Compiles the lambda function used by the `map_zip_with` Spark function so that
3170
+ the lambda's expression can be evaluated to determine the result's type.
3171
+ """
3172
+ from datajunction_server.sql.parsing import ( # pylint: disable=import-outside-toplevel
3173
+ ast,
3174
+ )
3175
+
3176
+ map1, map2, func = args
3177
+ available_identifiers = {
3178
+ identifier.name: idx for idx, identifier in enumerate(func.identifiers)
3179
+ }
3180
+ columns = list(
3181
+ func.expr.filter(
3182
+ lambda x: isinstance(x, ast.Column)
3183
+ and x.alias_or_name.name in available_identifiers,
3184
+ ),
3185
+ )
3186
+ for col in columns:
3187
+ if available_identifiers.get(col.alias_or_name.name) == 0:
3188
+ col.add_type(map1.type.key.type) # pragma: no cover
3189
+ if available_identifiers.get(col.alias_or_name.name) == 1:
3190
+ col.add_type(map1.type)
3191
+ if available_identifiers.get(col.alias_or_name.name) == 2:
3192
+ col.add_type(map2.type)
3193
+
3194
+
3195
+ @MapZipWith.register # type: ignore
3196
+ def infer_type(
3197
+ map1: ct.MapType,
3198
+ map2: ct.MapType,
3199
+ function: ct.ColumnType,
3200
+ ) -> ct.ColumnType:
3201
+ return map1.type
3146
3202
 
3147
3203
 
3148
3204
  class Mask(Function):
@@ -4152,6 +4208,92 @@ def infer_type(
4152
4208
  return ct.ListType(element_type=func.expr.type)
4153
4209
 
4154
4210
 
4211
+ class TransformKeys(Function):
4212
+ """
4213
+ transform_keys(expr, func) - Transforms keys in a map using the function
4214
+ """
4215
+
4216
+ @staticmethod
4217
+ def compile_lambda(*args):
4218
+ """
4219
+ Compiles the lambda function used by the `transform_keys` Spark function so that
4220
+ the lambda's expression can be evaluated to determine the result's type.
4221
+ """
4222
+ from datajunction_server.sql.parsing import ( # pylint: disable=import-outside-toplevel
4223
+ ast,
4224
+ )
4225
+
4226
+ expr, func = args
4227
+ available_identifiers = {
4228
+ identifier.name: idx for idx, identifier in enumerate(func.identifiers)
4229
+ }
4230
+ columns = list(
4231
+ func.expr.filter(
4232
+ lambda x: isinstance(x, ast.Column)
4233
+ and x.alias_or_name.name in available_identifiers,
4234
+ ),
4235
+ )
4236
+ for col in columns:
4237
+ # The map key arg
4238
+ if available_identifiers.get(col.alias_or_name.name) == 0:
4239
+ col.add_type(expr.type.key.type)
4240
+
4241
+ # The map value arg
4242
+ if available_identifiers.get(col.alias_or_name.name) == 1:
4243
+ col.add_type(expr.type.value.type)
4244
+
4245
+
4246
+ @TransformKeys.register # type: ignore
4247
+ def infer_type(
4248
+ expr: ct.MapType,
4249
+ func: ct.ColumnType,
4250
+ ) -> ct.MapType:
4251
+ return ct.MapType(key_type=func.expr.type, value_type=expr.type.value.type)
4252
+
4253
+
4254
+ class TransformValues(Function):
4255
+ """
4256
+ transform_values(expr, func) - Transforms values in a map using the function
4257
+ """
4258
+
4259
+ @staticmethod
4260
+ def compile_lambda(*args):
4261
+ """
4262
+ Compiles the lambda function used by the `transform_values` Spark function so that
4263
+ the lambda's expression can be evaluated to determine the result's type.
4264
+ """
4265
+ from datajunction_server.sql.parsing import ( # pylint: disable=import-outside-toplevel
4266
+ ast,
4267
+ )
4268
+
4269
+ expr, func = args
4270
+ available_identifiers = {
4271
+ identifier.name: idx for idx, identifier in enumerate(func.identifiers)
4272
+ }
4273
+ columns = list(
4274
+ func.expr.filter(
4275
+ lambda x: isinstance(x, ast.Column)
4276
+ and x.alias_or_name.name in available_identifiers,
4277
+ ),
4278
+ )
4279
+ for col in columns:
4280
+ # The map key arg
4281
+ if available_identifiers.get(col.alias_or_name.name) == 0:
4282
+ col.add_type(expr.type.key.type)
4283
+
4284
+ # The map value arg
4285
+ if available_identifiers.get(col.alias_or_name.name) == 1:
4286
+ col.add_type(expr.type.value.type)
4287
+
4288
+
4289
+ @TransformValues.register # type: ignore
4290
+ def infer_type(
4291
+ expr: ct.MapType,
4292
+ func: ct.ColumnType,
4293
+ ) -> ct.MapType:
4294
+ return ct.MapType(key_type=expr.type.key.type, value_type=func.expr.type)
4295
+
4296
+
4155
4297
  class Trim(Function):
4156
4298
  """
4157
4299
  Removes leading and trailing whitespace from a string value.
@@ -3,6 +3,7 @@
3
3
  # mypy: ignore-errors
4
4
  import collections
5
5
  import decimal
6
+ import logging
6
7
  from abc import ABC, abstractmethod
7
8
  from copy import deepcopy
8
9
  from dataclasses import dataclass, field, fields
@@ -63,6 +64,7 @@ from datajunction_server.sql.parsing.types import (
63
64
  )
64
65
 
65
66
  PRIMITIVES = {int, float, str, bool, type(None)}
67
+ logger = logging.getLogger(__name__)
66
68
 
67
69
 
68
70
  def flatten(maybe_iterables: Any) -> Iterator:
@@ -1661,6 +1663,7 @@ class Function(Named, Operation):
1661
1663
  args: List[Expression] = field(default_factory=list)
1662
1664
  quantifier: str = ""
1663
1665
  over: Optional[Over] = None
1666
+ args_compiled: bool = False
1664
1667
 
1665
1668
  def __new__(
1666
1669
  cls,
@@ -1724,7 +1727,14 @@ class Function(Named, Operation):
1724
1727
  await arg.compile(ctx)
1725
1728
  arg._is_compiled = True
1726
1729
 
1727
- self.function().compile_lambda(*self.args)
1730
+ # FIXME: We currently catch this exception because we are unable # pylint: disable=fixme
1731
+ # to infer types for nested lambda functions. For the time being, an easy workaround is to
1732
+ # add a CAST(...) wrapper around the nested lambda function so that the type hard-coded by
1733
+ # the argument to CAST
1734
+ try:
1735
+ self.function().compile_lambda(*self.args)
1736
+ except DJParseException as parse_exc:
1737
+ logger.warning(parse_exc)
1728
1738
 
1729
1739
  for child in self.children:
1730
1740
  if not child.is_compiled():
@@ -140,6 +140,69 @@ async def test_aggregate(session: AsyncSession):
140
140
  assert query.select.projection[0].type == StringType() # type: ignore
141
141
 
142
142
 
143
+ @pytest.mark.asyncio
144
+ async def test_complex_nested_functions(session: AsyncSession):
145
+ """
146
+ Test that the CAST(...) workaround works for complex nested lambda functions
147
+ """
148
+ query = parse(
149
+ """
150
+ SELECT
151
+ CAST(
152
+ AGGREGATE(
153
+ MAP_VALUES(
154
+ AGGREGATE(
155
+ COLLECT_LIST(
156
+ MAP(
157
+ x,
158
+ NAMED_STRUCT(
159
+ 'a1',
160
+ CASE
161
+ WHEN y = 'apples'
162
+ THEN z ELSE 0
163
+ END,
164
+ 'b1',
165
+ COALESCE(y, 0)
166
+ )
167
+ )
168
+ ),
169
+ CAST(MAP() AS MAP<STRING, STRUCT<z: BIGINT, y: BIGINT>>),
170
+ (acc, x) -> MAP_ZIP_WITH(
171
+ acc, x,
172
+ (k, v1, v2) -> NAMED_STRUCT(
173
+ 'z',
174
+ COALESCE(v1['z'], 0) + COALESCE(v2['z'], 0),
175
+ 'y',
176
+ COALESCE(v1['y'], 0) + COALESCE(v2['y'], 0)
177
+
178
+ )
179
+ ),
180
+ acc -> TRANSFORM_VALUES(acc, (_, v) -> v['z']/(20.0*v['y']))
181
+ )
182
+ ),
183
+ NAMED_STRUCT(
184
+ 'z1',
185
+ CAST(0 AS DOUBLE),
186
+ 'y1',
187
+ CAST(0 AS DOUBLE)
188
+ ),
189
+ (acc, x) -> NAMED_STRUCT('y1', acc['z1'] + x, 'y1', acc['y1'] + 1),
190
+ acc -> acc['y1']/acc['z1']
191
+ ) AS STRING
192
+ ) AS etc
193
+ FROM (
194
+ SELECT '124345' as x,
195
+ 'something' as y,
196
+ 29109 as z
197
+ )
198
+ """,
199
+ )
200
+ exc = DJException()
201
+ ctx = ast.CompileContext(session=session, exception=exc)
202
+ await query.compile(ctx)
203
+ assert query.select.projection[0].type == StringType() # type: ignore
204
+
205
+
143
206
  @pytest.mark.asyncio
144
207
  async def test_any_value(session: AsyncSession):
145
208
  """
@@ -826,7 +889,9 @@ async def test_concat_func(session: AsyncSession):
826
889
  Test the `concat` function
827
890
  """
828
891
  query = parse(
829
- "SELECT concat('hello', '+', 'world'), concat(array(1, 2), array(3))",
892
+ "SELECT concat('hello', '+', 'world'), "
893
+ "concat(array(1, 2), array(3)), "
894
+ "concat(map(1, 'a'), map(2, 'b'))",
830
895
  )
831
896
  exc = DJException()
832
897
  ctx = ast.CompileContext(session=session, exception=exc)
@@ -834,6 +899,10 @@ async def test_concat_func(session: AsyncSession):
834
899
  assert not exc.errors
835
900
  assert query.select.projection[0].type == ct.StringType() # type: ignore
836
901
  assert query.select.projection[1].type == ct.ListType(ct.IntegerType()) # type: ignore
902
+ assert query.select.projection[2].type == ct.MapType( # type: ignore
903
+ key_type=ct.IntegerType(),
904
+ value_type=ct.StringType(),
905
+ )
837
906
 
838
907
 
839
908
  @pytest.mark.asyncio
@@ -2634,20 +2703,23 @@ async def test_max() -> None:
2634
2703
  )
2635
2704
 
2636
2705
 
2637
- # TODO
2638
- # @pytest.mark.asyncio
2639
- # async def test_map_zip_with_func(session: AsyncSession):
2640
- # """
2641
- # Test the `map_zip_with` function
2642
- # """
2643
- # # The third argument to map_zip_with is a function, which needs special handling
2644
- # # Assuming that we have a function "func" defined elsewhere in the code
2645
- # query = parse("SELECT map_zip_with(map_col1, map_col2, func) FROM table")
2646
- # exc = DJException()
2647
- # ctx = ast.CompileContext(session=session, exception=exc)
2648
- # await query.compile(ctx)
2649
- # assert not exc.errors
2650
- # assert isinstance(query.select.projection[0].type, ct.MapType) # type: ignore
2706
+ @pytest.mark.asyncio
2707
+ async def test_map_zip_with_func(session: AsyncSession):
2708
+ """
2709
+ Test the `map_zip_with` function
2710
+ """
2711
+ # The third argument to map_zip_with is a function, which needs special handling
2712
+ # Assuming that we have a function "func" defined elsewhere in the code
2713
+ query = parse(
2714
+ "SELECT map_zip_with(map(1, 'a', 2, 'b'), map(1, 'x', 2, 'y'), (k, v1, v2) -> concat(v1, v2))",
2715
+ )
2716
+ exc = DJException()
2717
+ ctx = ast.CompileContext(session=session, exception=exc)
2718
+ await query.compile(ctx)
2719
+ assert query.select.projection[0].type == ct.MapType( # type: ignore
2720
+ key_type=ct.IntegerType(),
2721
+ value_type=ct.StringType(),
2722
+ )
2651
2723
 
2652
2724
 
2653
2725
  @pytest.mark.asyncio
@@ -3402,6 +3474,66 @@ async def test_transform(session: AsyncSession):
3402
3474
  assert query.select.projection[0].type == ct.ListType(element_type=ct.IntegerType()) # type: ignore
3403
3475
 
3404
3476
 
3477
+ @pytest.mark.asyncio
3478
+ async def test_transform_keys(session: AsyncSession):
3479
+ """
3480
+ Test the `transform_keys` Spark function
3481
+ """
3482
+ query = parse(
3483
+ """
3484
+ SELECT transform_keys(map_from_arrays(array(1, 2, 3), array(1, 2, 3)), (k, v) -> k + 1.1);
3485
+ """,
3486
+ )
3487
+ ctx = ast.CompileContext(session=session, exception=DJException())
3488
+ await query.compile(ctx)
3489
+ assert query.select.projection[0].type == ct.MapType( # type: ignore
3490
+ key_type=ct.FloatType(),
3491
+ value_type=ct.IntegerType(),
3492
+ )
3493
+
3494
+ query = parse(
3495
+ """
3496
+ SELECT transform_keys(map_from_arrays(array('1', '2', '3'), array('1', '2', '3')), (k, v) -> k + v)
3497
+ """,
3498
+ )
3499
+ ctx = ast.CompileContext(session=session, exception=DJException())
3500
+ await query.compile(ctx)
3501
+ assert query.select.projection[0].type == ct.MapType( # type: ignore
3502
+ key_type=ct.StringType(),
3503
+ value_type=ct.StringType(),
3504
+ )
3505
+
3506
+
3507
+ @pytest.mark.asyncio
3508
+ async def test_transform_values(session: AsyncSession):
3509
+ """
3510
+ Test the `transform_values` Spark function
3511
+ """
3512
+ query = parse(
3513
+ """
3514
+ SELECT transform_values(map_from_arrays(array(1, 2, 3), array(1, 2, 3)), (k, v) -> v*1.0)
3515
+ """,
3516
+ )
3517
+ ctx = ast.CompileContext(session=session, exception=DJException())
3518
+ await query.compile(ctx)
3519
+ assert query.select.projection[0].type == ct.MapType( # type: ignore
3520
+ key_type=ct.IntegerType(),
3521
+ value_type=ct.FloatType(),
3522
+ )
3523
+
3524
+ query = parse(
3525
+ """
3526
+ SELECT transform_values(map_from_arrays(array('1', '2', '3'), array('1', '2', '3')), (k, v) -> k + v)
3527
+ """,
3528
+ )
3529
+ ctx = ast.CompileContext(session=session, exception=DJException())
3530
+ await query.compile(ctx)
3531
+ assert query.select.projection[0].type == ct.MapType( # type: ignore
3532
+ key_type=ct.StringType(),
3533
+ value_type=ct.StringType(),
3534
+ )
3535
+
3536
+
3405
3537
  @pytest.mark.asyncio
3406
3538
  async def test_to_date() -> None:
3407
3539
  """
@@ -1,4 +0,0 @@
1
- """
2
- Version for Hatch
3
- """
4
- __version__ = "0.0.1a47"