Changeset: 30a19086985a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=30a19086985a
Modified Files:
sql/server/rel_select.c
Branch: Mar2018
Log Message:
fixes for bug 6587
diffs (32 lines):
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
@@ -2054,7 +2054,7 @@ rel_logical_value_exp(mvc *sql, sql_rel
dnode *n = dl->h->next;
sql_rel *left = NULL, *right = NULL, *outer = *rel;
sql_exp *l = NULL, *r = NULL;
- int needproj = 0, vals_only = 1;
+ int needproj = 0, vals_only = 1, is_new = 0;
list *vals = NULL, *pexps = NULL;
if (outer && f == sql_sel && is_project(outer->op) &&
!is_processed(outer) && !list_empty(outer->exps)) {
@@ -2081,6 +2081,7 @@ rel_logical_value_exp(mvc *sql, sql_rel
if (!left || (!left->l && f == sql_sel &&
list_empty(left->exps))) {
needproj = (left != NULL);
left = rel_project_exp(sql->sa, l);
+ is_new = 1;
}
if (left && is_project(left->op) && list_empty(left->exps))
left = left->l;
@@ -2107,6 +2108,11 @@ rel_logical_value_exp(mvc *sql, sql_rel
sql->errstr[0] = 0;
z = left;
+ if (is_new) {
+ l = exp_label(sql->sa, l,
++sql->label);
+ l = exp_column(sql->sa,
exp_relname(l), exp_name(l), exp_subtype(l), l->card, has_nil(l), is_intern(l));
+ is_new = 0;
+ }
r = rel_value_exp(sql, &z, sval, f,
ek);
if (z == left && r) {
if (l && r &&
IS_ANY(st->type->eclass)){
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list