mirror of
https://github.com/postgres/postgres.git
synced 2025-11-19 13:42:17 +03:00
Rename two columns in pg_stat_subscription_stats.
This patch renames the sync_error_count column to sync_table_error_count in the pg_stat_subscription_stats view. The new name makes the purpose explicit now that a separate column exists to track sequence synchronization errors. Additionally, the column seq_sync_error_count is renamed to sync_seq_error_count to maintain a consistent naming pattern, making it easier for users to group, and query synchronization related counters. Author: Vignesh C <vignesh21@gmail.com> Reviewed-by: Peter Smith <smithpb2250@gmail.com> Reviewed-by: Chao Li <li.evan.chao@gmail.com> Discussion: https://postgr.es/m/CALDaNm3WwJmz=-4ybTkhniB-Nf3qmFG9Zx1uKjyLLoPF5NYYXA@mail.gmail.com
This commit is contained in:
@@ -2195,7 +2195,7 @@ description | Waiting for a newly initialized WAL file to reach durable storage
|
|||||||
|
|
||||||
<row>
|
<row>
|
||||||
<entry role="catalog_table_entry"><para role="column_definition">
|
<entry role="catalog_table_entry"><para role="column_definition">
|
||||||
<structfield>seq_sync_error_count</structfield> <type>bigint</type>
|
<structfield>sync_seq_error_count</structfield> <type>bigint</type>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Number of times an error occurred in the sequence synchronization
|
Number of times an error occurred in the sequence synchronization
|
||||||
@@ -2206,7 +2206,7 @@ description | Waiting for a newly initialized WAL file to reach durable storage
|
|||||||
|
|
||||||
<row>
|
<row>
|
||||||
<entry role="catalog_table_entry"><para role="column_definition">
|
<entry role="catalog_table_entry"><para role="column_definition">
|
||||||
<structfield>sync_error_count</structfield> <type>bigint</type>
|
<structfield>sync_table_error_count</structfield> <type>bigint</type>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Number of times an error occurred during the initial table
|
Number of times an error occurred during the initial table
|
||||||
|
|||||||
@@ -1415,8 +1415,8 @@ CREATE VIEW pg_stat_subscription_stats AS
|
|||||||
ss.subid,
|
ss.subid,
|
||||||
s.subname,
|
s.subname,
|
||||||
ss.apply_error_count,
|
ss.apply_error_count,
|
||||||
ss.seq_sync_error_count,
|
ss.sync_seq_error_count,
|
||||||
ss.sync_error_count,
|
ss.sync_table_error_count,
|
||||||
ss.confl_insert_exists,
|
ss.confl_insert_exists,
|
||||||
ss.confl_update_origin_differs,
|
ss.confl_update_origin_differs,
|
||||||
ss.confl_update_exists,
|
ss.confl_update_exists,
|
||||||
|
|||||||
@@ -41,11 +41,11 @@ pgstat_report_subscription_error(Oid subid, LogicalRepWorkerType wtype)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WORKERTYPE_SEQUENCESYNC:
|
case WORKERTYPE_SEQUENCESYNC:
|
||||||
pending->seq_sync_error_count++;
|
pending->sync_seq_error_count++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WORKERTYPE_TABLESYNC:
|
case WORKERTYPE_TABLESYNC:
|
||||||
pending->sync_error_count++;
|
pending->sync_table_error_count++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -131,8 +131,8 @@ pgstat_subscription_flush_cb(PgStat_EntryRef *entry_ref, bool nowait)
|
|||||||
|
|
||||||
#define SUB_ACC(fld) shsubent->stats.fld += localent->fld
|
#define SUB_ACC(fld) shsubent->stats.fld += localent->fld
|
||||||
SUB_ACC(apply_error_count);
|
SUB_ACC(apply_error_count);
|
||||||
SUB_ACC(seq_sync_error_count);
|
SUB_ACC(sync_seq_error_count);
|
||||||
SUB_ACC(sync_error_count);
|
SUB_ACC(sync_table_error_count);
|
||||||
for (int i = 0; i < CONFLICT_NUM_TYPES; i++)
|
for (int i = 0; i < CONFLICT_NUM_TYPES; i++)
|
||||||
SUB_ACC(conflict_count[i]);
|
SUB_ACC(conflict_count[i]);
|
||||||
#undef SUB_ACC
|
#undef SUB_ACC
|
||||||
|
|||||||
@@ -2221,9 +2221,9 @@ pg_stat_get_subscription_stats(PG_FUNCTION_ARGS)
|
|||||||
OIDOID, -1, 0);
|
OIDOID, -1, 0);
|
||||||
TupleDescInitEntry(tupdesc, (AttrNumber) 2, "apply_error_count",
|
TupleDescInitEntry(tupdesc, (AttrNumber) 2, "apply_error_count",
|
||||||
INT8OID, -1, 0);
|
INT8OID, -1, 0);
|
||||||
TupleDescInitEntry(tupdesc, (AttrNumber) 3, "seq_sync_error_count",
|
TupleDescInitEntry(tupdesc, (AttrNumber) 3, "sync_seq_error_count",
|
||||||
INT8OID, -1, 0);
|
INT8OID, -1, 0);
|
||||||
TupleDescInitEntry(tupdesc, (AttrNumber) 4, "sync_error_count",
|
TupleDescInitEntry(tupdesc, (AttrNumber) 4, "sync_table_error_count",
|
||||||
INT8OID, -1, 0);
|
INT8OID, -1, 0);
|
||||||
TupleDescInitEntry(tupdesc, (AttrNumber) 5, "confl_insert_exists",
|
TupleDescInitEntry(tupdesc, (AttrNumber) 5, "confl_insert_exists",
|
||||||
INT8OID, -1, 0);
|
INT8OID, -1, 0);
|
||||||
@@ -2258,11 +2258,11 @@ pg_stat_get_subscription_stats(PG_FUNCTION_ARGS)
|
|||||||
/* apply_error_count */
|
/* apply_error_count */
|
||||||
values[i++] = Int64GetDatum(subentry->apply_error_count);
|
values[i++] = Int64GetDatum(subentry->apply_error_count);
|
||||||
|
|
||||||
/* seq_sync_error_count */
|
/* sync_seq_error_count */
|
||||||
values[i++] = Int64GetDatum(subentry->seq_sync_error_count);
|
values[i++] = Int64GetDatum(subentry->sync_seq_error_count);
|
||||||
|
|
||||||
/* sync_error_count */
|
/* sync_table_error_count */
|
||||||
values[i++] = Int64GetDatum(subentry->sync_error_count);
|
values[i++] = Int64GetDatum(subentry->sync_table_error_count);
|
||||||
|
|
||||||
/* conflict count */
|
/* conflict count */
|
||||||
for (int nconflict = 0; nconflict < CONFLICT_NUM_TYPES; nconflict++)
|
for (int nconflict = 0; nconflict < CONFLICT_NUM_TYPES; nconflict++)
|
||||||
|
|||||||
@@ -57,6 +57,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* yyyymmddN */
|
/* yyyymmddN */
|
||||||
#define CATALOG_VERSION_NO 202511101
|
#define CATALOG_VERSION_NO 202511181
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -5706,7 +5706,7 @@
|
|||||||
proparallel => 'r', prorettype => 'record', proargtypes => 'oid',
|
proparallel => 'r', prorettype => 'record', proargtypes => 'oid',
|
||||||
proallargtypes => '{oid,oid,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,timestamptz}',
|
proallargtypes => '{oid,oid,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,timestamptz}',
|
||||||
proargmodes => '{i,o,o,o,o,o,o,o,o,o,o,o,o,o}',
|
proargmodes => '{i,o,o,o,o,o,o,o,o,o,o,o,o,o}',
|
||||||
proargnames => '{subid,subid,apply_error_count,seq_sync_error_count,sync_error_count,confl_insert_exists,confl_update_origin_differs,confl_update_exists,confl_update_deleted,confl_update_missing,confl_delete_origin_differs,confl_delete_missing,confl_multiple_unique_conflicts,stats_reset}',
|
proargnames => '{subid,subid,apply_error_count,sync_seq_error_count,sync_table_error_count,confl_insert_exists,confl_update_origin_differs,confl_update_exists,confl_update_deleted,confl_update_missing,confl_delete_origin_differs,confl_delete_missing,confl_multiple_unique_conflicts,stats_reset}',
|
||||||
prosrc => 'pg_stat_get_subscription_stats' },
|
prosrc => 'pg_stat_get_subscription_stats' },
|
||||||
{ oid => '6118', descr => 'statistics: information about subscription',
|
{ oid => '6118', descr => 'statistics: information about subscription',
|
||||||
proname => 'pg_stat_get_subscription', prorows => '10', proisstrict => 'f',
|
proname => 'pg_stat_get_subscription', prorows => '10', proisstrict => 'f',
|
||||||
|
|||||||
@@ -109,8 +109,8 @@ typedef struct PgStat_FunctionCallUsage
|
|||||||
typedef struct PgStat_BackendSubEntry
|
typedef struct PgStat_BackendSubEntry
|
||||||
{
|
{
|
||||||
PgStat_Counter apply_error_count;
|
PgStat_Counter apply_error_count;
|
||||||
PgStat_Counter seq_sync_error_count;
|
PgStat_Counter sync_seq_error_count;
|
||||||
PgStat_Counter sync_error_count;
|
PgStat_Counter sync_table_error_count;
|
||||||
PgStat_Counter conflict_count[CONFLICT_NUM_TYPES];
|
PgStat_Counter conflict_count[CONFLICT_NUM_TYPES];
|
||||||
} PgStat_BackendSubEntry;
|
} PgStat_BackendSubEntry;
|
||||||
|
|
||||||
@@ -418,8 +418,8 @@ typedef struct PgStat_SLRUStats
|
|||||||
typedef struct PgStat_StatSubEntry
|
typedef struct PgStat_StatSubEntry
|
||||||
{
|
{
|
||||||
PgStat_Counter apply_error_count;
|
PgStat_Counter apply_error_count;
|
||||||
PgStat_Counter seq_sync_error_count;
|
PgStat_Counter sync_seq_error_count;
|
||||||
PgStat_Counter sync_error_count;
|
PgStat_Counter sync_table_error_count;
|
||||||
PgStat_Counter conflict_count[CONFLICT_NUM_TYPES];
|
PgStat_Counter conflict_count[CONFLICT_NUM_TYPES];
|
||||||
TimestampTz stat_reset_timestamp;
|
TimestampTz stat_reset_timestamp;
|
||||||
} PgStat_StatSubEntry;
|
} PgStat_StatSubEntry;
|
||||||
|
|||||||
@@ -2191,8 +2191,8 @@ pg_stat_subscription| SELECT su.oid AS subid,
|
|||||||
pg_stat_subscription_stats| SELECT ss.subid,
|
pg_stat_subscription_stats| SELECT ss.subid,
|
||||||
s.subname,
|
s.subname,
|
||||||
ss.apply_error_count,
|
ss.apply_error_count,
|
||||||
ss.seq_sync_error_count,
|
ss.sync_seq_error_count,
|
||||||
ss.sync_error_count,
|
ss.sync_table_error_count,
|
||||||
ss.confl_insert_exists,
|
ss.confl_insert_exists,
|
||||||
ss.confl_update_origin_differs,
|
ss.confl_update_origin_differs,
|
||||||
ss.confl_update_exists,
|
ss.confl_update_exists,
|
||||||
@@ -2203,7 +2203,7 @@ pg_stat_subscription_stats| SELECT ss.subid,
|
|||||||
ss.confl_multiple_unique_conflicts,
|
ss.confl_multiple_unique_conflicts,
|
||||||
ss.stats_reset
|
ss.stats_reset
|
||||||
FROM pg_subscription s,
|
FROM pg_subscription s,
|
||||||
LATERAL pg_stat_get_subscription_stats(s.oid) ss(subid, apply_error_count, seq_sync_error_count, sync_error_count, confl_insert_exists, confl_update_origin_differs, confl_update_exists, confl_update_deleted, confl_update_missing, confl_delete_origin_differs, confl_delete_missing, confl_multiple_unique_conflicts, stats_reset);
|
LATERAL pg_stat_get_subscription_stats(s.oid) ss(subid, apply_error_count, sync_seq_error_count, sync_table_error_count, confl_insert_exists, confl_update_origin_differs, confl_update_exists, confl_update_deleted, confl_update_missing, confl_delete_origin_differs, confl_delete_missing, confl_multiple_unique_conflicts, stats_reset);
|
||||||
pg_stat_sys_indexes| SELECT relid,
|
pg_stat_sys_indexes| SELECT relid,
|
||||||
indexrelid,
|
indexrelid,
|
||||||
schemaname,
|
schemaname,
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ sub create_sub_pub_w_errors
|
|||||||
$db,
|
$db,
|
||||||
qq[
|
qq[
|
||||||
SELECT count(1) = 1 FROM pg_stat_subscription_stats
|
SELECT count(1) = 1 FROM pg_stat_subscription_stats
|
||||||
WHERE subname = '$sub_name' AND seq_sync_error_count > 0 AND sync_error_count > 0
|
WHERE subname = '$sub_name' AND sync_seq_error_count > 0 AND sync_table_error_count > 0
|
||||||
])
|
])
|
||||||
or die
|
or die
|
||||||
qq(Timed out while waiting for sequencesync errors and tablesync errors for subscription '$sub_name');
|
qq(Timed out while waiting for sequencesync errors and tablesync errors for subscription '$sub_name');
|
||||||
@@ -175,8 +175,8 @@ my ($pub1_name, $sub1_name) =
|
|||||||
is( $node_subscriber->safe_psql(
|
is( $node_subscriber->safe_psql(
|
||||||
$db,
|
$db,
|
||||||
qq(SELECT apply_error_count > 0,
|
qq(SELECT apply_error_count > 0,
|
||||||
seq_sync_error_count > 0,
|
sync_seq_error_count > 0,
|
||||||
sync_error_count > 0,
|
sync_table_error_count > 0,
|
||||||
confl_insert_exists > 0,
|
confl_insert_exists > 0,
|
||||||
confl_delete_missing > 0,
|
confl_delete_missing > 0,
|
||||||
stats_reset IS NULL
|
stats_reset IS NULL
|
||||||
@@ -197,8 +197,8 @@ $node_subscriber->safe_psql($db,
|
|||||||
is( $node_subscriber->safe_psql(
|
is( $node_subscriber->safe_psql(
|
||||||
$db,
|
$db,
|
||||||
qq(SELECT apply_error_count = 0,
|
qq(SELECT apply_error_count = 0,
|
||||||
seq_sync_error_count = 0,
|
sync_seq_error_count = 0,
|
||||||
sync_error_count = 0,
|
sync_table_error_count = 0,
|
||||||
confl_insert_exists = 0,
|
confl_insert_exists = 0,
|
||||||
confl_delete_missing = 0,
|
confl_delete_missing = 0,
|
||||||
stats_reset IS NOT NULL
|
stats_reset IS NOT NULL
|
||||||
@@ -242,8 +242,8 @@ my ($pub2_name, $sub2_name) =
|
|||||||
is( $node_subscriber->safe_psql(
|
is( $node_subscriber->safe_psql(
|
||||||
$db,
|
$db,
|
||||||
qq(SELECT apply_error_count > 0,
|
qq(SELECT apply_error_count > 0,
|
||||||
seq_sync_error_count > 0,
|
sync_seq_error_count > 0,
|
||||||
sync_error_count > 0,
|
sync_table_error_count > 0,
|
||||||
confl_insert_exists > 0,
|
confl_insert_exists > 0,
|
||||||
confl_delete_missing > 0,
|
confl_delete_missing > 0,
|
||||||
stats_reset IS NULL
|
stats_reset IS NULL
|
||||||
@@ -263,8 +263,8 @@ $node_subscriber->safe_psql($db,
|
|||||||
is( $node_subscriber->safe_psql(
|
is( $node_subscriber->safe_psql(
|
||||||
$db,
|
$db,
|
||||||
qq(SELECT apply_error_count = 0,
|
qq(SELECT apply_error_count = 0,
|
||||||
seq_sync_error_count = 0,
|
sync_seq_error_count = 0,
|
||||||
sync_error_count = 0,
|
sync_table_error_count = 0,
|
||||||
confl_insert_exists = 0,
|
confl_insert_exists = 0,
|
||||||
confl_delete_missing = 0,
|
confl_delete_missing = 0,
|
||||||
stats_reset IS NOT NULL
|
stats_reset IS NOT NULL
|
||||||
@@ -278,8 +278,8 @@ is( $node_subscriber->safe_psql(
|
|||||||
is( $node_subscriber->safe_psql(
|
is( $node_subscriber->safe_psql(
|
||||||
$db,
|
$db,
|
||||||
qq(SELECT apply_error_count = 0,
|
qq(SELECT apply_error_count = 0,
|
||||||
seq_sync_error_count = 0,
|
sync_seq_error_count = 0,
|
||||||
sync_error_count = 0,
|
sync_table_error_count = 0,
|
||||||
confl_insert_exists = 0,
|
confl_insert_exists = 0,
|
||||||
confl_delete_missing = 0,
|
confl_delete_missing = 0,
|
||||||
stats_reset IS NOT NULL
|
stats_reset IS NOT NULL
|
||||||
|
|||||||
Reference in New Issue
Block a user