Changeset: f2853f746262 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f2853f746262
Modified Files:
sql/backends/monet5/rel_bin.c
Branch: Jun2020
Log Message:
handle all in/not map and single value cases properly
diffs (21 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
@@ -1109,11 +1109,14 @@ exp_bin(backend *be, sql_exp *e, stmt *l
}
} else {
/* value compare or select */
- if (!reduce || (l->nrcols == 0 && r->nrcols ==
0 && (e->flag == mark_in || e->flag == mark_notin))) {
- sql_subfunc *f = sql_bind_func(sql->sa,
sql->session->schema, "=", tail_type(l), tail_type(l), F_FUNC);
+ if ((!reduce || (l->nrcols == 0 && r->nrcols ==
0)) && (e->flag == mark_in || e->flag == mark_notin)) {
+ int in_flag = e->flag==mark_in?1:0;
+ if (e->anti)
+ in_flag = !in_flag;
+ sql_subfunc *f = sql_bind_func(sql->sa,
sql->session->schema, in_flag?"=":"<>", tail_type(l), tail_type(l), F_FUNC);
assert(f);
s = stmt_binop(be, l, r, f);
- } else if (l->nrcols == 0 && r->nrcols == 0) {
+ } else if (!reduce || (l->nrcols == 0 &&
r->nrcols == 0)) {
sql_subfunc *f = sql_bind_func(sql->sa,
sql->session->schema,
compare_func((comp_type)e->flag, is_anti(e)),
tail_type(l),
tail_type(l), F_FUNC);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list