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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list