Changeset: fcbaa8737f2b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/fcbaa8737f2b
Modified Files:
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql_statement.c
sql/backends/monet5/sql_statement.h
Branch: parappend
Log Message:
Re-use mvc parameter between sql.append's
diffs (67 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
@@ -4303,14 +4303,16 @@ rel2bin_insert(backend *be, sql_rel *rel
m = m->next;
}
+ int mvc_var = be->mvc_var;
for (n = ol_first_node(t->columns), m = inserts->op4.lval->h; n && m; n
= n->next, m = m->next) {
stmt *ins = m->data;
sql_column *c = n->data;
- insert = stmt_append_col(be, c, pos, ins, rel->flag);
+ insert = stmt_append_col(be, c, pos, ins, &mvc_var, rel->flag);
append(l,insert);
}
+ be->mvc_var = mvc_var;
if (!insert)
return NULL;
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
@@ -700,7 +700,7 @@ stmt_idxbat(backend *be, sql_idx *i, int
}
stmt *
-stmt_append_col(backend *be, sql_column *c, stmt *offset, stmt *b, int fake)
+stmt_append_col(backend *be, sql_column *c, stmt *offset, stmt *b, int
*mvc_var_update, int fake)
{
MalBlkPtr mb = be->mb;
InstrPtr q = NULL;
@@ -729,7 +729,10 @@ stmt_append_col(backend *be, sql_column
q = pushArgument(mb, q, be->mvc_var);
if (q == NULL)
return NULL;
- getArg(q, 0) = be->mvc_var = newTmpVariable(mb, TYPE_int);
+ int tmpvar = newTmpVariable(mb, TYPE_int);
+ getArg(q, 0) = tmpvar;
+ if (mvc_var_update != NULL)
+ *mvc_var_update = tmpvar;
q = pushSchema(mb, q, c->t);
q = pushStr(mb, q, c->t->base.name);
q = pushStr(mb, q, c->base.name);
@@ -737,7 +740,8 @@ stmt_append_col(backend *be, sql_column
q = pushArgument(mb, q, b->nr);
if (q == NULL)
return NULL;
- be->mvc_var = getDestVar(q);
+ if (mvc_var_update != NULL)
+ *mvc_var_update = getDestVar(q);
} else {
return b;
}
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
@@ -158,7 +158,7 @@ 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_append_col(backend *be, sql_column *c, stmt *offset, stmt
*b, int locked);
+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);
extern stmt *stmt_update_idx(backend *be, sql_idx *i, stmt *tids, stmt *upd);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list