pgsql: Preserve replica identity index across ALTER TABLE rewrite
Preserve replica identity index across ALTER TABLE rewrite
If an index was explicitly set as replica identity index, this setting
was lost when a table was rewritten by ALTER TABLE. Because this
setting is part of pg_index but actually controlled by ALTER
TABLE (not part of CREATE INDEX, say), we have to do some extra work
to restore it.
Based-on-patch-by: Quan Zongliang <quanzongliang@gmail.com>
Reviewed-by: Euler Taveira <euler.taveira@2ndquadrant.com>
Discussion: /messages/by-id/c70fcab2-4866-0d9f-1d01-e75e189db342@gmail.com
Branch
------
REL9_5_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/c15d35041206dbe2fd8f57a18c6227a2312ddf0d
Modified Files
--------------
src/backend/commands/tablecmds.c | 42 +++++++++++++++++++++++
src/backend/utils/cache/lsyscache.c | 25 ++++++++++++++
src/include/utils/lsyscache.h | 1 +
src/test/regress/expected/replica_identity.out | 46 ++++++++++++++++++++++++++
src/test/regress/sql/replica_identity.sql | 21 ++++++++++++
5 files changed, 135 insertions(+)