Changeset: f30278ca3c19 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/f30278ca3c19 Added Files: sql/test/BugTracker-2021/Tests/batcalc-between-undefined.Bug-7129.test sql/test/BugTracker-2021/Tests/lowercase-cryllic.Bug-7126.test Removed Files: sql/test/BugTracker-2021/Tests/batcalc-between-undefined.Bug-7129.sql sql/test/BugTracker-2021/Tests/batcalc-between-undefined.Bug-7129.stable.err sql/test/BugTracker-2021/Tests/batcalc-between-undefined.Bug-7129.stable.out sql/test/BugTracker-2021/Tests/lowercase-crylic.Bug-7126.test sql/test/BugTracker-2021/Tests/lowercase-cryllic.Bug-7126.sql sql/test/BugTracker-2021/Tests/lowercase-cryllic.Bug-7126.stable.err sql/test/BugTracker-2021/Tests/lowercase-cryllic.Bug-7126.stable.out Modified Files: sql/server/rel_optimizer.c sql/test/BugTracker-2021/Tests/All Branch: Jul2021 Log Message:
Merged with Oct2020 diffs (65 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 @@ -3939,17 +3939,19 @@ rel_merge_project_rse(visitor *v, sql_re if (((strcmp(lf->func->base.name, ">=") == 0 || strcmp(lf->func->base.name, ">") == 0) && list_length(lfexps) == 2) && ((strcmp(rf->func->base.name, "<=") == 0 || strcmp(rf->func->base.name, "<") == 0) && list_length(rfexps) == 2) && exp_equal(list_fetch(lfexps,0), list_fetch(rfexps,0)) == 0) { - sql_exp *ne = exp_compare2(v->sql->sa, - list_fetch(lfexps, 0), - list_fetch(lfexps, 1), - list_fetch(rfexps, 1), - compare_funcs2range(lf->func->base.name, rf->func->base.name)); - if (ne) { + sql_exp *e1 = list_fetch(lfexps, 0), *e2 = list_fetch(lfexps, 1), *e3 = list_fetch(rfexps, 1), *ne = NULL; + sql_subtype *t1 = exp_subtype(e1), *t3 = exp_subtype(e3), super; + + supertype(&super, t1, t3); /* e1 and e2 must have the same type */ + if ((e1 = exp_check_type(v->sql, &super, rel, e1, type_equal)) && + (e2 = exp_check_type(v->sql, &super, rel, e2, type_equal)) && + (e3 = exp_check_type(v->sql, &super, rel, e3, type_equal)) && + (ne = exp_compare2(v->sql->sa, e1, e2, e3, compare_funcs2range(lf->func->base.name, rf->func->base.name)))) { if (exp_name(e)) exp_prop_alias(v->sql->sa, ne, e); e = ne; + v->changes++; } - v->changes++; } } } diff --git a/sql/test/BugTracker-2021/Tests/All b/sql/test/BugTracker-2021/Tests/All --- a/sql/test/BugTracker-2021/Tests/All +++ b/sql/test/BugTracker-2021/Tests/All @@ -6,4 +6,5 @@ union-groupby.Bug-7108 merge-stmt.wrong-error.Bug-7109 remote-table-groupby.Bug-7110 conditional-execution-round.Bug-7125 -lowercase-crylic.Bug-7126 +lowercase-cryllic.Bug-7126 +batcalc-between-undefined.Bug-7129 diff --git a/sql/test/BugTracker-2021/Tests/batcalc-between-undefined.Bug-7129.test b/sql/test/BugTracker-2021/Tests/batcalc-between-undefined.Bug-7129.test new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2021/Tests/batcalc-between-undefined.Bug-7129.test @@ -0,0 +1,17 @@ +statement ok +start transaction + +statement ok +create table t_qh ( c_f INTEGER , c_y2 INTEGER , primary key(c_f), unique(c_f) ) + +query II rowsort +WITH cte_1 AS (select count( cast(87.53 as INTEGER)) as c0, avg( cast(abs( cast(50.40 as INTEGER)) as INTEGER)) as c1, subq_0.c0 as c2 from +(select distinct ref_5.c_f as c0, 75 as c1, ref_5.c_f as c2 from t_qh as ref_5 where ref_5.c_f is not NULL) as subq_0 group by subq_0.c0) +select distinct cast(sum( cast((case when (ref_23.c0 > ref_23.c0) and (ref_23.c0 < ref_23.c1) then ref_23.c1 else ref_23.c1 end & ref_23.c1) as INTEGER)) as bigint) +as c3, ref_23.c0 as c4 from cte_1 as ref_23 group by ref_23.c0 +---- + +statement ok +rollback + + diff --git a/sql/test/BugTracker-2021/Tests/lowercase-crylic.Bug-7126.test b/sql/test/BugTracker-2021/Tests/lowercase-cryllic.Bug-7126.test rename from sql/test/BugTracker-2021/Tests/lowercase-crylic.Bug-7126.test rename to sql/test/BugTracker-2021/Tests/lowercase-cryllic.Bug-7126.test _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list