Changeset: c918c26d64c4 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c918c26d64c4 Modified Files: sql/server/rel_select.c Branch: Oct2020 Log Message:
split handling of group by expressions, 1e try to find the column reference in the current relation 2e try to find the reference in the 'selection' 3e try outer queries. diffs (28 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 @@ -3932,9 +3932,10 @@ rel_selection_ref(sql_query *query, sql_ static sql_exp* rel_group_column(sql_query *query, sql_rel **rel, symbol *grp, dlist *selection, int f) { + sql_query *lquery = query_create(query->sql); mvc *sql = query->sql; exp_kind ek = {type_value, card_value, TRUE}; - sql_exp *e = rel_value_exp2(query, rel, grp, f, ek); + sql_exp *e = rel_value_exp2(lquery, rel, grp, f, ek); if (!e) { char buf[ERRSIZE]; @@ -3945,6 +3946,12 @@ rel_group_column(sql_query *query, sql_r sql->errstr[0] = '\0'; e = rel_selection_ref(query, rel, grp, selection); + if (!e && query_has_outer(query)) { + /* reset error */ + sql->session->status = 0; + sql->errstr[0] = '\0'; + e = rel_value_exp2(query, rel, grp, f, ek); + } if (!e) { if (sql->errstr[0] == 0) { sql->session->status = status; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list