polyglot-sql 0.13.3__tar.gz → 0.13.4__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 (238) hide show
  1. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/Cargo.lock +6 -6
  2. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/Cargo.toml +1 -1
  3. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/PKG-INFO +1 -1
  4. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/Cargo.toml +2 -2
  5. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/README.md +4 -4
  6. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/clickhouse.rs +3 -2
  7. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/mod.rs +5 -0
  8. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/statements.rs +19 -7
  9. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/expressions.rs +11 -0
  10. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/generator.rs +509 -82
  11. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/parser.rs +732 -109
  12. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/query_analysis/column_uses.rs +17 -9
  13. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/scope.rs +95 -4
  14. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/tokens.rs +10 -2
  15. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/deep_nesting_regression.rs +18 -0
  16. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/dialect_matrix.rs +138 -0
  17. polyglot_sql-0.13.4/crates/polyglot-sql/tests/duckdb_json_arrow_context.rs +398 -0
  18. polyglot_sql-0.13.4/crates/polyglot-sql/tests/duckdb_unreserved_relation_aliases.rs +98 -0
  19. polyglot_sql-0.13.4/crates/polyglot-sql/tests/is_predicate_precedence.rs +288 -0
  20. polyglot_sql-0.13.4/crates/polyglot-sql/tests/numeric_exponent_boundaries.rs +45 -0
  21. polyglot_sql-0.13.4/crates/polyglot-sql/tests/query_analysis_regression.rs +418 -0
  22. polyglot_sql-0.13.4/crates/polyglot-sql/tests/quoted_relation_columns.rs +250 -0
  23. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-function-catalogs/README.md +1 -1
  24. polyglot_sql-0.13.3/crates/polyglot-sql/tests/query_analysis_regression.rs +0 -201
  25. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/README.md +0 -0
  26. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/benches/allocation_hotspots.rs +0 -0
  27. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/benches/ast_traversal.rs +0 -0
  28. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/benches/common/mod.rs +0 -0
  29. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/benches/in_list.rs +0 -0
  30. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/benches/lineage.rs +0 -0
  31. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/benches/parsing.rs +0 -0
  32. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/benches/performance_hotspots.rs +0 -0
  33. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/benches/rust_parsing.rs +0 -0
  34. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/benches/transpile.rs +0 -0
  35. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/examples/basic_usage.rs +0 -0
  36. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/examples/bench_json.rs +0 -0
  37. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/ast_children.rs +0 -0
  38. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/ast_json.rs +0 -0
  39. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/ast_mutation.rs +0 -0
  40. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/ast_transforms.rs +0 -0
  41. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/binding.rs +0 -0
  42. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/builder/mod.rs +0 -0
  43. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/builder/plan.rs +0 -0
  44. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/athena.rs +0 -0
  45. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/bigquery.rs +0 -0
  46. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/cockroachdb.rs +0 -0
  47. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/databricks.rs +0 -0
  48. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/datafusion.rs +0 -0
  49. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/doris.rs +0 -0
  50. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/dremio.rs +0 -0
  51. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/drill.rs +0 -0
  52. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/druid.rs +0 -0
  53. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/duckdb.rs +0 -0
  54. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/dune.rs +0 -0
  55. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/exasol.rs +0 -0
  56. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/fabric.rs +0 -0
  57. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/generic.rs +0 -0
  58. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/hana.rs +0 -0
  59. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/hive.rs +0 -0
  60. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/materialize.rs +0 -0
  61. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/mysql.rs +0 -0
  62. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/aggregates.rs +0 -0
  63. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/collections.rs +0 -0
  64. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/duckdb.rs +0 -0
  65. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/hana.rs +0 -0
  66. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/json.rs +0 -0
  67. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/mod.rs +0 -0
  68. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/operators.rs +0 -0
  69. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/postgres_interval.rs +0 -0
  70. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/scalar.rs +0 -0
  71. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/temporal.rs +0 -0
  72. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/types.rs +0 -0
  73. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/normalization/vertica.rs +0 -0
  74. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/oracle.rs +0 -0
  75. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/postgres.rs +0 -0
  76. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/presto.rs +0 -0
  77. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/redshift.rs +0 -0
  78. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/risingwave.rs +0 -0
  79. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/singlestore.rs +0 -0
  80. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/snowflake.rs +0 -0
  81. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/solr.rs +0 -0
  82. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/spark.rs +0 -0
  83. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/sqlite.rs +0 -0
  84. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/starrocks.rs +0 -0
  85. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/tableau.rs +0 -0
  86. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/teradata.rs +0 -0
  87. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/tidb.rs +0 -0
  88. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/trino.rs +0 -0
  89. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/tsql.rs +0 -0
  90. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/dialects/vertica.rs +0 -0
  91. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/diff.rs +0 -0
  92. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/error.rs +0 -0
  93. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/format_tokens.rs +0 -0
  94. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/function_catalog.rs +0 -0
  95. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/function_registry.rs +0 -0
  96. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/guard.rs +0 -0
  97. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/helper.rs +0 -0
  98. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/lib.rs +0 -0
  99. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/lineage.rs +0 -0
  100. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/openlineage.rs +0 -0
  101. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/annotate_types.rs +0 -0
  102. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/canonicalize.rs +0 -0
  103. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/eliminate_ctes.rs +0 -0
  104. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/eliminate_joins.rs +0 -0
  105. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/isolate_table_selects.rs +0 -0
  106. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/mod.rs +0 -0
  107. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/normalize.rs +0 -0
  108. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/normalize_identifiers.rs +0 -0
  109. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/optimize_joins.rs +0 -0
  110. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/optimizer.rs +0 -0
  111. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/pushdown_predicates.rs +0 -0
  112. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/pushdown_projections.rs +0 -0
  113. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/qualify_columns.rs +0 -0
  114. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/qualify_tables.rs +0 -0
  115. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/set_operation_types.rs +0 -0
  116. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/simplify.rs +0 -0
  117. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/optimizer/subquery.rs +0 -0
  118. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/planner.rs +0 -0
  119. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/query_analysis.rs +0 -0
  120. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/resolver.rs +0 -0
  121. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/schema.rs +0 -0
  122. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/set_operation.rs +0 -0
  123. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/time.rs +0 -0
  124. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/transforms.rs +0 -0
  125. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/traversal.rs +0 -0
  126. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/trie.rs +0 -0
  127. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/validation/semantics.rs +0 -0
  128. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/validation/tests.rs +0 -0
  129. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/src/validation.rs +0 -0
  130. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/analyze_failures.rs +0 -0
  131. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/clickhouse_regression.rs +0 -0
  132. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/common/known_failures.rs +0 -0
  133. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/common/mod.rs +0 -0
  134. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/common/test_data.rs +0 -0
  135. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/common/test_runner.rs +0 -0
  136. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/create_view_security_comment_regression.rs +0 -0
  137. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_clickhouse_coverage.rs +0 -0
  138. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_clickhouse_parser.rs +0 -0
  139. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_dialect.rs +0 -0
  140. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_dialect_tests.rs +0 -0
  141. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/datafusion/ddl.json +0 -0
  142. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/datafusion/dml.json +0 -0
  143. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/datafusion/functions.json +0 -0
  144. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/datafusion/identity.json +0 -0
  145. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/datafusion/operators.json +0 -0
  146. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/datafusion/select.json +0 -0
  147. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/datafusion/transpilation.json +0 -0
  148. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/datafusion/types.json +0 -0
  149. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/hana/ddl.json +0 -0
  150. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/hana/dml.json +0 -0
  151. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/hana/functions.json +0 -0
  152. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/hana/identity.json +0 -0
  153. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/hana/select.json +0 -0
  154. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/hana/types.json +0 -0
  155. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/vertica/identity.json +0 -0
  156. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/vertica/transpilation.json +0 -0
  157. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/custom_fixtures/vertica/types.json +0 -0
  158. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/data_type_api.rs +0 -0
  159. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/duckdb_integer_division.rs +0 -0
  160. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/duckdb_order_by_all.rs +0 -0
  161. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/error_handling.rs +0 -0
  162. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/fabric_regression.rs +0 -0
  163. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/fabric_tpch_regression.rs +0 -0
  164. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/identity_roundtrip.rs +0 -0
  165. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/mod_precedence.rs +0 -0
  166. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/oracle_data_types_regression.rs +0 -0
  167. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/postgres_explain_options.rs +0 -0
  168. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/postgres_regexp_clickhouse.rs +0 -0
  169. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/postgres_sqlite_regression.rs +0 -0
  170. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/query_analysis.rs +0 -0
  171. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/snowflake_regression_test.rs +0 -0
  172. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/sqlglot_compat.rs +0 -0
  173. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/sqlglot_dialect_identity.rs +0 -0
  174. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/sqlglot_identity.rs +0 -0
  175. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/sqlglot_identity_detailed.rs +0 -0
  176. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/sqlglot_parser.rs +0 -0
  177. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/sqlglot_pretty.rs +0 -0
  178. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/sqlglot_transpilation.rs +0 -0
  179. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/sqlglot_transpile.rs +0 -0
  180. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/tpch_transpile_stack.rs +0 -0
  181. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/transform_regression.rs +0 -0
  182. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql/tests/tsql_regression.rs +0 -0
  183. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-ast-derive/Cargo.toml +0 -0
  184. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-ast-derive/src/lib.rs +0 -0
  185. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-function-catalogs/Cargo.toml +0 -0
  186. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-function-catalogs/src/clickhouse.rs +0 -0
  187. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-function-catalogs/src/duckdb.rs +0 -0
  188. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-function-catalogs/src/lib.rs +0 -0
  189. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-function-catalogs/tools/clickhouse/extract_functions.py +0 -0
  190. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-function-catalogs/tools/duckdb/extract_functions.py +0 -0
  191. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/Cargo.toml +0 -0
  192. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/README.md +0 -0
  193. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/docs/api.md +0 -0
  194. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/docs/index.md +0 -0
  195. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/mkdocs.yml +0 -0
  196. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/annotate_types.rs +0 -0
  197. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/builders.rs +0 -0
  198. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/dialects.rs +0 -0
  199. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/diff.rs +0 -0
  200. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/errors.rs +0 -0
  201. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/expr.rs +0 -0
  202. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/expr_types.rs +0 -0
  203. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/format.rs +0 -0
  204. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/generate.rs +0 -0
  205. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/helpers.rs +0 -0
  206. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/lib.rs +0 -0
  207. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/lineage.rs +0 -0
  208. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/openlineage.rs +0 -0
  209. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/optimize.rs +0 -0
  210. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/parse.rs +0 -0
  211. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/query_analysis.rs +0 -0
  212. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/tokenize.rs +0 -0
  213. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/transforms.rs +0 -0
  214. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/transpile.rs +0 -0
  215. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/types.rs +0 -0
  216. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/src/validate.rs +0 -0
  217. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/conftest.py +0 -0
  218. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_builders.py +0 -0
  219. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_compat.py +0 -0
  220. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_dialects.py +0 -0
  221. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_diff.py +0 -0
  222. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_duckdb_datafusion_execution.py +0 -0
  223. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_expression.py +0 -0
  224. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_format.py +0 -0
  225. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_generate.py +0 -0
  226. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_lineage.py +0 -0
  227. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_optimize.py +0 -0
  228. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_parse.py +0 -0
  229. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_query_analysis.py +0 -0
  230. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_transforms.py +0 -0
  231. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_transpile.py +0 -0
  232. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/tests/test_validate.py +0 -0
  233. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/crates/polyglot-sql-python/uv.lock +0 -0
  234. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/pyproject.toml +0 -0
  235. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/python/polyglot_sql/__init__.py +0 -0
  236. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/python/polyglot_sql/__init__.pyi +0 -0
  237. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/python/polyglot_sql/analysis_types.py +0 -0
  238. {polyglot_sql-0.13.3 → polyglot_sql-0.13.4}/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.13.3"
608
+ version = "0.13.4"
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.13.3"
626
+ version = "0.13.4"
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.13.3"
635
+ version = "0.13.4"
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.13.3"
645
+ version = "0.13.4"
646
646
 
647
647
  [[package]]
648
648
  name = "polyglot-sql-python"
649
- version = "0.13.3"
649
+ version = "0.13.4"
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.13.3"
660
+ version = "0.13.4"
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.13.3"
9
+ version = "0.13.4"
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.13.3
3
+ Version: 0.13.4
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -103,14 +103,14 @@ function-catalog-all-dialects = [
103
103
  ]
104
104
 
105
105
  [dependencies]
106
- polyglot-sql-ast-derive = { path = "../polyglot-sql-ast-derive", version = "0.13.3" }
106
+ polyglot-sql-ast-derive = { path = "../polyglot-sql-ast-derive", version = "0.13.4" }
107
107
  serde = { workspace = true }
108
108
  serde_json = { workspace = true }
109
109
  thiserror = { workspace = true }
110
110
  unicode-segmentation = { workspace = true }
111
111
  stacker = { version = "0.1", optional = true }
112
112
  ts-rs = { version = "12.0", features = ["serde-compat"], optional = true }
113
- polyglot-sql-function-catalogs = { path = "../polyglot-sql-function-catalogs", version = "0.13.3", optional = true, default-features = false }
113
+ polyglot-sql-function-catalogs = { path = "../polyglot-sql-function-catalogs", version = "0.13.4", optional = true, default-features = false }
114
114
 
115
115
  [dev-dependencies]
116
116
  pretty_assertions = "1.4"
@@ -25,12 +25,12 @@ 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.13.3", default-features = false }
28
+ polyglot-sql = { version = "0.13.4", default-features = false }
29
29
  ```
30
30
 
31
31
  ```toml
32
32
  polyglot-sql = {
33
- version = "0.13.3",
33
+ version = "0.13.4",
34
34
  default-features = false,
35
35
  features = ["dialect-clickhouse"],
36
36
  }
@@ -44,14 +44,14 @@ Examples:
44
44
  ```toml
45
45
  # Parse and generate SQL for one dialect.
46
46
  polyglot-sql = {
47
- version = "0.13.3",
47
+ version = "0.13.4",
48
48
  default-features = false,
49
49
  features = ["generate", "dialect-clickhouse"],
50
50
  }
51
51
 
52
52
  # Cross-dialect transpilation.
53
53
  polyglot-sql = {
54
- version = "0.13.3",
54
+ version = "0.13.4",
55
55
  default-features = false,
56
56
  features = ["transpile", "dialect-clickhouse", "dialect-postgresql"],
57
57
  }
@@ -111,6 +111,9 @@ impl DialectImpl for ClickHouseDialect {
111
111
 
112
112
  let wrap_not_target = |expr: Expression| -> Expression {
113
113
  match expr {
114
+ // The generator emits typed negated LIKE predicates directly.
115
+ // Keep that form stable when reparsing lowered notLike calls.
116
+ Expression::Like(_) | Expression::ILike(_) => expr,
114
117
  Expression::Paren(_) => expr,
115
118
  Expression::In(_)
116
119
  | Expression::Between(_)
@@ -119,8 +122,6 @@ impl DialectImpl for ClickHouseDialect {
119
122
  | Expression::IsTrue(_)
120
123
  | Expression::IsFalse(_)
121
124
  | Expression::IsJson(_)
122
- | Expression::Like(_)
123
- | Expression::ILike(_)
124
125
  | Expression::SimilarTo(_)
125
126
  | Expression::Glob(_)
126
127
  | Expression::RegexpLike(_)
@@ -947,6 +947,8 @@ where
947
947
  | Expression::BitwiseAnd(_)
948
948
  | Expression::BitwiseOr(_)
949
949
  | Expression::BitwiseXor(_)
950
+ | Expression::BitwiseLeftShift(_)
951
+ | Expression::BitwiseRightShift(_)
950
952
  | Expression::Is(_)
951
953
  | Expression::MemberOf(_)
952
954
  | Expression::ArrayContainsAll(_)
@@ -2110,6 +2112,8 @@ where
2110
2112
  Expression::BitwiseAnd(op) => transform_binary!(BitwiseAnd, *op),
2111
2113
  Expression::BitwiseOr(op) => transform_binary!(BitwiseOr, *op),
2112
2114
  Expression::BitwiseXor(op) => transform_binary!(BitwiseXor, *op),
2115
+ Expression::BitwiseLeftShift(op) => transform_binary!(BitwiseLeftShift, *op),
2116
+ Expression::BitwiseRightShift(op) => transform_binary!(BitwiseRightShift, *op),
2113
2117
  Expression::Is(op) => transform_binary!(Is, *op),
2114
2118
 
2115
2119
  // ===== TryCast / SafeCast =====
@@ -9201,6 +9205,7 @@ impl Dialect {
9201
9205
  cross_apply: None,
9202
9206
  ordinality: None,
9203
9207
  column_aliases: vec![],
9208
+ column_aliases_quoted: vec![],
9204
9209
  }));
9205
9210
 
9206
9211
  // Remove the original join and add to FROM expressions
@@ -233,15 +233,27 @@ pub(super) fn normalize_root(expression: Expression, context: &NormalizationCont
233
233
  });
234
234
  for constraint in &mut ct.constraints {
235
235
  if let crate::expressions::TableConstraint::PrimaryKey {
236
- columns, modifiers, ..
236
+ columns,
237
+ key_parts,
238
+ modifiers,
239
+ ..
237
240
  } = constraint
238
241
  {
239
- // Strip ASC/DESC from column names
240
- for col in columns.iter_mut() {
241
- if col.name.ends_with(" ASC") {
242
- col.name = col.name[..col.name.len() - 4].to_string();
243
- } else if col.name.ends_with(" DESC") {
244
- col.name = col.name[..col.name.len() - 5].to_string();
242
+ if key_parts.is_empty() {
243
+ // Older ASTs encoded order modifiers in column names.
244
+ for col in columns.iter_mut() {
245
+ if col.name.ends_with(" ASC") {
246
+ col.name = col.name[..col.name.len() - 4].to_string();
247
+ } else if col.name.ends_with(" DESC") {
248
+ col.name = col.name[..col.name.len() - 5].to_string();
249
+ }
250
+ }
251
+ } else {
252
+ // Structured key names are literal; only remove the
253
+ // sort modifiers, including for names ending in DESC.
254
+ for part in key_parts.iter_mut() {
255
+ part.asc = false;
256
+ part.desc = false;
245
257
  }
246
258
  }
247
259
  // Strip TSQL-specific modifiers
@@ -8505,6 +8505,11 @@ pub enum TableConstraint {
8505
8505
  PrimaryKey {
8506
8506
  name: Option<Identifier>,
8507
8507
  columns: Vec<Identifier>,
8508
+ /// Structured quoted, prefixed or ordered keys. When present these are
8509
+ /// authoritative for rendering; `columns` retains the column names.
8510
+ /// Older ASTs can encode prefix/order syntax directly in `columns`.
8511
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
8512
+ key_parts: Vec<IndexKeyPart>,
8508
8513
  /// Databricks primary-key columns marked with the TIMESERIES attribute.
8509
8514
  #[serde(default, skip_serializing_if = "Vec::is_empty")]
8510
8515
  timeseries_columns: Vec<Identifier>,
@@ -8520,6 +8525,9 @@ pub enum TableConstraint {
8520
8525
  Unique {
8521
8526
  name: Option<Identifier>,
8522
8527
  columns: Vec<Identifier>,
8528
+ /// Structured quoted, prefixed or ordered keys, as for `PrimaryKey`.
8529
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
8530
+ key_parts: Vec<IndexKeyPart>,
8523
8531
  /// Whether columns are parenthesized (false for UNIQUE idx_name without parens)
8524
8532
  #[serde(default)]
8525
8533
  columns_parenthesized: bool,
@@ -11676,6 +11684,9 @@ pub struct Lateral {
11676
11684
  /// Column aliases for the lateral expression (e.g., LATERAL func() AS alias(col1, col2))
11677
11685
  #[serde(default, skip_serializing_if = "Vec::is_empty")]
11678
11686
  pub column_aliases: Vec<String>,
11687
+ /// Quoting of each column alias, parallel to `column_aliases`.
11688
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
11689
+ pub column_aliases_quoted: Vec<bool>,
11679
11690
  }
11680
11691
 
11681
11692
  /// TableFromRows