Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/src/test/modules/commit_ts/sql/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 2 kB image not shown  

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.10 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.