Bug #724: Problmes creating aggregate functions in 7.2.1

Поиск
Список
Период
Сортировка
От pgsql-bugs@postgresql.org
Тема Bug #724: Problmes creating aggregate functions in 7.2.1
Дата
Msg-id 20020730184704.1AF94475BF2@postgresql.org
обсуждение исходный текст
Ответы Re: Bug #724: Problmes creating aggregate functions in 7.2.1  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Dan Graham (graham@molbio.uoregon.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

В списке pgsql-bugs по дате отправления:

Предыдущее
От: "Richard So"
Дата:
Сообщение: Re: Multi-byte character bug (resend for clarify)
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Patch for Re: [HACKERS] Bug of PL/pgSQL parser