Changeset: 43ef6cda34b1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/43ef6cda34b1
Modified Files:
sql/backends/monet5/rel_bin.c
sql/backends/monet5/rel_physical.c
sql/server/rel_optimize_sel.c
sql/test/miscellaneous/Tests/simple_plans.test
Branch: default
Log Message:
merged with mar2025
diffs (77 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -3766,7 +3766,7 @@ rel2bin_semijoin(backend *be, sql_rel *r
if (!l || !r)
return NULL;
- if (be->no_mitosis &&
list_length(jexps) == 1 && list_empty(sexps) && rel->op == op_semi &&
!is_anti(e) && is_equi_exp_(e)) {
+ if (/*be->no_mitosis &&*/
list_length(jexps) == 1 && list_empty(sexps) && rel->op == op_semi &&
!is_anti(e) && is_equi_exp_(e)) {
join = stmt_semijoin(be,
column(be, l), column(be, r), left->cand, NULL/*right->cand*/, is_semantics(e),
false);
semijoin_only = 1;
en = NULL;
diff --git a/sql/backends/monet5/rel_physical.c
b/sql/backends/monet5/rel_physical.c
--- a/sql/backends/monet5/rel_physical.c
+++ b/sql/backends/monet5/rel_physical.c
@@ -225,7 +225,9 @@ rel_partition(mvc *sql, sql_rel *rel)
break;
case op_semi:
case op_anti:
-
+ if (rel->l)
+ rel_partition(sql, rel->l);
+ break;
case op_inter:
case op_except:
if (rel->l)
diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c
--- a/sql/server/rel_optimize_sel.c
+++ b/sql/server/rel_optimize_sel.c
@@ -1636,6 +1636,15 @@ rel_uses_exp_outside_subrel(sql_rel *rel
static inline sql_rel *
rel_join2semijoin(visitor *v, sql_rel *rel)
{
+ if (!rel_is_ref(rel) && is_simple_project(rel->op) &&
need_distinct(rel) && rel->l) {
+ sql_rel *l = rel->l;
+
+ if (!rel_is_ref(l) && l->op == op_join &&
rel_has_all_exps(l->l, rel->exps)) {
+ l->op = op_semi;
+ v->changes++;
+ return rel;
+ }
+ }
if ((is_simple_project(rel->op) || is_groupby(rel->op)) && rel->l) {
bool swap = false;
sql_rel *l = rel->l;
diff --git a/sql/test/bugs/Tests/rtrim_bug.test
b/sql/test/bugs/Tests/rtrim_bug.test
--- a/sql/test/bugs/Tests/rtrim_bug.test
+++ b/sql/test/bugs/Tests/rtrim_bug.test
@@ -80,7 +80,7 @@ select count(*) from sys.tracelog() wher
0
query I rowsort
-select count(*) from sys.tracelog() where stmt like '% algebra.join%'
+select count(*) from sys.tracelog() where stmt like '% algebra.intersect%'
----
1
diff --git a/sql/test/miscellaneous/Tests/simple_plans.test
b/sql/test/miscellaneous/Tests/simple_plans.test
--- a/sql/test/miscellaneous/Tests/simple_plans.test
+++ b/sql/test/miscellaneous/Tests/simple_plans.test
@@ -505,16 +505,12 @@ explain select t1.a, t1.b from t1 inner
----
algebra.intersect
1
-algebra.join
-1
algebra.likejoin
1
algebra.projection
4
algebra.projectionpath
1
-bat.mirror
-1
bat.pack
5
bat.single
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]