Changeset: 6a6266f46722 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6a6266f46722
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statement.h
Branch: default
Log Message:

Don't generate new statement if not used


diffs (174 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
@@ -3945,7 +3945,7 @@ insert_check_ukey(backend *be, list *ins
                                stmt *cs = list_fetch(inserts, c->c->colnr);
 
                                /* foreach column add predicate */
-                               (void) stmt_column_predicate(be, c->c);
+                               stmt_add_column_predicate(be, c->c);
 
                                col = stmt_col(be, c->c, dels, dels->partition);
                                if ((k->type == ukey) && stmt_has_null(col)) {
@@ -3967,7 +3967,7 @@ insert_check_ukey(backend *be, list *ins
                                stmt *cs = list_fetch(inserts, c->c->colnr);
 
                                /* foreach column add predicate */
-                               (void) stmt_column_predicate(be, c->c);
+                               stmt_add_column_predicate(be, c->c);
 
                                col = stmt_col(be, c->c, dels, dels->partition);
                                list_append(lje, col);
@@ -4030,7 +4030,7 @@ insert_check_ukey(backend *be, list *ins
                stmt *s = list_fetch(inserts, c->c->colnr), *h = s;
 
                /* add predicate for this column */
-               (void) stmt_column_predicate(be, c->c);
+               stmt_add_column_predicate(be, c->c);
 
                s = stmt_col(be, c->c, dels, dels->partition);
                if ((k->type == ukey) && stmt_has_null(s)) {
@@ -4101,7 +4101,7 @@ insert_check_fkey(backend *be, list *ins
                sql_kc *c = m->data;
 
                /* foreach column add predicate */
-               (void) stmt_column_predicate(be, c->c);
+               stmt_add_column_predicate(be, c->c);
        }
 
        if (pin && list_length(pin->op4.lval))
@@ -4372,7 +4372,7 @@ rel2bin_insert(backend *be, sql_rel *rel
                        be->rowcount = be->rowcount ? 
add_to_rowcount_accumulator(be, ret->nr) : ret->nr;
                }
                if (t->s && isGlobal(t) && !isGlobalTemp(t))
-                       (void) stmt_dependency_change(be, t, ret);
+                       stmt_add_dependency_change(be, t, ret);
                return ret;
        }
 }
@@ -5233,7 +5233,7 @@ sql_update(backend *be, sql_table *t, st
                be->rowcount = be->rowcount ? add_to_rowcount_accumulator(be, 
cnt->nr) : cnt->nr;
        }
        if (t->s && isGlobal(t) && !isGlobalTemp(t))
-               (void) stmt_dependency_change(be, t, cnt);
+               stmt_add_dependency_change(be, t, cnt);
 /* cascade ?? */
        return l;
 }
@@ -5357,7 +5357,7 @@ rel2bin_update(backend *be, sql_rel *rel
                        be->rowcount = be->rowcount ? 
add_to_rowcount_accumulator(be, cnt->nr) : cnt->nr;
                }
                if (t->s && isGlobal(t) && !isGlobalTemp(t))
-                       (void) stmt_dependency_change(be, t, cnt);
+                       stmt_add_dependency_change(be, t, cnt);
        }
 
        if (sql->cascade_action)
@@ -5575,7 +5575,7 @@ sql_delete(backend *be, sql_table *t, st
                be->rowcount = be->rowcount ? add_to_rowcount_accumulator(be, 
s->nr) : s->nr;
        }
        if (t->s && isGlobal(t) && !isGlobalTemp(t))
-               (void) stmt_dependency_change(be, t, s);
+               stmt_add_dependency_change(be, t, s);
        return s;
 }
 
@@ -5745,7 +5745,7 @@ sql_truncate(backend *be, sql_table *t, 
                        be->rowcount = be->rowcount ? 
add_to_rowcount_accumulator(be, other->nr) : other->nr;
                }
                if (next->s && isGlobal(next) && !isGlobalTemp(next))
-                       (void) stmt_dependency_change(be, next, other);
+                       stmt_add_dependency_change(be, next, other);
        }
 
 finalize:
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
@@ -3012,57 +3012,32 @@ stmt_claim(backend *be, sql_table *t, st
        return NULL;
 }
 
-stmt *
-stmt_dependency_change(backend *be, sql_table *t, stmt *cnt)
+void
+stmt_add_dependency_change(backend *be, sql_table *t, stmt *cnt)
 {
        MalBlkPtr mb = be->mb;
        InstrPtr q = NULL;
 
        if (!t || cnt->nr < 0)
-               return NULL;
+               return ;
        q = newStmtArgs(mb, sqlRef, dependRef, 4);
        q = pushSchema(mb, q, t);
        q = pushStr(mb, q, t->base.name);
        q = pushArgument(mb, q, cnt->nr);
-       if (q) {
-               stmt *s = stmt_create(be->mvc->sa, st_depend);
-               if(!s) {
-                       freeInstruction(q);
-                       return NULL;
-               }
-               s->op1 = cnt;
-               s->op4.tval = t;
-               s->nr = getDestVar(q);
-               s->q = q;
-               return s;
-       }
-       return NULL;
 }
 
-stmt *
-stmt_column_predicate(backend *be, sql_column *c)
+void
+stmt_add_column_predicate(backend *be, sql_column *c)
 {
        MalBlkPtr mb = be->mb;
        InstrPtr q = NULL;
 
        if (!c)
-               return NULL;
+               return ;
        q = newStmtArgs(mb, sqlRef, predicateRef, 4);
        q = pushSchema(mb, q, c->t);
        q = pushStr(mb, q, c->t->base.name);
        q = pushStr(mb, q, c->base.name);
-       if (q) {
-               stmt *s = stmt_create(be->mvc->sa, st_predicate);
-               if(!s) {
-                       freeInstruction(q);
-                       return NULL;
-               }
-               s->op4.cval = c;
-               s->nr = getDestVar(q);
-               s->q = q;
-               return s;
-       }
-       return NULL;
 }
 
 stmt *
diff --git a/sql/backends/monet5/sql_statement.h 
b/sql/backends/monet5/sql_statement.h
--- a/sql/backends/monet5/sql_statement.h
+++ b/sql/backends/monet5/sql_statement.h
@@ -69,8 +69,6 @@ typedef enum stmt_type {
 
        st_export,
        st_claim,
-       st_depend,
-       st_predicate,
        st_append,
        st_append_bulk,
        st_replace,
@@ -160,8 +158,8 @@ extern stmt *stmt_idxbat(backend *be, sq
 extern stmt *stmt_tid(backend *be, sql_table *t, int partition);
 
 extern stmt *stmt_claim(backend *be, sql_table *t, stmt *cnt);
-extern stmt *stmt_dependency_change(backend *be, sql_table *t, stmt *cnt);
-extern stmt *stmt_column_predicate(backend *be, sql_column *c);
+extern void stmt_add_dependency_change(backend *be, sql_table *t, stmt *cnt);
+extern void stmt_add_column_predicate(backend *be, sql_column *c);
 extern stmt *stmt_append_col(backend *be, sql_column *c, stmt *offset, stmt 
*b, int *mvc_var_update, int locked);
 extern stmt *stmt_append_idx(backend *be, sql_idx *i, stmt *offset, stmt *b);
 extern stmt *stmt_update_col(backend *be, sql_column *c, stmt *tids, stmt 
*upd);
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to