You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by lu...@apache.org on 2026/09/22 12:37:37 UTC
(datafusion-sqlparser-rs) branch postgres-root-operators-display-space updated (2bdb7f6a1 -> 2ee10ac09)
This is an automated email from the ASF dual-hosted git repository.
LucaCappelletti94 pushed a change to branch postgres-root-operators-display-space
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
discard 2bdb7f6a1 Render prefix |/ and ||/ operators with a space
add 3fd342fe8 PostgreSQL: Render prefix @ operator with a space (#2531)
add 0718147b7 Render prefix ~ operator with a space (#2533)
add 7449e2732 Fix unary minus rendering into -- line comments (#2532)
add f8c94d24b Fuzz: Wire up ClusterFuzzLite CI fuzzing (#2527)
add d6afa0146 Fuzz: Display roundtrip (#2528)
add cd5ca0bfb Separate the LAMBDA keyword syntax from the -> lambda syntax (#2458)
add 4486a79f9 Fuzz: Add curated seed corpus (#2530)
new 2ee10ac09 PostgreSQL: Render prefix |/ and ||/ operators with a space
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (2bdb7f6a1)
\
N -- N -- N refs/heads/postgres-root-operators-display-space (2ee10ac09)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
rustfmt.toml => .clusterfuzzlite/Dockerfile | 5 +-
.../license.yml => .clusterfuzzlite/build.sh | 36 +++----
rustfmt.toml => .clusterfuzzlite/project.yaml | 4 +-
rustfmt.toml => .gitattributes | 3 +-
.github/workflows/cflite_batch.yml | 49 +++++++++
.../workflows/{license.yml => cflite_build.yml} | 32 +++---
.github/workflows/cflite_pr.yml | 48 +++++++++
.github/workflows/{stale.yml => cflite_prune.yml} | 32 +++---
.github/workflows/license.yml | 6 ++
dev/release/create-tarball.sh | 5 +
dev/release/rat_exclude_files.txt | 3 +-
dev/release/verify-release-candidate.sh | 6 ++
docs/fuzzing.md | 13 ++-
fuzz/Cargo.toml | 7 ++
fuzz/fuzz_seeds/alter_table.sql | 1 +
fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_4.sql | 1 +
fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_5.sql | 1 +
fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_6.sql | 1 +
fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_7.sql | 1 +
fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_0.sql | 1 +
fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_1.sql | 1 +
fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_2.sql | 1 +
fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_3.sql | 1 +
fuzz/fuzz_seeds/bench_clickhouse_clickbench_10.sql | 1 +
fuzz/fuzz_seeds/bench_clickhouse_clickbench_11.sql | 1 +
fuzz/fuzz_seeds/bench_clickhouse_clickbench_8.sql | 1 +
fuzz/fuzz_seeds/bench_clickhouse_clickbench_9.sql | 1 +
.../bench_clickhouse_clickhouse_tst_12.sql | 1 +
.../bench_clickhouse_clickhouse_tst_13.sql | 1 +
.../bench_clickhouse_clickhouse_tst_14.sql | 1 +
.../bench_clickhouse_clickhouse_tst_15.sql | 1 +
.../bench_clickhouse_clickhouse_tst_16.sql | 1 +
.../bench_clickhouse_clickhouse_tst_17.sql | 1 +
.../bench_clickhouse_clickhouse_tst_18.sql | 1 +
.../bench_clickhouse_clickhouse_tst_19.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_20.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_21.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_22.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_23.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_24.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_25.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_26.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_27.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_28.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_29.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_30.sql | 1 +
fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_31.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_32.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_33.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_34.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_35.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_36.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_37.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_38.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_39.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_40.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_41.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_42.sql | 1 +
fuzz/fuzz_seeds/bench_hive_hive_testbench_43.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_44.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_45.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_46.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_47.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_48.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_49.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_50.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_51.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_52.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_53.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_54.sql | 1 +
fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_55.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_56.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_57.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_58.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_59.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_60.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_61.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_62.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_63.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_64.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_65.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_66.sql | 1 +
fuzz/fuzz_seeds/bench_mysql_dolt_slt_67.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_68.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_69.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_70.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_71.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_72.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_73.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_74.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_75.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_76.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_77.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_78.sql | 1 +
.../fuzz_seeds/bench_oracle_oracle_examples_79.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_80.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_81.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_82.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_83.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_84.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_85.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_86.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_87.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_88.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_89.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_90.sql | 1 +
fuzz/fuzz_seeds/bench_postgresql_pg_regress_91.sql | 1 +
.../bench_redshift_redshift_bench_100.sql | 1 +
.../bench_redshift_redshift_bench_101.sql | 1 +
.../bench_redshift_redshift_bench_92.sql | 1 +
.../bench_redshift_redshift_bench_93.sql | 1 +
.../bench_redshift_redshift_bench_94.sql | 1 +
.../bench_redshift_redshift_bench_95.sql | 1 +
.../bench_redshift_redshift_bench_96.sql | 1 +
.../bench_redshift_redshift_bench_97.sql | 1 +
.../bench_redshift_redshift_bench_98.sql | 1 +
.../bench_redshift_redshift_bench_99.sql | 1 +
.../bench_redshift_redshift_utils_102.sql | 1 +
.../bench_redshift_redshift_utils_103.sql | 1 +
.../bench_spark_sql_spark_sql_tst_104.sql | 1 +
.../bench_spark_sql_spark_sql_tst_105.sql | 1 +
.../bench_spark_sql_spark_sql_tst_106.sql | 1 +
.../bench_spark_sql_spark_sql_tst_107.sql | 1 +
.../bench_spark_sql_spark_sql_tst_108.sql | 1 +
.../bench_spark_sql_spark_sql_tst_109.sql | 1 +
.../bench_spark_sql_spark_sql_tst_110.sql | 1 +
.../bench_spark_sql_spark_sql_tst_111.sql | 1 +
.../bench_spark_sql_spark_sql_tst_112.sql | 1 +
.../bench_spark_sql_spark_sql_tst_113.sql | 1 +
.../bench_spark_sql_spark_sql_tst_114.sql | 1 +
.../bench_spark_sql_spark_sql_tst_115.sql | 1 +
.../fuzz_seeds/bench_sqlite_sql_create_ctx_116.sql | 1 +
.../fuzz_seeds/bench_sqlite_sql_create_ctx_117.sql | 1 +
.../fuzz_seeds/bench_sqlite_sql_create_ctx_118.sql | 1 +
.../fuzz_seeds/bench_sqlite_sql_create_ctx_119.sql | 1 +
.../bench_sqlite_sqlite_official_suite_120.sql | 1 +
.../bench_sqlite_sqlite_official_suite_121.sql | 1 +
.../bench_sqlite_sqlite_official_suite_122.sql | 1 +
.../bench_sqlite_sqlite_official_suite_123.sql | 1 +
.../bench_sqlite_sqlite_official_suite_124.sql | 1 +
.../bench_sqlite_sqlite_official_suite_125.sql | 1 +
.../bench_sqlite_sqlite_official_suite_126.sql | 1 +
.../bench_sqlite_sqlite_official_suite_127.sql | 1 +
.../bench_trino_clickbench_trino_128.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_129.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_130.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_131.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_132.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_133.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_134.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_135.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_136.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_137.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_138.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_139.sql | 1 +
fuzz/fuzz_seeds/bench_tsql_antlr_tsql_140.sql | 1 +
fuzz/fuzz_seeds/bigquery_struct_array.sql | 1 +
fuzz/fuzz_seeds/bigquery_unnest.sql | 1 +
fuzz/fuzz_seeds/block_comment_nested.sql | 1 +
fuzz/fuzz_seeds/case_expr.sql | 1 +
fuzz/fuzz_seeds/casts.sql | 1 +
fuzz/fuzz_seeds/clickhouse_array.sql | 1 +
fuzz/fuzz_seeds/comments.sql | 3 +
fuzz/fuzz_seeds/create_index.sql | 1 +
fuzz/fuzz_seeds/create_table.sql | 1 +
fuzz/fuzz_seeds/create_view.sql | 1 +
fuzz/fuzz_seeds/cte.sql | 1 +
fuzz/fuzz_seeds/cte_recursive.sql | 1 +
fuzz/fuzz_seeds/deep_nesting.sql | 1 +
fuzz/fuzz_seeds/delete_from.sql | 1 +
fuzz/fuzz_seeds/derived_table.sql | 1 +
fuzz/fuzz_seeds/distinct_group_by.sql | 1 +
fuzz/fuzz_seeds/drop_statements.sql | 1 +
fuzz/fuzz_seeds/empty.sql | 0
fuzz/fuzz_seeds/expression_ops.sql | 1 +
fuzz/fuzz_seeds/functions.sql | 1 +
fuzz/fuzz_seeds/hive_lateral_view.sql | 1 +
fuzz/fuzz_seeds/insert_select.sql | 1 +
fuzz/fuzz_seeds/insert_values.sql | 1 +
fuzz/fuzz_seeds/joins.sql | 1 +
fuzz/fuzz_seeds/literals.sql | 1 +
fuzz/fuzz_seeds/mssql_brackets.sql | 1 +
fuzz/fuzz_seeds/mssql_top.sql | 1 +
fuzz/fuzz_seeds/mssql_unicode_literal.sql | 1 +
fuzz/fuzz_seeds/multi_statement.sql | 3 +
fuzz/fuzz_seeds/mysql_backticks.sql | 1 +
fuzz/fuzz_seeds/mysql_insert_flags.sql | 1 +
fuzz/fuzz_seeds/mysql_on_duplicate.sql | 1 +
fuzz/fuzz_seeds/only_semicolon.sql | 1 +
fuzz/fuzz_seeds/oracle_merge.sql | 1 +
fuzz/fuzz_seeds/order_limit.sql | 1 +
fuzz/fuzz_seeds/postgres_cast_json.sql | 1 +
fuzz/fuzz_seeds/postgres_ilike.sql | 1 +
fuzz/fuzz_seeds/postgres_returning.sql | 1 +
fuzz/fuzz_seeds/postgres_upsert.sql | 1 +
fuzz/fuzz_seeds/quoted_identifiers.sql | 1 +
fuzz/fuzz_seeds/select_columns_aliases.sql | 1 +
fuzz/fuzz_seeds/select_simple.sql | 1 +
fuzz/fuzz_seeds/set_ops.sql | 1 +
fuzz/fuzz_seeds/snowflake_qualify.sql | 1 +
fuzz/fuzz_seeds/snowflake_semi_join.sql | 1 +
fuzz/fuzz_seeds/sqlite_insert_or_replace.sql | 1 +
fuzz/fuzz_seeds/subqueries.sql | 1 +
fuzz/fuzz_seeds/table_function.sql | 1 +
fuzz/fuzz_seeds/transaction.sql | 1 +
fuzz/fuzz_seeds/unicode.sql | 1 +
fuzz/fuzz_seeds/update_set.sql | 1 +
fuzz/fuzz_seeds/where_predicates.sql | 1 +
fuzz/fuzz_seeds/window_functions.sql | 1 +
fuzz/fuzz_targets/fuzz_parse_roundtrip.rs | 61 +++++++++++
fuzz/fuzz_targets/fuzz_parse_sql.rs | 6 +-
src/ast/mod.rs | 58 +++++++---
src/dialect/mod.rs | 24 +++++
src/parser/mod.rs | 2 +-
tests/sqlparser_common.rs | 30 +++++-
tests/sqlparser_custom_dialect.rs | 117 +++++++++++++++++++++
tests/sqlparser_derive_dialect.rs | 69 ++++++++++++
tests/sqlparser_duckdb.rs | 15 +++
tests/sqlparser_postgres.rs | 39 ++++++-
219 files changed, 785 insertions(+), 83 deletions(-)
copy rustfmt.toml => .clusterfuzzlite/Dockerfile (83%)
copy .github/workflows/license.yml => .clusterfuzzlite/build.sh (57%)
mode change 100644 => 100755
copy rustfmt.toml => .clusterfuzzlite/project.yaml (92%)
copy rustfmt.toml => .gitattributes (90%)
create mode 100644 .github/workflows/cflite_batch.yml
copy .github/workflows/{license.yml => cflite_build.yml} (61%)
create mode 100644 .github/workflows/cflite_pr.yml
copy .github/workflows/{stale.yml => cflite_prune.yml} (54%)
create mode 100644 fuzz/fuzz_seeds/alter_table.sql
create mode 100644 fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_4.sql
create mode 100644 fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_5.sql
create mode 100644 fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_6.sql
create mode 100644 fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_7.sql
create mode 100644 fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_0.sql
create mode 100644 fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_1.sql
create mode 100644 fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_2.sql
create mode 100644 fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_3.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickbench_10.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickbench_11.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickbench_8.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickbench_9.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_12.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_13.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_14.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_15.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_16.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_17.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_18.sql
create mode 100644 fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_19.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_20.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_21.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_22.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_23.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_24.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_25.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_26.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_27.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_28.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_29.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_30.sql
create mode 100644 fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_31.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_32.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_33.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_34.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_35.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_36.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_37.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_38.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_39.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_40.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_41.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_42.sql
create mode 100644 fuzz/fuzz_seeds/bench_hive_hive_testbench_43.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_44.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_45.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_46.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_47.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_48.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_49.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_50.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_51.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_52.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_53.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_54.sql
create mode 100644 fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_55.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_56.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_57.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_58.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_59.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_60.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_61.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_62.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_63.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_64.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_65.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_66.sql
create mode 100644 fuzz/fuzz_seeds/bench_mysql_dolt_slt_67.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_68.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_69.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_70.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_71.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_72.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_73.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_74.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_75.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_76.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_77.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_78.sql
create mode 100644 fuzz/fuzz_seeds/bench_oracle_oracle_examples_79.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_80.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_81.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_82.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_83.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_84.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_85.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_86.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_87.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_88.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_89.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_90.sql
create mode 100644 fuzz/fuzz_seeds/bench_postgresql_pg_regress_91.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_bench_100.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_bench_101.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_bench_92.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_bench_93.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_bench_94.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_bench_95.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_bench_96.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_bench_97.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_bench_98.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_bench_99.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_utils_102.sql
create mode 100644 fuzz/fuzz_seeds/bench_redshift_redshift_utils_103.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_104.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_105.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_106.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_107.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_108.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_109.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_110.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_111.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_112.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_113.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_114.sql
create mode 100644 fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_115.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_116.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_117.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_118.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_119.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_120.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_121.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_122.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_123.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_124.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_125.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_126.sql
create mode 100644 fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_127.sql
create mode 100644 fuzz/fuzz_seeds/bench_trino_clickbench_trino_128.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_129.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_130.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_131.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_132.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_133.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_134.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_135.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_136.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_137.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_138.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_139.sql
create mode 100644 fuzz/fuzz_seeds/bench_tsql_antlr_tsql_140.sql
create mode 100644 fuzz/fuzz_seeds/bigquery_struct_array.sql
create mode 100644 fuzz/fuzz_seeds/bigquery_unnest.sql
create mode 100644 fuzz/fuzz_seeds/block_comment_nested.sql
create mode 100644 fuzz/fuzz_seeds/case_expr.sql
create mode 100644 fuzz/fuzz_seeds/casts.sql
create mode 100644 fuzz/fuzz_seeds/clickhouse_array.sql
create mode 100644 fuzz/fuzz_seeds/comments.sql
create mode 100644 fuzz/fuzz_seeds/create_index.sql
create mode 100644 fuzz/fuzz_seeds/create_table.sql
create mode 100644 fuzz/fuzz_seeds/create_view.sql
create mode 100644 fuzz/fuzz_seeds/cte.sql
create mode 100644 fuzz/fuzz_seeds/cte_recursive.sql
create mode 100644 fuzz/fuzz_seeds/deep_nesting.sql
create mode 100644 fuzz/fuzz_seeds/delete_from.sql
create mode 100644 fuzz/fuzz_seeds/derived_table.sql
create mode 100644 fuzz/fuzz_seeds/distinct_group_by.sql
create mode 100644 fuzz/fuzz_seeds/drop_statements.sql
create mode 100644 fuzz/fuzz_seeds/empty.sql
create mode 100644 fuzz/fuzz_seeds/expression_ops.sql
create mode 100644 fuzz/fuzz_seeds/functions.sql
create mode 100644 fuzz/fuzz_seeds/hive_lateral_view.sql
create mode 100644 fuzz/fuzz_seeds/insert_select.sql
create mode 100644 fuzz/fuzz_seeds/insert_values.sql
create mode 100644 fuzz/fuzz_seeds/joins.sql
create mode 100644 fuzz/fuzz_seeds/literals.sql
create mode 100644 fuzz/fuzz_seeds/mssql_brackets.sql
create mode 100644 fuzz/fuzz_seeds/mssql_top.sql
create mode 100644 fuzz/fuzz_seeds/mssql_unicode_literal.sql
create mode 100644 fuzz/fuzz_seeds/multi_statement.sql
create mode 100644 fuzz/fuzz_seeds/mysql_backticks.sql
create mode 100644 fuzz/fuzz_seeds/mysql_insert_flags.sql
create mode 100644 fuzz/fuzz_seeds/mysql_on_duplicate.sql
create mode 100644 fuzz/fuzz_seeds/only_semicolon.sql
create mode 100644 fuzz/fuzz_seeds/oracle_merge.sql
create mode 100644 fuzz/fuzz_seeds/order_limit.sql
create mode 100644 fuzz/fuzz_seeds/postgres_cast_json.sql
create mode 100644 fuzz/fuzz_seeds/postgres_ilike.sql
create mode 100644 fuzz/fuzz_seeds/postgres_returning.sql
create mode 100644 fuzz/fuzz_seeds/postgres_upsert.sql
create mode 100644 fuzz/fuzz_seeds/quoted_identifiers.sql
create mode 100644 fuzz/fuzz_seeds/select_columns_aliases.sql
create mode 100644 fuzz/fuzz_seeds/select_simple.sql
create mode 100644 fuzz/fuzz_seeds/set_ops.sql
create mode 100644 fuzz/fuzz_seeds/snowflake_qualify.sql
create mode 100644 fuzz/fuzz_seeds/snowflake_semi_join.sql
create mode 100644 fuzz/fuzz_seeds/sqlite_insert_or_replace.sql
create mode 100644 fuzz/fuzz_seeds/subqueries.sql
create mode 100644 fuzz/fuzz_seeds/table_function.sql
create mode 100644 fuzz/fuzz_seeds/transaction.sql
create mode 100644 fuzz/fuzz_seeds/unicode.sql
create mode 100644 fuzz/fuzz_seeds/update_set.sql
create mode 100644 fuzz/fuzz_seeds/where_predicates.sql
create mode 100644 fuzz/fuzz_seeds/window_functions.sql
create mode 100644 fuzz/fuzz_targets/fuzz_parse_roundtrip.rs
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org
(datafusion-sqlparser-rs) 01/01: PostgreSQL: Render prefix |/ and ||/ operators with a space
Posted by lu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
LucaCappelletti94 pushed a commit to branch postgres-root-operators-display-space
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
commit 2ee10ac093bc21aa7cb875f4a8fc64241afd303d
Author: LucaCappelletti94 <ca...@gmail.com>
AuthorDate: Sat Sep 19 22:45:54 2026 +0200
PostgreSQL: Render prefix |/ and ||/ operators with a space
---
src/ast/mod.rs | 12 ++++++------
tests/sqlparser_postgres.rs | 24 ++++++++++++++++++++++--
2 files changed, 28 insertions(+), 8 deletions(-)
diff --git a/src/ast/mod.rs b/src/ast/mod.rs
index dcfd1a96e..92a0f92a5 100644
--- a/src/ast/mod.rs
+++ b/src/ast/mod.rs
@@ -1964,7 +1964,9 @@ impl fmt::Display for Expr {
| UnaryOperator::DoubleAt
| UnaryOperator::PGAbs
| UnaryOperator::QuestionDash
- | UnaryOperator::QuestionPipe => write!(f, "{op} {expr}"),
+ | UnaryOperator::QuestionPipe
+ | UnaryOperator::PGSquareRoot
+ | UnaryOperator::PGCubeRoot => write!(f, "{op} {expr}"),
UnaryOperator::Minus => {
if starts_with_operator_char(expr) {
write!(f, "{op} {expr}")
@@ -1972,11 +1974,9 @@ impl fmt::Display for Expr {
write!(f, "{op}{expr}")
}
}
- UnaryOperator::Plus
- | UnaryOperator::BangNot
- | UnaryOperator::PGPrefixFactorial
- | UnaryOperator::PGSquareRoot
- | UnaryOperator::PGCubeRoot => write!(f, "{op}{expr}"),
+ UnaryOperator::Plus | UnaryOperator::BangNot | UnaryOperator::PGPrefixFactorial => {
+ write!(f, "{op}{expr}")
+ }
},
Expr::Convert {
is_try,
diff --git a/tests/sqlparser_postgres.rs b/tests/sqlparser_postgres.rs
index ab2d4b8ee..1985c7fcd 100644
--- a/tests/sqlparser_postgres.rs
+++ b/tests/sqlparser_postgres.rs
@@ -2623,8 +2623,6 @@ fn parse_ampersand_arobase() {
#[test]
fn parse_pg_unary_ops() {
let pg_unary_ops = &[
- ("SELECT |/a", UnaryOperator::PGSquareRoot),
- ("SELECT ||/a", UnaryOperator::PGCubeRoot),
("SELECT !!a", UnaryOperator::PGPrefixFactorial),
("SELECT @ a", UnaryOperator::PGAbs),
];
@@ -2638,6 +2636,21 @@ fn parse_pg_unary_ops() {
select.projection[0]
);
}
+
+ for (str_op, op) in [
+ ("|/", UnaryOperator::PGSquareRoot),
+ ("||/", UnaryOperator::PGCubeRoot),
+ ] {
+ let select = pg().verified_only_select(&format!("SELECT {str_op} a"));
+ assert_eq!(
+ SelectItem::UnnamedExpr(Expr::UnaryOp {
+ op,
+ expr: Box::new(Expr::Identifier(Ident::new("a"))),
+ }),
+ select.projection[0]
+ );
+ pg().one_statement_parses_to(&format!("SELECT {str_op}a"), &format!("SELECT {str_op} a"));
+ }
}
#[test]
@@ -9984,3 +9997,10 @@ fn parse_unary_minus_before_pg_prefix_operators() {
pg().verified_stmt("SELECT - @ 2");
pg().one_statement_parses_to("SELECT - #x", "SELECT - # x");
}
+
+#[test]
+fn parse_pg_roots_render_apart_from_operand() {
+ pg().verified_stmt("SELECT |/ -2");
+ pg().verified_stmt("SELECT ||/ -2");
+ pg().verified_stmt("SELECT |/ ||/ 2");
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org