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

Reply via email to