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