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

Reply via email to