Changeset: d341804686b2 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d341804686b2 Modified Files: sql/server/rel_optimizer.c Branch: default Log Message:
Merged with oscar diffs (97 lines): diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -7641,6 +7641,8 @@ rel_simplify_predicates(visitor *v, sql_ if (!strcmp(inf->func->base.name, "<>")) flag = !flag; + if (e->flag == cmp_notequal) + flag = !flag; assert(list_length(args) == 2); l = args->h->data; r = args->h->next->data; diff --git a/sql/test/SQLancer/Tests/sqlancer01.sql b/sql/test/SQLancer/Tests/sqlancer01.sql --- a/sql/test/SQLancer/Tests/sqlancer01.sql +++ b/sql/test/SQLancer/Tests/sqlancer01.sql @@ -319,6 +319,23 @@ create view v1(c0) as (select distinct t select max(all abs(+ (- (- (-1620427795))))) from v0, t0 join v1 on ((((v1.c0)||(t0.c1)))ilike(v1.c0)); ROLLBACK; +START TRANSACTION; +CREATE TABLE "sys"."t1" ("c0" VARCHAR(427),"c1" TIME); +COPY 5 RECORDS INTO "sys"."t1" FROM stdin USING DELIMITERS E'\t',E'\n','"'; +"-" NULL +"0.9494786438610024" NULL +"MA4DƹXb,⻇멫ho\trYmꈋP-aR" NULL +NULL 02:45:58 +NULL 05:45:05 + +SELECT MEDIAN(ALL abs(CASE TIMESTAMP '1970-01-24 09:25:06' WHEN TIMESTAMP '1970-01-19 10:35:50' THEN 2 END)) FROM t1 GROUP BY abs(0.8); +SELECT MEDIAN(ALL abs(CASE TIMESTAMP '1970-01-24 09:25:06' WHEN TIMESTAMP '1970-01-19 10:35:50' THEN 2 END)) FROM t1 GROUP BY abs(0.8) HAVING (NOT (MIN(ALL NOT (NOT ((0.7) IS NULL))))) = TRUE +UNION ALL +SELECT MEDIAN(ALL abs(CASE TIMESTAMP '1970-01-24 09:25:06' WHEN TIMESTAMP '1970-01-19 10:35:50' THEN 2 END)) FROM t1 GROUP BY abs(0.8) HAVING NOT ((NOT (MIN(ALL NOT (NOT ((0.7) IS NULL))))) = TRUE) +UNION ALL +SELECT MEDIAN(ALL abs(CASE TIMESTAMP '1970-01-24 09:25:06' WHEN TIMESTAMP '1970-01-19 10:35:50' THEN 2 END)) FROM t1 GROUP BY abs(0.8) HAVING ((NOT (MIN(ALL NOT (NOT ((0.7) IS NULL))))) = TRUE) IS NULL; +ROLLBACK; + DROP TABLE tbl_ProductSales; DROP TABLE another_T; DROP TABLE integers; diff --git a/sql/test/SQLancer/Tests/sqlancer01.stable.out b/sql/test/SQLancer/Tests/sqlancer01.stable.out --- a/sql/test/SQLancer/Tests/sqlancer01.stable.out +++ b/sql/test/SQLancer/Tests/sqlancer01.stable.out @@ -213,8 +213,8 @@ stdout of test 'sqlancer01` in directory % int # type % 1 # length #select 1 from another_t join integers on (cast(another_t.col4 between 1 and 2 as int)) where false; -% .%15 # table_name -% %15 # name +% .%11 # table_name +% %11 # name % tinyint # type % 1 # length #SELECT another_T.col2 FROM tbl_productsales, integers LEFT OUTER JOIN another_T ON another_T.col1 > 1 WHERE another_T.col2 > 1 GROUP BY another_T.col2 HAVING COUNT((another_T.col2) IN (another_T.col2)) > 0; @@ -272,8 +272,8 @@ stdout of test 'sqlancer01` in directory % 1 # length [ 1 ] #select 1 from t0 where (3 in (1, 2)) is null; --simplified -% .%5 # table_name -% %5 # name +% .%4 # table_name +% %4 # name % tinyint # type % 1 # length #SELECT 1 FROM t0 WHERE t0.c0 BETWEEN SYMMETRIC (1 IN (2, 1)) AND t0.c0; @@ -625,6 +625,32 @@ stdout of test 'sqlancer01` in directory % 1 # length [ NULL ] #ROLLBACK; +#START TRANSACTION; +#CREATE TABLE "sys"."t1" ("c0" VARCHAR(427),"c1" TIME); +#COPY 5 RECORDS INTO "sys"."t1" FROM stdin USING DELIMITERS E'\t',E'\n','"'; +#"-" NULL +#"0.9494786438610024" NULL +#"MA4DƹXb,⻇멫ho\trYmꈋP-aR" NULL +#NULL 02:45:58 +#NULL 05:45:05 +[ 5 ] +#SELECT MEDIAN(ALL abs(CASE TIMESTAMP '1970-01-24 09:25:06' WHEN TIMESTAMP '1970-01-19 10:35:50' THEN 2 END)) FROM t1 GROUP BY abs(0.8); +% .%2 # table_name +% %2 # name +% tinyint # type +% 1 # length +[ NULL ] +#SELECT MEDIAN(ALL abs(CASE TIMESTAMP '1970-01-24 09:25:06' WHEN TIMESTAMP '1970-01-19 10:35:50' THEN 2 END)) FROM t1 GROUP BY abs(0.8) HAVING (NOT (MIN(ALL NOT (NOT ((0.7) IS NULL))))) = TRUE +#UNION ALL +#SELECT MEDIAN(ALL abs(CASE TIMESTAMP '1970-01-24 09:25:06' WHEN TIMESTAMP '1970-01-19 10:35:50' THEN 2 END)) FROM t1 GROUP BY abs(0.8) HAVING NOT ((NOT (MIN(ALL NOT (NOT ((0.7) IS NULL))))) = TRUE) +#UNION ALL +#SELECT MEDIAN(ALL abs(CASE TIMESTAMP '1970-01-24 09:25:06' WHEN TIMESTAMP '1970-01-19 10:35:50' THEN 2 END)) FROM t1 GROUP BY abs(0.8) HAVING ((NOT (MIN(ALL NOT (NOT ((0.7) IS NULL))))) = TRUE) IS NULL; +% .%23 # table_name +% %2 # name +% tinyint # type +% 1 # length +[ NULL ] +#ROLLBACK; #DROP TABLE tbl_ProductSales; #DROP TABLE another_T; #DROP TABLE integers; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list