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