From: | "shiy(dot)fnst(at)fujitsu(dot)com" <shiy(dot)fnst(at)fujitsu(dot)com> |
---|---|
To: | Önder Kalacı <onderkalaci(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | vignesh C <vignesh21(at)gmail(dot)com>, "wangw(dot)fnst(at)fujitsu(dot)com" <wangw(dot)fnst(at)fujitsu(dot)com>, Marco Slot <marco(dot)slot(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | RE: [PATCH] Use indexes on the subscriber when REPLICA IDENTITY is full on the publisher |
Date: | 2023-03-07 03:46:48 |
Message-ID: | OSZPR01MB6310DA8519F1FD6DAC31863DFDB79@OSZPR01MB6310.jpnprd01.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Monay, Mar 6, 2023 7:19 PM Önder Kalacı <onderkalaci(at)gmail(dot)com> wrote:
>
> Yeah, seems easier to follow to me as well. Reflected it in the comment as well.
>
Thanks for updating the patch. Here are some comments on v33-0001 patch.
1.
+ if (RelationReplicaIdentityFullIndexScanEnabled(localrel) &&
+ remoterel->replident == REPLICA_IDENTITY_FULL)
RelationReplicaIdentityFullIndexScanEnabled() is introduced in 0002 patch, so
the call to it should be moved to 0002 patch I think.
2.
+#include "optimizer/cost.h"
Do we need this in the latest patch? I tried and it looks it could be removed
from src/backend/replication/logical/relation.c.
3.
+# now, create a unique index and set the replica
+$node_publisher->safe_psql('postgres',
+ "CREATE UNIQUE INDEX test_replica_id_full_unique ON test_replica_id_full(x);");
+$node_subscriber->safe_psql('postgres',
+ "CREATE UNIQUE INDEX test_replica_id_full_unique ON test_replica_id_full(x);");
+
Should the comment be "now, create a unique index and set the replica identity"?
4.
+$node_publisher->safe_psql('postgres',
+ "ALTER TABLE test_replica_id_full REPLICA IDENTITY USING INDEX test_replica_id_full_unique;");
+$node_subscriber->safe_psql('postgres',
+ "ALTER TABLE test_replica_id_full REPLICA IDENTITY USING INDEX test_replica_id_full_unique;");
+
+# wait for the synchronization to finish
+$node_subscriber->wait_for_subscription_sync;
There's no new tables to need to be synchronized here, should we remove the call
to wait_for_subscription_sync?
Regards,
Shi Yu
From | Date | Subject | |
---|---|---|---|
Next Message | David Rowley | 2023-03-07 04:06:42 | Re: Making empty Bitmapsets always be NULL |
Previous Message | Amin | 2023-03-07 03:46:24 | NumericShort vs NumericLong format |