Re: Should we optimize the `ORDER BY random() LIMIT x` case? - Mailing list pgsql-hackers

From Andrei Lepikhov
Subject Re: Should we optimize the `ORDER BY random() LIMIT x` case?
Date
Msg-id 17dae319-a3bc-4707-b606-4847001697f0@gmail.com
Whole thread Raw
In response to Re: Should we optimize the `ORDER BY random() LIMIT x` case?  (Aleksander Alekseev <aleksander@timescale.com>)
List pgsql-hackers
On 5/19/25 12:25, Aleksander Alekseev wrote:
> ```
> -- imagine replacing inefficient array_sample(array_agg(t), 10)
> -- with more efficient array_sample_reservoir(t, 10)
> SELECT (unnest(agg)).* AS k FROM
> (  SELECT array_sample(array_agg(t), 10) AS agg FROM (
>     ... here goes the subquery ...
>     ) AS t
> );
> ```
> 
> ... if only we supported such a column expansion for not registered
> records. Currently such a query fails with:
> 
> ```
> ERROR:  record type has not been registered
> ```
I know about this issue. Having resolved it in a limited number of local 
cases (like FDW push-down of row types), I still do not have a universal 
solution worth proposing upstream. Do you have any public implementation 
of the array_sample_reservoir to play with?

-- 
regards, Andrei Lepikhov



pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: Avoid orphaned objects dependencies, take 3
Next
From: Robert Haas
Date:
Subject: Re: Avoid orphaned objects dependencies, take 3