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 -- [email protected]
To unsubscribe send an email to [email protected]