polyglot-sql 0.6.0__tar.gz → 0.6.2__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 (202) hide show
  1. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/Cargo.lock +6 -6
  2. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/Cargo.toml +1 -1
  3. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/PKG-INFO +1 -1
  4. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/Cargo.toml +6 -2
  5. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/README.md +1 -1
  6. polyglot_sql-0.6.2/crates/polyglot-sql/benches/lineage.rs +129 -0
  7. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/builder.rs +1 -0
  8. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/mod.rs +1030 -45
  9. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/json.rs +197 -10
  10. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/mod.rs +85 -4
  11. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/operators.rs +39 -1
  12. polyglot_sql-0.6.2/crates/polyglot-sql/src/dialects/normalization/postgres_interval.rs +833 -0
  13. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/scalar.rs +40 -1
  14. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/statements.rs +20 -0
  15. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/temporal.rs +515 -0
  16. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/types.rs +97 -0
  17. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/snowflake.rs +8 -0
  18. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/tsql.rs +159 -4
  19. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/expressions.rs +132 -0
  20. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/generator.rs +325 -12
  21. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/lineage.rs +318 -107
  22. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/parser.rs +678 -7
  23. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/tokens.rs +133 -126
  24. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/transforms.rs +126 -2
  25. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/common/test_runner.rs +4 -4
  26. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/transpilation.json +2 -2
  27. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/dialect_matrix.rs +694 -3
  28. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/fabric_regression.rs +397 -32
  29. polyglot_sql-0.6.2/crates/polyglot-sql/tests/postgres_explain_options.rs +106 -0
  30. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/snowflake_regression_test.rs +82 -1
  31. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_compat.rs +146 -1
  32. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/transform_regression.rs +136 -1
  33. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/tsql_regression.rs +455 -30
  34. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-ast-derive/Cargo.toml +3 -1
  35. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/expr_types.rs +2 -0
  36. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_parse.py +23 -0
  37. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/python/polyglot_sql/__init__.py +4 -0
  38. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/python/polyglot_sql/__init__.pyi +2 -0
  39. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/README.md +0 -0
  40. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/allocation_hotspots.rs +0 -0
  41. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/ast_traversal.rs +0 -0
  42. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/in_list.rs +0 -0
  43. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/parsing.rs +0 -0
  44. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/performance_hotspots.rs +0 -0
  45. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/rust_parsing.rs +0 -0
  46. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/benches/transpile.rs +0 -0
  47. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/examples/basic_usage.rs +0 -0
  48. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/examples/bench_json.rs +0 -0
  49. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/ast_children.rs +0 -0
  50. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/ast_json.rs +0 -0
  51. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/ast_transforms.rs +0 -0
  52. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/athena.rs +0 -0
  53. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/bigquery.rs +0 -0
  54. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/clickhouse.rs +0 -0
  55. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/cockroachdb.rs +0 -0
  56. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/databricks.rs +0 -0
  57. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/datafusion.rs +0 -0
  58. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/doris.rs +0 -0
  59. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/dremio.rs +0 -0
  60. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/drill.rs +0 -0
  61. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/druid.rs +0 -0
  62. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/duckdb.rs +0 -0
  63. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/dune.rs +0 -0
  64. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/exasol.rs +0 -0
  65. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/fabric.rs +0 -0
  66. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/generic.rs +0 -0
  67. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/hive.rs +0 -0
  68. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/materialize.rs +0 -0
  69. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/mysql.rs +0 -0
  70. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/aggregates.rs +0 -0
  71. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/normalization/collections.rs +0 -0
  72. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/oracle.rs +0 -0
  73. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/postgres.rs +0 -0
  74. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/presto.rs +0 -0
  75. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/redshift.rs +0 -0
  76. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/risingwave.rs +0 -0
  77. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/singlestore.rs +0 -0
  78. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/solr.rs +0 -0
  79. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/spark.rs +0 -0
  80. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/sqlite.rs +0 -0
  81. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/starrocks.rs +0 -0
  82. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/tableau.rs +0 -0
  83. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/teradata.rs +0 -0
  84. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/tidb.rs +0 -0
  85. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/dialects/trino.rs +0 -0
  86. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/diff.rs +0 -0
  87. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/error.rs +0 -0
  88. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/format_tokens.rs +0 -0
  89. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/function_catalog.rs +0 -0
  90. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/function_registry.rs +0 -0
  91. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/guard.rs +0 -0
  92. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/helper.rs +0 -0
  93. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/lib.rs +0 -0
  94. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/openlineage.rs +0 -0
  95. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/annotate_types.rs +0 -0
  96. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/canonicalize.rs +0 -0
  97. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/eliminate_ctes.rs +0 -0
  98. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/eliminate_joins.rs +0 -0
  99. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/isolate_table_selects.rs +0 -0
  100. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/mod.rs +0 -0
  101. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/normalize.rs +0 -0
  102. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/normalize_identifiers.rs +0 -0
  103. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/optimize_joins.rs +0 -0
  104. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/optimizer.rs +0 -0
  105. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/pushdown_predicates.rs +0 -0
  106. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/pushdown_projections.rs +0 -0
  107. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/qualify_columns.rs +0 -0
  108. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/qualify_tables.rs +0 -0
  109. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/simplify.rs +0 -0
  110. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/optimizer/subquery.rs +0 -0
  111. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/planner.rs +0 -0
  112. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/query_analysis.rs +0 -0
  113. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/resolver.rs +0 -0
  114. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/schema.rs +0 -0
  115. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/scope.rs +0 -0
  116. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/time.rs +0 -0
  117. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/traversal.rs +0 -0
  118. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/trie.rs +0 -0
  119. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/validation/tests.rs +0 -0
  120. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/src/validation.rs +0 -0
  121. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/analyze_failures.rs +0 -0
  122. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/clickhouse_regression.rs +0 -0
  123. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/common/known_failures.rs +0 -0
  124. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/common/mod.rs +0 -0
  125. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/common/test_data.rs +0 -0
  126. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/create_view_security_comment_regression.rs +0 -0
  127. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_clickhouse_coverage.rs +0 -0
  128. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_clickhouse_parser.rs +0 -0
  129. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_dialect.rs +0 -0
  130. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_dialect_tests.rs +0 -0
  131. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/ddl.json +0 -0
  132. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/dml.json +0 -0
  133. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/functions.json +0 -0
  134. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/identity.json +0 -0
  135. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/operators.json +0 -0
  136. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/select.json +0 -0
  137. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/custom_fixtures/datafusion/types.json +0 -0
  138. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/data_type_api.rs +0 -0
  139. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/deep_nesting_regression.rs +0 -0
  140. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/error_handling.rs +0 -0
  141. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/fabric_tpch_regression.rs +0 -0
  142. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/identity_roundtrip.rs +0 -0
  143. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/postgres_regexp_clickhouse.rs +0 -0
  144. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/postgres_sqlite_regression.rs +0 -0
  145. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/query_analysis.rs +0 -0
  146. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/query_analysis_regression.rs +0 -0
  147. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_dialect_identity.rs +0 -0
  148. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_identity.rs +0 -0
  149. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_identity_detailed.rs +0 -0
  150. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_parser.rs +0 -0
  151. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_pretty.rs +0 -0
  152. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_transpilation.rs +0 -0
  153. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/sqlglot_transpile.rs +0 -0
  154. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql/tests/tpch_transpile_stack.rs +0 -0
  155. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-ast-derive/src/lib.rs +0 -0
  156. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/Cargo.toml +0 -0
  157. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/README.md +0 -0
  158. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/src/clickhouse.rs +0 -0
  159. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/src/duckdb.rs +0 -0
  160. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/src/lib.rs +0 -0
  161. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/tools/clickhouse/extract_functions.py +0 -0
  162. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-function-catalogs/tools/duckdb/extract_functions.py +0 -0
  163. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/Cargo.toml +0 -0
  164. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/README.md +0 -0
  165. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/docs/api.md +0 -0
  166. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/docs/index.md +0 -0
  167. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/mkdocs.yml +0 -0
  168. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/annotate_types.rs +0 -0
  169. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/dialects.rs +0 -0
  170. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/diff.rs +0 -0
  171. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/errors.rs +0 -0
  172. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/expr.rs +0 -0
  173. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/format.rs +0 -0
  174. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/generate.rs +0 -0
  175. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/helpers.rs +0 -0
  176. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/lib.rs +0 -0
  177. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/lineage.rs +0 -0
  178. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/openlineage.rs +0 -0
  179. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/optimize.rs +0 -0
  180. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/parse.rs +0 -0
  181. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/query_analysis.rs +0 -0
  182. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/tokenize.rs +0 -0
  183. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/transforms.rs +0 -0
  184. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/transpile.rs +0 -0
  185. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/types.rs +0 -0
  186. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/src/validate.rs +0 -0
  187. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/conftest.py +0 -0
  188. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_compat.py +0 -0
  189. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_dialects.py +0 -0
  190. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_diff.py +0 -0
  191. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_expression.py +0 -0
  192. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_format.py +0 -0
  193. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_generate.py +0 -0
  194. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_lineage.py +0 -0
  195. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_optimize.py +0 -0
  196. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_query_analysis.py +0 -0
  197. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_transforms.py +0 -0
  198. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_transpile.py +0 -0
  199. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/tests/test_validate.py +0 -0
  200. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/crates/polyglot-sql-python/uv.lock +0 -0
  201. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/pyproject.toml +0 -0
  202. {polyglot_sql-0.6.0 → polyglot_sql-0.6.2}/python/polyglot_sql/py.typed +0 -0
@@ -605,7 +605,7 @@ dependencies = [
605
605
 
606
606
  [[package]]
607
607
  name = "polyglot-sql"
608
- version = "0.6.0"
608
+ version = "0.6.2"
609
609
  dependencies = [
610
610
  "criterion",
611
611
  "once_cell",
@@ -623,7 +623,7 @@ dependencies = [
623
623
 
624
624
  [[package]]
625
625
  name = "polyglot-sql-ast-derive"
626
- version = "0.6.0"
626
+ version = "0.6.2"
627
627
  dependencies = [
628
628
  "proc-macro2",
629
629
  "quote",
@@ -632,7 +632,7 @@ dependencies = [
632
632
 
633
633
  [[package]]
634
634
  name = "polyglot-sql-ffi"
635
- version = "0.6.0"
635
+ version = "0.6.2"
636
636
  dependencies = [
637
637
  "cbindgen",
638
638
  "polyglot-sql",
@@ -642,11 +642,11 @@ dependencies = [
642
642
 
643
643
  [[package]]
644
644
  name = "polyglot-sql-function-catalogs"
645
- version = "0.6.0"
645
+ version = "0.6.2"
646
646
 
647
647
  [[package]]
648
648
  name = "polyglot-sql-python"
649
- version = "0.6.0"
649
+ version = "0.6.2"
650
650
  dependencies = [
651
651
  "polyglot-sql",
652
652
  "pyo3",
@@ -657,7 +657,7 @@ dependencies = [
657
657
 
658
658
  [[package]]
659
659
  name = "polyglot-sql-wasm"
660
- version = "0.6.0"
660
+ version = "0.6.2"
661
661
  dependencies = [
662
662
  "console_error_panic_hook",
663
663
  "js-sys",
@@ -6,7 +6,7 @@ exclude = [
6
6
  ]
7
7
 
8
8
  [workspace.package]
9
- version = "0.6.0"
9
+ version = "0.6.2"
10
10
  edition = "2021"
11
11
  license = "MIT"
12
12
  authors = ["polyglot contributors"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: polyglot-sql
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -100,14 +100,14 @@ function-catalog-all-dialects = [
100
100
  ]
101
101
 
102
102
  [dependencies]
103
- polyglot-sql-ast-derive = { path = "../polyglot-sql-ast-derive" }
103
+ polyglot-sql-ast-derive = { path = "../polyglot-sql-ast-derive", version = "0.6.2" }
104
104
  serde = { workspace = true }
105
105
  serde_json = { workspace = true }
106
106
  thiserror = { workspace = true }
107
107
  unicode-segmentation = { workspace = true }
108
108
  stacker = { version = "0.1", optional = true }
109
109
  ts-rs = { version = "12.0", features = ["serde-compat"], optional = true }
110
- polyglot-sql-function-catalogs = { path = "../polyglot-sql-function-catalogs", version = "0.6.0", optional = true, default-features = false }
110
+ polyglot-sql-function-catalogs = { path = "../polyglot-sql-function-catalogs", version = "0.6.2", optional = true, default-features = false }
111
111
 
112
112
  [dev-dependencies]
113
113
  pretty_assertions = "1.4"
@@ -142,3 +142,7 @@ harness = false
142
142
  [[bench]]
143
143
  name = "allocation_hotspots"
144
144
  harness = false
145
+
146
+ [[bench]]
147
+ name = "lineage"
148
+ harness = false
@@ -25,7 +25,7 @@ By default, `polyglot-sql` enables the full public API. Parser-only consumers ca
25
25
  disable default features and opt into only the dialect parsers they need:
26
26
 
27
27
  ```toml
28
- polyglot-sql = { version = "0.6.0", default-features = false }
28
+ polyglot-sql = { version = "0.6.2", default-features = false }
29
29
  ```
30
30
 
31
31
  ```toml
@@ -0,0 +1,129 @@
1
+ use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, SamplingMode};
2
+ use polyglot_sql::dialects::DialectType;
3
+ use polyglot_sql::lineage::lineage;
4
+ use polyglot_sql::parse_one;
5
+ use std::fmt::Write as _;
6
+ use std::hint::black_box;
7
+ use std::time::Duration;
8
+
9
+ const CTE_COUNTS: [usize; 4] = [4, 8, 16, 24];
10
+ const CTE_REFERENCE_COUNTS: [usize; 4] = [2, 4, 8, 16];
11
+
12
+ fn build_cte_chain(n: usize) -> String {
13
+ let mut sql = String::from(
14
+ "WITH\n c0 AS (\n SELECT x AS col, y FROM base_table WHERE y > 0\n \
15
+ UNION ALL\n SELECT x AS col, y FROM base_table WHERE y <= 0\n )",
16
+ );
17
+ for i in 1..n {
18
+ let _ = write!(
19
+ &mut sql,
20
+ ",\n c{i} AS (\n SELECT c{prev}.col AS col, c{prev}.y AS y FROM c{prev}\n \
21
+ UNION ALL\n SELECT x AS col, y FROM base_table\n )",
22
+ i = i,
23
+ prev = i - 1,
24
+ );
25
+ }
26
+ let _ = write!(&mut sql, "\nSELECT col FROM c{}", n - 1);
27
+ sql
28
+ }
29
+
30
+ fn build_nested_cte_chain(n: usize) -> String {
31
+ let mut sql = "SELECT x AS col FROM base_table".to_string();
32
+ for i in 0..n {
33
+ sql = format!("WITH c{i} AS ({sql}) SELECT col FROM c{i}");
34
+ }
35
+ sql
36
+ }
37
+
38
+ fn build_reused_nested_cte(reference_count: usize) -> String {
39
+ let projection = (0..reference_count)
40
+ .map(|i| format!("s{i}.col"))
41
+ .collect::<Vec<_>>()
42
+ .join(" + ");
43
+ let sources = (0..reference_count)
44
+ .map(|i| format!("shared AS s{i}"))
45
+ .collect::<Vec<_>>()
46
+ .join(" CROSS JOIN ");
47
+
48
+ format!(
49
+ "WITH shared AS (\
50
+ WITH nested AS (SELECT x AS col FROM base_table) \
51
+ SELECT col FROM nested\
52
+ ) SELECT {projection} AS col FROM {sources}"
53
+ )
54
+ }
55
+
56
+ fn configure_group(group: &mut criterion::BenchmarkGroup<'_, criterion::measurement::WallTime>) {
57
+ group.sampling_mode(SamplingMode::Flat);
58
+ group.warm_up_time(Duration::from_secs(1));
59
+ group.sample_size(30);
60
+ group.measurement_time(Duration::from_secs(5));
61
+ }
62
+
63
+ fn bench_lineage(
64
+ group: &mut criterion::BenchmarkGroup<'_, criterion::measurement::WallTime>,
65
+ n: usize,
66
+ sql: &str,
67
+ ) {
68
+ let expr = parse_one(sql, DialectType::Generic).expect("benchmark query should parse");
69
+
70
+ assert!(
71
+ lineage("col", &expr, Some(DialectType::Generic), false).is_ok(),
72
+ "lineage should resolve for n={n} (did we exceed MAX_LINEAGE_DEPTH?)",
73
+ );
74
+
75
+ group.bench_with_input(BenchmarkId::from_parameter(n), &expr, |b, expr| {
76
+ b.iter(|| {
77
+ black_box(lineage(
78
+ black_box("col"),
79
+ black_box(expr),
80
+ Some(DialectType::Generic),
81
+ false,
82
+ ))
83
+ });
84
+ });
85
+ }
86
+
87
+ fn bench_cte_chain(c: &mut Criterion) {
88
+ let mut group = c.benchmark_group("lineage_cte_chain");
89
+ configure_group(&mut group);
90
+
91
+ for n in CTE_COUNTS {
92
+ let sql = build_cte_chain(n);
93
+ bench_lineage(&mut group, n, &sql);
94
+ }
95
+
96
+ group.finish();
97
+ }
98
+
99
+ fn bench_nested_cte_chain(c: &mut Criterion) {
100
+ let mut group = c.benchmark_group("lineage_nested_cte_chain");
101
+ configure_group(&mut group);
102
+
103
+ for n in CTE_COUNTS {
104
+ let sql = build_nested_cte_chain(n);
105
+ bench_lineage(&mut group, n, &sql);
106
+ }
107
+
108
+ group.finish();
109
+ }
110
+
111
+ fn bench_reused_nested_cte(c: &mut Criterion) {
112
+ let mut group = c.benchmark_group("lineage_reused_nested_cte");
113
+ configure_group(&mut group);
114
+
115
+ for n in CTE_REFERENCE_COUNTS {
116
+ let sql = build_reused_nested_cte(n);
117
+ bench_lineage(&mut group, n, &sql);
118
+ }
119
+
120
+ group.finish();
121
+ }
122
+
123
+ criterion_group!(
124
+ benches,
125
+ bench_cte_chain,
126
+ bench_nested_cte_chain,
127
+ bench_reused_nested_cte
128
+ );
129
+ criterion_main!(benches);
@@ -1638,6 +1638,7 @@ impl SelectBuilder {
1638
1638
  partition_of: None,
1639
1639
  post_table_properties: vec![],
1640
1640
  mysql_table_options: vec![],
1641
+ tidb_table_options: vec![],
1641
1642
  inherits: vec![],
1642
1643
  on_property: None,
1643
1644
  copy_grants: false,