Changeset: eb43c9ee9ed5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/eb43c9ee9ed5
Modified Files:
        sql/server/rel_optimize_proj.c
        sql/server/rel_optimize_sel.c
        sql/test/BugTracker-2026/Tests/7975-cleanup-join-exps.test
Branch: default
Log Message:

improved cleanup of project's
fixed try_duplicate_select, it shouldn't match on nid == 0


diffs (36 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -85,7 +85,8 @@ rel_push_project_down_(visitor *v, sql_r
                        return rel;
                } else if (list_check_prop_all(rel->exps, 
(prop_check_func)&exp_is_useless_rename)) {
                        if ((is_project(l->op) && list_length(l->exps) == 
list_length(rel->exps)) ||
-                               ((v->parent && is_project(v->parent->op)) &&
+                               (/* cannot do this iff v->parent is op_table 
(func), the it expects the proper set of columns */
+                                (!v->parent || v->parent->op != op_table) &&
                                 (is_mset(l->op) || is_set(l->op) || 
is_select(l->op) || is_join(l->op) || is_semi(l->op) || is_topn(l->op) || 
is_sample(l->op)))) {
                                rel->l = NULL;
                                rel_destroy(v->sql, rel);
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
@@ -4855,7 +4855,7 @@ try_duplicate_select(visitor *v, sql_rel
        if (!e || !r || e->type != e_cmp || e->flag != cmp_equal || is_anti(e) 
|| list_empty(r->exps) || rel_is_ref(r))
                return;
        sql_exp *el = e->l, *er = e->r;
-       if (!exp_is_atom(er))
+       if (!exp_is_atom(er) || !el->nid)
                return;
        for (node *n = r->exps->h; n; n = n->next) {
                sql_exp *je = n->data;
diff --git a/sql/test/BugTracker-2026/Tests/7975-cleanup-join-exps.test 
b/sql/test/BugTracker-2026/Tests/7975-cleanup-join-exps.test
--- a/sql/test/BugTracker-2026/Tests/7975-cleanup-join-exps.test
+++ b/sql/test/BugTracker-2026/Tests/7975-cleanup-join-exps.test
@@ -37,7 +37,6 @@ WHERE a.id = b.id
   AND a.k BETWEEN 4000 AND 4999
 ----
 push_project_down 1
-push_project_up 1
 optimize_select_and_joins_bottomup 4
 
 query I
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to