Enable deduplication in system catalog indexes.

The "equality implies image equality" opclass infrastructure disallowed
deduplication in system catalog indexes and TOAST indexes before now.
That seemed like the right approach back when the infrastructure was
added by commit 612a1ab7, since ALTER INDEX cannot set deduplicate_items
to 'off' (due to an old implementation restriction).  But that decision
now seems arbitrary at best.  Remove special case handling implementing
this policy.

No catversion bump, since existing catalog indexes will still work.

Author: Peter Geoghegan <pg@bowt.ie>
Discussion: https://postgr.es/m/CAH2-Wz=rYQHFaJ3WYBdK=xgwxKzaiGMSSrh-ZCREa-pS-7Zjew@mail.gmail.com
This commit is contained in:
Peter Geoghegan 2021-10-02 17:12:59 -07:00
parent 9b8d68cc65
commit 2903f1404d
1 changed files with 0 additions and 12 deletions

View File

@ -2698,18 +2698,6 @@ _bt_allequalimage(Relation rel, bool debugmessage)
IndexRelationGetNumberOfKeyAttributes(rel))
return false;
/*
* There is no special reason why deduplication cannot work with system
* relations (i.e. with system catalog indexes and TOAST indexes). We
* deem deduplication unsafe for these indexes all the same, since the
* alternative is to force users to always use deduplication, without
* being able to opt out. (ALTER INDEX is not supported with system
* indexes, so users would have no way to set the deduplicate_items
* storage parameter to 'off'.)
*/
if (IsSystemRelation(rel))
return false;
for (int i = 0; i < IndexRelationGetNumberOfKeyAttributes(rel); i++)
{
Oid opfamily = rel->rd_opfamily[i];