polyglot-sql 0.6.1__tar.gz → 0.6.3__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 (203) hide show
  1. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/Cargo.lock +6 -6
  2. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/Cargo.toml +1 -1
  3. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/PKG-INFO +1 -1
  4. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/Cargo.toml +6 -2
  5. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/README.md +1 -1
  6. polyglot_sql-0.6.3/crates/polyglot-sql/benches/lineage.rs +129 -0
  7. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/builder.rs +1 -0
  8. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/athena.rs +2 -0
  9. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/bigquery.rs +3 -0
  10. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/duckdb.rs +1 -0
  11. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/mod.rs +1264 -76
  12. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/mysql.rs +50 -0
  13. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/normalization/collections.rs +7 -0
  14. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/normalization/json.rs +197 -10
  15. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/normalization/mod.rs +51 -8
  16. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/normalization/operators.rs +39 -1
  17. polyglot_sql-0.6.3/crates/polyglot-sql/src/dialects/normalization/postgres_interval.rs +833 -0
  18. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/normalization/scalar.rs +41 -1
  19. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/normalization/statements.rs +1 -0
  20. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/normalization/temporal.rs +388 -32
  21. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/normalization/types.rs +18 -2
  22. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/postgres.rs +2 -0
  23. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/presto.rs +2 -0
  24. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/snowflake.rs +8 -0
  25. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/trino.rs +2 -0
  26. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/tsql.rs +256 -27
  27. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/expressions.rs +251 -0
  28. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/generator.rs +967 -43
  29. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/lib.rs +4 -4
  30. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/lineage.rs +739 -164
  31. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/openlineage.rs +2 -2
  32. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/annotate_types.rs +445 -4
  33. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/parser.rs +1480 -115
  34. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/query_analysis.rs +5 -92
  35. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/tokens.rs +133 -128
  36. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/transforms.rs +127 -0
  37. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/validation.rs +64 -1
  38. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/common/test_runner.rs +4 -4
  39. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_fixtures/datafusion/transpilation.json +2 -2
  40. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/dialect_matrix.rs +449 -31
  41. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/fabric_regression.rs +649 -57
  42. polyglot_sql-0.6.3/crates/polyglot-sql/tests/oracle_data_types_regression.rs +285 -0
  43. polyglot_sql-0.6.3/crates/polyglot-sql/tests/postgres_explain_options.rs +106 -0
  44. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/query_analysis.rs +77 -0
  45. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/snowflake_regression_test.rs +82 -1
  46. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/sqlglot_compat.rs +209 -1
  47. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/transform_regression.rs +136 -1
  48. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/tsql_regression.rs +754 -54
  49. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/annotate_types.rs +9 -3
  50. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/expr_types.rs +2 -0
  51. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/lineage.rs +7 -1
  52. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_parse.py +23 -0
  53. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/python/polyglot_sql/__init__.py +4 -0
  54. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/python/polyglot_sql/__init__.pyi +2 -0
  55. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/README.md +0 -0
  56. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/benches/allocation_hotspots.rs +0 -0
  57. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/benches/ast_traversal.rs +0 -0
  58. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/benches/in_list.rs +0 -0
  59. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/benches/parsing.rs +0 -0
  60. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/benches/performance_hotspots.rs +0 -0
  61. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/benches/rust_parsing.rs +0 -0
  62. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/benches/transpile.rs +0 -0
  63. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/examples/basic_usage.rs +0 -0
  64. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/examples/bench_json.rs +0 -0
  65. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/ast_children.rs +0 -0
  66. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/ast_json.rs +0 -0
  67. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/ast_transforms.rs +0 -0
  68. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/clickhouse.rs +0 -0
  69. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/cockroachdb.rs +0 -0
  70. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/databricks.rs +0 -0
  71. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/datafusion.rs +0 -0
  72. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/doris.rs +0 -0
  73. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/dremio.rs +0 -0
  74. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/drill.rs +0 -0
  75. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/druid.rs +0 -0
  76. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/dune.rs +0 -0
  77. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/exasol.rs +0 -0
  78. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/fabric.rs +0 -0
  79. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/generic.rs +0 -0
  80. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/hive.rs +0 -0
  81. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/materialize.rs +0 -0
  82. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/normalization/aggregates.rs +0 -0
  83. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/oracle.rs +0 -0
  84. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/redshift.rs +0 -0
  85. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/risingwave.rs +0 -0
  86. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/singlestore.rs +0 -0
  87. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/solr.rs +0 -0
  88. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/spark.rs +0 -0
  89. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/sqlite.rs +0 -0
  90. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/starrocks.rs +0 -0
  91. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/tableau.rs +0 -0
  92. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/teradata.rs +0 -0
  93. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/dialects/tidb.rs +0 -0
  94. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/diff.rs +0 -0
  95. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/error.rs +0 -0
  96. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/format_tokens.rs +0 -0
  97. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/function_catalog.rs +0 -0
  98. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/function_registry.rs +0 -0
  99. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/guard.rs +0 -0
  100. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/helper.rs +0 -0
  101. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/canonicalize.rs +0 -0
  102. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/eliminate_ctes.rs +0 -0
  103. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/eliminate_joins.rs +0 -0
  104. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/isolate_table_selects.rs +0 -0
  105. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/mod.rs +0 -0
  106. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/normalize.rs +0 -0
  107. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/normalize_identifiers.rs +0 -0
  108. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/optimize_joins.rs +0 -0
  109. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/optimizer.rs +0 -0
  110. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/pushdown_predicates.rs +0 -0
  111. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/pushdown_projections.rs +0 -0
  112. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/qualify_columns.rs +0 -0
  113. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/qualify_tables.rs +0 -0
  114. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/simplify.rs +0 -0
  115. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/optimizer/subquery.rs +0 -0
  116. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/planner.rs +0 -0
  117. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/resolver.rs +0 -0
  118. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/schema.rs +0 -0
  119. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/scope.rs +0 -0
  120. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/time.rs +0 -0
  121. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/traversal.rs +0 -0
  122. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/trie.rs +0 -0
  123. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/src/validation/tests.rs +0 -0
  124. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/analyze_failures.rs +0 -0
  125. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/clickhouse_regression.rs +0 -0
  126. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/common/known_failures.rs +0 -0
  127. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/common/mod.rs +0 -0
  128. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/common/test_data.rs +0 -0
  129. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/create_view_security_comment_regression.rs +0 -0
  130. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_clickhouse_coverage.rs +0 -0
  131. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_clickhouse_parser.rs +0 -0
  132. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_dialect.rs +0 -0
  133. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_dialect_tests.rs +0 -0
  134. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_fixtures/datafusion/ddl.json +0 -0
  135. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_fixtures/datafusion/dml.json +0 -0
  136. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_fixtures/datafusion/functions.json +0 -0
  137. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_fixtures/datafusion/identity.json +0 -0
  138. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_fixtures/datafusion/operators.json +0 -0
  139. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_fixtures/datafusion/select.json +0 -0
  140. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/custom_fixtures/datafusion/types.json +0 -0
  141. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/data_type_api.rs +0 -0
  142. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/deep_nesting_regression.rs +0 -0
  143. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/error_handling.rs +0 -0
  144. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/fabric_tpch_regression.rs +0 -0
  145. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/identity_roundtrip.rs +0 -0
  146. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/postgres_regexp_clickhouse.rs +0 -0
  147. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/postgres_sqlite_regression.rs +0 -0
  148. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/query_analysis_regression.rs +0 -0
  149. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/sqlglot_dialect_identity.rs +0 -0
  150. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/sqlglot_identity.rs +0 -0
  151. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/sqlglot_identity_detailed.rs +0 -0
  152. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/sqlglot_parser.rs +0 -0
  153. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/sqlglot_pretty.rs +0 -0
  154. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/sqlglot_transpilation.rs +0 -0
  155. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/sqlglot_transpile.rs +0 -0
  156. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql/tests/tpch_transpile_stack.rs +0 -0
  157. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-ast-derive/Cargo.toml +0 -0
  158. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-ast-derive/src/lib.rs +0 -0
  159. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-function-catalogs/Cargo.toml +0 -0
  160. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-function-catalogs/README.md +0 -0
  161. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-function-catalogs/src/clickhouse.rs +0 -0
  162. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-function-catalogs/src/duckdb.rs +0 -0
  163. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-function-catalogs/src/lib.rs +0 -0
  164. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-function-catalogs/tools/clickhouse/extract_functions.py +0 -0
  165. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-function-catalogs/tools/duckdb/extract_functions.py +0 -0
  166. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/Cargo.toml +0 -0
  167. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/README.md +0 -0
  168. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/docs/api.md +0 -0
  169. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/docs/index.md +0 -0
  170. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/mkdocs.yml +0 -0
  171. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/dialects.rs +0 -0
  172. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/diff.rs +0 -0
  173. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/errors.rs +0 -0
  174. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/expr.rs +0 -0
  175. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/format.rs +0 -0
  176. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/generate.rs +0 -0
  177. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/helpers.rs +0 -0
  178. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/lib.rs +0 -0
  179. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/openlineage.rs +0 -0
  180. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/optimize.rs +0 -0
  181. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/parse.rs +0 -0
  182. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/query_analysis.rs +0 -0
  183. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/tokenize.rs +0 -0
  184. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/transforms.rs +0 -0
  185. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/transpile.rs +0 -0
  186. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/types.rs +0 -0
  187. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/src/validate.rs +0 -0
  188. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/conftest.py +0 -0
  189. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_compat.py +0 -0
  190. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_dialects.py +0 -0
  191. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_diff.py +0 -0
  192. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_expression.py +0 -0
  193. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_format.py +0 -0
  194. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_generate.py +0 -0
  195. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_lineage.py +0 -0
  196. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_optimize.py +0 -0
  197. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_query_analysis.py +0 -0
  198. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_transforms.py +0 -0
  199. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_transpile.py +0 -0
  200. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/tests/test_validate.py +0 -0
  201. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/crates/polyglot-sql-python/uv.lock +0 -0
  202. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/pyproject.toml +0 -0
  203. {polyglot_sql-0.6.1 → polyglot_sql-0.6.3}/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.1"
608
+ version = "0.6.3"
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.1"
626
+ version = "0.6.3"
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.1"
635
+ version = "0.6.3"
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.1"
645
+ version = "0.6.3"
646
646
 
647
647
  [[package]]
648
648
  name = "polyglot-sql-python"
649
- version = "0.6.1"
649
+ version = "0.6.3"
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.1"
660
+ version = "0.6.3"
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.1"
9
+ version = "0.6.3"
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.1
3
+ Version: 0.6.3
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", version = "0.6.1" }
103
+ polyglot-sql-ast-derive = { path = "../polyglot-sql-ast-derive", version = "0.6.3" }
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.1", optional = true, default-features = false }
110
+ polyglot-sql-function-catalogs = { path = "../polyglot-sql-function-catalogs", version = "0.6.3", 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.1", default-features = false }
28
+ polyglot-sql = { version = "0.6.3", 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,
@@ -147,6 +147,7 @@ impl DialectImpl for AthenaDialect {
147
147
  with_ordinality: false,
148
148
  alias: None,
149
149
  offset_alias: None,
150
+ inferred_type: None,
150
151
  },
151
152
  ))),
152
153
 
@@ -158,6 +159,7 @@ impl DialectImpl for AthenaDialect {
158
159
  with_ordinality: false,
159
160
  alias: None,
160
161
  offset_alias: None,
162
+ inferred_type: None,
161
163
  },
162
164
  ))),
163
165
 
@@ -196,6 +196,7 @@ impl DialectImpl for BigQueryDialect {
196
196
  with_ordinality: false,
197
197
  alias: None,
198
198
  offset_alias: None,
199
+ inferred_type: None,
199
200
  },
200
201
  ))),
201
202
 
@@ -207,6 +208,7 @@ impl DialectImpl for BigQueryDialect {
207
208
  with_ordinality: false,
208
209
  alias: None,
209
210
  offset_alias: None,
211
+ inferred_type: None,
210
212
  },
211
213
  ))),
212
214
 
@@ -703,6 +705,7 @@ impl DialectImpl for BigQueryDialect {
703
705
  with_ordinality: false,
704
706
  alias: None,
705
707
  offset_alias: None,
708
+ inferred_type: None,
706
709
  }));
707
710
  let aliased_unnest = Expression::Alias(Box::new(Alias {
708
711
  this: unnest,
@@ -238,6 +238,7 @@ impl DialectImpl for DuckDBDialect {
238
238
  with_ordinality: false,
239
239
  alias: None,
240
240
  offset_alias: None,
241
+ inferred_type: None,
241
242
  },
242
243
  ))),
243
244