Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  commit_timestamp.sql

  Sprache: SQL
 

--
-- Commit Timestamp
--
SHOW track_commit_timestamp;
CREATE TABLE committs_test(id serial, ts timestamptz default now());

INSERT INTO committs_test DEFAULT VALUES;
INSERT INTO committs_test DEFAULT VALUES;
INSERT INTO committs_test DEFAULT VALUES;

SELECT id,
       pg_xact_commit_timestamp(xmin) >= ts,
       pg_xact_commit_timestamp(xmin) <= now(),
       pg_xact_commit_timestamp(xmin) - ts < '60s' -- 60s should give a lot of reserve
FROM committs_test
ORDER BY id;

DROP TABLE committs_test;

SELECT pg_xact_commit_timestamp('0'::xid);
SELECT pg_xact_commit_timestamp('1'::xid);
SELECT pg_xact_commit_timestamp('2'::xid);

SELECT x.xid::text::bigint > 0 as xid_valid,
       x.timestamp > '-infinity'::timestamptz AS ts_low,
       x.timestamp <= now() AS ts_high,
       roident != 0 AS valid_roident
  FROM pg_last_committed_xact() x;

-- Test non-normal transaction ids.
SELECT * FROM pg_xact_commit_timestamp_origin(NULL); -- ok, NULL
SELECT * FROM pg_xact_commit_timestamp_origin('0'::xid); -- error
SELECT * FROM pg_xact_commit_timestamp_origin('1'::xid); -- ok, NULL
SELECT * FROM pg_xact_commit_timestamp_origin('2'::xid); -- ok, NULL

-- Test transaction without replication origin
SELECT txid_current() as txid_no_origin \gset
SELECT x.timestamp > '-infinity'::timestamptz AS ts_low,
       x.timestamp <= now() AS ts_high,
       roident != 0 AS valid_roident
  FROM pg_last_committed_xact() x;
SELECT x.timestamp > '-infinity'::timestamptz AS ts_low,
       x.timestamp <= now() AS ts_high,
       roident != 0 AS valid_roident
  FROM pg_xact_commit_timestamp_origin(:'txid_no_origin') x;

-- Test transaction with replication origin
SELECT pg_replication_origin_create('regress_commit_ts: get_origin') != 0
  AS valid_roident;
SELECT pg_replication_origin_session_setup('regress_commit_ts: get_origin');
SELECT txid_current() as txid_with_origin \gset
SELECT x.timestamp > '-infinity'::timestamptz AS ts_low,
       x.timestamp <= now() AS ts_high,
       r.roname
  FROM pg_last_committed_xact() x, pg_replication_origin r
  WHERE r.roident = x.roident;
SELECT x.timestamp > '-infinity'::timestamptz AS ts_low,
       x.timestamp <= now() AS ts_high,
       r.roname
  FROM pg_xact_commit_timestamp_origin(:'txid_with_origin') x, pg_replication_origin r
  WHERE r.roident = x.roident;

SELECT pg_replication_origin_session_reset();
SELECT pg_replication_origin_drop('regress_commit_ts: get_origin');

Messung V0.5 in Prozent
C=83 H=100 G=91

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet am  2026-08-09) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=141584
#Domains=752002