postgresql/src/include/access
Andres Freund 297d627e07 Fix heap_getattr() handling of fast defaults.
Previously heap_getattr() returned NULL for attributes with a fast
default value (c.f. 16828d5c02), as it had no handling whatsoever
for that case.

A previous fix, 7636e5c60f, attempted to fix issues caused by this
oversight, but just expanding OLD tuples for triggers doesn't actually
solve the underlying issue.

One known consequence of this bug is that the check for HOT updates
can return the wrong result, when a previously fast-default'ed column
is set to NULL. Which in turn means that an index over a column with
fast default'ed columns might be corrupt if the underlying column(s)
allow NULLs.

Fix by handling fast default columns in heap_getattr(), remove now
superfluous expansion in GetTupleForTrigger().

Author: Andres Freund
Discussion: https://postgr.es/m/20190201162404.onngi77f26baem4g@alap3.anarazel.de
Backpatch: 11, where fast defaults were introduced
2019-02-06 01:09:42 -08:00
..
amapi.h Support index INCLUDE in the AM properties interface. 2018-04-08 06:02:05 +01:00
amvalidate.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
attnum.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
brin.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
brin_internal.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
brin_page.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
brin_pageops.h Improve FSM management for BRIN indexes. 2018-04-04 14:26:04 -04:00
brin_revmap.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
brin_tuple.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
brin_xlog.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
bufmask.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
clog.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
commit_ts.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
genam.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
generic_xlog.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
gin.h Use stdbool.h if suitable 2018-03-22 20:42:25 -04:00
gin_private.h Remove entry tree root conflict checking from GIN predicate locking 2018-12-27 04:20:21 +03:00
ginblock.h Prevent GIN deleted pages from being reclaimed too early 2018-12-13 06:39:53 +03:00
ginxlog.h Prevent GIN deleted pages from being reclaimed too early 2018-12-13 06:39:53 +03:00
gist.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
gist_private.h Check for conflicting queries during replay of gistvacuumpage() 2018-12-21 02:37:31 +03:00
gistscan.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
gistxlog.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
hash.h Fix the overrun in hash index metapage for smaller block sizes. 2018-09-06 10:07:18 +05:30
hash_xlog.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
heapam.h Fix logical decoding error when system table w/ toast is repeatedly rewritten. 2018-10-10 13:53:02 -07:00
heapam_xlog.h Post-feature-freeze pgindent run. 2018-04-26 14:47:16 -04:00
hio.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
htup.h Add FIELDNO_* macro designating offset into structs required for JIT. 2018-03-22 14:45:59 -07:00
htup_details.h Fix heap_getattr() handling of fast defaults. 2019-02-06 01:09:42 -08:00
itup.h Adjust INCLUDE index truncation comments and code. 2018-04-19 08:45:58 +03:00
multixact.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
nbtree.h Allow btree comparison functions to return INT_MIN. 2018-10-05 16:01:29 -04:00
nbtxlog.h Fix datatype for number of heap tuples during last cleanup 2018-04-19 11:28:03 +03:00
parallel.h Support parallel btree index builds. 2018-02-02 13:32:44 -05:00
printsimple.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
printtup.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
reloptions.h Post-feature-freeze pgindent run. 2018-04-26 14:47:16 -04:00
relscan.h Post-feature-freeze pgindent run. 2018-04-26 14:47:16 -04:00
rewriteheap.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
rmgr.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
rmgrlist.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
sdir.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
session.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
skey.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
slru.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
spgist.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
spgist_private.h Post-feature-freeze pgindent run. 2018-04-26 14:47:16 -04:00
spgxlog.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
stratnum.h Add prefix operator for TEXT type. 2018-04-03 19:46:45 +03:00
subtrans.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
sysattr.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
timeline.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
transam.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
tsmapi.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
tupconvert.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
tupdesc.h Fast ALTER TABLE ADD COLUMN with a non-NULL default 2018-03-28 10:43:52 +10:30
tupdesc_details.h Cosmetic improvements for faster column addition. 2018-06-27 08:16:13 +05:30
tupmacs.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
tuptoaster.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
twophase.h Post-feature-freeze pgindent run. 2018-04-26 14:47:16 -04:00
twophase_rmgr.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
valid.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
visibilitymap.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
xact.h Restrict the use of temporary namespace in two-phase transactions 2019-01-18 09:21:52 +09:00
xlog.h Revert "Allow on-line enabling and disabling of data checksums" 2018-04-09 19:03:42 +02:00
xlog_internal.h Flip argument order in XLogSegNoOffsetToRecPtr 2018-07-09 14:33:27 -04:00
xlogdefs.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
xloginsert.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
xlogreader.h pgindent run prior to branching 2018-06-30 12:25:49 -04:00
xlogrecord.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
xlogutils.h Update copyright for 2018 2018-01-02 23:30:12 -05:00