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

Reply via email to