diff options
author | Masahiko Sawada <msawada@postgresql.org> | 2023-07-13 15:03:17 +0900 |
---|---|---|
committer | Masahiko Sawada <msawada@postgresql.org> | 2023-07-13 15:03:17 +0900 |
commit | fd48a86c6241b994ce67c8b53a918e6b42c8063c (patch) | |
tree | 13f45e1d62a0b20851773c3060079bfa96fcb268 /src/backend/replication/logical/relation.c | |
parent | 0fef8775382886bef023aee67cb744711ed7a32f (diff) |
Doc: clarify the conditions of usable indexes for REPLICA IDENTITY FULL tables.
Commit 89e46da5e allowed REPLICA IDENTITY FULL tables to use an index
on the subscriber during apply of update/delete. This commit clarifies
in the documentation that the leftmost field of candidate indexes must
be a column (not an expression) that references the published relation
column.
The source code comments are also updated accordingly.
Reviewed-by: Peter Smith, Amit Kapila
Discussion: https://postgr.es/m/CAD21AoDJjffEvUFKXT27Q5U8-UU9JHv4rrJ9Ke8Zkc5UPWHLvA@mail.gmail.com
Backpatch-through: 16
Diffstat (limited to 'src/backend/replication/logical/relation.c')
-rw-r--r-- | src/backend/replication/logical/relation.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/backend/replication/logical/relation.c b/src/backend/replication/logical/relation.c index 57ad22b48a1..c545b90636f 100644 --- a/src/backend/replication/logical/relation.c +++ b/src/backend/replication/logical/relation.c @@ -779,9 +779,10 @@ RemoteRelContainsLeftMostColumnOnIdx(IndexInfo *indexInfo, AttrMap *attrmap) /* * Returns the oid of an index that can be used by the apply worker to scan - * the relation. The index must be btree, non-partial, and have at least - * one column reference (i.e. cannot consist of only expressions). These - * limitations help to keep the index scan similar to PK/RI index scans. + * the relation. The index must be btree, non-partial, and the leftmost + * field must be a column (not an expression) that references the remote + * relation column. These limitations help to keep the index scan similar + * to PK/RI index scans. * * Note that the limitations of index scans for replica identity full only * adheres to a subset of the limitations of PK/RI. For example, we support @@ -796,10 +797,6 @@ RemoteRelContainsLeftMostColumnOnIdx(IndexInfo *indexInfo, AttrMap *attrmap) * none of the tuples satisfy the expression for the index scan, we fall-back * to sequential execution, which might not be a good idea in some cases. * - * 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. - * * We expect to call this function when REPLICA IDENTITY FULL is defined for * the remote relation. * |