postgresql/src
Alvaro Herrera 2f5c9d9c9c Tweak catalog indexing abstraction for upcoming WARM
Split the existing CatalogUpdateIndexes into two different routines,
CatalogTupleInsert and CatalogTupleUpdate, which do both the heap
insert/update plus the index update.  This removes over 300 lines of
boilerplate code all over src/backend/catalog/ and src/backend/commands.
The resulting code is much more pleasing to the eye.

Also, by encapsulating what happens in detail during an UPDATE, this
facilitates the upcoming WARM patch, which is going to add a few more
lines to the update case making the boilerplate even more boring.

The original CatalogUpdateIndexes is removed; there was only one use
left, and since it's just three lines, we can as well expand it in place
there.  We could keep it, but WARM is going to break all the UPDATE
out-of-core callsites anyway, so there seems to be no benefit in doing
so.

Author: Pavan Deolasee
Discussion: https://www.postgr.es/m/CABOikdOcFYSZ4vA2gYfs=M2cdXzXX4qGHeEiW3fu9PCfkHLa2A@mail.gmail.com
2017-01-31 18:42:24 -03:00
..
backend Tweak catalog indexing abstraction for upcoming WARM 2017-01-31 18:42:24 -03:00
bin pg_dump: Fix handling of ALTER DEFAULT PRIVILEGES 2017-01-31 16:24:11 -05:00
common Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
fe_utils Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
include Tweak catalog indexing abstraction for upcoming WARM 2017-01-31 18:42:24 -03:00
interfaces Allow password file name to be specified as a libpq connection parameter. 2017-01-24 17:06:34 -05:00
makefiles Try to fix non-MSVC Windows builds in the wake of logical replication. 2017-01-20 12:51:31 -05:00
pl Use castNode() in a bunch of statement-list-related code. 2017-01-26 22:09:34 -05:00
port Attempt to handle pending-delete files on Windows 2017-01-04 10:48:30 +01:00
template Remove "sco" and "unixware" ports. 2016-10-11 11:26:04 -04:00
test test_pg_dump: perltidy cleanup 2017-01-31 11:17:38 -05:00
timezone Update time zone data files to tzdata release 2016j. 2017-01-30 11:40:22 -05:00
tools Extend index AM API for parallel index scans. 2017-01-24 16:42:58 -05:00
tutorial Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Logical replication 2017-01-20 09:04:49 -05:00
Makefile.global.in Fix cross-shlib linking in temporary installs on HPUX 10. 2017-01-21 15:15:39 -05:00
Makefile.shlib Fix cross-shlib linking in temporary installs on HPUX 10. 2017-01-21 15:15:39 -05:00
nls-global.mk nls-global.mk: search build dir for source files, too 2016-06-07 18:55:18 -04:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00