Changeset: 11eb94ab18e3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=11eb94ab18e3
Modified Files:
        sql/server/rel_dump.c
        sql/server/rel_select.c
Branch: sq2default
Log Message:

output/read new flags/properties in rel_dump
add error message on missing group by


diffs (48 lines):

diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -1222,14 +1222,24 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
                        if (f == cmp_in || f == cmp_notin)
                                return exp_in(sql->sa, exp, exps, f);
                } else {
+                       int sym = 0;
+                       if (strncmp(r+*pos, "SYM",  strlen("SYM")) == 0) {
+                               (*pos)+= (int) strlen("SYM");
+                               skipWS(r,pos);
+                               sym = 1;
+                       }
                        sql_exp *e = exp_read(sql, lrel, rrel, pexps, r, pos, 
0);
                        if (e && e->type == e_cmp) {
                                sql_exp *ne = exp_compare2(sql->sa, e->l, exp, 
e->r, compare2range(swap_compare((comp_type)f), e->flag));
+                               if (sym)
+                                       ne->flag |= CMP_SYMMETRIC;
                                if (is_anti(exp))
                                        set_anti(ne);
                                return ne;
                        } else if (e) {
                                sql_exp *ne = exp_compare(sql->sa, exp, e, f);
+                               if (sym)
+                                       ne->flag |= CMP_SYMMETRIC;
                                if (is_anti(exp))
                                        set_anti(ne);
                                return ne;
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
@@ -3127,8 +3127,14 @@ static sql_exp *
        sql_rel *subquery = NULL;
        list *exps = NULL;
 
-       if (!groupby && !query_has_outer(query))
-               return NULL;
+       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 (is_sql_groupby(f)) {
                char *uaname = GDKmalloc(strlen(aname) + 1);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to