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