datajunction-server 0.0.1a39.dev0__tar.gz → 0.0.1a39.dev2__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 (487) hide show
  1. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/PKG-INFO +1 -1
  2. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/alembic/env.py +1 -0
  3. datajunction_server-0.0.1a39.dev2/alembic/versions/2024_01_18_2011-20f060b02772_switch_enum_values.py +207 -0
  4. datajunction_server-0.0.1a39.dev2/datajunction_server/__about__.py +4 -0
  5. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/helpers.py +1 -1
  6. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/nodes.py +92 -0
  7. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/__init__.py +2 -0
  8. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/dimensionlink.py +2 -3
  9. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/engine.py +3 -3
  10. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/history.py +3 -4
  11. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/node.py +9 -13
  12. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/user.py +2 -3
  13. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/namespaces.py +10 -3
  14. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/base.py +0 -19
  15. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/tag.py +1 -1
  16. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/functions.py +66 -0
  17. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/namespaces_test.py +13 -2
  18. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/tags_test.py +22 -0
  19. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/conftest.py +1 -1
  20. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/migrations_test.py +6 -7
  21. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/functions_test.py +16 -0
  22. datajunction_server-0.0.1a39.dev0/datajunction_server/__about__.py +0 -4
  23. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/.coveragerc +0 -0
  24. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/.env +0 -0
  25. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/.env.integration +0 -0
  26. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/.flake8 +0 -0
  27. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/.gitignore +0 -0
  28. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/.isort.cfg +0 -0
  29. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/.pre-commit-config.yaml +0 -0
  30. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/.pylintrc +0 -0
  31. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/Dockerfile +0 -0
  32. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/Makefile +0 -0
  33. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/README.md +0 -0
  34. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/alembic/README +0 -0
  35. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/alembic/script.py.mako +0 -0
  36. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/alembic/versions/2023_12_20_1829-724445d2b29d_initial_migration.py +0 -0
  37. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/alembic/versions/2024_01_08_2034-945d44abcd32_add_dimension_links.py +0 -0
  38. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/alembic/versions/2024_01_11_2032-c74b11566d82_add_column_order.py +0 -0
  39. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/alembic.ini +0 -0
  40. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/alembic_version.csv +0 -0
  41. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/attributetype.csv +0 -0
  42. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/availabilitystate.csv +0 -0
  43. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/backfill.csv +0 -0
  44. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/catalog.csv +0 -0
  45. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/catalogengines.csv +0 -0
  46. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/column.csv +0 -0
  47. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/columnattribute.csv +0 -0
  48. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/cube.csv +0 -0
  49. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/database.csv +0 -0
  50. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/engine.csv +0 -0
  51. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/history.csv +0 -0
  52. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/materialization.csv +0 -0
  53. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/measures.csv +0 -0
  54. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/metric_required_dimensions.csv +0 -0
  55. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/metricmetadata.csv +0 -0
  56. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/missingparent.csv +0 -0
  57. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/node.csv +0 -0
  58. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/nodeavailabilitystate.csv +0 -0
  59. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/nodecolumns.csv +0 -0
  60. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/nodemissingparents.csv +0 -0
  61. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/nodenamespace.csv +0 -0
  62. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/noderelationship.csv +0 -0
  63. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/noderevision.csv +0 -0
  64. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/partition.csv +0 -0
  65. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/table.csv +0 -0
  66. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/tablecolumns.csv +0 -0
  67. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/tag.csv +0 -0
  68. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/tagnoderelationship.csv +0 -0
  69. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/alembic_version.csv +0 -0
  70. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/attributetype.csv +0 -0
  71. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/availabilitystate.csv +0 -0
  72. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/backfill.csv +0 -0
  73. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/catalog.csv +0 -0
  74. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/catalogengines.csv +0 -0
  75. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/column.csv +0 -0
  76. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/columnattribute.csv +0 -0
  77. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/cube.csv +0 -0
  78. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/database.csv +0 -0
  79. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/engine.csv +0 -0
  80. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/history.csv +0 -0
  81. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/materialization.csv +0 -0
  82. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/measures.csv +0 -0
  83. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/metric_required_dimensions.csv +0 -0
  84. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/metricmetadata.csv +0 -0
  85. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/missingparent.csv +0 -0
  86. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/node.csv +0 -0
  87. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/nodeavailabilitystate.csv +0 -0
  88. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/nodecolumns.csv +0 -0
  89. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/nodemissingparents.csv +0 -0
  90. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/nodenamespace.csv +0 -0
  91. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/noderelationship.csv +0 -0
  92. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/noderevision.csv +0 -0
  93. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/partition.csv +0 -0
  94. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/table.csv +0 -0
  95. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/tablecolumns.csv +0 -0
  96. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/tag.csv +0 -0
  97. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/tagnoderelationship.csv +0 -0
  98. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/test/backup/users.csv +0 -0
  99. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/backup/users.csv +0 -0
  100. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/curl-format.txt +0 -0
  101. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/__init__.py +0 -0
  102. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/__init__.py +0 -0
  103. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/access/authentication/__init__.py +0 -0
  104. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/access/authentication/basic.py +0 -0
  105. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/access/authentication/github.py +0 -0
  106. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/access/authentication/google.py +0 -0
  107. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/access/authentication/whoami.py +0 -0
  108. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/attributes.py +0 -0
  109. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/catalogs.py +0 -0
  110. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/client.py +0 -0
  111. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/cubes.py +0 -0
  112. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/data.py +0 -0
  113. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/dimensions.py +0 -0
  114. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/djsql.py +0 -0
  115. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/engines.py +0 -0
  116. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/graphql/__init__.py +0 -0
  117. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/graphql/catalogs.py +0 -0
  118. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/graphql/engines.py +0 -0
  119. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/graphql/main.py +0 -0
  120. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/health.py +0 -0
  121. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/history.py +0 -0
  122. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/logging.conf +0 -0
  123. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/main.py +0 -0
  124. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/materializations.py +0 -0
  125. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/measures.py +0 -0
  126. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/metrics.py +0 -0
  127. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/namespaces.py +0 -0
  128. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/sql.py +0 -0
  129. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/api/tags.py +0 -0
  130. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/config.py +0 -0
  131. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/constants.py +0 -0
  132. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/construction/__init__.py +0 -0
  133. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/construction/build.py +0 -0
  134. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/construction/dimensions.py +0 -0
  135. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/construction/dj_query.py +0 -0
  136. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/construction/exceptions.py +0 -0
  137. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/construction/utils.py +0 -0
  138. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/attributetype.py +0 -0
  139. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/availabilitystate.py +0 -0
  140. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/backfill.py +0 -0
  141. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/base.py +0 -0
  142. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/catalog.py +0 -0
  143. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/column.py +0 -0
  144. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/database.py +0 -0
  145. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/materialization.py +0 -0
  146. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/measure.py +0 -0
  147. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/metricmetadata.py +0 -0
  148. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/namespace.py +0 -0
  149. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/partition.py +0 -0
  150. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/database/tag.py +0 -0
  151. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/enum.py +0 -0
  152. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/errors.py +0 -0
  153. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/__init__.py +0 -0
  154. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/access/__init__.py +0 -0
  155. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/access/authentication/__init__.py +0 -0
  156. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/access/authentication/basic.py +0 -0
  157. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/access/authentication/github.py +0 -0
  158. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/access/authentication/google.py +0 -0
  159. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/access/authentication/http.py +0 -0
  160. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/access/authentication/tokens.py +0 -0
  161. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/access/authorization.py +0 -0
  162. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/engines.py +0 -0
  163. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/materializations.py +0 -0
  164. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/internal/nodes.py +0 -0
  165. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/materialization/__init__.py +0 -0
  166. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/materialization/jobs/__init__.py +0 -0
  167. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/materialization/jobs/cube_materialization.py +0 -0
  168. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/materialization/jobs/job_types.py +0 -0
  169. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/materialization/jobs/materialization_job.py +0 -0
  170. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/__init__.py +0 -0
  171. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/access.py +0 -0
  172. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/attribute.py +0 -0
  173. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/catalog.py +0 -0
  174. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/column.py +0 -0
  175. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/cube.py +0 -0
  176. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/database.py +0 -0
  177. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/dimensionlink.py +0 -0
  178. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/engine.py +0 -0
  179. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/history.py +0 -0
  180. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/materialization.py +0 -0
  181. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/measure.py +0 -0
  182. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/metric.py +0 -0
  183. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/node.py +0 -0
  184. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/node_type.py +0 -0
  185. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/partition.py +0 -0
  186. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/query.py +0 -0
  187. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/table.py +0 -0
  188. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/models/user.py +0 -0
  189. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/naming.py +0 -0
  190. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/service_clients.py +0 -0
  191. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/__init__.py +0 -0
  192. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/dag.py +0 -0
  193. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/__init__.py +0 -0
  194. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/ast.py +0 -0
  195. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/__init__.py +0 -0
  196. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
  197. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
  198. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
  199. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
  200. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/__init__.py +0 -0
  201. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
  202. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
  203. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
  204. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
  205. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
  206. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
  207. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
  208. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
  209. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/sql/parsing/types.py +0 -0
  210. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/superset.py +0 -0
  211. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/transpilation.py +0 -0
  212. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/typing.py +0 -0
  213. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/datajunction_server/utils.py +0 -0
  214. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/default.duckdb +0 -0
  215. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/dj.copy.db +0 -0
  216. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/dj.internal.db +0 -0
  217. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/dj.test.db +0 -0
  218. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/dj.tt.db +0 -0
  219. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/pdm.lock +0 -0
  220. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/pyproject.toml +0 -0
  221. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/requirements/docker.txt +0 -0
  222. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/requirements/test.txt +0 -0
  223. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/scripts/docs-snippets.js +0 -0
  224. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/scripts/docs-snippets.sh +0 -0
  225. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/scripts/generate-openapi.py +0 -0
  226. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tester.py +0 -0
  227. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/__init__.py +0 -0
  228. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/__init__.py +0 -0
  229. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/attributes_test.py +0 -0
  230. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/catalog_test.py +0 -0
  231. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/client_test.py +0 -0
  232. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/cubes_test.py +0 -0
  233. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/data_test.py +0 -0
  234. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/dimension_links_test.py +0 -0
  235. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/dimensions_test.py +0 -0
  236. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/djql_test.py +0 -0
  237. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/engine_test.py +0 -0
  238. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/graphql/__init__.py +0 -0
  239. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/graphql/catalog_test.py +0 -0
  240. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/graphql/engine_test.py +0 -0
  241. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/health_test.py +0 -0
  242. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/helpers_test.py +0 -0
  243. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/history_test.py +0 -0
  244. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/materializations_test.py +0 -0
  245. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/measures_test.py +0 -0
  246. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/metrics_test.py +0 -0
  247. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/node_update_test.py +0 -0
  248. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/nodes_test.py +0 -0
  249. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/routers_test.py +0 -0
  250. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/api/sql_test.py +0 -0
  251. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/construction/__init__.py +0 -0
  252. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/construction/build_test.py +0 -0
  253. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/construction/compile_test.py +0 -0
  254. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/construction/exceptions_test.py +0 -0
  255. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/construction/fixtures.py +0 -0
  256. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/construction/inference_test.py +0 -0
  257. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/construction/utils_test.py +0 -0
  258. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/default.duckdb +0 -0
  259. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/duckdb.sql +0 -0
  260. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/errors_test.py +0 -0
  261. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/examples.py +0 -0
  262. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/fixes_test.py +0 -0
  263. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/integration/__init__.py +0 -0
  264. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/integration/basic_test.py +0 -0
  265. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/internal/authentication/basic_test.py +0 -0
  266. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/internal/authentication/github_test.py +0 -0
  267. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/internal/authentication/http_test.py +0 -0
  268. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/internal/authentication/token_test.py +0 -0
  269. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/internal/authentication/whoami_test.py +0 -0
  270. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/models/__init__.py +0 -0
  271. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/models/catalog_test.py +0 -0
  272. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/models/hash_test.py +0 -0
  273. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/models/measure_test.py +0 -0
  274. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/models/node_test.py +0 -0
  275. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/models/query_test.py +0 -0
  276. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/service_clients_test.py +0 -0
  277. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/__init__.py +0 -0
  278. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/dag_test.py +0 -0
  279. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/__init__.py +0 -0
  280. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/backends/__init__.py +0 -0
  281. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/backends/antlr4_test.py +0 -0
  282. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/backends/types_test.py +0 -0
  283. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/__init__.py +0 -0
  284. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
  285. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
  286. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
  287. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
  288. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
  289. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
  290. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
  291. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
  292. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
  293. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
  294. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
  295. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
  296. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
  297. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
  298. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
  299. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
  300. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
  301. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
  302. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
  303. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
  304. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
  305. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
  306. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
  307. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
  308. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
  309. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
  310. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
  311. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
  312. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
  313. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
  314. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
  315. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
  316. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
  317. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
  318. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
  319. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
  320. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
  321. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
  322. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
  323. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
  324. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
  325. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
  326. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
  327. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
  328. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
  329. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
  330. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
  331. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
  332. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
  333. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
  334. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
  335. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
  336. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
  337. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
  338. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
  339. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
  340. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
  341. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
  342. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
  343. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
  344. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
  345. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
  346. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
  347. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
  348. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
  349. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
  350. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
  351. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
  352. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
  353. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
  354. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
  355. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
  356. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
  357. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
  358. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
  359. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
  360. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
  361. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
  362. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
  363. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
  364. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
  365. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
  366. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
  367. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
  368. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
  369. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
  370. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
  371. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
  372. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
  373. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
  374. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
  375. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
  376. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
  377. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
  378. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
  379. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
  380. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
  381. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
  382. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
  383. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
  384. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
  385. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
  386. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
  387. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
  388. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
  389. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
  390. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
  391. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
  392. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
  393. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
  394. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
  395. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
  396. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
  397. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
  398. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
  399. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
  400. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
  401. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
  402. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
  403. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
  404. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
  405. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
  406. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
  407. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
  408. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
  409. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
  410. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
  411. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
  412. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
  413. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
  414. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
  415. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
  416. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
  417. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
  418. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
  419. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
  420. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
  421. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
  422. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
  423. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
  424. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
  425. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
  426. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
  427. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
  428. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
  429. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
  430. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
  431. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
  432. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
  433. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
  434. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
  435. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
  436. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
  437. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
  438. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
  439. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
  440. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
  441. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
  442. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
  443. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
  444. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
  445. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
  446. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
  447. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
  448. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
  449. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
  450. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
  451. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
  452. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
  453. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
  454. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
  455. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
  456. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
  457. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
  458. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
  459. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
  460. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
  461. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
  462. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
  463. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
  464. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
  465. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
  466. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
  467. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
  468. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
  469. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
  470. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
  471. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
  472. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
  473. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
  474. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
  475. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
  476. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
  477. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
  478. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
  479. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
  480. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
  481. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
  482. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
  483. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/parsing/test_ast.py +0 -0
  484. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/sql/utils.py +0 -0
  485. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/superset_test.py +0 -0
  486. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/transpilation_test.py +0 -0
  487. {datajunction_server-0.0.1a39.dev0 → datajunction_server-0.0.1a39.dev2}/tests/utils_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datajunction-server
3
- Version: 0.0.1a39.dev0
3
+ Version: 0.0.1a39.dev2
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>
@@ -14,6 +14,7 @@ from datajunction_server.database import (
14
14
  Column,
15
15
  ColumnAttribute,
16
16
  Database,
17
+ DimensionLink,
17
18
  Engine,
18
19
  History,
19
20
  Measure,
@@ -0,0 +1,207 @@
1
+ """Switch enum values
2
+
3
+ Revision ID: 20f060b02772
4
+ Revises: c74b11566d82
5
+ Create Date: 2024-01-18 20:11:08.521879+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
+ from sqlalchemy.dialects import postgresql
12
+
13
+ from alembic import op
14
+
15
+ # revision identifiers, used by Alembic.
16
+ revision = "20f060b02772"
17
+ down_revision = "c74b11566d82"
18
+ branch_labels = None
19
+ depends_on = None
20
+
21
+
22
+ def upgrade():
23
+ with op.batch_alter_table("nodenamespace", schema=None) as batch_op:
24
+ batch_op.create_unique_constraint("uq_nodenamespace_namespace", ["namespace"])
25
+
26
+ op.execute("ALTER TYPE oauthprovider RENAME VALUE 'basic' TO 'BASIC'")
27
+ op.execute("ALTER TYPE oauthprovider RENAME VALUE 'github' TO 'GITHUB'")
28
+ op.execute("ALTER TYPE oauthprovider RENAME VALUE 'google' TO 'GOOGLE'")
29
+ op.execute(
30
+ "UPDATE users set oauth_provider = upper(oauth_provider::text)::oauthprovider",
31
+ )
32
+
33
+ op.execute("ALTER TYPE materializationstrategy RENAME VALUE 'full' TO 'FULL'")
34
+ op.execute(
35
+ "ALTER TYPE materializationstrategy RENAME VALUE 'snapshot' TO 'SNAPSHOT'",
36
+ )
37
+ op.execute(
38
+ "ALTER TYPE materializationstrategy "
39
+ "RENAME VALUE 'snapshot_partition' TO 'SNAPSHOT_PARTITION'",
40
+ )
41
+ op.execute(
42
+ "ALTER TYPE materializationstrategy RENAME VALUE 'incremental_time' TO 'INCREMENTAL_TIME'",
43
+ )
44
+ op.execute("ALTER TYPE materializationstrategy RENAME VALUE 'view' TO 'VIEW'")
45
+ op.execute(
46
+ "UPDATE materialization set strategy = upper(strategy::text)::materializationstrategy",
47
+ )
48
+
49
+ op.execute("ALTER TYPE aggregationrule RENAME VALUE 'additive' TO 'ADDITIVE'")
50
+ op.execute(
51
+ "ALTER TYPE aggregationrule RENAME VALUE 'non_additive' TO 'NON_ADDITIVE'",
52
+ )
53
+ op.execute(
54
+ "ALTER TYPE aggregationrule RENAME VALUE 'semi_additive' TO 'SEMI_ADDITIVE'",
55
+ )
56
+ op.execute("UPDATE measures set additive = upper(additive::text)::aggregationrule")
57
+
58
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'attribute' TO 'ATTRIBUTE'")
59
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'availability' TO 'AVAILABILITY'")
60
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'backfill' TO 'BACKFILL'")
61
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'catalog' TO 'CATALOG'")
62
+ op.execute(
63
+ "ALTER TYPE entitytype RENAME VALUE 'column_attribute' TO 'COLUMN_ATTRIBUTE'",
64
+ )
65
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'dependency' TO 'DEPENDENCY'")
66
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'engine' TO 'ENGINE'")
67
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'link' TO 'LINK'")
68
+ op.execute(
69
+ "ALTER TYPE entitytype RENAME VALUE 'materialization' TO 'MATERIALIZATION'",
70
+ )
71
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'namespace' TO 'NAMESPACE'")
72
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'node' TO 'NODE'")
73
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'partition' TO 'PARTITION'")
74
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'query' TO 'QUERY'")
75
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'tag' TO 'TAG'")
76
+ op.execute("UPDATE history set entity_type = upper(entity_type::text)::entitytype")
77
+
78
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'create' TO 'CREATE'")
79
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'delete' TO 'DELETE'")
80
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'restore' TO 'RESTORE'")
81
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'update' TO 'UPDATE'")
82
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'refresh' TO 'REFRESH'")
83
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'tag' TO 'TAG'")
84
+ op.execute(
85
+ "ALTER TYPE activitytype RENAME VALUE 'set_attribute' TO 'SET_ATTRIBUTE'",
86
+ )
87
+ op.execute(
88
+ "ALTER TYPE activitytype RENAME VALUE 'status_change' TO 'STATUS_CHANGE'",
89
+ )
90
+ op.execute(
91
+ "UPDATE history set activity_type = upper(activity_type::text)::activitytype",
92
+ )
93
+
94
+ op.execute("CREATE TYPE nodestatus AS ENUM ('VALID', 'INVALID')")
95
+ op.execute("CREATE TYPE nodemode AS ENUM ('DRAFT', 'PUBLISHED')")
96
+ op.execute(
97
+ "ALTER TABLE noderevision ALTER COLUMN status "
98
+ "TYPE nodestatus USING upper(status)::nodestatus",
99
+ )
100
+ op.execute(
101
+ "ALTER TABLE noderevision ALTER COLUMN mode TYPE nodemode USING upper(mode)::nodemode",
102
+ )
103
+
104
+ op.execute("CREATE TYPE partitiontype AS ENUM ('TEMPORAL', 'CATEGORICAL')")
105
+ op.execute(
106
+ "CREATE TYPE granularity AS ENUM "
107
+ "('SECOND', 'MINUTE', 'HOUR', 'DAY', 'WEEK', 'MONTH', 'QUARTER', 'YEAR')",
108
+ )
109
+ op.execute(
110
+ "ALTER TABLE partition ALTER COLUMN type_ "
111
+ "TYPE partitiontype USING upper(type_)::partitiontype",
112
+ )
113
+ op.execute(
114
+ "ALTER TABLE partition ALTER COLUMN granularity "
115
+ "TYPE granularity USING upper(granularity)::granularity",
116
+ )
117
+
118
+
119
+ def downgrade():
120
+ op.execute("DROP TYPE partitiontype")
121
+ op.execute("DROP TYPE granularity")
122
+ op.execute(
123
+ "ALTER TABLE partition ALTER COLUMN type_ TYPE text USING lower(type_::text)",
124
+ )
125
+ op.execute(
126
+ "ALTER TABLE partition ALTER COLUMN granularity TYPE text USING lower(granularity::text)",
127
+ )
128
+
129
+ op.execute("DROP TYPE nodestatus")
130
+ op.execute("DROP TYPE nodemode")
131
+ op.execute(
132
+ "ALTER TABLE noderevision ALTER COLUMN status TYPE text USING lower(status::text)",
133
+ )
134
+ op.execute(
135
+ "ALTER TABLE noderevision ALTER COLUMN mode TYPE text USING lower(mode::text)",
136
+ )
137
+
138
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'CREATE' TO 'create'")
139
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'DELETE' TO 'delete'")
140
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'RESTORE' TO 'restore'")
141
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'UPDATE' TO 'update'")
142
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'REFRESH' TO 'refresh'")
143
+ op.execute("ALTER TYPE activitytype RENAME VALUE 'TAG' TO 'tag'")
144
+ op.execute(
145
+ "ALTER TYPE activitytype RENAME VALUE 'SET_ATTRIBUTE' TO 'set_attribute'",
146
+ )
147
+ op.execute(
148
+ "ALTER TYPE activitytype RENAME VALUE 'STATUS_CHANGE' TO 'status_change'",
149
+ )
150
+ op.execute(
151
+ "UPDATE history set activity_type = lower(activity_type::text)::activitytype",
152
+ )
153
+
154
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'ATTRIBUTE' TO 'attribute'")
155
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'AVAILABILITY' TO 'availability'")
156
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'BACKFILL' TO 'backfill'")
157
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'CATALOG' TO 'catalog'")
158
+ op.execute(
159
+ "ALTER TYPE entitytype RENAME VALUE 'COLUMN_ATTRIBUTE' TO 'column_attribute'",
160
+ )
161
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'DEPENDENCY' TO 'dependency'")
162
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'ENGINE' TO 'engine'")
163
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'LINK' TO 'link'")
164
+ op.execute(
165
+ "ALTER TYPE entitytype RENAME VALUE 'MATERIALIZATION' TO 'materialization'",
166
+ )
167
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'NAMESPACE' TO 'namespace'")
168
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'NODE' TO 'node'")
169
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'PARTITION' TO 'partition'")
170
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'QUERY' TO 'query'")
171
+ op.execute("ALTER TYPE entitytype RENAME VALUE 'TAG' TO 'tag'")
172
+ op.execute("UPDATE history set entity_type = lower(entity_type::text)::entitytype")
173
+
174
+ op.execute("ALTER TYPE aggregationrule RENAME VALUE 'ADDITIVE' TO 'additive'")
175
+ op.execute(
176
+ "ALTER TYPE aggregationrule RENAME VALUE 'NON_ADDITIVE' TO 'non_additive'",
177
+ )
178
+ op.execute(
179
+ "ALTER TYPE aggregationrule RENAME VALUE 'SEMI_ADDITIVE' TO 'semi_additive'",
180
+ )
181
+ op.execute("UPDATE measures set additive = lower(additive::text)::aggregationrule")
182
+
183
+ op.execute("ALTER TYPE materializationstrategy RENAME VALUE 'VIEW' TO 'view'")
184
+ op.execute(
185
+ "ALTER TYPE materializationstrategy RENAME VALUE 'INCREMENTAL_TIME' TO 'incremental_time'",
186
+ )
187
+ op.execute(
188
+ "ALTER TYPE materializationstrategy "
189
+ "RENAME VALUE 'SNAPSHOT_PARTITION' TO 'snapshot_partition'",
190
+ )
191
+ op.execute(
192
+ "ALTER TYPE materializationstrategy RENAME VALUE 'SNAPSHOT' TO 'snapshot'",
193
+ )
194
+ op.execute("ALTER TYPE materializationstrategy RENAME VALUE 'FULL' TO 'full'")
195
+ op.execute(
196
+ "UPDATE materialization set strategy = lower(strategy::text)::materializationstrategy",
197
+ )
198
+
199
+ op.execute("ALTER TYPE oauthprovider RENAME VALUE 'GOOGLE' TO 'google'")
200
+ op.execute("ALTER TYPE oauthprovider RENAME VALUE 'GITHUB' TO 'github'")
201
+ op.execute("ALTER TYPE oauthprovider RENAME VALUE 'BASIC' TO 'basic'")
202
+ op.execute(
203
+ "UPDATE users set oauth_provider = lower(oauth_provider::text)::oauthprovider",
204
+ )
205
+
206
+ with op.batch_alter_table("nodenamespace", schema=None) as batch_op:
207
+ batch_op.drop_constraint("uq_nodenamespace_namespace", type_="unique")
@@ -0,0 +1,4 @@
1
+ """
2
+ Version for Hatch
3
+ """
4
+ __version__ = "0.0.1a39.dev2"
@@ -1135,7 +1135,7 @@ def hard_delete_node(
1135
1135
  Hard delete a node, destroying all links and invalidating all downstream nodes.
1136
1136
  This should be used with caution, deactivating a node is preferred.
1137
1137
  """
1138
- node = get_node_by_name(session, name, with_current=True)
1138
+ node = get_node_by_name(session, name, with_current=True, include_inactive=True)
1139
1139
  downstream_nodes = get_downstream_nodes(session=session, node_name=name)
1140
1140
 
1141
1141
  linked_nodes = []
@@ -1306,3 +1306,95 @@ def set_column_partition( # pylint: disable=too-many-locals
1306
1306
  session.commit()
1307
1307
  session.refresh(column)
1308
1308
  return column
1309
+
1310
+
1311
+ @router.post("/nodes/{name}/savecolumnorder")
1312
+ def save_column_order(
1313
+ name: str,
1314
+ session: Session = Depends(get_session),
1315
+ query_service_client: QueryServiceClient = Depends(get_query_service_client),
1316
+ ):
1317
+ node = get_node_by_name(session, name, with_current=True)
1318
+ current_node_revision = node.current
1319
+ _logger.info("Processing %s node `%s`", node.type, node.name)
1320
+
1321
+ # Only assign column orders if one or more columns lack an order value
1322
+ columns_without_order = [
1323
+ col.order for col in current_node_revision.columns if not col.order
1324
+ ]
1325
+ if columns_without_order:
1326
+ _logger.info(
1327
+ "Found columns without order for %s node `%s`",
1328
+ node.type,
1329
+ node.name,
1330
+ )
1331
+ if node.type == NodeType.SOURCE:
1332
+ column_mapping = {
1333
+ col.name: col
1334
+ for col in query_service_client.get_columns_for_table(
1335
+ current_node_revision.catalog.name,
1336
+ current_node_revision.schema_,
1337
+ current_node_revision.table,
1338
+ )
1339
+ }
1340
+ for col in current_node_revision.columns:
1341
+ col.order = column_mapping[col.name].order
1342
+ session.add(col)
1343
+ _logger.info(
1344
+ "Assigning new column order to %s node `%s`",
1345
+ node.type,
1346
+ node.name,
1347
+ )
1348
+ session.commit()
1349
+ return JSONResponse(
1350
+ status_code=200,
1351
+ content={
1352
+ "message": f"Assigned new column order to node `{node.name}`",
1353
+ "columns": [
1354
+ ColumnOutput.from_orm(col)
1355
+ for col in current_node_revision.columns
1356
+ ],
1357
+ },
1358
+ )
1359
+ if node.type in (NodeType.TRANSFORM, NodeType.DIMENSION, NodeType.METRIC):
1360
+ query_ast = parse(current_node_revision.query)
1361
+ column_mapping = {
1362
+ col.alias_or_name.name: idx
1363
+ for idx, col in enumerate(query_ast.select.projection)
1364
+ }
1365
+ for col in current_node_revision.columns:
1366
+ col.order = column_mapping[col.name]
1367
+ session.add(col)
1368
+ _logger.info(
1369
+ "Assigning new column order to %s node `%s`",
1370
+ node.type,
1371
+ node.name,
1372
+ )
1373
+ session.commit()
1374
+
1375
+ return JSONResponse(
1376
+ status_code=200,
1377
+ content={
1378
+ "message": f"Assigned new column order to node `{node.name}`",
1379
+ "columns": [
1380
+ ColumnOutput.from_orm(col).dict()
1381
+ for col in current_node_revision.columns
1382
+ ],
1383
+ },
1384
+ )
1385
+
1386
+ return JSONResponse(
1387
+ status_code=500,
1388
+ content={
1389
+ "message": f"Manual update needed for `{node.name}`.",
1390
+ "columns": [
1391
+ ColumnOutput.from_orm(col) for col in current_node_revision.columns
1392
+ ],
1393
+ },
1394
+ )
1395
+ return JSONResponse(
1396
+ status_code=200,
1397
+ content={
1398
+ "message": f"All columns for `{node.name}` have an order. Skipping update.",
1399
+ },
1400
+ )
@@ -5,6 +5,7 @@ __all__ = [
5
5
  "Catalog",
6
6
  "Column",
7
7
  "Database",
8
+ "DimensionLink",
8
9
  "Engine",
9
10
  "History",
10
11
  "Node",
@@ -21,6 +22,7 @@ from datajunction_server.database.attributetype import AttributeType, ColumnAttr
21
22
  from datajunction_server.database.catalog import Catalog
22
23
  from datajunction_server.database.column import Column
23
24
  from datajunction_server.database.database import Database, Table
25
+ from datajunction_server.database.dimensionlink import DimensionLink
24
26
  from datajunction_server.database.engine import Engine
25
27
  from datajunction_server.database.measure import Measure
26
28
  from datajunction_server.database.namespace import NodeNamespace
@@ -1,12 +1,11 @@
1
1
  """Dimension links table."""
2
2
  from typing import Dict, Optional
3
3
 
4
- from sqlalchemy import JSON, BigInteger, ForeignKey, Integer
4
+ from sqlalchemy import JSON, BigInteger, Enum, ForeignKey, Integer
5
5
  from sqlalchemy.orm import Mapped, mapped_column, relationship
6
6
 
7
7
  from datajunction_server.database.base import Base
8
8
  from datajunction_server.database.node import Node, NodeRevision
9
- from datajunction_server.models.base import sqlalchemy_enum_with_name
10
9
  from datajunction_server.models.dimensionlink import JoinCardinality, JoinType
11
10
 
12
11
 
@@ -55,7 +54,7 @@ class DimensionLink(Base): # pylint: disable=too-few-public-methods
55
54
  # Metadata about the join
56
55
  join_type: Mapped[Optional[JoinType]]
57
56
  join_cardinality: Mapped[JoinCardinality] = mapped_column(
58
- sqlalchemy_enum_with_name(JoinCardinality),
57
+ Enum(JoinCardinality),
59
58
  default=JoinCardinality.MANY_TO_ONE,
60
59
  )
61
60
 
@@ -2,10 +2,10 @@
2
2
  from typing import Optional
3
3
 
4
4
  import sqlalchemy as sa
5
+ from sqlalchemy import Enum
5
6
  from sqlalchemy.orm import Mapped, mapped_column
6
7
 
7
8
  from datajunction_server.database.base import Base
8
- from datajunction_server.models.base import sqlalchemy_enum_with_name
9
9
  from datajunction_server.models.engine import Dialect
10
10
 
11
11
 
@@ -17,12 +17,12 @@ class Engine(Base): # pylint: disable=too-few-public-methods
17
17
  __tablename__ = "engine"
18
18
 
19
19
  id: Mapped[int] = mapped_column(
20
- sa.BigInteger(),
20
+ sa.BigInteger().with_variant(sa.Integer, "sqlite"),
21
21
  primary_key=True,
22
22
  )
23
23
  name: Mapped[str]
24
24
  version: Mapped[str]
25
25
  uri: Mapped[Optional[str]]
26
26
  dialect: Mapped[Optional[Dialect]] = mapped_column(
27
- sqlalchemy_enum_with_name(Dialect),
27
+ Enum(Dialect),
28
28
  )
@@ -3,12 +3,11 @@ from datetime import datetime, timezone
3
3
  from functools import partial
4
4
  from typing import Any, Dict, Optional
5
5
 
6
- from sqlalchemy import JSON, BigInteger, DateTime, Integer, String
6
+ from sqlalchemy import JSON, BigInteger, DateTime, Enum, Integer, String
7
7
  from sqlalchemy.orm import Mapped, mapped_column
8
8
 
9
9
  from datajunction_server.database.base import Base
10
10
  from datajunction_server.enum import StrEnum
11
- from datajunction_server.models.base import sqlalchemy_enum_with_name
12
11
  from datajunction_server.typing import UTCDatetime
13
12
 
14
13
 
@@ -60,13 +59,13 @@ class History(Base): # pylint: disable=too-few-public-methods
60
59
  primary_key=True,
61
60
  )
62
61
  entity_type: Mapped[Optional[EntityType]] = mapped_column(
63
- sqlalchemy_enum_with_name(EntityType),
62
+ Enum(EntityType),
64
63
  default=None,
65
64
  )
66
65
  entity_name: Mapped[Optional[str]] = mapped_column(String, default=None)
67
66
  node: Mapped[Optional[str]] = mapped_column(String, default=None)
68
67
  activity_type: Mapped[Optional[ActivityType]] = mapped_column(
69
- sqlalchemy_enum_with_name(ActivityType),
68
+ Enum(ActivityType),
70
69
  default=None,
71
70
  )
72
71
  user: Mapped[Optional[str]] = mapped_column(String, default=None)
@@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Dict, List, Optional, Tuple
6
6
 
7
7
  import sqlalchemy as sa
8
8
  from pydantic import Extra
9
- from sqlalchemy import JSON, DateTime, ForeignKey, String, UniqueConstraint
9
+ from sqlalchemy import JSON, DateTime, Enum, ForeignKey, String, UniqueConstraint
10
10
  from sqlalchemy.orm import Mapped, mapped_column, relationship
11
11
 
12
12
  from datajunction_server.database.availabilitystate import AvailabilityState
@@ -17,11 +17,7 @@ from datajunction_server.database.materialization import Materialization
17
17
  from datajunction_server.database.metricmetadata import MetricMetadata
18
18
  from datajunction_server.database.tag import Tag
19
19
  from datajunction_server.errors import DJInvalidInputException
20
- from datajunction_server.models.base import (
21
- labelize,
22
- sqlalchemy_enum_with_name,
23
- sqlalchemy_enum_with_value,
24
- )
20
+ from datajunction_server.models.base import labelize
25
21
  from datajunction_server.models.node import (
26
22
  DEFAULT_DRAFT_VERSION,
27
23
  BuildCriteria,
@@ -159,7 +155,7 @@ class Node(Base): # pylint: disable=too-few-public-methods
159
155
  primary_key=True,
160
156
  )
161
157
  name: Mapped[str] = mapped_column(String, unique=True)
162
- type: Mapped[NodeType] = mapped_column(sqlalchemy_enum_with_name(NodeType))
158
+ type: Mapped[NodeType] = mapped_column(Enum(NodeType))
163
159
  display_name: Mapped[Optional[str]]
164
160
  namespace: Mapped[str] = mapped_column(String, default="default")
165
161
  current_version: Mapped[str] = mapped_column(
@@ -232,12 +228,12 @@ class NodeRevision(
232
228
  String,
233
229
  insert_default=lambda context: labelize(context.current_parameters.get("name")),
234
230
  )
235
- type: Mapped[NodeType] = mapped_column(sqlalchemy_enum_with_name(NodeType))
231
+ type: Mapped[NodeType] = mapped_column(Enum(NodeType))
236
232
  description: Mapped[str] = mapped_column(String, default="")
237
233
  query: Mapped[Optional[str]] = mapped_column(String)
238
234
  mode: Mapped[NodeMode] = mapped_column(
239
- sqlalchemy_enum_with_value(NodeMode),
240
- default=NodeMode.PUBLISHED.value, # pylint: disable=no-member
235
+ Enum(NodeMode),
236
+ default=NodeMode.PUBLISHED, # pylint: disable=no-member
241
237
  )
242
238
 
243
239
  version: Mapped[Optional[str]] = mapped_column(
@@ -293,7 +289,7 @@ class NodeRevision(
293
289
  )
294
290
 
295
291
  status: Mapped[NodeStatus] = mapped_column(
296
- sqlalchemy_enum_with_value(NodeStatus),
292
+ Enum(NodeStatus),
297
293
  default=NodeStatus.INVALID,
298
294
  )
299
295
  updated_at: Mapped[UTCDatetime] = mapped_column(
@@ -559,11 +555,11 @@ class NodeColumns(Base): # pylint: disable=too-few-public-methods
559
555
 
560
556
  __tablename__ = "nodecolumns"
561
557
 
562
- node_id: Mapped[int] = mapped_column(
558
+ node_id: Mapped[int] = mapped_column( # pylint: disable=unsubscriptable-object
563
559
  ForeignKey("noderevision.id", name="fk_nodecolumns_node_id_noderevision"),
564
560
  primary_key=True,
565
561
  )
566
- column_id: Mapped[int] = mapped_column(
562
+ column_id: Mapped[int] = mapped_column( # pylint: disable=unsubscriptable-object
567
563
  ForeignKey("column.id", name="fk_nodecolumns_column_id_column"),
568
564
  primary_key=True,
569
565
  )
@@ -1,12 +1,11 @@
1
1
  """User database schema."""
2
2
  from typing import Optional
3
3
 
4
- from sqlalchemy import BigInteger, Integer
4
+ from sqlalchemy import BigInteger, Enum, Integer
5
5
  from sqlalchemy.orm import Mapped, mapped_column
6
6
 
7
7
  from datajunction_server.database.base import Base
8
8
  from datajunction_server.enum import StrEnum
9
- from datajunction_server.models.base import sqlalchemy_enum_with_name
10
9
 
11
10
 
12
11
  class OAuthProvider(StrEnum):
@@ -33,6 +32,6 @@ class User(Base): # pylint: disable=too-few-public-methods
33
32
  email: Mapped[Optional[str]]
34
33
  name: Mapped[Optional[str]]
35
34
  oauth_provider: Mapped[OAuthProvider] = mapped_column(
36
- sqlalchemy_enum_with_name(OAuthProvider),
35
+ Enum(OAuthProvider),
37
36
  )
38
37
  is_admin: Mapped[bool] = mapped_column(default=False)
@@ -25,6 +25,12 @@ from datajunction_server.models.node_type import NodeType
25
25
  from datajunction_server.typing import UTCDatetime
26
26
  from datajunction_server.utils import SEPARATOR
27
27
 
28
+ # A list of namespace names that cannot be used because they are
29
+ # part of a list of reserved SQL keywords
30
+ RESERVED_NAMESPACE_NAMES = [
31
+ "user",
32
+ ]
33
+
28
34
 
29
35
  def get_nodes_in_namespace(
30
36
  session: Session,
@@ -182,10 +188,10 @@ def validate_namespace(namespace: str):
182
188
  """
183
189
  parts = namespace.split(SEPARATOR)
184
190
  for part in parts:
185
- if not part or (part and part[0].isdigit()):
191
+ if not part or (part and part[0].isdigit()) or part in RESERVED_NAMESPACE_NAMES:
186
192
  raise DJInvalidInputException(
187
- f"{namespace} is not a valid namespace. Namespace parts cannot start with "
188
- "numbers or be empty.",
193
+ f"{namespace} is not a valid namespace. Namespace parts cannot start with numbers"
194
+ f", be empty, or use the reserved keyword [{', '.join(RESERVED_NAMESPACE_NAMES)}]",
189
195
  )
190
196
 
191
197
 
@@ -281,6 +287,7 @@ def hard_delete_namespace(
281
287
  "status": "deleted",
282
288
  }
283
289
  session.delete(_namespace)
290
+ session.commit()
284
291
  return impacts
285
292
 
286
293
 
@@ -1,8 +1,6 @@
1
1
  """
2
2
  A base SQLModel class with a default naming convention.
3
3
  """
4
- import sqlalchemy as sa
5
-
6
4
  NAMING_CONVENTION = {
7
5
  "ix": "ix_%(column_0_label)s",
8
6
  "uq": "uq_%(table_name)s_%(column_0_name)s",
@@ -12,23 +10,6 @@ NAMING_CONVENTION = {
12
10
  }
13
11
 
14
12
 
15
- def sqlalchemy_enum_with_name(enum_type):
16
- """
17
- SQLAlchemy-compatible enum type using the enum's names as values
18
- """
19
- return sa.Enum(enum_type, values_callable=lambda obj: [e.name for e in obj])
20
-
21
-
22
- def sqlalchemy_enum_with_value(enum_type):
23
- """
24
- SQLAlchemy-compatible enum type using the enum's values as values
25
- """
26
- return sa.Enum(
27
- enum_type,
28
- values_callable=lambda obj: [e.value for e in obj],
29
- )
30
-
31
-
32
13
  def labelize(value: str) -> str:
33
14
  """
34
15
  Turn a system name into a human-readable name.
@@ -15,7 +15,7 @@ class MutableTagFields(BaseModel):
15
15
  Tag fields that can be changed.
16
16
  """
17
17
 
18
- description: str
18
+ description: Optional[str]
19
19
  display_name: Optional[str]
20
20
  tag_metadata: Optional[Dict[str, Any]] = {}
21
21