Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit13aeaf0

Browse files
Add worker type to pg_stat_subscription.
Thanks to commit2a8b40e, the logical replication worker type iseasily determined. The worker type could already be deduced viaother columns such as leader_pid and relid, but that is unnecessarycomplexity for users.Bumps catversion.Author: Peter SmithReviewed-by: Michael Paquier, Maxim Orlov, Amit KapilaDiscussion:https://postgr.es/m/CAHut%2BPtmbSMfErSk0S7xxVdZJ9XVE3xVLhqBTmT91kf57BeKDQ%40mail.gmail.com
1 parent849d367 commit13aeaf0

File tree

7 files changed

+37
-8
lines changed

7 files changed

+37
-8
lines changed

‎doc/src/sgml/monitoring.sgml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1993,6 +1993,17 @@ description | Waiting for a newly initialized WAL file to reach durable storage
19931993
</para></entry>
19941994
</row>
19951995

1996+
<row>
1997+
<entry role="catalog_table_entry"><para role="column_definition">
1998+
<structfield>worker_type</structfield> <type>text</type>
1999+
</para>
2000+
<para>
2001+
Type of the subscription worker process. Possible types are
2002+
<literal>apply</literal>, <literal>parallel apply</literal>, and
2003+
<literal>table synchronization</literal>.
2004+
</para></entry>
2005+
</row>
2006+
19962007
<row>
19972008
<entry role="catalog_table_entry"><para role="column_definition">
19982009
<structfield>pid</structfield> <type>integer</type>
@@ -2008,7 +2019,7 @@ description | Waiting for a newly initialized WAL file to reach durable storage
20082019
</para>
20092020
<para>
20102021
Process ID of the leader apply worker if this process is a parallel
2011-
apply worker; NULL if this process is a leader apply worker or a
2022+
apply worker; NULL if this process is a leader apply worker or a table
20122023
synchronization worker
20132024
</para></entry>
20142025
</row>

‎src/backend/catalog/system_views.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,7 @@ CREATE VIEW pg_stat_subscription AS
949949
SELECT
950950
su.oidAS subid,
951951
su.subname,
952+
st.worker_type,
952953
st.pid,
953954
st.leader_pid,
954955
st.relid,

‎src/backend/replication/logical/launcher.c

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1278,7 +1278,7 @@ GetLeaderApplyWorkerPid(pid_t pid)
12781278
Datum
12791279
pg_stat_get_subscription(PG_FUNCTION_ARGS)
12801280
{
1281-
#definePG_STAT_GET_SUBSCRIPTION_COLS9
1281+
#definePG_STAT_GET_SUBSCRIPTION_COLS10
12821282
Oidsubid=PG_ARGISNULL(0) ?InvalidOid :PG_GETARG_OID(0);
12831283
inti;
12841284
ReturnSetInfo*rsinfo= (ReturnSetInfo*)fcinfo->resultinfo;
@@ -1339,6 +1339,22 @@ pg_stat_get_subscription(PG_FUNCTION_ARGS)
13391339
else
13401340
values[8]=TimestampTzGetDatum(worker.reply_time);
13411341

1342+
switch (worker.type)
1343+
{
1344+
caseWORKERTYPE_APPLY:
1345+
values[9]=CStringGetTextDatum("apply");
1346+
break;
1347+
caseWORKERTYPE_PARALLEL_APPLY:
1348+
values[9]=CStringGetTextDatum("parallel apply");
1349+
break;
1350+
caseWORKERTYPE_TABLESYNC:
1351+
values[9]=CStringGetTextDatum("table synchronization");
1352+
break;
1353+
caseWORKERTYPE_UNKNOWN:
1354+
/* Should never happen. */
1355+
elog(ERROR,"unknown worker type");
1356+
}
1357+
13421358
tuplestore_putvalues(rsinfo->setResult,rsinfo->setDesc,
13431359
values,nulls);
13441360

‎src/include/catalog/catversion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,6 @@
5757
*/
5858

5959
/*yyyymmddN */
60-
#defineCATALOG_VERSION_NO202309221
60+
#defineCATALOG_VERSION_NO202309251
6161

6262
#endif

‎src/include/catalog/pg_proc.dat

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5484,9 +5484,9 @@
54845484
proname => 'pg_stat_get_subscription', prorows => '10', proisstrict => 'f',
54855485
proretset => 't', provolatile => 's', proparallel => 'r',
54865486
prorettype => 'record', proargtypes => 'oid',
5487-
proallargtypes => '{oid,oid,oid,int4,int4,pg_lsn,timestamptz,timestamptz,pg_lsn,timestamptz}',
5488-
proargmodes => '{i,o,o,o,o,o,o,o,o,o}',
5489-
proargnames => '{subid,subid,relid,pid,leader_pid,received_lsn,last_msg_send_time,last_msg_receipt_time,latest_end_lsn,latest_end_time}',
5487+
proallargtypes => '{oid,oid,oid,int4,int4,pg_lsn,timestamptz,timestamptz,pg_lsn,timestamptz,text}',
5488+
proargmodes => '{i,o,o,o,o,o,o,o,o,o,o}',
5489+
proargnames => '{subid,subid,relid,pid,leader_pid,received_lsn,last_msg_send_time,last_msg_receipt_time,latest_end_lsn,latest_end_time,worker_type}',
54905490
prosrc => 'pg_stat_get_subscription' },
54915491
{ oid => '2026', descr => 'statistics: current backend PID',
54925492
proname => 'pg_backend_pid', provolatile => 's', proparallel => 'r',

‎src/test/regress/expected/rules.out

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2118,6 +2118,7 @@ pg_stat_ssl| SELECT pid,
21182118
WHERE (client_port IS NOT NULL);
21192119
pg_stat_subscription| SELECT su.oid AS subid,
21202120
su.subname,
2121+
st.worker_type,
21212122
st.pid,
21222123
st.leader_pid,
21232124
st.relid,
@@ -2127,7 +2128,7 @@ pg_stat_subscription| SELECT su.oid AS subid,
21272128
st.latest_end_lsn,
21282129
st.latest_end_time
21292130
FROM (pg_subscription su
2130-
LEFT JOIN pg_stat_get_subscription(NULL::oid) st(subid, relid, pid, leader_pid, received_lsn, last_msg_send_time, last_msg_receipt_time, latest_end_lsn, latest_end_time) ON ((st.subid = su.oid)));
2131+
LEFT JOIN pg_stat_get_subscription(NULL::oid) st(subid, relid, pid, leader_pid, received_lsn, last_msg_send_time, last_msg_receipt_time, latest_end_lsn, latest_end_time, worker_type) ON ((st.subid = su.oid)));
21312132
pg_stat_subscription_stats| SELECT ss.subid,
21322133
s.subname,
21332134
ss.apply_error_count,

‎src/test/subscription/t/004_sync.pl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080

8181
# wait for it to start
8282
$node_subscriber->poll_query_until('postgres',
83-
"SELECT pid IS NOT NULL FROM pg_stat_subscription WHERE subname = 'tap_sub2' ANDrelid IS NULL"
83+
"SELECT pid IS NOT NULL FROM pg_stat_subscription WHERE subname = 'tap_sub2' ANDworker_type = 'apply'"
8484
)ordie"Timed out while waiting for subscriber to start";
8585

8686
# and drop both subscriptions

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp