Changeset: aa7000a598b8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/aa7000a598b8
Modified Files:
sql/server/rel_unnest.c
Branch: Jan2022
Log Message:
small exist case fix
diffs (19 lines):
diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -3092,9 +3092,12 @@ exp_exist(mvc *sql, sql_exp *le, sql_exp
if (!exists_func)
return sql_error(sql, 02, SQLSTATE(42000) "exist operator on
type %s missing", exp_subtype(le)->type->base.name);
if (ne) { /* correlated case */
- ne = rel_unop_(sql, NULL, ne, "sys", "isnull", card_value);
- set_has_no_nil(ne);
- le = rel_nop_(sql, NULL, ne, exp_atom_bool(sql->sa, !exists),
exp_atom_bool(sql->sa, exists), NULL, "sys", "ifthenelse", card_value);
+ if (exists)
+ le = rel_nop_(sql, NULL, ne, exp_atom_bool(sql->sa,
exists), exp_atom_bool(sql->sa, !exists), NULL, "sys", "ifthenelse",
card_value);
+ else {
+ ne = rel_unop_(sql, NULL, ne, "sys", "not", card_value);
+ le = rel_nop_(sql, NULL, ne, exp_atom_bool(sql->sa,
exists), exp_atom_bool(sql->sa, !exists), NULL, "sys", "ifthenelse",
card_value);
+ }
return le;
} else {
sql_exp *res = exp_unop(sql->sa, le, exists_func);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list