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

Commit6d49c8d

Browse files
author
Amit Kapila
committed
Change last_inactive_time to inactive_since in pg_replication_slots.
Commita11f330 added last_inactive_time to show the last time the slotwas inactive. But, it tells the last time that a currently-inactive slotpreviously *WAS* active. This could be unclear, so we changed the name toinactive_since.Reported-by: Robert HaasAuthor: Bharath RupireddyReviewed-by: Bertrand Drouvot, Shveta Malik, Amit KapilaDiscussion:https://postgr.es/m/CA+Tgmob_Ta-t2ty8QrKHBGnNLrf4ZYcwhGHGFsuUoFrAEDw4sA@mail.gmail.comDiscussion:https://postgr.es/m/CALj2ACUXS0SfbHzsX8bqo+7CZhocsV52Kiu7OWGb5HVPAmJqnA@mail.gmail.com
1 parentbb952c8 commit6d49c8d

File tree

9 files changed

+52
-49
lines changed

9 files changed

+52
-49
lines changed

‎doc/src/sgml/system-views.sgml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2525,10 +2525,10 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
25252525

25262526
<row>
25272527
<entry role="catalog_table_entry"><para role="column_definition">
2528-
<structfield>last_inactive_time</structfield> <type>timestamptz</type>
2528+
<structfield>inactive_since</structfield> <type>timestamptz</type>
25292529
</para>
25302530
<para>
2531-
The timeat whichthe slotbecame inactive.
2531+
The timesincethe slothas become inactive.
25322532
<literal>NULL</literal> if the slot is currently being used.
25332533
</para></entry>
25342534
</row>

‎src/backend/catalog/system_views.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1023,7 +1023,7 @@ CREATE VIEW pg_replication_slots AS
10231023
L.wal_status,
10241024
L.safe_wal_size,
10251025
L.two_phase,
1026-
L.last_inactive_time,
1026+
L.inactive_since,
10271027
L.conflicting,
10281028
L.invalidation_reason,
10291029
L.failover,

‎src/backend/replication/slot.c

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ ReplicationSlotCreate(const char *name, bool db_specific,
409409
slot->candidate_restart_valid=InvalidXLogRecPtr;
410410
slot->candidate_restart_lsn=InvalidXLogRecPtr;
411411
slot->last_saved_confirmed_flush=InvalidXLogRecPtr;
412-
slot->last_inactive_time=0;
412+
slot->inactive_since=0;
413413

414414
/*
415415
* Create the slot on disk. We haven't actually marked the slot allocated
@@ -623,9 +623,12 @@ ReplicationSlotAcquire(const char *name, bool nowait)
623623
if (SlotIsLogical(s))
624624
pgstat_acquire_replslot(s);
625625

626-
/* Reset the last inactive time as the slot is active now. */
626+
/*
627+
* Reset the time since the slot has become inactive as the slot is active
628+
* now.
629+
*/
627630
SpinLockAcquire(&s->mutex);
628-
s->last_inactive_time=0;
631+
s->inactive_since=0;
629632
SpinLockRelease(&s->mutex);
630633

631634
if (am_walsender)
@@ -703,14 +706,14 @@ ReplicationSlotRelease(void)
703706
*/
704707
SpinLockAcquire(&slot->mutex);
705708
slot->active_pid=0;
706-
slot->last_inactive_time=now;
709+
slot->inactive_since=now;
707710
SpinLockRelease(&slot->mutex);
708711
ConditionVariableBroadcast(&slot->active_cv);
709712
}
710713
else
711714
{
712715
SpinLockAcquire(&slot->mutex);
713-
slot->last_inactive_time=now;
716+
slot->inactive_since=now;
714717
SpinLockRelease(&slot->mutex);
715718
}
716719

@@ -2373,9 +2376,9 @@ RestoreSlotFromDisk(const char *name)
23732376
* inactive as decoding is not allowed on those.
23742377
*/
23752378
if (!(RecoveryInProgress()&&slot->data.synced))
2376-
slot->last_inactive_time=GetCurrentTimestamp();
2379+
slot->inactive_since=GetCurrentTimestamp();
23772380
else
2378-
slot->last_inactive_time=0;
2381+
slot->inactive_since=0;
23792382

23802383
restored= true;
23812384
break;

‎src/backend/replication/slotfuncs.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,8 +410,8 @@ pg_get_replication_slots(PG_FUNCTION_ARGS)
410410

411411
values[i++]=BoolGetDatum(slot_contents.data.two_phase);
412412

413-
if (slot_contents.last_inactive_time>0)
414-
values[i++]=TimestampTzGetDatum(slot_contents.last_inactive_time);
413+
if (slot_contents.inactive_since>0)
414+
values[i++]=TimestampTzGetDatum(slot_contents.inactive_since);
415415
else
416416
nulls[i++]= true;
417417

‎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_NO202403251
60+
#defineCATALOG_VERSION_NO202403271
6161

6262
#endif

‎src/include/catalog/pg_proc.dat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11135,7 +11135,7 @@
1113511135
proargtypes => '',
1113611136
proallargtypes => '{name,name,text,oid,bool,bool,int4,xid,xid,pg_lsn,pg_lsn,text,int8,bool,timestamptz,bool,text,bool,bool}',
1113711137
proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
11138-
proargnames => '{slot_name,plugin,slot_type,datoid,temporary,active,active_pid,xmin,catalog_xmin,restart_lsn,confirmed_flush_lsn,wal_status,safe_wal_size,two_phase,last_inactive_time,conflicting,invalidation_reason,failover,synced}',
11138+
proargnames => '{slot_name,plugin,slot_type,datoid,temporary,active,active_pid,xmin,catalog_xmin,restart_lsn,confirmed_flush_lsn,wal_status,safe_wal_size,two_phase,inactive_since,conflicting,invalidation_reason,failover,synced}',
1113911139
prosrc => 'pg_get_replication_slots' },
1114011140
{ oid => '3786', descr => 'set up a logical replication slot',
1114111141
proname => 'pg_create_logical_replication_slot', provolatile => 'v',

‎src/include/replication/slot.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,8 @@ typedef struct ReplicationSlot
202202
*/
203203
XLogRecPtrlast_saved_confirmed_flush;
204204

205-
/* The timeat which thisslotbecomes inactive */
206-
TimestampTzlast_inactive_time;
205+
/* The timesince theslothas become inactive */
206+
TimestampTzinactive_since;
207207
}ReplicationSlot;
208208

209209
#defineSlotIsPhysical(slot) ((slot)->data.database == InvalidOid)

‎src/test/recovery/t/019_replslot_limit.pl

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@
411411
$node_standby3->stop;
412412

413413
# =============================================================================
414-
# Testcase start: Checklast_inactive_time property of the streaming standby's slot
414+
# Testcase start: Checkinactive_since property of the streaming standby's slot
415415
#
416416

417417
# Initialize primary node
@@ -440,45 +440,45 @@
440440
SELECT pg_create_physical_replication_slot(slot_name := '$sb4_slot');
441441
]);
442442

443-
# Getlast_inactive_time value after the slot's creation. Note that the slot
444-
#isstill inactive till it's used by the standby below.
445-
my$last_inactive_time =
446-
capture_and_validate_slot_last_inactive_time($primary4,$sb4_slot,$slot_creation_time);
443+
# Getinactive_since value after the slot's creation. Note that the slot is
444+
# still inactive till it's used by the standby below.
445+
my$inactive_since =
446+
capture_and_validate_slot_inactive_since($primary4,$sb4_slot,$slot_creation_time);
447447

448448
$standby4->start;
449449

450450
# Wait until standby has replayed enough data
451451
$primary4->wait_for_catchup($standby4);
452452

453-
# Now the slot is active solast_inactive_time value must be NULL
453+
# Now the slot is active soinactive_since value must be NULL
454454
is($primary4->safe_psql(
455455
'postgres',
456-
qq[SELECTlast_inactive_time IS NULL FROM pg_replication_slots WHERE slot_name = '$sb4_slot';]
456+
qq[SELECTinactive_since IS NULL FROM pg_replication_slots WHERE slot_name = '$sb4_slot';]
457457
),
458458
't',
459459
'last inactive time for an active physical slot is NULL');
460460

461-
# Stop the standby to check itslast_inactive_time value is updated
461+
# Stop the standby to check itsinactive_since value is updated
462462
$standby4->stop;
463463

464-
# Let's restart the primary so that thelast_inactive_time is set upon
465-
#loading theslot from the disk.
464+
# Let's restart the primary so that theinactive_since is set upon loading the
465+
# slot from the disk.
466466
$primary4->restart;
467467

468468
is($primary4->safe_psql(
469469
'postgres',
470-
qq[SELECTlast_inactive_time > '$last_inactive_time'::timestamptz FROM pg_replication_slots WHERE slot_name = '$sb4_slot' ANDlast_inactive_time IS NOT NULL;]
470+
qq[SELECTinactive_since > '$inactive_since'::timestamptz FROM pg_replication_slots WHERE slot_name = '$sb4_slot' ANDinactive_since IS NOT NULL;]
471471
),
472472
't',
473473
'last inactive time for an inactive physical slot is updated correctly');
474474

475475
$standby4->stop;
476476

477-
# Testcase end: Checklast_inactive_time property of the streaming standby's slot
477+
# Testcase end: Checkinactive_since property of the streaming standby's slot
478478
# =============================================================================
479479

480480
# =============================================================================
481-
# Testcase start: Checklast_inactive_time property of the logical subscriber's slot
481+
# Testcase start: Checkinactive_since property of the logical subscriber's slot
482482
my$publisher4 =$primary4;
483483

484484
# Create subscriber node
@@ -499,10 +499,10 @@
499499
"SELECT pg_create_logical_replication_slot(slot_name := '$lsub4_slot', plugin := 'pgoutput');"
500500
);
501501

502-
# Getlast_inactive_time value after the slot's creation. Note that the slot
503-
#isstill inactive till it's used by the subscriber below.
504-
$last_inactive_time =
505-
capture_and_validate_slot_last_inactive_time($publisher4,$lsub4_slot,$slot_creation_time);
502+
# Getinactive_since value after the slot's creation. Note that the slot is
503+
# still inactive till it's used by the subscriber below.
504+
$inactive_since =
505+
capture_and_validate_slot_inactive_since($publisher4,$lsub4_slot,$slot_creation_time);
506506

507507
$subscriber4->start;
508508
$subscriber4->safe_psql('postgres',
@@ -512,54 +512,54 @@
512512
# Wait until subscriber has caught up
513513
$subscriber4->wait_for_subscription_sync($publisher4,'sub');
514514

515-
# Now the slot is active solast_inactive_time value must be NULL
515+
# Now the slot is active soinactive_since value must be NULL
516516
is($publisher4->safe_psql(
517517
'postgres',
518-
qq[SELECTlast_inactive_time IS NULL FROM pg_replication_slots WHERE slot_name = '$lsub4_slot';]
518+
qq[SELECTinactive_since IS NULL FROM pg_replication_slots WHERE slot_name = '$lsub4_slot';]
519519
),
520520
't',
521521
'last inactive time for an active logical slot is NULL');
522522

523-
# Stop the subscriber to check itslast_inactive_time value is updated
523+
# Stop the subscriber to check itsinactive_since value is updated
524524
$subscriber4->stop;
525525

526-
# Let's restart the publisher so that thelast_inactive_time is set upon
526+
# Let's restart the publisher so that theinactive_since is set upon
527527
# loading the slot from the disk.
528528
$publisher4->restart;
529529

530530
is($publisher4->safe_psql(
531531
'postgres',
532-
qq[SELECTlast_inactive_time > '$last_inactive_time'::timestamptz FROM pg_replication_slots WHERE slot_name = '$lsub4_slot' ANDlast_inactive_time IS NOT NULL;]
532+
qq[SELECTinactive_since > '$inactive_since'::timestamptz FROM pg_replication_slots WHERE slot_name = '$lsub4_slot' ANDinactive_since IS NOT NULL;]
533533
),
534534
't',
535535
'last inactive time for an inactive logical slot is updated correctly');
536536

537-
# Testcase end: Checklast_inactive_time property of the logical subscriber's slot
537+
# Testcase end: Checkinactive_since property of the logical subscriber's slot
538538
# =============================================================================
539539

540540
$publisher4->stop;
541541
$subscriber4->stop;
542542

543-
# Capture and validatelast_inactive_time of a given slot.
544-
subcapture_and_validate_slot_last_inactive_time
543+
# Capture and validateinactive_since of a given slot.
544+
subcapture_and_validate_slot_inactive_since
545545
{
546546
my ($node,$slot_name,$slot_creation_time) =@_;
547547

548-
my$last_inactive_time =$node->safe_psql('postgres',
549-
qq(SELECTlast_inactive_time FROM pg_replication_slots
550-
WHERE slot_name = '$slot_name' ANDlast_inactive_time IS NOT NULL;)
548+
my$inactive_since =$node->safe_psql('postgres',
549+
qq(SELECTinactive_since FROM pg_replication_slots
550+
WHERE slot_name = '$slot_name' ANDinactive_since IS NOT NULL;)
551551
);
552552

553553
# Check that the captured time is sane
554554
is($node->safe_psql(
555555
'postgres',
556-
qq[SELECT '$last_inactive_time'::timestamptz > to_timestamp(0) AND
557-
'$last_inactive_time'::timestamptz >= '$slot_creation_time'::timestamptz;]
556+
qq[SELECT '$inactive_since'::timestamptz > to_timestamp(0) AND
557+
'$inactive_since'::timestamptz >= '$slot_creation_time'::timestamptz;]
558558
),
559559
't',
560560
"last inactive time for an active slot$slot_name is sane");
561561

562-
return$last_inactive_time;
562+
return$inactive_since;
563563
}
564564

565565
done_testing();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1473,12 +1473,12 @@ pg_replication_slots| SELECT l.slot_name,
14731473
l.wal_status,
14741474
l.safe_wal_size,
14751475
l.two_phase,
1476-
l.last_inactive_time,
1476+
l.inactive_since,
14771477
l.conflicting,
14781478
l.invalidation_reason,
14791479
l.failover,
14801480
l.synced
1481-
FROM (pg_get_replication_slots() l(slot_name, plugin, slot_type, datoid, temporary, active, active_pid, xmin, catalog_xmin, restart_lsn, confirmed_flush_lsn, wal_status, safe_wal_size, two_phase,last_inactive_time, conflicting, invalidation_reason, failover, synced)
1481+
FROM (pg_get_replication_slots() l(slot_name, plugin, slot_type, datoid, temporary, active, active_pid, xmin, catalog_xmin, restart_lsn, confirmed_flush_lsn, wal_status, safe_wal_size, two_phase,inactive_since, conflicting, invalidation_reason, failover, synced)
14821482
LEFT JOIN pg_database d ON ((l.datoid = d.oid)));
14831483
pg_roles| SELECT pg_authid.rolname,
14841484
pg_authid.rolsuper,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp