aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_func.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-01-04 04:31:43 +0000
committerBruce Momjian <bruce@momjian.us>1998-01-04 04:31:43 +0000
commit4b05912f0b6aa69507bc32ac6ddaf8aeecdeb396 (patch)
tree2ff63f8cd09f1d5c628cefb16827c406ef40f014 /src/backend/parser/parse_func.c
parentc629d3b9d65fdce320aba26d092bfe96274c6092 (diff)
downloadpostgresql-4b05912f0b6aa69507bc32ac6ddaf8aeecdeb396.tar.gz
postgresql-4b05912f0b6aa69507bc32ac6ddaf8aeecdeb396.zip
Fix for count(*), aggs with views and multiple tables and sum(3).
Diffstat (limited to 'src/backend/parser/parse_func.c')
-rw-r--r--src/backend/parser/parse_func.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index 4d1017b54a0..43c78e299de 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.3 1997/11/26 03:42:42 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.4 1998/01/04 04:31:18 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -87,7 +87,8 @@ typedef struct _SuperQE
*/
Node *
-ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno)
+ParseFunc(ParseState *pstate, char *funcname, List *fargs,
+ int *curr_resno, int precedence)
{
Oid rettype = (Oid) 0;
Oid argrelid = (Oid) 0;
@@ -194,9 +195,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno)
*/
if ((get_attnum(argrelid, funcname) == InvalidAttrNumber)
&& strcmp(funcname, "*"))
- {
elog(WARN, "Functions on sets are not yet supported");
- }
}
if (retval)
@@ -223,7 +222,8 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno)
ObjectIdGetDatum(basetype),
0, 0))
{
- Aggreg *aggreg = ParseAgg(funcname, basetype, lfirst(fargs));
+ Aggreg *aggreg = ParseAgg(pstate, funcname, basetype,
+ fargs, precedence);
AddAggToParseState(pstate, aggreg);
return (Node *) aggreg;
@@ -368,7 +368,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno)
else
{
funcnode->func_tlist = setup_tlist(funcname, argrelid);
- rettype = attnameTypeId(argrelid, funcname);
+ rettype = get_atttype(argrelid, get_attnum(argrelid, funcname));
}
}
@@ -1031,7 +1031,7 @@ setup_tlist(char *attname, Oid relid)
if (attno < 0)
elog(WARN, "cannot reference attribute '%s' of tuple params/return values for functions", attname);
- typeid = attnameTypeId(relid, attname);
+ typeid = get_atttype(relid, attno);
resnode = makeResdom(1,
typeid,
typeLen(typeidType(typeid)),