new aggregate functions v2

Started by Fabien COELHOover 22 years ago4 messagespatches
Jump to latest
#1Fabien COELHO
coelho@cri.ensmp.fr

Dear patchers,

please find attached my second patch submission for adding
new aggregate functions:

(1) boolean-and and boolean-or aggregates named bool_and and bool_or.
they should correspond to standard sql every and some/any aggregates.
they do not have the right name as there is a problem with
the standard and the parser for some/any. Tom also think that
the standard name is misleading because NULL are ignored.

(2) bitwise integer aggregates named bit_and and bit_or for
int2, int4, int8 and bit types. They are not standard, but I find
them useful. I needed them once, and I'm not the first one to look for
them.

The patches adds:

- 2 new very short strict functions for boolean aggregates in
src/backed/utils/adt/bool.c,
src/include/utils/builtins.h and src/include/catalog/pg_proc.h

- the new aggregates declared in src/include/catalog/pg_proc.h and
src/include/catalog/pg_aggregate.h

- some documentation and validation about these new aggregates.

It also updates the catalog version. It validates for me.

Have a nice day,

--
Fabien Coelho - coelho@cri.ensmp.fr

Attachments:

new_aggregates.patchtext/plain; charset=US-ASCII; name=new_aggregates.patchDownload+366-2
#2Robert Treat
xzilla@users.sourceforge.net
In reply to: Fabien COELHO (#1)
Re: new aggregate functions v2

On Sunday 02 May 2004 11:22, Fabien COELHO wrote:

Dear patchers,

please find attached my second patch submission for adding
new aggregate functions:

(1) boolean-and and boolean-or aggregates named bool_and and bool_or.
they should correspond to standard sql every and some/any aggregates.
they do not have the right name as there is a problem with
the standard and the parser for some/any. Tom also think that
the standard name is misleading because NULL are ignored.

(2) bitwise integer aggregates named bit_and and bit_or for
int2, int4, int8 and bit types. They are not standard, but I find
them useful. I needed them once, and I'm not the first one to look for
them.

The patches adds:

- 2 new very short strict functions for boolean aggregates in
src/backed/utils/adt/bool.c,
src/include/utils/builtins.h and src/include/catalog/pg_proc.h

- the new aggregates declared in src/include/catalog/pg_proc.h and
src/include/catalog/pg_aggregate.h

- some documentation and validation about these new aggregates.

It also updates the catalog version. It validates for me.

Have a nice day,

Just a minor nibble, but could you add something to the documentation entries
that these are postgresql implementation of the sql any/some/every aggregate
functions. right now we have whole pages devoted to any/some for subqueries
and arrays, I'd like to give people looking for the sql spec aggregate
functions at least a chance of finding these.

Robert Treat
--
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL

#3Fabien COELHO
coelho@cri.ensmp.fr
In reply to: Robert Treat (#2)
Re: new aggregate functions v2

Dear Robert,

(1) boolean-and and boolean-or aggregates named bool_and and bool_or.
they should correspond to standard sql every and some/any aggregates.

Just a minor nibble, but could you add something to the documentation
entries that these are postgresql implementation of the sql
any/some/every aggregate functions.

Yep, that can be done.

right now we have whole pages devoted to any/some for subqueries and
arrays, I'd like to give people looking for the sql spec aggregate
functions at least a chance of finding these.

Do you mean one or both of the following?

- add a note in the aggregate doc that they correspond to
EVERY and SOME/ANY standard aggregates.

- add a note somewhere else, maybe in the doc about arrays or subqueries,
that there are also aggregates with a non standard name.
if so, where precisely should it be put?

Thanks in advance,

--
Fabien Coelho - coelho@cri.ensmp.fr

#4Robert Treat
xzilla@users.sourceforge.net
In reply to: Fabien COELHO (#3)
Re: new aggregate functions v2

On Wed, 2004-05-05 at 02:59, Fabien COELHO wrote:

Dear Robert,

(1) boolean-and and boolean-or aggregates named bool_and and bool_or.
they should correspond to standard sql every and some/any aggregates.

Just a minor nibble, but could you add something to the documentation
entries that these are postgresql implementation of the sql
any/some/every aggregate functions.

Yep, that can be done.

right now we have whole pages devoted to any/some for subqueries and
arrays, I'd like to give people looking for the sql spec aggregate
functions at least a chance of finding these.

Do you mean one or both of the following?

- add a note in the aggregate doc that they correspond to
EVERY and SOME/ANY standard aggregates.

I meant this one.

- add a note somewhere else, maybe in the doc about arrays or subqueries,
that there are also aggregates with a non standard name.
if so, where precisely should it be put?

It seems that might be a little intrusive wouldn't it? If we can make
sure the aggregate functions page gets picked up in the index entry for
any/some I think that would be appropriate.

Thanks for your efforts.

Robert Treat
--
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL