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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list