On Sat, Feb 7, 2015 at 10:36 PM, Amit Kapila <amit.kapil...@gmail.com> wrote: >> Well, I agree with you, but I'm not really sure what that has to do >> with the issue at hand. I mean, if we were to apply Amit's patch, >> we'd been in a situation where, for a non-parallel heap scan, heapam.c >> decides the order in which blocks get scanned, but for a parallel heap >> scan, nodeParallelSeqscan.c makes that decision. > > I think other places also decides about the order/way heapam.c has > to scan, example the order in which rows/pages has to traversed is > decided at portal/executor layer and the same is passed till heap and > in case of index, the scanlimits (heap_setscanlimits()) are decided > outside heapam.c and something similar is done for parallel seq scan. > In general, the scan is driven by Scandescriptor which is constructed > at upper level and there are some API's exposed to derive the scan. > If you are not happy with the current way nodeParallelSeqscan has > set the scan limits, we can have some form of callback which do the > required work and this callback can be called from heapam.c.
I thought about a callback, but what's the benefit of doing that vs. hard-coding it in heapam.c? If the upper-layer wants to impose a TID qual or similar then heap_setscanlimits() makes sense, but that's effectively a filter condition, not a policy decision about the access pattern. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers