Changeset: e723d4bdd6dd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e723d4bdd6dd
Modified Files:
        sql/server/rel_select.c
        sql/server/rel_unnest.c
Branch: Oct2020
Log Message:

fix 2 more bug
1) properly propagate error from rewrite_complex
2) don't allow aggregates ins inner rel_select_ref (as we don't allow 
aggregation within in groupby's)


diffs (32 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -3903,7 +3903,7 @@ rel_selection_ref(sql_query *query, sql_
                        /* AS name */
                        if (l->h->next->data.sval &&
                                        strcmp(l->h->next->data.sval, name) == 
0){
-                               sql_exp *ve = rel_value_exp(query, rel, 
l->h->data.sym, sql_sel, ek);
+                               sql_exp *ve = rel_value_exp(query, rel, 
l->h->data.sym, sql_sel|sql_groupby, ek);
                                if (ve) {
                                        dlist *l = dlist_create(sa);
                                        symbol *sym;
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
@@ -3090,13 +3090,13 @@ rewrite_complex(visitor *v, sql_rel *rel
                return e;
 
        res = rewrite_anyequal(v->sql, rel, e, depth);
-       if (res && res != e)
+       if (!res || res != e)
                return res;
        res = rewrite_exists(v, rel, e, depth);
-       if (res && res != e)
+       if (!res || res != e)
                return res;
        res = rewrite_compare(v, rel, e, depth);
-       if (res && res != e)
+       if (!res || res != e)
                return res;
        return e;
 }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to