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