postgresql/src/backend
Peter Geoghegan 1a6f5a0e87 Go back to considering HOT on pages marked full.
Commit 2fd8685e7f simplified the checking of modified attributes that
takes place within heap_update().  This included a micro-optimization
affecting pages marked PD_PAGE_FULL: don't even try to use HOT to save a
few cycles on determining HOT safety.  The assumption was that it won't
work out this time around, since it can't have worked out last time
around.

Remove the micro-optimization.  It could only ever save cycles that are
consumed by the vast majority of heap_update() calls, which hardly seems
worth the added complexity.  It also seems quite possible that there are
workloads that will do worse over time by repeated application of the
micro-optimization, despite saving some cycles on average, in the short
term.

Author: Peter Geoghegan <pg@bowt.ie>
Reviewed-By: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/CAH2-WznU1L3+DMPr1F7o2eJBT7=3bAJoY6ZkWABAxNt+-afyTA@mail.gmail.com
2021-11-26 10:58:38 -08:00
..
access Go back to considering HOT on pages marked full. 2021-11-26 10:58:38 -08:00
bootstrap Fix bogus assertion in BootstrapModeMain(). 2021-08-09 08:28:53 -07:00
catalog Update comments 2021-11-26 09:57:23 +01:00
commands Fix GRANTED BY support in REVOKE ROLE statements 2021-11-26 14:02:01 +01:00
executor Flush Memoize cache when non-key parameters change, take 2 2021-11-24 23:29:14 +13:00
foreign Improve HINT message that FDW reports when there are no valid options. 2021-10-27 00:46:52 +09:00
jit Avoid some other O(N^2) hazards in list manipulation. 2021-11-01 16:24:39 -04:00
lib Fix typo in comment 2021-04-20 14:35:16 +02:00
libpq Provide a variant of simple_prompt() that can be interrupted by ^C. 2021-11-17 19:09:54 -05:00
main process startup: Split single user code out of PostgresMain(). 2021-09-17 19:56:47 -07:00
nodes Flush Memoize cache when non-key parameters change, take 2 2021-11-24 23:29:14 +13:00
optimizer Flush Memoize cache when non-key parameters change, take 2 2021-11-24 23:29:14 +13:00
parser Fix GRANTED BY support in REVOKE ROLE statements 2021-11-26 14:02:01 +01:00
partitioning Fix duplicate words in comments 2021-10-04 15:12:57 +02:00
po Translation updates 2021-06-21 12:33:50 +02:00
port windows: Remove use of WIN32_LEAN_AND_MEAN from crashdump.c. 2021-11-06 15:43:22 -07:00
postmaster autovacuum: Improve wording in a couple places 2021-11-22 12:55:36 -03:00
regex Make pg_regexec() robust against out-of-range search_start. 2021-09-11 15:19:31 -04:00
replication Rename SnapBuild* macros in slot.c. 2021-11-24 08:09:00 +05:30
rewrite Fix rewriter to set hasModifyingCTE correctly on rewritten queries. 2021-09-08 12:05:47 -04:00
snowball Update snowball 2021-02-19 08:10:15 +01:00
statistics Clean up more code using "(expr) ? true : false" 2021-10-11 09:36:42 +09:00
storage Fix parallel operations that prevent oldest xmin from advancing. 2021-11-19 09:04:40 +05:30
tcop Add pg_checkpointer predefined role for CHECKPOINT command. 2021-11-09 16:59:14 -08:00
tsearch Clean up more code using "(expr) ? true : false" 2021-10-11 09:36:42 +09:00
utils Allow Memoize to operate in binary comparison mode 2021-11-24 10:06:59 +13:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
Makefile Use sort_template.h for qsort_tuple() and qsort_ssup(). 2021-03-03 17:02:32 +13:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
nls.mk Report progress of startup operations that take a long time. 2021-10-25 11:51:57 -04:00