Changeset: 1b6472d7573e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/1b6472d7573e Modified Files: sql/server/rel_exp.c sql/test/SQLancer/Tests/sqlancer16.test Branch: Jul2021 Log Message:
Two comparisons match if neither ->f is set or both ->f are set and match. Also test for same 'symmetric' flag diffs (51 lines): diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c --- a/sql/server/rel_exp.c +++ b/sql/server/rel_exp.c @@ -1305,7 +1305,7 @@ exp_match_exp( sql_exp *e1, sql_exp *e2) return 1; if (is_ascending(e1) != is_ascending(e2) || nulls_last(e1) != nulls_last(e2) || zero_if_empty(e1) != zero_if_empty(e2) || need_no_nil(e1) != need_no_nil(e2) || is_anti(e1) != is_anti(e2) || is_semantics(e1) != is_semantics(e2) || - need_distinct(e1) != need_distinct(e2)) + is_symmetric(e1) != is_symmetric(e2) || need_distinct(e1) != need_distinct(e2)) return 0; if (e1->type == e2->type) { switch(e1->type) { @@ -1313,7 +1313,7 @@ exp_match_exp( sql_exp *e1, sql_exp *e2) if (e1->flag == e2->flag && !is_complex_exp(e1->flag) && exp_match_exp(e1->l, e2->l) && exp_match_exp(e1->r, e2->r) && - ((!e1->f && !e2->f) || exp_match_exp(e1->f, e2->f))) + ((!e1->f && !e2->f) || (e1->f && e2->f && exp_match_exp(e1->f, e2->f)))) return 1; else if (e1->flag == e2->flag && e1->flag == cmp_or && exp_match_list(e1->l, e2->l) && diff --git a/sql/test/SQLancer/Tests/sqlancer16.test b/sql/test/SQLancer/Tests/sqlancer16.test --- a/sql/test/SQLancer/Tests/sqlancer16.test +++ b/sql/test/SQLancer/Tests/sqlancer16.test @@ -35,6 +35,26 @@ statement ok START TRANSACTION statement ok +CREATE TABLE "t1" ("c0" UUID) + +statement ok rowcount 4 +INSERT INTO "t1" VALUES ('f4ecc4d5-5f7c-ce6a-199e-dd98c59f7bbf'), ('f4ecc4d5-5f7c-ce6a-199e-dd98c59f7bbf'), ('f4ecc4d5-5f7c-ce6a-199e-dd98c59f7bbf'), ('f4ecc4d5-5f7c-ce6a-199e-dd98c59f7bbf') + +query T rowsort +SELECT t1.c0 FROM t1 WHERE ((((FALSE)OR(CAST(greatest(5, 1) AS BOOLEAN))))OR((((t1.c0) BETWEEN SYMMETRIC (t1.c0) AND (t1.c0))OR(((t1.c0)<(t1.c0)))))) +---- +f4ecc4d5-5f7c-ce6a-199e-dd98c59f7bbf +f4ecc4d5-5f7c-ce6a-199e-dd98c59f7bbf +f4ecc4d5-5f7c-ce6a-199e-dd98c59f7bbf +f4ecc4d5-5f7c-ce6a-199e-dd98c59f7bbf + +statement ok +ROLLBACK + +statement ok +START TRANSACTION + +statement ok CREATE TABLE t0(c0 INTERVAL DAY PRIMARY KEY, c1 BIGINT) statement ok _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list