From 2f6e90136b0959857dadb622c770378efd1ebe1a Mon Sep 17 00:00:00 2001 From: LucaCappelletti94 Date: Sat, 19 Sep 2026 09:09:50 +0200 Subject: [PATCH 1/2] Fuzz: Add curated seed corpus 54 hand-written seeds cover the statement grammar, comments, quoting and dialect-specific syntax. 141 statements are sampled and deduplicated from the dialect datasets of LucaCappelletti94/sql_ast_benchmark, re-licensed from MIT to Apache-2.0 by the same sole author. build.sh packages the seeds as _seed_corpus.zip so ClusterFuzzLite code-change and batch runs start from them. Every seed parses under at least one of the 14 fuzzed dialects and round-trips cleanly through Display. --- .clusterfuzzlite/build.sh | 2 ++ dev/release/rat_exclude_files.txt | 3 ++- docs/fuzzing.md | 5 ++++- 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 + fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_12.sql | 1 + fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_13.sql | 1 + fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_14.sql | 1 + fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_15.sql | 1 + fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_16.sql | 1 + fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_17.sql | 1 + fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_18.sql | 1 + fuzz/fuzz_seeds/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/fuzz_seeds/bench_oracle_oracle_examples_68.sql | 1 + fuzz/fuzz_seeds/bench_oracle_oracle_examples_69.sql | 1 + fuzz/fuzz_seeds/bench_oracle_oracle_examples_70.sql | 1 + fuzz/fuzz_seeds/bench_oracle_oracle_examples_71.sql | 1 + fuzz/fuzz_seeds/bench_oracle_oracle_examples_72.sql | 1 + fuzz/fuzz_seeds/bench_oracle_oracle_examples_73.sql | 1 + fuzz/fuzz_seeds/bench_oracle_oracle_examples_74.sql | 1 + fuzz/fuzz_seeds/bench_oracle_oracle_examples_75.sql | 1 + fuzz/fuzz_seeds/bench_oracle_oracle_examples_76.sql | 1 + fuzz/fuzz_seeds/bench_oracle_oracle_examples_77.sql | 1 + fuzz/fuzz_seeds/bench_oracle_oracle_examples_78.sql | 1 + fuzz/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 + fuzz/fuzz_seeds/bench_redshift_redshift_bench_100.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_bench_101.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_bench_92.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_bench_93.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_bench_94.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_bench_95.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_bench_96.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_bench_97.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_bench_98.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_bench_99.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_utils_102.sql | 1 + fuzz/fuzz_seeds/bench_redshift_redshift_utils_103.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_104.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_105.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_106.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_107.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_108.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_109.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_110.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_111.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_112.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_113.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_114.sql | 1 + fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_115.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_116.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_117.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_118.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_119.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_120.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_121.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_122.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_123.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_124.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_125.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_126.sql | 1 + fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_127.sql | 1 + fuzz/fuzz_seeds/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 + 198 files changed, 206 insertions(+), 2 deletions(-) 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 diff --git a/.clusterfuzzlite/build.sh b/.clusterfuzzlite/build.sh index a38f94478d..764144a64b 100755 --- a/.clusterfuzzlite/build.sh +++ b/.clusterfuzzlite/build.sh @@ -31,4 +31,6 @@ fi target_dir=fuzz/target/x86_64-unknown-linux-gnu/release for name in $targets; do cp "$target_dir/$name" "$OUT/" + # the runner unpacks _seed_corpus.zip as the starting corpus + (cd fuzz/fuzz_seeds && zip -qr "$OUT/${name}_seed_corpus.zip" *) done diff --git a/dev/release/rat_exclude_files.txt b/dev/release/rat_exclude_files.txt index b8b7b81d08..48f19ab33f 100644 --- a/dev/release/rat_exclude_files.txt +++ b/dev/release/rat_exclude_files.txt @@ -6,4 +6,5 @@ dev/release/rat_exclude_files.txt sqlparser_bench/img/flamegraph.svg **Cargo.lock filtered_rat.txt -AGENTS.md \ No newline at end of file +AGENTS.md +fuzz/fuzz_seeds/* \ No newline at end of file diff --git a/docs/fuzzing.md b/docs/fuzzing.md index 5028f3ebfd..f0512690dc 100644 --- a/docs/fuzzing.md +++ b/docs/fuzzing.md @@ -24,7 +24,7 @@ ```shell cargo install cargo-fuzz cd fuzz -cargo +nightly fuzz run fuzz_parse_sql -- -max_total_time=600 +cargo +nightly fuzz run fuzz_parse_sql fuzz_seeds -- -max_total_time=600 ``` There are two targets. `fuzz_parse_sql` parses the input with every dialect. @@ -35,4 +35,7 @@ ClusterFuzzLite runs continuous fuzzing. Every pull request fuzzes for 10 minute `code-change` mode, a daily batch job grows the shared corpus stored on the `clusterfuzzlite` branch, and a daily prune compacts it. +`fuzz_seeds/` is a committed corpus of valid SQL that random mutation would never produce. +The run command above uses it and `build.sh` packages it for ClusterFuzzLite. + Crashes land in `artifacts//` and replay with `cargo fuzz run `. diff --git a/fuzz/fuzz_seeds/alter_table.sql b/fuzz/fuzz_seeds/alter_table.sql new file mode 100644 index 0000000000..ca38715778 --- /dev/null +++ b/fuzz/fuzz_seeds/alter_table.sql @@ -0,0 +1 @@ +ALTER TABLE t ADD COLUMN c INT \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_4.sql b/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_4.sql new file mode 100644 index 0000000000..100e7af65f --- /dev/null +++ b/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_4.sql @@ -0,0 +1 @@ +SELECT COUNT(*) FROM test.hits \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_5.sql b/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_5.sql new file mode 100644 index 0000000000..a51751ae99 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_5.sql @@ -0,0 +1 @@ +SELECT COUNT(*) FROM test.hits WHERE AdvEngineID <> 0 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_6.sql b/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_6.sql new file mode 100644 index 0000000000..eb39025070 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_6.sql @@ -0,0 +1 @@ +SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM test.hits \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_7.sql b/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_7.sql new file mode 100644 index 0000000000..6edf5cd1de --- /dev/null +++ b/fuzz/fuzz_seeds/bench_bigquery_clickbench_bq_7.sql @@ -0,0 +1 @@ +SELECT AVG(UserID) FROM test.hits \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_0.sql b/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_0.sql new file mode 100644 index 0000000000..160a026724 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_0.sql @@ -0,0 +1 @@ +create table dbgen_version ( dv_version varchar(16) , dv_create_date date , dv_create_time time , dv_cmdline_args varchar(200) ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_1.sql b/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_1.sql new file mode 100644 index 0000000000..dd45f203a9 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_1.sql @@ -0,0 +1 @@ +create table customer_demographics ( cd_demo_sk integer not null, cd_gender char(1) , cd_marital_status char(1) , cd_education_status char(20) , cd_purchase_estimate integer , cd_credit_rating char(10) , cd_dep_count integer , cd_dep_employed_count integer , cd_dep_college_count integer , primary key (cd_demo_sk) ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_2.sql b/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_2.sql new file mode 100644 index 0000000000..ba53029f76 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_2.sql @@ -0,0 +1 @@ +create table ship_mode ( sm_ship_mode_sk integer not null, sm_ship_mode_id char(16) not null, sm_type char(30) , sm_code char(10) , sm_carrier char(20) , sm_contract char(20) , primary key (sm_ship_mode_sk) ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_3.sql b/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_3.sql new file mode 100644 index 0000000000..bfc158675c --- /dev/null +++ b/fuzz/fuzz_seeds/bench_bigquery_tpc_bq_snow_3.sql @@ -0,0 +1 @@ +create table time_dim ( t_time_sk integer not null, t_time_id char(16) not null, t_time integer , t_hour integer , t_minute integer , t_second integer , t_am_pm char(2) , t_shift char(20) , t_sub_shift char(20) , t_meal_time char(20) , primary key (t_time_sk) ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickbench_10.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickbench_10.sql new file mode 100644 index 0000000000..fa57c6ea45 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickbench_10.sql @@ -0,0 +1 @@ +SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickbench_11.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickbench_11.sql new file mode 100644 index 0000000000..79e7e6e650 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickbench_11.sql @@ -0,0 +1 @@ +SELECT AVG(UserID) FROM hits \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickbench_8.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickbench_8.sql new file mode 100644 index 0000000000..27f03d8069 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickbench_8.sql @@ -0,0 +1 @@ +SELECT COUNT(*) FROM hits \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickbench_9.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickbench_9.sql new file mode 100644 index 0000000000..633b8337f6 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickbench_9.sql @@ -0,0 +1 @@ +SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_12.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_12.sql new file mode 100644 index 0000000000..7dd4269626 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_12.sql @@ -0,0 +1 @@ +SET send_logs_level = 'fatal' \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_13.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_13.sql new file mode 100644 index 0000000000..06f39b24a0 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_13.sql @@ -0,0 +1 @@ +SET output_format_write_statistics = 0 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_14.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_14.sql new file mode 100644 index 0000000000..835c5ff32f --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_14.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS arrays_test \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_15.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_15.sql new file mode 100644 index 0000000000..3d3fcff549 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_15.sql @@ -0,0 +1 @@ +CREATE TABLE arrays_test (s String, arr Array(UInt8)) ENGINE = Memory \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_16.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_16.sql new file mode 100644 index 0000000000..494957254d --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_16.sql @@ -0,0 +1 @@ +INSERT INTO arrays_test VALUES ('Hello', [1,2]), ('World', [3,4,5]), ('Goodbye', []) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_17.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_17.sql new file mode 100644 index 0000000000..f6c789d847 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_17.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS nested_test \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_18.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_18.sql new file mode 100644 index 0000000000..b7eb9dd0c7 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_18.sql @@ -0,0 +1 @@ +CREATE TABLE nested_test (s String, nest Nested(x UInt8, y UInt32)) ENGINE = Memory \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_19.sql b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_19.sql new file mode 100644 index 0000000000..abe16df697 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_clickhouse_clickhouse_tst_19.sql @@ -0,0 +1 @@ +INSERT INTO nested_test VALUES ('Hello', [1,2], [10,20]), ('World', [3,4,5], [30,40,50]), ('Goodbye', [], []) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_20.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_20.sql new file mode 100644 index 0000000000..c60e94c8b0 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_20.sql @@ -0,0 +1 @@ +PRAGMA enable_verification \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_21.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_21.sql new file mode 100644 index 0000000000..9d588751b3 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_21.sql @@ -0,0 +1 @@ +CREATE TABLE integers AS SELECT i%5 as even_groups, log(1 + i*i)::int as skewed_groups FROM range(10000) t(i) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_22.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_22.sql new file mode 100644 index 0000000000..6d8de7af8d --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_22.sql @@ -0,0 +1 @@ +SELECT list_sort(approx_top_k(even_groups, 10)) FROM integers \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_23.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_23.sql new file mode 100644 index 0000000000..7520e0b4dc --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_23.sql @@ -0,0 +1 @@ +SELECT approx_top_k(skewed_groups, 5) FROM integers \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_24.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_24.sql new file mode 100644 index 0000000000..9d1d45fa94 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_24.sql @@ -0,0 +1 @@ +SELECT approx_top_k(concat('this is a long prefix', skewed_groups::VARCHAR), 5) FROM integers \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_25.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_25.sql new file mode 100644 index 0000000000..81e472418c --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_25.sql @@ -0,0 +1 @@ +SELECT approx_top_k([skewed_groups], 5) FROM integers \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_26.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_26.sql new file mode 100644 index 0000000000..8e2dfe98ae --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_26.sql @@ -0,0 +1 @@ +CREATE TABLE t1 (val VARCHAR, arg INT) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_27.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_27.sql new file mode 100644 index 0000000000..d0eb0750c4 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_27.sql @@ -0,0 +1 @@ +INSERT INTO t1 VALUES ('a', 2), ('a', 1), ('b', 5), ('b', 4), ('a', 3), ('b', 6) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_28.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_28.sql new file mode 100644 index 0000000000..65eb4da461 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_28.sql @@ -0,0 +1 @@ +CREATE TABLE t2 AS SELECT i%5 as even_groups, i FROM range(10000) t(i) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_29.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_29.sql new file mode 100644 index 0000000000..c2c1b449b3 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_29.sql @@ -0,0 +1 @@ +CREATE MACRO compute_top_k(table_name, group_col, val_col, k) AS TABLE SELECT rs.grp, array_agg(rs.val ORDER BY rid) FROM ( SELECT group_col AS grp, val_col AS val, row_number() OVER (PARTITION BY group_col ORDER BY val_col DESC) as rid FROM query_table(table_name::VARCHAR) ORDER BY group_col DESC ) as rs WHERE rid <= k GROUP BY ALL ORDER BY ALL \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_30.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_30.sql new file mode 100644 index 0000000000..744bd3d092 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_30.sql @@ -0,0 +1 @@ +SET disabled_optimizers = 'top_n_window_elimination' \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_31.sql b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_31.sql new file mode 100644 index 0000000000..863deca149 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_duckdb_duckdb_tests_31.sql @@ -0,0 +1 @@ +INSERT INTO el_ids VALUES ('el', 10) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_32.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_32.sql new file mode 100644 index 0000000000..5ce8c1efe3 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_32.sql @@ -0,0 +1 @@ +select i_product_name ,i_brand ,i_class ,i_category ,avg(inv_quantity_on_hand) qoh from inventory ,date_dim ,item where inv_date_sk=d_date_sk and inv_item_sk=i_item_sk and d_month_seq between 1186 and 1186 + 11 group by rollup(i_product_name ,i_brand ,i_class ,i_category) order by qoh, i_product_name, i_brand, i_class, i_category limit 100 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_33.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_33.sql new file mode 100644 index 0000000000..d41eb08432 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_33.sql @@ -0,0 +1 @@ +select dt.d_year ,item.i_brand_id brand_id ,item.i_brand brand ,sum(ss_sales_price) sum_agg from date_dim dt ,store_sales ,item where dt.d_date_sk = store_sales.ss_sold_date_sk and store_sales.ss_item_sk = item.i_item_sk and item.i_manufact_id = 816 and dt.d_moy=11 group by dt.d_year ,item.i_brand ,item.i_brand_id order by dt.d_year ,sum_agg desc ,brand_id limit 100 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_34.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_34.sql new file mode 100644 index 0000000000..49e44f1c75 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_34.sql @@ -0,0 +1 @@ +select dt.d_year ,item.i_brand_id brand_id ,item.i_brand brand ,sum(ss_ext_sales_price) ext_price from date_dim dt ,store_sales ,item where dt.d_date_sk = store_sales.ss_sold_date_sk and store_sales.ss_item_sk = item.i_item_sk and item.i_manager_id = 1 and dt.d_moy=12 and dt.d_year=2000 group by dt.d_year ,item.i_brand ,item.i_brand_id order by dt.d_year ,ext_price desc ,brand_id limit 100 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_35.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_35.sql new file mode 100644 index 0000000000..bb59a6d3e4 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_35.sql @@ -0,0 +1 @@ +select i_brand_id brand_id, i_brand brand, sum(ss_ext_sales_price) ext_price from date_dim, store_sales, item where d_date_sk = ss_sold_date_sk and ss_item_sk = i_item_sk and i_manager_id=13 and d_moy=11 and d_year=1999 group by i_brand, i_brand_id order by ext_price desc, i_brand_id limit 100 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_36.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_36.sql new file mode 100644 index 0000000000..cb3b0e247f --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_36.sql @@ -0,0 +1 @@ +drop view q11_part_tmp_cached \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_37.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_37.sql new file mode 100644 index 0000000000..e0c7cf1cef --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_37.sql @@ -0,0 +1 @@ +drop view q11_sum_tmp_cached \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_38.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_38.sql new file mode 100644 index 0000000000..dd6643f98d --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_38.sql @@ -0,0 +1 @@ +create view q11_part_tmp_cached as select ps_partkey, sum(ps_supplycost * ps_availqty) as part_value from partsupp, supplier, nation where ps_suppkey = s_suppkey and s_nationkey = n_nationkey and n_name = 'GERMANY' group by ps_partkey \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_39.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_39.sql new file mode 100644 index 0000000000..04ea164f67 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_39.sql @@ -0,0 +1 @@ +create view q11_sum_tmp_cached as select sum(part_value) as total_value from q11_part_tmp_cached \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_40.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_40.sql new file mode 100644 index 0000000000..2334fa8b3e --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_40.sql @@ -0,0 +1 @@ +drop view max_revenue_cached \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_41.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_41.sql new file mode 100644 index 0000000000..f099cb8038 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_41.sql @@ -0,0 +1 @@ +create view revenue_cached as select l_suppkey as supplier_no, sum(l_extendedprice * (1 - l_discount)) as total_revenue from lineitem where l_shipdate >= '1996-01-01' and l_shipdate < '1996-04-01' group by l_suppkey \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_42.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_42.sql new file mode 100644 index 0000000000..ef6c765ac0 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_42.sql @@ -0,0 +1 @@ +create view max_revenue_cached as select max(total_revenue) as max_revenue from revenue_cached \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_hive_hive_testbench_43.sql b/fuzz/fuzz_seeds/bench_hive_hive_testbench_43.sql new file mode 100644 index 0000000000..4da6dab93e --- /dev/null +++ b/fuzz/fuzz_seeds/bench_hive_hive_testbench_43.sql @@ -0,0 +1 @@ +drop table q18_large_volume_customer_cached \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_44.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_44.sql new file mode 100644 index 0000000000..fa620fc44e --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_44.sql @@ -0,0 +1 @@ +ALTER TABLE x DROP COLUMN y \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_45.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_45.sql new file mode 100644 index 0000000000..e796d81637 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_45.sql @@ -0,0 +1 @@ +ALTER TABLE x DROP IF EXISTS y \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_46.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_46.sql new file mode 100644 index 0000000000..d7711c5e0f --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_46.sql @@ -0,0 +1 @@ +ALTER TABLE x DROP COLUMN IF EXISTS y \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_47.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_47.sql new file mode 100644 index 0000000000..b80b3c31e8 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_47.sql @@ -0,0 +1 @@ +ALTER TABLE old_table_name RENAME TO new_table_name \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_48.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_48.sql new file mode 100644 index 0000000000..389532d9b5 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_48.sql @@ -0,0 +1 @@ +SELECT amount_of_honey :: FLOAT FROM bear_inventory \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_49.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_49.sql new file mode 100644 index 0000000000..89aa67f680 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_49.sql @@ -0,0 +1 @@ +SELECT amount_of_honey:: FLOAT FROM bear_inventory \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_50.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_50.sql new file mode 100644 index 0000000000..0101db2506 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_50.sql @@ -0,0 +1 @@ +SELECT amount_of_honey :: time FROM bear_inventory \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_51.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_51.sql new file mode 100644 index 0000000000..4491818ef4 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_51.sql @@ -0,0 +1 @@ +SELECT amount_of_honey :: text FROM bear_inventory \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_52.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_52.sql new file mode 100644 index 0000000000..16989e51db --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_52.sql @@ -0,0 +1 @@ +create database my_database \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_53.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_53.sql new file mode 100644 index 0000000000..6cf084acfb --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_53.sql @@ -0,0 +1 @@ +create database if not exists my_database \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_54.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_54.sql new file mode 100644 index 0000000000..0e9afa0b0a --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_54.sql @@ -0,0 +1 @@ +CREATE FUNCTION add(integer, integer) RETURNS integer AS 'select $1 + $2;' LANGUAGE SQL \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_55.sql b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_55.sql new file mode 100644 index 0000000000..02b5245678 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_multi_sqlfluff_fix_55.sql @@ -0,0 +1 @@ +CREATE FUNCTION add() RETURNS integer AS 'select $1 + $2;' LANGUAGE SQL \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_56.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_56.sql new file mode 100644 index 0000000000..9d6b22b3c3 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_56.sql @@ -0,0 +1 @@ +CREATE TABLE onecolumn (x INT) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_57.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_57.sql new file mode 100644 index 0000000000..8df88a483e --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_57.sql @@ -0,0 +1 @@ +INSERT INTO onecolumn(x) VALUES (44), (NULL), (42) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_58.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_58.sql new file mode 100644 index 0000000000..00d097477e --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_58.sql @@ -0,0 +1 @@ +SELECT a.x AS x, b.x AS y FROM onecolumn AS a CROSS JOIN onecolumn AS b ORDER BY x, y \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_59.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_59.sql new file mode 100644 index 0000000000..272ffa04b9 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_59.sql @@ -0,0 +1 @@ +SELECT * FROM onecolumn AS a JOIN onecolumn as b USING(x) ORDER BY x \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_60.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_60.sql new file mode 100644 index 0000000000..7e2e23946d --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_60.sql @@ -0,0 +1 @@ +SELECT * FROM onecolumn AS a NATURAL JOIN onecolumn as b \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_61.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_61.sql new file mode 100644 index 0000000000..3f29d32cbc --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_61.sql @@ -0,0 +1 @@ +SELECT * FROM onecolumn AS a LEFT OUTER JOIN onecolumn AS b USING(x) ORDER BY x \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_62.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_62.sql new file mode 100644 index 0000000000..441f4c0672 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_62.sql @@ -0,0 +1 @@ +CREATE TABLE onecolumn_w(w INT) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_63.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_63.sql new file mode 100644 index 0000000000..d552c2d277 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_63.sql @@ -0,0 +1 @@ +INSERT INTO onecolumn_w(w) VALUES (42),(43) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_64.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_64.sql new file mode 100644 index 0000000000..025c359e76 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_64.sql @@ -0,0 +1 @@ +CREATE TABLE othercolumn (x INT) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_65.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_65.sql new file mode 100644 index 0000000000..c6190a7add --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_65.sql @@ -0,0 +1 @@ +INSERT INTO othercolumn(x) VALUES (43),(42),(16) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_66.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_66.sql new file mode 100644 index 0000000000..f7ace8bf26 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_66.sql @@ -0,0 +1 @@ +CREATE TABLE `empty` (x INT) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_mysql_dolt_slt_67.sql b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_67.sql new file mode 100644 index 0000000000..b89e10aded --- /dev/null +++ b/fuzz/fuzz_seeds/bench_mysql_dolt_slt_67.sql @@ -0,0 +1 @@ +INSERT INTO twocolumn(x, y) VALUES (44,51), (NULL,52), (42,53), (45,45) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_68.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_68.sql new file mode 100644 index 0000000000..863d1fdde3 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_68.sql @@ -0,0 +1 @@ +create table t as select * from all_objects where owner in ('SYS','SYSTEM','PUBLIC','SCOTT','HR','SALES') \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_69.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_69.sql new file mode 100644 index 0000000000..aa9159c0f6 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_69.sql @@ -0,0 +1 @@ +select owner, count(*) from t group by owner order by 1 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_70.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_70.sql new file mode 100644 index 0000000000..dd99211e3e --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_70.sql @@ -0,0 +1 @@ +select owner, approx_count(*) from t group by owner order by 1 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_71.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_71.sql new file mode 100644 index 0000000000..a409c0aeb0 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_71.sql @@ -0,0 +1 @@ +create table charset_test(col1 varchar2(20), col2 nvarchar2(20)) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_72.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_72.sql new file mode 100644 index 0000000000..bd6165a5c3 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_72.sql @@ -0,0 +1 @@ +insert into charset_test values( unistr('foo\D800bar'), unistr('foo\D800bar') ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_73.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_73.sql new file mode 100644 index 0000000000..a2745f373a --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_73.sql @@ -0,0 +1 @@ +select utl_i18n.validate_character_encoding(col1) invalid_offset_column1, utl_i18n.validate_character_encoding(col2) invalid_offset_column2 from charset_test \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_74.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_74.sql new file mode 100644 index 0000000000..3aa18af3e6 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_74.sql @@ -0,0 +1 @@ +Insert into perth_weather (SAMPLED,MIN_TEMP,MAX_TEMP,RAINFALL,EVAP,SUNSHINE,WIND_DIR,MAX_WIND,MAX_WIND_TIME,TEMP_9AM,HUMIDITY_9AM,CLOUD_9AM,WIND_DIR_9AM,WIND_SPEED_9AM,PRESSURE_9AM,TEMP_3PM,HUMIDITY_3PM,CLOUD_3PM,WIND_DIR_3PM,WIND_SPEED_3PM,PRESSURE_3PM) values (to_date('01/MAR/16','DD/MON/RR'),15.7,25.3,0,7.4,11.2,'SSW',37,'13:52',20.7,63,2,'SE',9,1020.3,23.6,48,0,'SSW',20,1017.7) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_75.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_75.sql new file mode 100644 index 0000000000..150934c933 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_75.sql @@ -0,0 +1 @@ +create table water ( name varchar2(30) primary key, type varchar2(10), square_km int ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_76.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_76.sql new file mode 100644 index 0000000000..ad19e379a0 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_76.sql @@ -0,0 +1 @@ +insert into water(name,type,square_km) values ('Pacific Ocean','Ocean',155557000) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_77.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_77.sql new file mode 100644 index 0000000000..2bdb04c8e6 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_77.sql @@ -0,0 +1 @@ +select name, type, square_km, sum(square_km) over ( order by square_km desc rows between unbounded preceding and current row ) as tot from water order by 3 desc \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_78.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_78.sql new file mode 100644 index 0000000000..d8afb1ccbd --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_78.sql @@ -0,0 +1 @@ +drop sequence LAB_SAMPLES_SEQ \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_oracle_oracle_examples_79.sql b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_79.sql new file mode 100644 index 0000000000..0080dbed46 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_oracle_oracle_examples_79.sql @@ -0,0 +1 @@ +create sequence LAB_SAMPLES_SEQ \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_80.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_80.sql new file mode 100644 index 0000000000..12a9323e7c --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_80.sql @@ -0,0 +1 @@ +SELECT pg_advisory_xact_lock(1), pg_advisory_xact_lock_shared(2), pg_advisory_xact_lock(1, 1), pg_advisory_xact_lock_shared(2, 2) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_81.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_81.sql new file mode 100644 index 0000000000..a7eeaa417f --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_81.sql @@ -0,0 +1 @@ +SELECT locktype, classid, objid, objsubid, mode, granted FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid ORDER BY classid, objid, objsubid \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_82.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_82.sql new file mode 100644 index 0000000000..5aad208a62 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_82.sql @@ -0,0 +1 @@ +SELECT count(*) FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_83.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_83.sql new file mode 100644 index 0000000000..2bb4a8f1ef --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_83.sql @@ -0,0 +1 @@ +SELECT pg_advisory_lock(1), pg_advisory_lock_shared(2), pg_advisory_lock(1, 1), pg_advisory_lock_shared(2, 2) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_84.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_84.sql new file mode 100644 index 0000000000..0fa7757faa --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_84.sql @@ -0,0 +1 @@ +SET extra_float_digits = 0 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_85.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_85.sql new file mode 100644 index 0000000000..73b20a9bbd --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_85.sql @@ -0,0 +1 @@ +CREATE TABLE aggtest ( a int2, b float4 ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_86.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_86.sql new file mode 100644 index 0000000000..eccbb69392 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_86.sql @@ -0,0 +1 @@ +CREATE TABLE regr_test (x float8, y float8) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_87.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_87.sql new file mode 100644 index 0000000000..ed825fb723 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_87.sql @@ -0,0 +1 @@ +INSERT INTO regr_test VALUES (10,150),(20,250),(30,350),(80,540),(100,200) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_88.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_88.sql new file mode 100644 index 0000000000..b6776e0ecc --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_88.sql @@ -0,0 +1 @@ +explain (verbose, costs off) select s1, s2, sm from generate_series(1, 3) s1, lateral (select s2, sum(s1 + s2) sm from generate_series(1, 3) s2 group by s2) ss order by 1, 2 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_89.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_89.sql new file mode 100644 index 0000000000..185b4a2a72 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_89.sql @@ -0,0 +1 @@ +explain (verbose, costs off) select array(select sum(x+y) s from generate_series(1,3) y group by y order by s) from generate_series(1,3) x \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_90.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_90.sql new file mode 100644 index 0000000000..813260fd34 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_90.sql @@ -0,0 +1 @@ +CREATE TEMPORARY TABLE bitwise_test( i2 INT2, i4 INT4, i8 INT8, i INTEGER, x INT2, y BIT(4) ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_postgresql_pg_regress_91.sql b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_91.sql new file mode 100644 index 0000000000..a9c8c8d80d --- /dev/null +++ b/fuzz/fuzz_seeds/bench_postgresql_pg_regress_91.sql @@ -0,0 +1 @@ +COPY bitwise_test FROM STDIN NULL 'null' \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_bench_100.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_100.sql new file mode 100644 index 0000000000..e33d125776 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_100.sql @@ -0,0 +1 @@ +select /* TPC-H Q3 */ l_orderkey, sum(l_extendedprice * (1 - l_discount)) as revenue, o_orderdate, o_shippriority from customer, orders, lineitem where c_mktsegment = 'BUILDING' and c_custkey = o_custkey and l_orderkey = o_orderkey and o_orderdate < date '1995-03-15' and l_shipdate > date '1995-03-15' group by l_orderkey, o_orderdate, o_shippriority order by revenue desc, o_orderdate limit 10 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_bench_101.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_101.sql new file mode 100644 index 0000000000..72669f905b --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_101.sql @@ -0,0 +1 @@ +CREATE SCHEMA IF NOT EXISTS tpcds_reports \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_bench_92.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_92.sql new file mode 100644 index 0000000000..af92535341 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_92.sql @@ -0,0 +1 @@ +set enable_result_cache_for_session = off \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_bench_93.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_93.sql new file mode 100644 index 0000000000..d4390997c1 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_93.sql @@ -0,0 +1 @@ +select dt.d_year ,item.i_brand_id brand_id ,item.i_brand brand ,sum(ss_net_profit) sum_agg from date_dim dt ,store_sales ,item where dt.d_date_sk = store_sales.ss_sold_date_sk and store_sales.ss_item_sk = item.i_item_sk and item.i_manufact_id = 618 and dt.d_moy=11 group by dt.d_year ,item.i_brand ,item.i_brand_id order by dt.d_year ,sum_agg desc ,brand_id limit 100 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_bench_94.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_94.sql new file mode 100644 index 0000000000..9faf25cc40 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_94.sql @@ -0,0 +1 @@ +select dt.d_year ,item.i_brand_id brand_id ,item.i_brand brand ,sum(ss_ext_sales_price) sum_agg from date_dim dt ,store_sales ,item where dt.d_date_sk = store_sales.ss_sold_date_sk and store_sales.ss_item_sk = item.i_item_sk and item.i_manufact_id = 140 and dt.d_moy=11 group by dt.d_year ,item.i_brand ,item.i_brand_id order by dt.d_year ,sum_agg desc ,brand_id limit 100 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_bench_95.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_95.sql new file mode 100644 index 0000000000..dd8c6aa76b --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_95.sql @@ -0,0 +1 @@ +select dt.d_year ,item.i_brand_id brand_id ,item.i_brand brand ,sum(ss_ext_discount_amt) sum_agg from date_dim dt ,store_sales ,item where dt.d_date_sk = store_sales.ss_sold_date_sk and store_sales.ss_item_sk = item.i_item_sk and item.i_manufact_id = 548 and dt.d_moy=11 group by dt.d_year ,item.i_brand ,item.i_brand_id order by dt.d_year ,sum_agg desc ,brand_id limit 100 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_bench_96.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_96.sql new file mode 100644 index 0000000000..1dfba08b84 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_96.sql @@ -0,0 +1 @@ +DROP SCHEMA IF EXISTS tpcds_reports CASCADE \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_bench_97.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_97.sql new file mode 100644 index 0000000000..e9c99c2d7d --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_97.sql @@ -0,0 +1 @@ +CREATE SCHEMA tpcds_reports \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_bench_98.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_98.sql new file mode 100644 index 0000000000..0c11705eae --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_98.sql @@ -0,0 +1 @@ +CREATE TABLE tpcds_reports.sql (id int, description varchar, tuples bigint, duration timestamp) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_bench_99.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_99.sql new file mode 100644 index 0000000000..ec33eee48c --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_bench_99.sql @@ -0,0 +1 @@ +CREATE TABLE tpcds_reports.multisql (id int, description varchar, tuples bigint, duration timestamp) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_utils_102.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_utils_102.sql new file mode 100644 index 0000000000..73cb829fbb --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_utils_102.sql @@ -0,0 +1 @@ +copy region from 's3://redshift-downloads/TPC-H/2.18/30TB/region/' iam_role 'arn:aws:iam:::role/RedshiftCopyRole' delimiter '|' EMPTYASNULL region 'us-east-1' \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_redshift_redshift_utils_103.sql b/fuzz/fuzz_seeds/bench_redshift_redshift_utils_103.sql new file mode 100644 index 0000000000..1ee37d775c --- /dev/null +++ b/fuzz/fuzz_seeds/bench_redshift_redshift_utils_103.sql @@ -0,0 +1 @@ +copy nation from 's3://redshift-downloads/TPC-H/2.18/30TB/nation/' iam_role 'arn:aws:iam:::role/RedshiftCopyRole' delimiter '|' EMPTYASNULL region 'us-east-1' \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_104.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_104.sql new file mode 100644 index 0000000000..14f27221e3 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_104.sql @@ -0,0 +1 @@ +CREATE TABLE t1(col1 INT, col2 STRING) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_105.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_105.sql new file mode 100644 index 0000000000..1c3537e44e --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_105.sql @@ -0,0 +1 @@ +CREATE TABLE t2(col1 STRUCT, a STRING) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_106.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_106.sql new file mode 100644 index 0000000000..624960164c --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_106.sql @@ -0,0 +1 @@ +SELECT LEN(LOWER('X')) AS a, 1 AS b, b AS c GROUP BY LOWER('X') ORDER BY LOWER('X') \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_107.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_107.sql new file mode 100644 index 0000000000..d49ccac2ec --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_107.sql @@ -0,0 +1 @@ +SELECT col1.field, field FROM VALUES(named_struct('field', 1)) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_108.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_108.sql new file mode 100644 index 0000000000..517b717bf0 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_108.sql @@ -0,0 +1 @@ +SELECT col1.field, field FROM VALUES(map('field', 1)) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_109.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_109.sql new file mode 100644 index 0000000000..3a60b5cb2a --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_109.sql @@ -0,0 +1 @@ +SELECT COUNT(col1) as alias, SUM(col1) + alias FROM t1 GROUP BY ALL \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_110.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_110.sql new file mode 100644 index 0000000000..861fb119e1 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_110.sql @@ -0,0 +1 @@ +create temporary view data as select * from values ("one", array(11, 12, 13), array(array(111, 112, 113), array(121, 122, 123))), ("two", array(21, 22, 23), array(array(211, 212, 213), array(221, 222, 223))) as data(a, b, c) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_111.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_111.sql new file mode 100644 index 0000000000..6f949751e1 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_111.sql @@ -0,0 +1 @@ +set spark.sql.legacy.negativeIndexInArrayInsert=true \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_112.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_112.sql new file mode 100644 index 0000000000..5256abea1e --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_112.sql @@ -0,0 +1 @@ +set spark.sql.legacy.negativeIndexInArrayInsert=false \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_113.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_113.sql new file mode 100644 index 0000000000..06e8584385 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_113.sql @@ -0,0 +1 @@ +CREATE OR REPLACE TEMPORARY VIEW bitwise_test AS SELECT * FROM VALUES (1, 1, 1, 1L), (2, 3, 4, null), (7, 7, 7, 3L) AS bitwise_test(b1, b2, b3, b4) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_114.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_114.sql new file mode 100644 index 0000000000..8ef5c1f9c4 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_114.sql @@ -0,0 +1 @@ +ALTER TABLE test_change RENAME COLUMN a TO a1 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_115.sql b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_115.sql new file mode 100644 index 0000000000..e9411a2698 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_spark_sql_spark_sql_tst_115.sql @@ -0,0 +1 @@ +ALTER TABLE test_change CHANGE a TYPE STRING \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_116.sql b/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_116.sql new file mode 100644 index 0000000000..1a4a5c20f6 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_116.sql @@ -0,0 +1 @@ +SELECT COUNT(*) FROM head WHERE age > 56 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_117.sql b/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_117.sql new file mode 100644 index 0000000000..9678b55c13 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_117.sql @@ -0,0 +1 @@ +SELECT name, born_state, age FROM head ORDER BY age \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_118.sql b/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_118.sql new file mode 100644 index 0000000000..805c6f36ba --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_118.sql @@ -0,0 +1 @@ +SELECT creation, name, budget_in_billions FROM department \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_119.sql b/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_119.sql new file mode 100644 index 0000000000..5b4e84e6f8 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sql_create_ctx_119.sql @@ -0,0 +1 @@ +SELECT MAX(budget_in_billions), MIN(budget_in_billions) FROM department \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_120.sql b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_120.sql new file mode 100644 index 0000000000..d638477982 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_120.sql @@ -0,0 +1 @@ +CREATE TABLE t1( xi INTEGER, xr REAL, xb BLOB, xn NUMERIC, xt TEXT ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_121.sql b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_121.sql new file mode 100644 index 0000000000..095ff37046 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_121.sql @@ -0,0 +1 @@ +INSERT INTO t1(rowid,xi,xr,xb,xn,xt) VALUES(1,1,1,1,1,1) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_122.sql b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_122.sql new file mode 100644 index 0000000000..2009a43083 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_122.sql @@ -0,0 +1 @@ +INSERT INTO t1(rowid,xi,xr,xb,xn,xt) VALUES(2,'2','2','2','2','2') \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_123.sql b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_123.sql new file mode 100644 index 0000000000..9680f66da5 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_123.sql @@ -0,0 +1 @@ +CREATE INDEX ii ON ttt(CAST(c0 AS NUMERIC)) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_124.sql b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_124.sql new file mode 100644 index 0000000000..3541aa2a40 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_124.sql @@ -0,0 +1 @@ +INSERT INTO ttt VALUES('abc', '-1') \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_125.sql b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_125.sql new file mode 100644 index 0000000000..7601e102b7 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_125.sql @@ -0,0 +1 @@ +CREATE TABLE t3(a, b, c INTEGER) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_126.sql b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_126.sql new file mode 100644 index 0000000000..d847080b59 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_126.sql @@ -0,0 +1 @@ +CREATE INDEX t3ac ON t3(a, c-1) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_127.sql b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_127.sql new file mode 100644 index 0000000000..a494f1caa6 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_sqlite_sqlite_official_suite_127.sql @@ -0,0 +1 @@ +INSERT INTO t3 VALUES(1, 1, 1) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_trino_clickbench_trino_128.sql b/fuzz/fuzz_seeds/bench_trino_clickbench_trino_128.sql new file mode 100644 index 0000000000..7cb72f5bb8 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_trino_clickbench_trino_128.sql @@ -0,0 +1 @@ +CREATE SCHEMA IF NOT EXISTS hive.clickbench WITH (location = 'local:///') \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_129.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_129.sql new file mode 100644 index 0000000000..2e2bbfe3ca --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_129.sql @@ -0,0 +1 @@ +SET XACT_ABORT, NOCOUNT OFF \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_130.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_130.sql new file mode 100644 index 0000000000..a5e84d87b5 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_130.sql @@ -0,0 +1 @@ +SELECT FIRST_VALUE(SalesOrderNumber) OVER(PARTITION BY CustomerID ORDER BY OrderDate) AS FirstSONumberPerCustomer FROM Sales.SalesOrderHeader \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_131.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_131.sql new file mode 100644 index 0000000000..e845476748 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_131.sql @@ -0,0 +1 @@ +SELECT LAST_VALUE(SalesOrderNumber) OVER(PARTITION BY CustomerID ORDER BY OrderDate ROWS UNBOUNDED PRECEDING) AS FirstSONumberPerCustomer FROM Sales.SalesOrderHeader \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_132.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_132.sql new file mode 100644 index 0000000000..587979bbed --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_132.sql @@ -0,0 +1 @@ +SELECT LAG(PurchaseOrderNumber,2) OVER(PARTITION BY CustomerID ORDER BY OrderDate) AS PrevPONumberOffset2 FROM sales.SalesOrderHeader \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_133.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_133.sql new file mode 100644 index 0000000000..25564efd9f --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_133.sql @@ -0,0 +1 @@ +SELECT LEAD(PurchaseOrderNumber) OVER(PARTITION BY CustomerID ORDER BY OrderDate) AS NextPONumber FROM sales.SalesOrderHeader \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_134.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_134.sql new file mode 100644 index 0000000000..91aef444f0 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_134.sql @@ -0,0 +1 @@ +CREATE TABLE [Monty].[Spam] ( Meat int ) WITH ( CLUSTERED COLUMNSTORE INDEX, DISTRIBUTION = HASH(Meat) ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_135.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_135.sql new file mode 100644 index 0000000000..4f548b81f5 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_135.sql @@ -0,0 +1 @@ +CREATE TABLE [Monty].[Eggs] ( Ham int, Chilli int, Milk int ) WITH ( CLUSTERED INDEX(Ham DESC, Chilli ASC, Milk), DISTRIBUTION = ROUND_ROBIN ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_136.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_136.sql new file mode 100644 index 0000000000..43cfac2e91 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_136.sql @@ -0,0 +1 @@ +CREATE TABLE [Monty].[Coconut] ( LumberJack int ) WITH ( DISTRIBUTION = REPLICATE, HEAP ) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_137.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_137.sql new file mode 100644 index 0000000000..58387e4a3d --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_137.sql @@ -0,0 +1 @@ +DECLARE Name_Cursor CURSOR FOR SELECT LastName ,@@CURSOR_ROWS FROM Person.Person \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_138.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_138.sql new file mode 100644 index 0000000000..4a45b3aead --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_138.sql @@ -0,0 +1 @@ +FETCH NEXT FROM Name_Cursor \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_139.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_139.sql new file mode 100644 index 0000000000..7ccc6353d3 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_139.sql @@ -0,0 +1 @@ +DECLARE Employee_Cursor CURSOR FOR SELECT BusinessEntityID, JobTitle FROM AdventureWorks2012.HumanResources.Employee \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_140.sql b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_140.sql new file mode 100644 index 0000000000..c050e19e08 --- /dev/null +++ b/fuzz/fuzz_seeds/bench_tsql_antlr_tsql_140.sql @@ -0,0 +1 @@ +FETCH NEXT FROM Employee_Cursor \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bigquery_struct_array.sql b/fuzz/fuzz_seeds/bigquery_struct_array.sql new file mode 100644 index 0000000000..18f3fc0795 --- /dev/null +++ b/fuzz/fuzz_seeds/bigquery_struct_array.sql @@ -0,0 +1 @@ +SELECT STRUCT(1 AS a, 'x' AS b) AS s, ARRAY[1, 2, 3] AS arr, ARRAY_LENGTH(arr) FROM `project.dataset.tbl` \ No newline at end of file diff --git a/fuzz/fuzz_seeds/bigquery_unnest.sql b/fuzz/fuzz_seeds/bigquery_unnest.sql new file mode 100644 index 0000000000..06f028a332 --- /dev/null +++ b/fuzz/fuzz_seeds/bigquery_unnest.sql @@ -0,0 +1 @@ +SELECT x FROM UNNEST(ARRAY[1, 2, 3]) AS x \ No newline at end of file diff --git a/fuzz/fuzz_seeds/block_comment_nested.sql b/fuzz/fuzz_seeds/block_comment_nested.sql new file mode 100644 index 0000000000..c39e5f71d7 --- /dev/null +++ b/fuzz/fuzz_seeds/block_comment_nested.sql @@ -0,0 +1 @@ +SELECT a /* outer /* inner */ still comment */ FROM t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/case_expr.sql b/fuzz/fuzz_seeds/case_expr.sql new file mode 100644 index 0000000000..3160d64e84 --- /dev/null +++ b/fuzz/fuzz_seeds/case_expr.sql @@ -0,0 +1 @@ +SELECT CASE WHEN a > 1 THEN 'big' WHEN a = 1 THEN 'one' ELSE 'small' END, CASE b WHEN 1 THEN 'x' ELSE 'y' END FROM t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/casts.sql b/fuzz/fuzz_seeds/casts.sql new file mode 100644 index 0000000000..6b06349374 --- /dev/null +++ b/fuzz/fuzz_seeds/casts.sql @@ -0,0 +1 @@ +SELECT CAST(a AS INT), CAST(b AS DECIMAL(10, 2)), CAST(c AS VARCHAR(5)), CAST('2020-01-01' AS DATE) FROM t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/clickhouse_array.sql b/fuzz/fuzz_seeds/clickhouse_array.sql new file mode 100644 index 0000000000..dd62a1ba5d --- /dev/null +++ b/fuzz/fuzz_seeds/clickhouse_array.sql @@ -0,0 +1 @@ +SELECT [1, 2, 3] AS arr, arr[1] AS first FROM t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/comments.sql b/fuzz/fuzz_seeds/comments.sql new file mode 100644 index 0000000000..8501751a3d --- /dev/null +++ b/fuzz/fuzz_seeds/comments.sql @@ -0,0 +1,3 @@ +-- leading line comment +SELECT /* inline */ a /* another */ FROM t /* trailing */ +-- end comment \ No newline at end of file diff --git a/fuzz/fuzz_seeds/create_index.sql b/fuzz/fuzz_seeds/create_index.sql new file mode 100644 index 0000000000..edf2a15433 --- /dev/null +++ b/fuzz/fuzz_seeds/create_index.sql @@ -0,0 +1 @@ +CREATE UNIQUE INDEX idx_name ON t (a, b) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/create_table.sql b/fuzz/fuzz_seeds/create_table.sql new file mode 100644 index 0000000000..160cd18a96 --- /dev/null +++ b/fuzz/fuzz_seeds/create_table.sql @@ -0,0 +1 @@ +CREATE TABLE t (id INT NOT NULL PRIMARY KEY, name VARCHAR(50) DEFAULT 'anon', amount DECIMAL(10, 2) CHECK (amount >= 0), owner_id INT REFERENCES u (id), UNIQUE (name, amount)) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/create_view.sql b/fuzz/fuzz_seeds/create_view.sql new file mode 100644 index 0000000000..668495da2b --- /dev/null +++ b/fuzz/fuzz_seeds/create_view.sql @@ -0,0 +1 @@ +CREATE VIEW v AS SELECT a, b FROM t WHERE a > 0 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/cte.sql b/fuzz/fuzz_seeds/cte.sql new file mode 100644 index 0000000000..d6fbb18a0b --- /dev/null +++ b/fuzz/fuzz_seeds/cte.sql @@ -0,0 +1 @@ +WITH a AS (SELECT 1 AS x), b AS (SELECT x + 1 AS y FROM a) SELECT y FROM b \ No newline at end of file diff --git a/fuzz/fuzz_seeds/cte_recursive.sql b/fuzz/fuzz_seeds/cte_recursive.sql new file mode 100644 index 0000000000..e977cdf325 --- /dev/null +++ b/fuzz/fuzz_seeds/cte_recursive.sql @@ -0,0 +1 @@ +WITH RECURSIVE nums AS (SELECT 1 AS n UNION ALL SELECT n + 1 FROM nums WHERE n < 10) SELECT SUM(n) FROM nums \ No newline at end of file diff --git a/fuzz/fuzz_seeds/deep_nesting.sql b/fuzz/fuzz_seeds/deep_nesting.sql new file mode 100644 index 0000000000..df2c5d3663 --- /dev/null +++ b/fuzz/fuzz_seeds/deep_nesting.sql @@ -0,0 +1 @@ +SELECT ((((((((((((((((((((((((((((((1)))))))))))))))))))))))))))))) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/delete_from.sql b/fuzz/fuzz_seeds/delete_from.sql new file mode 100644 index 0000000000..813531a95f --- /dev/null +++ b/fuzz/fuzz_seeds/delete_from.sql @@ -0,0 +1 @@ +DELETE FROM t WHERE a < 0 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/derived_table.sql b/fuzz/fuzz_seeds/derived_table.sql new file mode 100644 index 0000000000..8c8ae3626a --- /dev/null +++ b/fuzz/fuzz_seeds/derived_table.sql @@ -0,0 +1 @@ +SELECT s.a FROM (SELECT a, b FROM t WHERE a > 0) AS s JOIN (VALUES (1), (2)) AS v(x) ON s.a = v.x \ No newline at end of file diff --git a/fuzz/fuzz_seeds/distinct_group_by.sql b/fuzz/fuzz_seeds/distinct_group_by.sql new file mode 100644 index 0000000000..62b4c30e38 --- /dev/null +++ b/fuzz/fuzz_seeds/distinct_group_by.sql @@ -0,0 +1 @@ +SELECT DISTINCT a, COUNT(*) FROM t GROUP BY a HAVING COUNT(*) > 1 AND SUM(b) IS NOT NULL \ No newline at end of file diff --git a/fuzz/fuzz_seeds/drop_statements.sql b/fuzz/fuzz_seeds/drop_statements.sql new file mode 100644 index 0000000000..b049917a10 --- /dev/null +++ b/fuzz/fuzz_seeds/drop_statements.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS t CASCADE \ No newline at end of file diff --git a/fuzz/fuzz_seeds/empty.sql b/fuzz/fuzz_seeds/empty.sql new file mode 100644 index 0000000000..e69de29bb2 diff --git a/fuzz/fuzz_seeds/expression_ops.sql b/fuzz/fuzz_seeds/expression_ops.sql new file mode 100644 index 0000000000..268b7b5206 --- /dev/null +++ b/fuzz/fuzz_seeds/expression_ops.sql @@ -0,0 +1 @@ +SELECT -a, +b, a % 2, a ^ 2, a / b * c, NOT a AND b OR c FROM t WHERE (a + b) * (c - d) / (e % f) > 0 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/functions.sql b/fuzz/fuzz_seeds/functions.sql new file mode 100644 index 0000000000..b88f52d481 --- /dev/null +++ b/fuzz/fuzz_seeds/functions.sql @@ -0,0 +1 @@ +SELECT COUNT(*), SUM(a), MAX(b), MIN(b), AVG(a), COALESCE(a, 0), SUBSTR(s, 1, 3), UPPER(s), ABS(a) FROM t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/hive_lateral_view.sql b/fuzz/fuzz_seeds/hive_lateral_view.sql new file mode 100644 index 0000000000..895a5e0c55 --- /dev/null +++ b/fuzz/fuzz_seeds/hive_lateral_view.sql @@ -0,0 +1 @@ +SELECT a, x FROM t LATERAL VIEW explode(arr) v AS x \ No newline at end of file diff --git a/fuzz/fuzz_seeds/insert_select.sql b/fuzz/fuzz_seeds/insert_select.sql new file mode 100644 index 0000000000..4ff915f4ee --- /dev/null +++ b/fuzz/fuzz_seeds/insert_select.sql @@ -0,0 +1 @@ +INSERT INTO t (a, b) SELECT x, y FROM u WHERE x > 0 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/insert_values.sql b/fuzz/fuzz_seeds/insert_values.sql new file mode 100644 index 0000000000..c5b73cf4e6 --- /dev/null +++ b/fuzz/fuzz_seeds/insert_values.sql @@ -0,0 +1 @@ +INSERT INTO t (a, b, c) VALUES (1, 'x', NULL), (2, 'y', TRUE) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/joins.sql b/fuzz/fuzz_seeds/joins.sql new file mode 100644 index 0000000000..9ad4694ca1 --- /dev/null +++ b/fuzz/fuzz_seeds/joins.sql @@ -0,0 +1 @@ +SELECT t.a, u.b FROM t INNER JOIN u ON t.id = u.id LEFT JOIN v ON t.id = v.id RIGHT OUTER JOIN w USING (id) FULL OUTER JOIN x ON 1 = 1 CROSS JOIN y \ No newline at end of file diff --git a/fuzz/fuzz_seeds/literals.sql b/fuzz/fuzz_seeds/literals.sql new file mode 100644 index 0000000000..47b2dc239e --- /dev/null +++ b/fuzz/fuzz_seeds/literals.sql @@ -0,0 +1 @@ +SELECT 0, 1, -1, 1.5, -2.75, 1e10, 1.5e-3, TRUE, FALSE, NULL, 'plain', 'it''s quoted', DATE '2020-02-29', TIMESTAMP '1999-12-31 23:59:59', INTERVAL '7' DAY FROM t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/mssql_brackets.sql b/fuzz/fuzz_seeds/mssql_brackets.sql new file mode 100644 index 0000000000..6fbfce93d3 --- /dev/null +++ b/fuzz/fuzz_seeds/mssql_brackets.sql @@ -0,0 +1 @@ +SELECT [id], [odd name] FROM [dbo].[tbl] WHERE [x] = 1 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/mssql_top.sql b/fuzz/fuzz_seeds/mssql_top.sql new file mode 100644 index 0000000000..94329c5a7d --- /dev/null +++ b/fuzz/fuzz_seeds/mssql_top.sql @@ -0,0 +1 @@ +SELECT TOP 10 a FROM t ORDER BY a \ No newline at end of file diff --git a/fuzz/fuzz_seeds/mssql_unicode_literal.sql b/fuzz/fuzz_seeds/mssql_unicode_literal.sql new file mode 100644 index 0000000000..fcfbd7afd3 --- /dev/null +++ b/fuzz/fuzz_seeds/mssql_unicode_literal.sql @@ -0,0 +1 @@ +SELECT N'unicode literal' AS n \ No newline at end of file diff --git a/fuzz/fuzz_seeds/multi_statement.sql b/fuzz/fuzz_seeds/multi_statement.sql new file mode 100644 index 0000000000..e6b6b7ae80 --- /dev/null +++ b/fuzz/fuzz_seeds/multi_statement.sql @@ -0,0 +1,3 @@ +SELECT 1; +UPDATE t SET a = 2; +DELETE FROM t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/mysql_backticks.sql b/fuzz/fuzz_seeds/mysql_backticks.sql new file mode 100644 index 0000000000..2aed7fdab6 --- /dev/null +++ b/fuzz/fuzz_seeds/mysql_backticks.sql @@ -0,0 +1 @@ +SELECT `a`, `odd name` FROM `t` LIMIT 10, 20 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/mysql_insert_flags.sql b/fuzz/fuzz_seeds/mysql_insert_flags.sql new file mode 100644 index 0000000000..a4977a9db3 --- /dev/null +++ b/fuzz/fuzz_seeds/mysql_insert_flags.sql @@ -0,0 +1 @@ +INSERT IGNORE INTO t (a) VALUES (1) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/mysql_on_duplicate.sql b/fuzz/fuzz_seeds/mysql_on_duplicate.sql new file mode 100644 index 0000000000..ed34ba61e8 --- /dev/null +++ b/fuzz/fuzz_seeds/mysql_on_duplicate.sql @@ -0,0 +1 @@ +INSERT INTO t (a, b) VALUES (1, 2) ON DUPLICATE KEY UPDATE b = b + 1 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/only_semicolon.sql b/fuzz/fuzz_seeds/only_semicolon.sql new file mode 100644 index 0000000000..1c8a0e7976 --- /dev/null +++ b/fuzz/fuzz_seeds/only_semicolon.sql @@ -0,0 +1 @@ +; \ No newline at end of file diff --git a/fuzz/fuzz_seeds/oracle_merge.sql b/fuzz/fuzz_seeds/oracle_merge.sql new file mode 100644 index 0000000000..1e998baccc --- /dev/null +++ b/fuzz/fuzz_seeds/oracle_merge.sql @@ -0,0 +1 @@ +MERGE INTO t USING u ON (t.id = u.id) WHEN MATCHED THEN UPDATE SET t.v = u.v WHEN NOT MATCHED THEN INSERT (id, v) VALUES (u.id, u.v) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/order_limit.sql b/fuzz/fuzz_seeds/order_limit.sql new file mode 100644 index 0000000000..28958482cb --- /dev/null +++ b/fuzz/fuzz_seeds/order_limit.sql @@ -0,0 +1 @@ +SELECT a FROM t ORDER BY a ASC, b DESC NULLS LAST LIMIT 10 OFFSET 5 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/postgres_cast_json.sql b/fuzz/fuzz_seeds/postgres_cast_json.sql new file mode 100644 index 0000000000..721a127351 --- /dev/null +++ b/fuzz/fuzz_seeds/postgres_cast_json.sql @@ -0,0 +1 @@ +SELECT a::int, b::text[], c->'key', c->>'key', d#>'{a,b}', e[1], ARRAY[1, 2, 3] FROM t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/postgres_ilike.sql b/fuzz/fuzz_seeds/postgres_ilike.sql new file mode 100644 index 0000000000..9869c7e716 --- /dev/null +++ b/fuzz/fuzz_seeds/postgres_ilike.sql @@ -0,0 +1 @@ +SELECT a FROM t WHERE a ILIKE 'x%' AND b SIMILAR TO 'a+' \ No newline at end of file diff --git a/fuzz/fuzz_seeds/postgres_returning.sql b/fuzz/fuzz_seeds/postgres_returning.sql new file mode 100644 index 0000000000..1e16f9d9f1 --- /dev/null +++ b/fuzz/fuzz_seeds/postgres_returning.sql @@ -0,0 +1 @@ +INSERT INTO t (a) VALUES (1) RETURNING id \ No newline at end of file diff --git a/fuzz/fuzz_seeds/postgres_upsert.sql b/fuzz/fuzz_seeds/postgres_upsert.sql new file mode 100644 index 0000000000..5beffbac9a --- /dev/null +++ b/fuzz/fuzz_seeds/postgres_upsert.sql @@ -0,0 +1 @@ +INSERT INTO t (id, v) VALUES (1, 'a') ON CONFLICT (id) DO UPDATE SET v = EXCLUDED.v \ No newline at end of file diff --git a/fuzz/fuzz_seeds/quoted_identifiers.sql b/fuzz/fuzz_seeds/quoted_identifiers.sql new file mode 100644 index 0000000000..015798d569 --- /dev/null +++ b/fuzz/fuzz_seeds/quoted_identifiers.sql @@ -0,0 +1 @@ +SELECT "Odd Name", "with ""quote""" AS "Alias", t."col" FROM "Tbl" AS "t" \ No newline at end of file diff --git a/fuzz/fuzz_seeds/select_columns_aliases.sql b/fuzz/fuzz_seeds/select_columns_aliases.sql new file mode 100644 index 0000000000..136517fe61 --- /dev/null +++ b/fuzz/fuzz_seeds/select_columns_aliases.sql @@ -0,0 +1 @@ +SELECT a, b AS bb, t.c, 1 + 2 * 3 AS expr, 'x' || 'y' AS cat FROM schema1.t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/select_simple.sql b/fuzz/fuzz_seeds/select_simple.sql new file mode 100644 index 0000000000..23b9ac6ff0 --- /dev/null +++ b/fuzz/fuzz_seeds/select_simple.sql @@ -0,0 +1 @@ +SELECT * FROM t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/set_ops.sql b/fuzz/fuzz_seeds/set_ops.sql new file mode 100644 index 0000000000..b3c34c4cfd --- /dev/null +++ b/fuzz/fuzz_seeds/set_ops.sql @@ -0,0 +1 @@ +SELECT a FROM t UNION ALL SELECT a FROM u UNION SELECT b FROM v INTERSECT SELECT c FROM w EXCEPT SELECT d FROM x \ No newline at end of file diff --git a/fuzz/fuzz_seeds/snowflake_qualify.sql b/fuzz/fuzz_seeds/snowflake_qualify.sql new file mode 100644 index 0000000000..dd94e1d6c2 --- /dev/null +++ b/fuzz/fuzz_seeds/snowflake_qualify.sql @@ -0,0 +1 @@ +SELECT a, ROW_NUMBER() OVER (PARTITION BY b ORDER BY c) AS rn FROM t QUALIFY rn = 1 \ No newline at end of file diff --git a/fuzz/fuzz_seeds/snowflake_semi_join.sql b/fuzz/fuzz_seeds/snowflake_semi_join.sql new file mode 100644 index 0000000000..3b9f8878ca --- /dev/null +++ b/fuzz/fuzz_seeds/snowflake_semi_join.sql @@ -0,0 +1 @@ +SELECT a FROM t SEMI JOIN u ON t.id = u.id \ No newline at end of file diff --git a/fuzz/fuzz_seeds/sqlite_insert_or_replace.sql b/fuzz/fuzz_seeds/sqlite_insert_or_replace.sql new file mode 100644 index 0000000000..05837033ae --- /dev/null +++ b/fuzz/fuzz_seeds/sqlite_insert_or_replace.sql @@ -0,0 +1 @@ +INSERT OR REPLACE INTO t (a, b) VALUES (1, 2) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/subqueries.sql b/fuzz/fuzz_seeds/subqueries.sql new file mode 100644 index 0000000000..3721e808d1 --- /dev/null +++ b/fuzz/fuzz_seeds/subqueries.sql @@ -0,0 +1 @@ +SELECT (SELECT MAX(a) FROM u), a FROM t WHERE a IN (SELECT b FROM u) AND EXISTS (SELECT 1 FROM v WHERE v.id = t.id) AND d IN (SELECT z FROM w) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/table_function.sql b/fuzz/fuzz_seeds/table_function.sql new file mode 100644 index 0000000000..d29851f548 --- /dev/null +++ b/fuzz/fuzz_seeds/table_function.sql @@ -0,0 +1 @@ +SELECT * FROM generate_series(1, 10) AS g(x) \ No newline at end of file diff --git a/fuzz/fuzz_seeds/transaction.sql b/fuzz/fuzz_seeds/transaction.sql new file mode 100644 index 0000000000..565a8c291b --- /dev/null +++ b/fuzz/fuzz_seeds/transaction.sql @@ -0,0 +1 @@ +START TRANSACTION \ No newline at end of file diff --git a/fuzz/fuzz_seeds/unicode.sql b/fuzz/fuzz_seeds/unicode.sql new file mode 100644 index 0000000000..3968aef296 --- /dev/null +++ b/fuzz/fuzz_seeds/unicode.sql @@ -0,0 +1 @@ +SELECT 'ünïcödé', 'ключ', '日本語', 'emoji 🎉' AS label FROM t \ No newline at end of file diff --git a/fuzz/fuzz_seeds/update_set.sql b/fuzz/fuzz_seeds/update_set.sql new file mode 100644 index 0000000000..974d1a321a --- /dev/null +++ b/fuzz/fuzz_seeds/update_set.sql @@ -0,0 +1 @@ +UPDATE t SET a = a + 1, b = 'z' WHERE c IS NOT NULL \ No newline at end of file diff --git a/fuzz/fuzz_seeds/where_predicates.sql b/fuzz/fuzz_seeds/where_predicates.sql new file mode 100644 index 0000000000..ce2c7f45d3 --- /dev/null +++ b/fuzz/fuzz_seeds/where_predicates.sql @@ -0,0 +1 @@ +SELECT a FROM t WHERE a > 1 AND b < 10 OR NOT c = 'x' AND d IS NOT NULL AND e BETWEEN 1 AND 5 AND f IN (1, 2, 3) AND g LIKE 'ab%' AND h NOT LIKE '%z' \ No newline at end of file diff --git a/fuzz/fuzz_seeds/window_functions.sql b/fuzz/fuzz_seeds/window_functions.sql new file mode 100644 index 0000000000..02ddce13e4 --- /dev/null +++ b/fuzz/fuzz_seeds/window_functions.sql @@ -0,0 +1 @@ +SELECT a, ROW_NUMBER() OVER (PARTITION BY b ORDER BY c) AS rn, SUM(a) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running, LAG(a) OVER (PARTITION BY b ORDER BY c ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS prev FROM t \ No newline at end of file From bf1d97dde147a47a196ab16d8028b4d6e59e748a Mon Sep 17 00:00:00 2001 From: LucaCappelletti94 Date: Mon, 21 Sep 2026 20:47:48 +0200 Subject: [PATCH 2/2] Fuzz: Exclude seed corpus from release tarball Exclude fuzz/fuzz_seeds from git archive release tarballs via .gitattributes export-ignore. Add assertions in create-tarball.sh, verify-release-candidate.sh, and the license CI workflow to verify the seed corpus is not packaged into source release archives. --- .gitattributes | 19 +++++++++++++++++++ .github/workflows/license.yml | 6 ++++++ dev/release/create-tarball.sh | 5 +++++ dev/release/verify-release-candidate.sh | 6 ++++++ 4 files changed, 36 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..53b258e257 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Exclude fuzz seed corpus from release tarball +fuzz/fuzz_seeds export-ignore diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml index f4524f6b21..031e2143c7 100644 --- a/.github/workflows/license.yml +++ b/.github/workflows/license.yml @@ -38,3 +38,9 @@ jobs: python-version: 3.8 - name: Audit licenses run: ./dev/release/run-rat.sh . + - name: Verify release tarball excludes fuzz seeds + run: | + if git archive HEAD | tar -tf - | grep -q 'fuzz/fuzz_seeds'; then + echo "Error: fuzz/fuzz_seeds found in git archive release tarball" + exit 1 + fi diff --git a/dev/release/create-tarball.sh b/dev/release/create-tarball.sh index 5196501c14..862a26892f 100755 --- a/dev/release/create-tarball.sh +++ b/dev/release/create-tarball.sh @@ -117,6 +117,11 @@ echo "---------------------------------------------------------" mkdir -p ${distdir} (cd "${SOURCE_TOP_DIR}" && git archive ${release_hash} --prefix ${release}/ | gzip > ${tarball}) +if tar -tf ${tarball} | grep -q 'fuzz/fuzz_seeds'; then + echo "Error: fuzz/fuzz_seeds found in release tarball ${tarball}" + exit 1 +fi + echo "Running rat license checker on ${tarball}" ${SOURCE_DIR}/run-rat.sh ${tarball} diff --git a/dev/release/verify-release-candidate.sh b/dev/release/verify-release-candidate.sh index 4e97c6e2a1..ffec08877c 100755 --- a/dev/release/verify-release-candidate.sh +++ b/dev/release/verify-release-candidate.sh @@ -124,6 +124,12 @@ test_source_distribution() { cargo build cargo test --all-features + # Ensure fuzz seed corpus is not packaged into the release tarball + if [ -d "fuzz/fuzz_seeds" ]; then + echo "fuzz/fuzz_seeds should not be included in the release tarball" + exit 1 + fi + if ( find . -iname 'Cargo.toml' | xargs grep SNAPSHOT ); then echo "Cargo.toml version should not contain SNAPSHOT for releases" exit 1