Hiroshi Inoue <Inoue@tpf.co.jp> writes:
>> Re-implement LIMIT/OFFSET as a plan node type, instead of a hack in
>> ExecutorRun. This allows LIMIT to work in a view. Also, LIMIT in a
>> cursor declaration will behave in a reasonable fashion,
> Does "reasonable" mean that LIMIT is treated as optimizer's
> hint but doesn't restrict total FETCH counts ?
No, it means that a LIMIT in a cursor means what it says: the cursor
will show that many rows and no more. FETCH lets you move around in
the cursor, but not override the limit. I decided that the other
behavior was just too darn weird... if you want to argue about that,
let's take it up on pghackers not committers.
Yes, the optimizer does pay attention to the limit.
regards, tom lane