From: | Andrei Lepikhov <lepihov(at)gmail(dot)com> |
---|---|
To: | Aleksander Alekseev <aleksander(at)timescale(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Cc: | Nico Williams <nico(at)cryptonector(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, wenhui qiu <qiuwenhuifx(at)gmail(dot)com>, Vik Fearing <vik(at)postgresfriends(dot)org> |
Subject: | Re: Should we optimize the `ORDER BY random() LIMIT x` case? |
Date: | 2025-05-19 18:04:06 |
Message-ID: | 17dae319-a3bc-4707-b606-4847001697f0@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2025-05-19 18:07:34 | Re: Avoid orphaned objects dependencies, take 3 |
Previous Message | Robert Haas | 2025-05-19 18:01:55 | plan shape work |