postgresql/src/backend
Andres Freund fdc7efcc30 Allow pg_class xid & multixid horizons to not be set.
This allows table AMs that don't need these horizons. This was already
documented in the tableam relation_set_new_filenode callback, but an
assert prevented if from actually working (the test AM code contained
the change itself). Defang the asserts in the general code, and move
the stronger ones into heap AM.

Relatedly, after CLUSTER/VACUUM, we'd always assign a relfrozenxid /
relminmxid. Change the table_relation_copy_for_cluster() interface to
allow the AM to overwrite the horizons that get set on the pg_class
entry.  This'd also in the future allow AMs like heap to compute a
relfrozenxid during rewrite that's the table's actual minimum rather
than a pre-determined value.  Arguably it'd have been better to move
the whole computation / setting of those values into the callback, but
it seems likely that for other reasons it'd be better to be able to
use one value to vacuum/cluster multiple tables (e.g. a toast's
horizon shouldn't be different than the table's).

Reported-By: Heikki Linnakangas
Author: Andres Freund
Discussion: https://postgr.es/m/9a7fb9cc-2419-5db7-8840-ddc10c93f122@iki.fi
2019-04-23 21:42:12 -07:00
..
access Allow pg_class xid & multixid horizons to not be set. 2019-04-23 21:42:12 -07:00
bootstrap tableam: relation creation, VACUUM FULL/CLUSTER, SET TABLESPACE. 2019-03-28 20:01:43 -07:00
catalog Avoid order-of-execution problems with ALTER TABLE ADD PRIMARY KEY. 2019-04-23 12:25:27 -04:00
commands Allow pg_class xid & multixid horizons to not be set. 2019-04-23 21:42:12 -07:00
executor Fix slot type issue for fuzzy distance index scan over out-of-core table AM. 2019-04-19 11:42:37 -07:00
foreign Update copyright for 2019 2019-01-02 12:44:25 -05:00
jit Fix collection of typos and grammar mistakes in docs and comments 2019-04-19 16:57:40 +09:00
lib Fix example in comment. 2019-04-09 08:33:42 +03:00
libpq Fix detection of passwords hashed with MD5 or SCRAM-SHA-256 2019-04-23 15:43:21 +09:00
main Replace @postgresql.org with @lists.postgresql.org for mailinglists 2019-01-19 19:06:35 +01:00
nodes Use Append rather than MergeAppend for scanning ordered partitions. 2019-04-05 19:20:43 -04:00
optimizer Fix collection of typos and grammar mistakes in docs and comments 2019-04-19 16:57:40 +09:00
parser Avoid order-of-execution problems with ALTER TABLE ADD PRIMARY KEY. 2019-04-23 12:25:27 -04:00
partitioning Fix failure with textual partition hash keys. 2019-04-15 16:47:09 -04:00
po Translation updates 2018-06-25 12:37:18 +02:00
port Consistently test for in-use shared memory. 2019-04-12 22:36:38 -07:00
postmaster Allow pg_class xid & multixid horizons to not be set. 2019-04-23 21:42:12 -07:00
regex Collations with nondeterministic comparison 2019-03-22 12:12:43 +01:00
replication Fix thinko introduced by 82a5649 in slot.c 2019-04-17 10:01:22 +09:00
rewrite Perform RLS subquery checks as the right user when going via a view. 2019-04-02 08:13:59 +01:00
snowball Update copyright for 2019 2019-01-02 12:44:25 -05:00
statistics Fix mvdistinct and dependencies size calculations 2019-04-21 20:23:34 +02:00
storage Simplify some ERROR paths clearing wait events and transient files 2019-04-17 09:51:45 +09:00
tcop Define WIN32_STACK_RLIMIT throughout win32 and cygwin builds. 2019-04-09 08:25:39 -07:00
tsearch Fix more strcmp() calls using boolean-like comparisons for result checks 2019-04-12 10:16:49 +09:00
utils Repair assorted issues in locale data extraction. 2019-04-23 18:51:30 -04:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
Makefile Get rid of jsonpath_gram.h and jsonpath_scanner.h 2019-03-20 11:13:34 +03:00
nls.mk Translation updates 2018-06-25 12:37:18 +02:00