Re: Restore replication settings when modifying a field type

Peter Eisentraut <peter.eisentraut@2ndquadrant.com>

From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Euler Taveira <euler@timbira.com.br>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: quanzongliang@gmail.com, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-01-03T09:14:11Z
Lists: pgsql-hackers
On 2019-11-01 04:39, Euler Taveira wrote:
> ATExecAlterColumnType records everything that depends on the column
> and for indexes it saves the definition (via pg_get_indexdef_string).
> Definition is not sufficient for reconstructing the replica identity
> information because there is not such keyword for replica identity in
> CREATE INDEX. The new index should call relation_mark_replica_identity
> to fix pg_index.indisreplident.

Yeah, I don't think we need to do the full dance of reverse compiling 
the SQL command and reexecuting it, as the patch currently does.  That's 
only necessary for rebuilding the index itself.  For re-setting the 
replica identity, we can just use the internal API as you say.

Also, a few test cases would be nice for this patch.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Preserve replica identity index across ALTER TABLE rewrite

  2. Prevent reindex of invalid indexes on TOAST tables