Changeset: 8f76f7cb845d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8f76f7cb845d
Modified Files:
sql/server/rel_updates.c
Branch: default
Log Message:
Generate and execute the exception relation first before the update, for faster
execution in wrong cases.
diffs (22 lines):
diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c
--- a/sql/server/rel_updates.c
+++ b/sql/server/rel_updates.c
@@ -1377,7 +1377,7 @@ validate_merge_update_delete(mvc *sql, s
sql_subaggr *cf = sql_bind_aggr(sql->sa, sql->session->schema, "count",
NULL);
sql_subfunc *bf;
list *exps = new_exp_list(sql->sa);
- sql_rel *groupby;
+ sql_rel *groupby, *res;
groupby = rel_groupby(sql, rel_dup(join_rel), NULL); //aggregate by all
column and count (distinct values)
groupby->r = rel_projections(sql, bt, NULL, 1, 0);
@@ -1403,7 +1403,8 @@ validate_merge_update_delete(mvc *sql, s
snprintf(buf, BUFSIZ, "MERGE: There are rows in '%s.%s' with multiple
matches on source relation", t->s->base.name, t->base.name);
ex = exp_exception(sql->sa, ex, buf);
- return rel_exception(sql->sa, upd_del, groupby,
list_append(new_exp_list(sql->sa), ex));
+ res = rel_exception(sql->sa, groupby, NULL,
list_append(new_exp_list(sql->sa), ex));
+ return rel_list(sql->sa, res, upd_del);
}
static sql_rel *
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list