Changeset: a2b659a3f762 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a2b659a3f762
Modified Files:
sql/server/rel_select.c
Branch: default
Log Message:
first resolve aggregation function before normal plain function.
diffs (36 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
@@ -2599,7 +2599,7 @@ rel_unop(mvc *sql, sql_rel **rel, symbol
char *sname = qname_schema(l->data.lval);
sql_schema *s = sql->session->schema;
exp_kind iek = {type_value, card_column, FALSE};
- sql_exp *e = rel_value_exp(sql, rel, l->next->data.sym, fs, iek);
+ sql_exp *e = NULL;
sql_subfunc *f = NULL;
sql_subtype *t = NULL;
int type = (ek.card == card_none)?F_PROC:F_FUNC;
@@ -2609,14 +2609,16 @@ rel_unop(mvc *sql, sql_rel **rel, symbol
if (!s)
return NULL;
- if (!e)
- f = find_func(sql, s, fname, 1, F_AGGR, NULL);
- if (!e && f) { /* possibly we cannot resolve the argument as the
function maybe an aggregate */
- /* reset error */
- sql->session->status = 0;
- sql->errstr[0] = '\0';
- return rel_aggr(sql, rel, se, fs);
+ f = find_func(sql, s, fname, 1, F_AGGR, NULL);
+ if (f) {
+ e = rel_aggr(sql, rel, se, fs);
+ if (e)
+ return e;
}
+ /* reset error */
+ sql->session->status = 0;
+ sql->errstr[0] = '\0';
+ e = rel_value_exp(sql, rel, l->next->data.sym, fs, iek);
if (!e)
return NULL;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list