Changeset: 0b7aeea4cd4e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0b7aeea4cd4e
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_statement.c
        sql/storage/bat/bat_storage.c
Branch: unlock
Log Message:

fixed inserts on temp/declared tables


diffs (46 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -3994,7 +3994,8 @@ rel2bin_insert(backend *be, sql_rel *rel
                cnt = stmt_aggr(be, insert, NULL, NULL, sql_bind_func(sql->sa, 
sql->session->schema, "count", sql_bind_localtype("void"), NULL, F_AGGR), 1, 0, 
1);
        }
        insert = NULL;
-       pos = stmt_claim(be, t, cnt);
+       if (t->s) /* only not declared tables, need this */
+               pos = stmt_claim(be, t, cnt);
 
        if (t->idxs.set)
        for (n = t->idxs.set->h; n && m; n = n->next, m = m->next) {
diff --git a/sql/backends/monet5/sql_statement.c 
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -683,7 +683,7 @@ stmt_append_col(backend *be, sql_column 
        MalBlkPtr mb = be->mb;
        InstrPtr q = NULL;
 
-       if (offset->nr < 0 || b->nr < 0)
+       if (b->nr < 0)
                return NULL;
 
        if (!c->t->s && c->t->data) { /* declared table */
@@ -700,6 +700,8 @@ stmt_append_col(backend *be, sql_column 
                q = pushBit(mb, q, TRUE);
                getArg(q,0) = l[c->colnr+1]; 
        } else if (!fake) {     /* fake append */
+               if (offset->nr < 0)
+                       return NULL;
                q = newStmt(mb, sqlRef, appendRef);
                q = pushArgument(mb, q, be->mvc_var);
                if (q == NULL)
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -1057,6 +1057,8 @@ claim_tab(sql_trans *tr, sql_table *t, s
        res = bat->ibase;
        /* inserts only write */
        bat->wtime = t->base.wtime = t->s->base.wtime = tr->wtime = tr->wstime;
+       // for now we have to set write of column as well 
+       bat->wtime = c->base.wtime = c->t->base.wtime = c->t->s->base.wtime = 
tr->wtime = tr->wstime;
        store_unlock();
        return res;
 }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to