[HACKERS] [PATCH] Incremental sort (was: PoC: Partial sort) - Mailing list pgsql-hackers

From Alexander Korotkov
Subject [HACKERS] [PATCH] Incremental sort (was: PoC: Partial sort)
Date
Msg-id CAPpHfds1waRZ=NOmueYq0sx1ZSCnt+5QJvizT8ndT2=etZEeAQ@mail.gmail.com
Whole thread Raw
Responses Re: [HACKERS] [PATCH] Incremental sort (was: PoC: Partial sort)  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
Hi all!

I decided to start new thread for this patch for following two reasons.
 * It's renamed from "Partial sort" to "Incremental sort" per suggestion by Robert Haas [1].  New name much better characterizes the essence of algorithm.
 * I think it's not PoC anymore.  Patch received several rounds of review and now it's in the pretty good shape.

Attached revision of patch has following changes.
 * According to review [1], two new path and plan nodes are responsible for incremental sort: IncSortPath and IncSort which are inherited from SortPath and Sort correspondingly.  That allowed to get rid of set of hacks with minimal code changes.
 * According to review [1] and comment [2], previous tuple is stored in standalone tuple slot of SortState rather than just HeapTuple.
 * New GUC parameter enable_incsort is introduced to control planner ability to choose incremental sort.
 * Test of postgres_fdw with not pushed down cross join is corrected.  It appeared that with incremental sort such query is profitable to push down.  I changed ORDER BY columns so that index couldn't be used.  I think this solution is more elegant than setting enable_incsort = off.

Also patch has set of assorted code and comments improvements.

Links

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
Attachment

pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: [HACKERS] new gcc 7.0.1 warnings
Next
From: Magnus Hagander
Date:
Subject: Re: [HACKERS] Help text for pg_basebackup -R