Re: Weird return-value from pg_get_function_identity_arguments() on certain aggregate functions?

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: "P O'Toole" <P(dot)OToole(at)uwyo(dot)edu>
Cc: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: Weird return-value from pg_get_function_identity_arguments() on certain aggregate functions?
Date: 2018-03-12 21:47:47
Message-ID: CAKFQuwaMpCy4cmpLriLusw=iawCUB1F0wgjH_dFpu3VXB=Wjug@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Mon, Mar 12, 2018 at 2:19 PM, P O'Toole <P(dot)OToole(at)uwyo(dot)edu> wrote:

>
> According to the System Information Functions docs,
> pg_get_function_identity_arguments(OID) should simply "get argument list
> to identify a function (without default values)", but one example of how it
> behaves strangely is that:
>
>
>
> SELECT pg_get_function_identity_arguments('pg_catalog.percentile_disc(DOUBLE
> PRECISION[], ANYELEMENT)'::REGPROCEDURE)
>
>
>
​FWIW a simple \dfS percentile* will elicit the same description.

I suppose it depends on what you are using the output for - the
(percentile*) functions that are decorated with ORDER BY are exclusively
aggregate, as opposed to standard, functions.

An ORDER BY is not a "default value" so we aren't really contradicting the
docs - though seeing ORDER BY in a function signature is a surprise to me
too...but reading the doc for CREATE AGGREGATE the SQL command syntax is:

CREATE AGGREGATE name ( [ [ argmode ] [ argname ] arg_data_type [ , ... ] ]
ORDER BY [ argmode ] [ argname ] arg_data_type [ ,
... ] )

So I'd have to say this is working correctly.

I seem to recall some recent (last few weeks) discussion regarding
aggregates vs functions in the information schema. That may prove to be
enlightening but at the moment I don't have time to go look for and review
it.

David J.

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David G. Johnston 2018-03-12 22:00:07 Re: Weird return-value from pg_get_function_identity_arguments() on certain aggregate functions?
Previous Message P O'Toole 2018-03-12 21:19:54 Weird return-value from pg_get_function_identity_arguments() on certain aggregate functions?