Changeset: 2de3291f106b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2de3291f106b
Modified Files:
        sql/server/rel_dump.c
Branch: Jul2021
Log Message:

Defensive line. After reading an identifier. Don't attempt to bind columns if 
the next token is a list of parameters for a function call


diffs (34 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
@@ -966,17 +966,19 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
                cname = sa_strdup(sql->sa, cname);
                *e = old;
                skipWS(r, pos);
-               if (top_exps) {
-                       exp = exps_bind_column2(top_exps, tname, cname, NULL);
-                       if (exp)
-                               exp = exp_alias_or_copy(sql, tname, cname, 
lrel, exp);
-               }
-               if (!exp && lrel) {
-                       exp = rel_bind_column2(sql, lrel, tname, cname, 0);
-                       if (!exp && rrel)
-                               exp = rel_bind_column2(sql, rrel, tname, cname, 
0);
-               } else if (!exp) {
-                       exp = exp_column(sql->sa, tname, cname, NULL, 
CARD_ATOM, 1, cname[0] == '%');
+               if (r[*pos] != '(') { /* if there's a function/aggregate call 
next don't attempt to bind columns */
+                       if (top_exps) {
+                               exp = exps_bind_column2(top_exps, tname, cname, 
NULL);
+                               if (exp)
+                                       exp = exp_alias_or_copy(sql, tname, 
cname, lrel, exp);
+                       }
+                       if (!exp && lrel) {
+                               exp = rel_bind_column2(sql, lrel, tname, cname, 
0);
+                               if (!exp && rrel)
+                                       exp = rel_bind_column2(sql, rrel, 
tname, cname, 0);
+                       } else if (!exp) {
+                               exp = exp_column(sql->sa, tname, cname, NULL, 
CARD_ATOM, 1, cname[0] == '%');
+                       }
                }
                break;
        /* atom */
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to