Changeset: 266ffd6ecc84 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=266ffd6ecc84
Modified Files:
        sql/server/rel_propagate.c
        sql/server/rel_psm.c
        sql/server/rel_select.c
        sql/server/rel_updates.c
        sql/test/pg_regress/Tests/alter_table.stable.err
Branch: Jun2020
Log Message:

Merged with linear-hashing


diffs (121 lines):

diff --git a/sql/server/rel_propagate.c b/sql/server/rel_propagate.c
--- a/sql/server/rel_propagate.c
+++ b/sql/server/rel_propagate.c
@@ -34,11 +34,12 @@ rel_generate_anti_expression(mvc *sql, s
                *anti_rel = rel_project(sql->sa, *anti_rel, NULL);
                if (!(res = rel_parse_val(sql, sa_message(sql->sa, "select 
%s;", mt->part.pexp->exp), sql->emode, (*anti_rel)->l)))
                        return NULL;
-               exp_label(sql->sa, res, ++sql->label);
        } else {
                assert(0);
        }
        (*anti_rel)->exps = new_exp_list(sql->sa);
+       if (!exp_name(res))
+               exp_label(sql->sa, res, ++sql->label);
        append((*anti_rel)->exps, res);
        res = exp_ref(sql->sa, res);
        return res;
@@ -58,9 +59,11 @@ rel_create_common_relation(mvc *sql, sql
                inserts = ((sql_rel*)(rel->r))->l;
                for (node *n = t->columns.set->h, *m = inserts->exps->h; n && 
m; n = n->next, m = m->next) {
                        sql_column *col = n->data;
-                       sql_exp *before = m->data;
-                       sql_exp *help = exp_ref(sql->sa, before);
+                       sql_exp *before = m->data, *help;
 
+                       if (!exp_name(before))
+                               exp_label(sql->sa, before, ++sql->label);
+                       help = exp_ref(sql->sa, before);
                        exp_setname(sql->sa, help, t->base.name, 
col->base.name);
                        list_append(l, help);
                }
@@ -86,9 +89,11 @@ rel_generate_anti_insert_expression(mvc 
                        inserts = inserts->l;
                for (node *n = t->columns.set->h, *m = inserts->exps->h; n && 
m; n = n->next, m = m->next) {
                        sql_column *col = n->data;
-                       sql_exp *before = m->data;
-                       sql_exp *help = exp_ref(sql->sa, before);
+                       sql_exp *before = m->data, *help;
 
+                       if (!exp_name(before))
+                               exp_label(sql->sa, before, ++sql->label);
+                       help = exp_ref(sql->sa, before);
                        exp_setname(sql->sa, help, t->base.name, 
col->base.name);
                        list_append(l, help);
                }
@@ -106,6 +111,8 @@ rel_generate_anti_insert_expression(mvc 
        } else {
                assert(0);
        }
+       if (!exp_name(res))
+               exp_label(sql->sa, res, ++sql->label);
        res = exp_ref(sql->sa, res);
        return res;
 }
diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c
--- a/sql/server/rel_psm.c
+++ b/sql/server/rel_psm.c
@@ -478,8 +478,11 @@ rel_psm_return( sql_query *query, sql_su
 
                        if (!cname)
                                cname = sa_strdup(sql->sa, number2name(name, 
sizeof(name), ++sql->label));
-                       if (!isproject) 
+                       if (!isproject) {
+                               if (!exp_name(e))
+                                       exp_label(sql->sa, e, ++sql->label);
                                e = exp_ref(sql->sa, e);
+                       }
                        e = rel_check_type(sql, &ce->type, oexps_rel, e, 
type_equal);
                        if (!e)
                                return NULL;
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -4385,6 +4385,8 @@ rel_order_by(sql_query *query, sql_rel *
                                                e = exps_get_exp(rel->exps, nr);
                                                if (!e)
                                                        return sql_error(sql, 
02, SQLSTATE(42000) "SELECT: the order by column number (%d) is not in the 
number of projections range (%d)", nr, list_length(rel->exps));
+                                               if (!exp_name(e))
+                                                       exp_label(sql->sa, e, 
++sql->label);
                                                e = exp_ref(sql->sa, e);
                                                /* do not cache this query */
                                                if (e)
@@ -5094,7 +5096,7 @@ rel_value_exp2(sql_query *query, sql_rel
 
                        if (!exp_name(exp))
                                exp_label(sql->sa, exp, ++sql->label);
-                       res  = exp_ref(sql->sa, exp);
+                       res = exp_ref(sql->sa, exp);
                        res->card = (*rel)->card;
                        if (se->token == SQL_AGGR) {
                                dlist *l = se->data.lval;
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
@@ -1396,6 +1396,8 @@ merge_into_table(sql_query *query, dlist
 
                                //select bt values which are not null (they had 
a match in the join)
                                project_first = 
extra_project->exps->h->next->data; // this expression must come from bt!!
+                               if (!exp_name(project_first))
+                                       exp_label(sql->sa, project_first, 
++sql->label);
                                project_first = exp_ref(sql->sa, project_first);
                                nils = rel_unop_(sql, extra_project, 
project_first, NULL, "isnull", card_value);
                                set_has_no_nil(nils);
@@ -1425,6 +1427,8 @@ merge_into_table(sql_query *query, dlist
 
                                //select bt values which are not null (they had 
a match in the join)
                                project_first = 
extra_project->exps->h->next->data; // this expression must come from bt!!
+                               if (!exp_name(project_first))
+                                       exp_label(sql->sa, project_first, 
++sql->label);
                                project_first = exp_ref(sql->sa, project_first);
                                nils = rel_unop_(sql, extra_project, 
project_first, NULL, "isnull", card_value);
                                set_has_no_nil(nils);
@@ -1462,6 +1466,8 @@ merge_into_table(sql_query *query, dlist
 
                        //select bt values which are null (they didn't have 
match in the join)
                        project_first = extra_project->exps->h->next->data; // 
this expression must come from bt!!
+                       if (!exp_name(project_first))
+                               exp_label(sql->sa, project_first, ++sql->label);
                        project_first = exp_ref(sql->sa, project_first);
                        nils = rel_unop_(sql, extra_project, project_first, 
NULL, "isnull", card_value);
                        set_has_no_nil(nils);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to