Changeset: 14fbfe9d7b04 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=14fbfe9d7b04
Modified Files:
sql/server/rel_select.c
Branch: default
Log Message:
Simplify condition branches
diffs (84 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
@@ -3160,43 +3160,43 @@ static sql_exp *
list *exps = NULL;
bool is_grouping = !strcmp(aname, "grouping");
- if (!groupby && !query_has_outer(query)) {
- char *uaname = GDKmalloc(strlen(aname) + 1);
- sql_exp *e = sql_error(sql, 02, SQLSTATE(42000) "%s: missing
group by",
- uaname ? toUpperCopy(uaname,
aname) : aname);
- if (uaname)
- GDKfree(uaname);
- return e;
- }
-
- if (!query_has_outer(query) && is_sql_groupby(f)) {
- char *uaname = GDKmalloc(strlen(aname) + 1);
- sql_exp *e = sql_error(sql, 02, SQLSTATE(42000) "%s: aggregate
function '%s' not allowed in GROUP BY clause",
- uaname ?
toUpperCopy(uaname, aname) : aname, aname);
- if (uaname)
- GDKfree(uaname);
- return e;
- } else if (!query_has_outer(query) && is_sql_join(f)) { /* the
is_sql_join test must come before is_sql_where, because the join conditions are
handled with sql_where */
- char *uaname = GDKmalloc(strlen(aname) + 1);
- sql_exp *e = sql_error(sql, 02, SQLSTATE(42000) "%s: aggregate
functions not allowed in JOIN conditions",
- uaname ? toUpperCopy(uaname, aname) :
aname);
- if (uaname)
- GDKfree(uaname);
- return e;
- } else if (!query_has_outer(query) && is_sql_where(f)) {
- char *uaname = GDKmalloc(strlen(aname) + 1);
- sql_exp *e = sql_error(sql, 02, SQLSTATE(42000) "%s: aggregate
functions not allowed in WHERE clause",
- uaname ? toUpperCopy(uaname, aname) :
aname);
- if (uaname)
- GDKfree(uaname);
- return e;
- } else if (!query_has_outer(query) && is_sql_aggr(f)) {
- char *uaname = GDKmalloc(strlen(aname) + 1);
- sql_exp *e = sql_error(sql, 02, SQLSTATE(42000) "%s: aggregate
functions cannot be nested",
- uaname ? toUpperCopy(uaname, aname) :
aname);
- if (uaname)
- GDKfree(uaname);
- return e;
+ if (!query_has_outer(query)) {
+ if (!groupby) {
+ char *uaname = GDKmalloc(strlen(aname) + 1);
+ sql_exp *e = sql_error(sql, 02, SQLSTATE(42000) "%s:
missing group by",
+ uaname ?
toUpperCopy(uaname, aname) : aname);
+ if (uaname)
+ GDKfree(uaname);
+ return e;
+ } else if (is_sql_groupby(f)) {
+ char *uaname = GDKmalloc(strlen(aname) + 1);
+ sql_exp *e = sql_error(sql, 02, SQLSTATE(42000) "%s:
aggregate function '%s' not allowed in GROUP BY clause",
+ uaname ?
toUpperCopy(uaname, aname) : aname, aname);
+ if (uaname)
+ GDKfree(uaname);
+ return e;
+ } else if (is_sql_join(f)) { /* the is_sql_join test must come
before is_sql_where, because the join conditions are handled with sql_where */
+ char *uaname = GDKmalloc(strlen(aname) + 1);
+ sql_exp *e = sql_error(sql, 02, SQLSTATE(42000) "%s:
aggregate functions not allowed in JOIN conditions",
+ uaname ? toUpperCopy(uaname,
aname) : aname);
+ if (uaname)
+ GDKfree(uaname);
+ return e;
+ } else if (is_sql_where(f)) {
+ char *uaname = GDKmalloc(strlen(aname) + 1);
+ sql_exp *e = sql_error(sql, 02, SQLSTATE(42000) "%s:
aggregate functions not allowed in WHERE clause",
+ uaname ? toUpperCopy(uaname,
aname) : aname);
+ if (uaname)
+ GDKfree(uaname);
+ return e;
+ } else if (is_sql_aggr(f)) {
+ char *uaname = GDKmalloc(strlen(aname) + 1);
+ sql_exp *e = sql_error(sql, 02, SQLSTATE(42000) "%s:
aggregate functions cannot be nested",
+ uaname ? toUpperCopy(uaname,
aname) : aname);
+ if (uaname)
+ GDKfree(uaname);
+ return e;
+ }
}
exps = sa_list(sql->sa);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list