Thanks for your insight Jeff. Interesting read!
K

Sent with [ProtonMail](https://protonmail.com) Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Saturday, August 29, 2020 6:23 PM, Jeff Janes <jeff.ja...@gmail.com> wrote:

> On Fri, Aug 28, 2020 at 8:34 AM Klaudie Willis 
> <klaudie.wil...@protonmail.com> wrote:
>
>> No index on n, no. Index might solve it yes, but it seems to me such a 
>> trivial optimization even without. Obviously it is not.
>>
>> QUERY PLAN |
>> ----------------------------------------------------------------------------------|
>> Limit (cost=1911272.10..1911272.12 rows=2 width=7) |
>> -> HashAggregate (cost=1911272.10..1911282.45 rows=1035 width=7) |
>> Group Key: cfi |
>> -> Seq Scan on bigtable (cost=0.00..1817446.08 rows=37530408 width=7)|
>
> I think it would be nice if the LIMIT functionality could be pushed down into 
> the HashAgg so it could stop early, I've run into this a few times. But it 
> just isn't implemented. It wouldn't be the hardest feature to ever add to 
> PostgreSQL, but it also wouldn't be trivial. It would require coordinated 
> changes both to the planner and to the executor.
>
> Also, the use of LIMIT without an ORDER BY makes the query non-deterministic, 
> which makes it kind of a second-class citizen. There might be more enthusiasm 
> among experienced developers for implementing this if it weren't for that. 
> (Although there may be related deterministic cases in which a similar limited 
> hash agg could be useful.)
>
> In the meantime, an index on "n" would probably cause it to switch to a 
> Unique plan which reads in index order. This plan does get to stop early.
>
> Cheers,
>
> Jeff

Reply via email to