From: | pgsql-bugs(at)postgresql(dot)org |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Bug #724: Problmes creating aggregate functions in 7.2.1 |
Date: | 2002-07-30 18:47:04 |
Message-ID: | 20020730184704.1AF94475BF2@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Dan Graham (graham(at)molbio(dot)uoregon(dot)edu) reports a bug with a severity of 3
The lower the number the more severe it is.
Short Description
Problmes creating aggregate functions in 7.2.1
Long Description
I've included a short sample which shows what I'm having problems with.
I using version 7.2.1 on Slackware 7.
Basically, I can't figure out the rules for creating aggregate functions.
I don't know if the bug is in
1) Postgres
2) Postgres docs
3) The space between my ears.
I have the following code in a file, testfunc.sql, which
I invoke with psql -a -e -f testfunc.sql
I get two kinds of aggregate function 'errors'.
One of the aggregate functions just can't be created, the error says
the sfunc parameter I'm using can't be found, but I just used the
same sfunc name a few lines above.
The the second 'error' is that the return from 'aggmytextcat' is
blank, not what I expected.
I'm sorry if this has been reported and I missed it. I've been
lurking on the mailing lists for a long time, but not everything
I've seen has sunk in.
Dan
Sample Code
create table testme_dan (fld1 text, fld2 text, fld3 int4, fld4 int4);
insert into testme_dan Values ('hello', 'there',5,10);
insert into testme_dan Values ('goodbye', 'now',12,25);
-- The table is now made and filled
-- Now create some functions using internal functions
create function mytextcat(text,text) returns text
as 'select textcat($1,$2)::text;'
language SQL
;
create function myint4_sum(int4,int4) returns int4
as 'select int4_sum($1,$2)::int4;'
language SQL
;
-- Test them
select textcat(fld1,fld2) from testme_dan;
select mytextcat(fld1,fld2) from testme_dan;
select int4_sum(fld3,fld4) from testme_dan;
select myint4_sum(fld3,fld4) from testme_dan;
-- now create some aggregate functions, whose only apparent difference
-- is that some call internal functions and others call the just defined
-- and tested SQL functions. Yet the 2 of the 4 aggregates fail, at different
-- places.
create aggregate aggcat (basetype=text, sfunc=textcat, stype=text);
create aggregate aggmycat (basetype=text, sfunc=mytextcat, stype=text);
create aggregate aggint4sum (basetype = int4, sfunc = int4_sum, stype = int4);
create aggregate aggmyint4sum (basetype = int4, sfunc = myint4_sum, stype = int4);
-- Now test the aggregates
select aggcat(fld1) from testme_dan;
select aggmycat(fld1) from testme_dan;
select aggint4sum(fld3) from testme_dan;
select aggmyint4sum(fld3) from testme_dan;
-- cleanup
drop aggregate aggcat(text);
drop aggregate aggmycat(text);
drop aggregate aggint4sum(int4);
drop aggregate aggmyint4sum(int4);
drop function myint4_sum(int4,int4);
drop function mytextcat(text,text);
drop table testme_dan;
No file was uploaded with this report
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2002-07-30 18:52:47 | Re: Patch for Re: [HACKERS] Bug of PL/pgSQL parser |
Previous Message | Richard So | 2002-07-30 18:35:05 | Re: Multi-byte character bug (resend for clarify) |