Changeset: d0abb1f4cd83 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d0abb1f4cd83
Modified Files:
sql/server/rel_select.c
Branch: Apr2019
Log Message:
Simplify tests
diffs (39 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
@@ -1119,7 +1119,7 @@ rel_column_ref(mvc *sql, sql_rel **rel,
return rel_var_ref(sql, name, 0);
}
if (!exp && !var) {
- if (rel && *rel && (*rel)->card <= CARD_AGGR &&
is_sql_sel(f)) {
+ if (rel && *rel && (*rel)->card <= CARD_AGGR &&
(is_sql_sel(f) || is_sql_having(f))) {
sql_rel *gb = *rel;
while(gb->l && !is_groupby(gb->op))
@@ -1127,8 +1127,6 @@ rel_column_ref(mvc *sql, sql_rel **rel,
if (gb && gb->l && rel_bind_column(sql, gb->l,
name, f))
return sql_error(sql, 02,
SQLSTATE(42000) "SELECT: cannot use non GROUP BY column '%s' in query results
without an aggregate function", name);
}
- if (is_sql_having(f))
- return sql_error(sql, 02, SQLSTATE(42000)
"SELECT: cannot use non GROUP BY column '%s' in query results without an
aggregate function", name);
return sql_error(sql, 02, SQLSTATE(42000) "SELECT:
identifier '%s' unknown", name);
}
@@ -1153,7 +1151,7 @@ rel_column_ref(mvc *sql, sql_rel **rel,
}
}
if (!exp) {
- if (rel && *rel && (*rel)->card == CARD_AGGR &&
is_sql_sel(f)) {
+ if (rel && *rel && (*rel)->card == CARD_AGGR &&
(is_sql_sel(f) || is_sql_having(f))) {
sql_rel *gb = *rel;
while(gb->l && !is_groupby(gb->op) &&
is_project(gb->op))
@@ -1161,8 +1159,6 @@ rel_column_ref(mvc *sql, sql_rel **rel,
if (gb && is_groupby(gb->op) && gb->l &&
rel_bind_column2(sql, gb->l, tname, cname, f))
return sql_error(sql, 02,
SQLSTATE(42000) "SELECT: cannot use non GROUP BY column '%s.%s' in query
results without an aggregate function", tname, cname);
}
- if (is_sql_having(f))
- return sql_error(sql, 02, SQLSTATE(42S22)
"SELECT: cannot use non GROUP BY column '%s.%s' in query results without an
aggregate function", tname, cname);
return sql_error(sql, 02, SQLSTATE(42S22) "SELECT: no
such column '%s.%s'", tname, cname);
}
} else if (dlist_length(l) >= 3) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list