Re: doc: improve the restriction description of using indexes on REPLICA IDENTITY FULL table.
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Masahiko Sawada <sawada.mshk@gmail.com>
Cc: Peter Smith <smithpb2250@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-07-15T05:11:03Z
Lists: pgsql-hackers
On Thu, Jul 13, 2023 at 10:55 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > On Wed, Jul 12, 2023 at 11:15 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > > > > I think this is a valid concern. Can't we move all the checks > > > (including the remote attrs check) inside > > > IsIndexUsableForReplicaIdentityFull() and then call it from both > > > places? Won't we have attrmap information available in the callers of > > > FindReplTupleInLocalRel() via ApplyExecutionData? > > > > You mean to pass ApplyExecutionData or attrmap down to > > RelationFindReplTupleByIndex()? I think it would be better to call it > > from FindReplTupleInLocalRel() instead. > > I've attached a draft patch for this idea. > Looks reasonable to me. However, I am not very sure if we need to change the prototype of RelationFindReplTupleByIndex(). Few other minor comments: 1. - * has been implemented as a tri-state with values DISABLED, PENDING, and +n * has been implemented as a tri-state with values DISABLED, PENDING, and * ENABLED. * The above seems like a spurious change. 2. + /* And must reference the remote relation column */ + if (attrmap->maplen <= AttrNumberGetAttrOffset(keycol) || + attrmap->attnums[AttrNumberGetAttrOffset(keycol)] < 0) + return false; + I think we should specify the reason for this. I see that in the commit fd48a86c62 [1], the reason for this is removed. Shouldn't we retain that in some form? [1] - - * We also skip indexes if the remote relation does not contain the leftmost - * column of the index. This is because in most such cases sequential scan is - * favorable over index scan. -- With Regards, Amit Kapila.
Commits
-
Remove unnecessary checks for indexes for REPLICA IDENTITY FULL tables.
- d0ce9d0bc7f6 17.0 landed
- 35c85c3c9b90 16.0 landed
-
Allow the use of a hash index on the subscriber during replication.
- edca3424342d 17.0 cited
-
Doc: clarify the conditions of usable indexes for REPLICA IDENTITY FULL tables.
- 4946910a875c 16.0 landed
- fd48a86c6241 17.0 landed
-
Allow the use of indexes other than PK and REPLICA IDENTITY on the subscriber.
- 89e46da5e511 16.0 cited