Changeset: 4271faa0765a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4271faa0765a
Modified Files:
        sql/server/rel_optimizer.c
        sql/server/rel_updates.c
Branch: Jun2020
Log Message:

More missing exp_prop_alias calls


diffs (126 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
@@ -1377,7 +1377,7 @@ static sql_exp *
                        e = exp_propagate(sql->sa, e, oe);
                /* if the upper exp was an alias, keep this */
                if (e && exp_relname(ne))
-                       exp_setname(sql->sa, e, exp_relname(ne), exp_name(ne));
+                       exp_prop_alias(sql->sa, e, ne);
                return e;
        case e_cmp:
                if (e->flag == cmp_or || e->flag == cmp_filter) {
@@ -1736,14 +1736,11 @@ rel_push_count_down(visitor *v, sql_rel 
                sql_rel *cp;                    /* Cross Product */
                sql_subfunc *mult;
                list *args;
-               const char *rname = NULL, *name = NULL;
                sql_rel *srel;
 
                oce = rel->exps->h->data;
                if (oce->l) /* we only handle COUNT(*) */
                        return rel;
-               rname = exp_relname(oce);
-               name  = exp_name(oce);
 
                args = new_exp_list(v->sql->sa);
                srel = r->l;
@@ -1776,7 +1773,8 @@ rel_push_count_down(visitor *v, sql_rel 
                cp = rel_crossproduct(v->sql->sa, gbl, gbr, op_join);
 
                nce = exp_op(v->sql->sa, args, mult);
-               exp_setname(v->sql->sa, nce, rname, name );
+               if (exp_name(oce))
+                       exp_prop_alias(v->sql->sa, nce, oce);
 
                rel_destroy(rel);
                rel = rel_project(v->sql->sa, cp, 
append(new_exp_list(v->sql->sa), nce));
@@ -2985,7 +2983,8 @@ rel_merge_projects(visitor *v, sql_rel *
                        }
                        */
                        if (ne) {
-                               exp_setname(v->sql->sa, ne, exp_relname(e), 
exp_name(e));
+                               if (exp_name(e))
+                                       exp_prop_alias(v->sql->sa, ne, e);
                                list_append(rel->exps, ne);
                        } else {
                                all = 0;
@@ -3001,7 +3000,8 @@ rel_merge_projects(visitor *v, sql_rel *
 
                                        ne = exp_push_down_prj(v->sql, e, prj, 
prj->l);
                                        if (ne) {
-                                               exp_setname(v->sql->sa, ne, 
exp_relname(e), exp_name(e));
+                                               if (exp_name(e))
+                                                       
exp_prop_alias(v->sql->sa, ne, e);
                                                list_append(nr, ne);
                                        } else {
                                                all = 0;
@@ -4537,7 +4537,8 @@ rel_push_groupby_down(visitor *v, sql_re
                                        if (exp_refers(ge, a)) {
                                                sql_exp *sc = jr->exps->t->data;
                                                sql_exp *e = exp_ref(v->sql, 
sc);
-                                               exp_setname(v->sql->sa, e, 
exp_relname(a), exp_name(a));
+                                               if (exp_name(a))
+                                                       
exp_prop_alias(v->sql->sa, e, a);
                                                a = e;
                                        }
                                        append(npexps, a);
@@ -4549,7 +4550,8 @@ rel_push_groupby_down(visitor *v, sql_re
 
                                        if (exp_match_exp(a, ge) || 
exp_refers(ge, a)) {
                                                a = exp_ref(v->sql, ne);
-                                               exp_setname(v->sql->sa, a, 
exp_relname(ne), exp_name(ne));
+                                               if (exp_name(ne))
+                                                       
exp_prop_alias(v->sql->sa, a, ne);
                                                m->data = a;
                                        }
                                }
@@ -4557,12 +4559,14 @@ rel_push_groupby_down(visitor *v, sql_re
                                /* change alias pe, ie project out the index  */
                                pe->l = (void*)exp_relname(ne);
                                pe->r = (void*)exp_name(ne);
-                               exp_setname(v->sql->sa, pe, exp_relname(ne), 
exp_name(ne));
+                               if (exp_name(ne))
+                                       exp_prop_alias(v->sql->sa, pe, ne);
 
                                /* change alias ge */
                                ge->l = (void*)exp_relname(pe);
                                ge->r = (void*)exp_name(pe);
-                               exp_setname(v->sql->sa, ge, exp_relname(pe), 
exp_name(pe));
+                               if (exp_name(pe))
+                                       exp_prop_alias(v->sql->sa, ge, pe);
 
                                /* zap both project and groupby name hash 
tables (as we changed names above) */
                                rel->exps->ht = NULL;
@@ -8937,8 +8941,6 @@ rel_add_dicts(visitor *v, sql_rel *rel)
                                sql_rel *vt = n->data;
                                sql_exp *ic = n->next->data, *vti = NULL, *vtv;
                                sql_exp *c = n->next->next->data, *cmp;
-                               const char *rname = 
exp_relname(c)?exp_relname(c):c->l;
-                               const char *oname = c->r;
 
                                rel = rel_crossproduct(v->sql->sa, rel, vt, 
op_join);
                                vti = vt->exps->h->data;
@@ -8949,7 +8951,8 @@ rel_add_dicts(visitor *v, sql_rel *rel)
                                rel_join_add_exp( v->sql->sa, rel, cmp);
 
                                vtv = exp_ref(v->sql, vtv);
-                               exp_setname(v->sql->sa, vtv, rname, oname);
+                               if (exp_name(c))
+                                       exp_prop_alias(v->sql->sa, vtv, c);
                                append(pexps, vtv);
                        }
                        rel = rel_project(v->sql->sa, rel, pexps);
diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c
--- a/sql/server/rel_updates.c
+++ b/sql/server/rel_updates.c
@@ -1725,7 +1725,8 @@ copyfrom(sql_query *query, dlist *qname,
                                append(args, e);
                                append(args, exp_atom_clob(sql->sa, format));
                                ne = exp_op(sql->sa, args, f);
-                               exp_setname(sql->sa, ne, exp_relname(e), 
exp_name(e));
+                               if (exp_name(e))
+                                       exp_prop_alias(sql->sa, ne, e);
                        } else {
                                ne = exp_ref(sql, e);
                        }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to