Changeset: 54ec6b50050e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=54ec6b50050e
Modified Files:
        sql/backends/monet5/rel_bin.c
Branch: Jun2020
Log Message:

if we allow e_cmp's nested we should handle them too.


diffs (30 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
@@ -878,8 +878,6 @@ exp_bin(backend *be, sql_exp *e, stmt *l
                int swapped = 0, is_select = 0;
                sql_exp *re = e->r, *re2 = e->f;
 
-               assert((reduce && !depth) || e->flag == cmp_in || e->flag == 
cmp_notin);
-
                /* general predicate, select and join */
                if (e->flag == cmp_filter) {
                        list *args;
@@ -1068,7 +1066,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l
                        }
                } else {
                        if (r2) {
-                               if (l->nrcols == 0 && r->nrcols == 0 && 
r2->nrcols == 0) {
+                               if (!reduce || (l->nrcols == 0 && r->nrcols == 
0 && r2->nrcols == 0)) {
                                        sql_subtype *bt = 
sql_bind_localtype("bit");
                                        sql_subfunc *lf = 
sql_bind_func(sql->sa, sql->session->schema,
                                                        
compare_func(range2lcompare(e->flag), 0),
@@ -1111,7 +1109,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l
                                }
                        } else {
                                /* value compare or select */
-                               if (l->nrcols == 0 && r->nrcols == 0 && 
(e->flag == mark_in || e->flag == mark_notin)) {
+                               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);
                                        assert(f);
                                        s = stmt_binop(be, l, r, f);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to