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

Reply via email to