Re: ANY_VALUE aggregate

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Pantelis Theodosiou <ypercube(at)gmail(dot)com>
Cc: Vik Fearing <vik(at)postgresfriends(dot)org>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: ANY_VALUE aggregate
Date: 2022-12-07 13:36:04
Message-ID: CAKFQuwb-QNgeup6LFBzyqfxM1fJG77HkoOPudSGrk8+pOser3w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Dec 7, 2022 at 1:58 AM Pantelis Theodosiou <ypercube(at)gmail(dot)com>
wrote:

> On Tue, Dec 6, 2022 at 4:57 AM David G. Johnston
> <david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
> ...
> >
> >
> > I'm referring to the query:
> >
> > select any_value(v order by v) from (values (2),(1),(3)) as vals (v);
> > // produces 1, per the documented implementation-defined behavior.
> >
> > Someone writing:
> >
> > select any_value(v) from (values (2),(1),(3)) as vals (v) order by v;
> >
> > Is not presently, nor am I saying, promised the value 1.
> >
>
> Shouldn't the 2nd query be producing an error, as it has an implied
> GROUP BY () - so column v cannot appear (unless aggregated) in SELECT
> and ORDER BY?
>

Right, that should be written as:

select any_value(v) from (values (2),(1),(3) order by 1) as vals (v);

(you said SELECT; the discussion here is that any_value is going to be
added as a new aggregate function)

David J.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2022-12-07 13:47:37 Re: Error-safe user functions
Previous Message Alexander Korotkov 2022-12-07 13:36:02 Re: Allow placeholders in ALTER ROLE w/o superuser