git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: 1f655fd) | patch
Flush table's relcache during ALTER TABLE ADD PRIMARY KEY USING INDEX.
2022年1月22日 18:32:40 +0000 (13:32 -0500)
2022年1月22日 18:32:40 +0000 (13:32 -0500)
commit d8fbbb925bdb8ca1c8eb8572192f4ee199f4d276
Flush table's relcache during ALTER TABLE ADD PRIMARY KEY USING INDEX.

Previously, unless we had to add a NOT NULL constraint to the column,
this command resulted in updating only the index's relcache entry.
That's problematic when replication behavior is being driven off the
existence of a primary key: other sessions (and ours too for that
matter) failed to recalculate their opinion of whether the table can
be replicated. Add a relcache invalidation to fix it.

This has been broken since pg_class.relhaspkey was removed in v11.
Before that, updating the table's relhaspkey value sufficed to cause
a cache flush. Hence, backpatch to v11.

Report and patch by Hou Zhijie

Discussion: https://postgr.es/m/OS0PR01MB5716EBE01F112C62F8F9B786947B9@OS0PR01MB5716.jpnprd01.prod.outlook.com
src/backend/catalog/index.c diff | blob | blame | history
src/test/regress/expected/publication.out diff | blob | blame | history
src/test/regress/sql/publication.sql diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /