Preserve replica identity index across ALTER TABLE rewrite
authorPeter Eisentraut <peter@eisentraut.org>
Fri, 13 Mar 2020 10:28:11 +0000 (11:28 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Fri, 13 Mar 2020 12:21:30 +0000 (13:21 +0100)
commitc15d35041206dbe2fd8f57a18c6227a2312ddf0d
tree2e0b20272a22ba5dff83124506c3efc380e53c87
parentd22ac5378fbd9605dceabe1546f737ee005fb7b1
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: https://www.postgresql.org/message-id/flat/c70fcab2-4866-0d9f-1d01-e75e189db342@gmail.com
src/backend/commands/tablecmds.c
src/backend/utils/cache/lsyscache.c
src/include/utils/lsyscache.h
src/test/regress/expected/replica_identity.out
src/test/regress/sql/replica_identity.sql