Changeset: d1128cc44188 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d1128cc44188
Modified Files:
monetdb5/modules/mal/tablet.c
sql/server/rel_updates.c
Branch: Jul2017
Log Message:
make sure we reference expressions in a copy into statement (with column list).
This solves bug 6404.
diffs (39 lines):
diff --git a/monetdb5/modules/mal/tablet.c b/monetdb5/modules/mal/tablet.c
--- a/monetdb5/modules/mal/tablet.c
+++ b/monetdb5/modules/mal/tablet.c
@@ -133,7 +133,7 @@ str
TABLETcreate_bats(Tablet *as, BUN est)
{
Column *fmt = as->format;
- BUN i;
+ BUN i, nr = 0;
for (i = 0; i < as->nr_attrs; i++) {
if (fmt[i].skip)
@@ -147,7 +147,10 @@ TABLETcreate_bats(Tablet *as, BUN est)
throw(SQL, "copy", "Failed to create bat of size "
BUNFMT "\n", as->nr);
}
fmt[i].ci = bat_iterator(fmt[i].c);
+ nr++;
}
+ if (!nr)
+ throw(SQL, "copy", "At least one column should be read from the
input\n");
return MAL_SUCCEED;
}
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
@@ -321,8 +321,11 @@ rel_inserts(mvc *sql, sql_table *t, sql_
} else {
for (m = collist->h; m; m = m->next) {
sql_column *c = m->data;
+ sql_exp *e;
- inserts[c->colnr] = exps_bind_column2( r->exps,
c->t->base.name, c->base.name);
+ e = exps_bind_column2( r->exps,
c->t->base.name, c->base.name);
+ if (e)
+ inserts[c->colnr] = exp_column(sql->sa,
exp_relname(e), exp_name(e), exp_subtype(e), e->card, has_nil(e), is_intern(e));
}
}
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list