Changeset: 2c92e6441aff for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2c92e6441aff
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_statement.c
Branch: Jan2022
Log Message:

properly set type for the update column (of dict/for)


diffs (39 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
@@ -1567,13 +1567,14 @@ stmt_col( backend *be, sql_column *c, st
           (!isNew(c) || !isNew(c->t) /* alter */) &&
           (c->t->persistence == SQL_PERSIST || c->t->s) /*&& 
!c->t->commit_action*/) {
                stmt *u = stmt_bat(be, c, RD_UPD_ID, part);
+               assert(u);
+               sc = stmt_project_delta(be, sc, u);
                if (c->storage_type && c->storage_type[0] == 'D') {
                        stmt *v = stmt_bat(be, c, RD_EXT, part);
                        sc = stmt_dict(be, sc, v);
                } else if (c->storage_type && c->storage_type[0] == 'F') {
                        sc = stmt_for(be, sc, stmt_atom(be, atom_general( 
be->mvc->sa, &c->type, c->storage_type+4/*skip FOR-*/)));
                }
-               sc = stmt_project_delta(be, sc, u);
                if (del)
                        sc = stmt_project(be, del, sc);
        } else if (del) { /* always handle the deletes */
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
@@ -588,7 +588,7 @@ stmt_bat(backend *be, sql_column *c, int
        q = newStmtArgs(mb, sqlRef, bindRef, 9);
        if (q == NULL)
                return NULL;
-       if (c->storage_type && access != RD_EXT && access != RD_UPD_ID) {
+       if (c->storage_type && access != RD_EXT) {
                sql_trans *tr = be->mvc->session->tr;
                sqlstore *store = tr->store;
                BAT *b = store->storage_api.bind_col(tr, c, QUICK);
@@ -2328,6 +2328,7 @@ stmt_for(backend *be, stmt *op1, stmt *m
                }
 
                s->op1 = op1;
+               s->op2 = min_val;
                s->flag = cmp_project;
                s->key = 0;
                s->nrcols = op1->nrcols;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to