Changeset: 05e97a4c3892 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=05e97a4c3892 Modified Files: sql/common/sql_types.c sql/test/SQLancer/Tests/sqlancer03.sql sql/test/SQLancer/Tests/sqlancer03.stable.out Branch: Jun2020 Log Message:
Added test and fix for SQLancer query, ie when checking check that the types of all EC_ANY's are equal, skip if one is already EC_ANY diffs (59 lines): diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c --- a/sql/common/sql_types.c +++ b/sql/common/sql_types.c @@ -603,7 +603,7 @@ sql_dup_subfunc(sql_allocator *sa, sql_f sql_arg *s = m->data; if (s->type.type->eclass == EC_ANY) { - if (!st) + if (!st || st->type->eclass == EC_ANY) /* if input parameter is ANY, skip validation */ st = tn->data; else if (subtype_cmp(st, tn->data)) return NULL; diff --git a/sql/test/SQLancer/Tests/sqlancer03.sql b/sql/test/SQLancer/Tests/sqlancer03.sql --- a/sql/test/SQLancer/Tests/sqlancer03.sql +++ b/sql/test/SQLancer/Tests/sqlancer03.sql @@ -15,3 +15,12 @@ SELECT v0.c0 FROM t0 FULL OUTER JOIN v0 -- empty ROLLBACK; + +START TRANSACTION; -- Bug 6918 +CREATE TABLE "sys"."t0" ("c0" BOOLEAN NOT NULL,"c1" BIGINT,CONSTRAINT "t0_c0_pkey" PRIMARY KEY ("c0"),CONSTRAINT "t0_c0_unique" UNIQUE ("c0")); +create view v0(c0, c1, c2) as (select all 2.020551048E9, 0.16688174, 0.3732000026221729 from t0 where t0.c0) with check option; +SELECT sql_min(sql_max(NULL, ''), '') FROM v0 LEFT OUTER JOIN t0 ON true; +SELECT sql_min(sql_max(NULL, ''), ''); +SELECT ALL length(upper(MIN(ALL CAST(((trim(CAST(r'' AS STRING(659)), CAST(r'o3%+i]抔DCöf▟nßOpNbybಜ7' AS STRING)))||(sql_min(sql_max(NULL, r''), splitpart(r'x', r',7+.', t0.c1)))) AS STRING(151))))), 0.4179268710155164 +FROM v0 LEFT OUTER JOIN t0 ON NOT (t0.c0) WHERE t0.c0 GROUP BY 0.3584962, CAST(t0.c1 AS STRING(601)), t0.c1; +ROLLBACK; diff --git a/sql/test/SQLancer/Tests/sqlancer03.stable.out b/sql/test/SQLancer/Tests/sqlancer03.stable.out --- a/sql/test/SQLancer/Tests/sqlancer03.stable.out +++ b/sql/test/SQLancer/Tests/sqlancer03.stable.out @@ -39,6 +39,27 @@ stdout of test 'sqlancer03` in directory % smallint # type % 1 # length #ROLLBACK; +#START TRANSACTION; +#CREATE TABLE "sys"."t0" ("c0" BOOLEAN NOT NULL,"c1" BIGINT,CONSTRAINT "t0_c0_pkey" PRIMARY KEY ("c0"),CONSTRAINT "t0_c0_unique" UNIQUE ("c0")); +#create view v0(c0, c1, c2) as (select all 2.020551048E9, 0.16688174, 0.3732000026221729 from t0 where t0.c0) with check option; +#SELECT sql_min(sql_max(NULL, ''), '') FROM v0 LEFT OUTER JOIN t0 ON true; +% .%12 # table_name +% %12 # name +% char # type +% 0 # length +#SELECT sql_min(sql_max(NULL, ''), ''); +% .%2 # table_name +% %2 # name +% char # type +% 0 # length +[ NULL ] +#SELECT ALL length(upper(MIN(ALL CAST(((trim(CAST(r'' AS STRING(659)), CAST(r'o3%+i]抔DCöf▟nßOpNbybಜ7' AS STRING)))||(sql_min(sql_max(NULL, r''), splitpart(r'x', r',7+.', t0.c1)))) AS STRING(151))))), 0.4179268710155164 +#FROM v0 LEFT OUTER JOIN t0 ON NOT (t0.c0) WHERE t0.c0 GROUP BY 0.3584962, CAST(t0.c1 AS STRING(601)), t0.c1; +% .%24, .%25 # table_name +% %24, %25 # name +% int, decimal # type +% 1, 19 # length +#ROLLBACK; # 17:14:16 > # 17:14:16 > "Done." _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list