@@ -28,6 +28,8 @@ GRANT CREATE ON SCHEMA public TO PUBLIC;
2828\set ECHO all
2929BEGIN;
3030CREATE SCHEMA saga_repro;
31+ -- A stable function to override CURRENT_DATE for deterministic testing
32+ CREATE FUNCTION saga_repro.test_date() RETURNS date AS $$ SELECT '2026-01-01'::date $$ LANGUAGE sql;
3133-- Base table definitions used by both scenarios
3234CREATE TABLE saga_repro.target_units_template (
3335 unit_ident text NOT NULL,
@@ -895,7 +897,7 @@ CREATE TABLE saga_repro.target_with_audit (
895897 key_col TEXT NOT NULL,
896898 data_col TEXT,
897899 created_at TIMESTAMPTZ NOT NULL DEFAULT statement_timestamp(),
898- valid_from DATE NOT NULL DEFAULT CURRENT_DATE ,
900+ valid_from DATE NOT NULL DEFAULT saga_repro.test_date() ,
899901 valid_until DATE NOT NULL DEFAULT 'infinity'::date,
900902 valid_range daterange NOT NULL,
901903 PRIMARY KEY (id, valid_range WITHOUT OVERLAPS)
@@ -921,7 +923,7 @@ CREATE TABLE saga_repro.source_without_audit (
921923 row_id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
922924 key_col TEXT NOT NULL,
923925 data_col TEXT,
924- valid_from DATE NOT NULL DEFAULT CURRENT_DATE ,
926+ valid_from DATE NOT NULL DEFAULT saga_repro.test_date() ,
925927 valid_until DATE NOT NULL DEFAULT 'infinity'::date
926928);
927929INSERT INTO saga_repro.source_without_audit (key_col, data_col) VALUES ('test_key', 'test_data');
@@ -962,7 +964,7 @@ SELECT id, key_col, data_col, created_at IS NOT NULL as has_created_at, valid_fr
962964FROM saga_repro.target_with_audit;
963965 id | key_col | data_col | has_created_at | valid_from | valid_until
964966----+----------+-----------+----------------+------------+-------------
965- 1 | test_key | test_data | t | 2026-01-21 | infinity
967+ 1 | test_key | test_data | t | 2026-01-01 | infinity
966968(1 row)
967969
968970ROLLBACK TO SAVEPOINT scenario_ephemeral_missing_from_source;
@@ -983,7 +985,7 @@ CREATE TABLE saga_repro.target_with_audit_patch (
983985 key_col TEXT NOT NULL,
984986 data_col TEXT,
985987 created_at TIMESTAMPTZ NOT NULL DEFAULT statement_timestamp(),
986- valid_from DATE NOT NULL DEFAULT CURRENT_DATE ,
988+ valid_from DATE NOT NULL DEFAULT saga_repro.test_date() ,
987989 valid_until DATE NOT NULL DEFAULT 'infinity'::date,
988990 valid_range daterange NOT NULL,
989991 PRIMARY KEY (id, valid_range WITHOUT OVERLAPS)
@@ -1009,7 +1011,7 @@ CREATE TABLE saga_repro.source_without_audit_patch (
10091011 row_id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
10101012 key_col TEXT NOT NULL,
10111013 data_col TEXT,
1012- valid_from DATE NOT NULL DEFAULT CURRENT_DATE ,
1014+ valid_from DATE NOT NULL DEFAULT saga_repro.test_date() ,
10131015 valid_until DATE NOT NULL DEFAULT 'infinity'::date
10141016);
10151017INSERT INTO saga_repro.source_without_audit_patch (key_col, data_col) VALUES ('test_key_patch', 'test_data_patch');
@@ -1050,7 +1052,7 @@ SELECT id, key_col, data_col, created_at IS NOT NULL as has_created_at, valid_fr
10501052FROM saga_repro.target_with_audit_patch;
10511053 id | key_col | data_col | has_created_at | valid_from | valid_until
10521054----+----------------+-----------------+----------------+------------+-------------
1053- 1 | test_key_patch | test_data_patch | t | 2026-01-21 | infinity
1055+ 1 | test_key_patch | test_data_patch | t | 2026-01-01 | infinity
10541056(1 row)
10551057
10561058ROLLBACK TO SAVEPOINT scenario_ephemeral_missing_patch;
@@ -1079,7 +1081,7 @@ CREATE TABLE saga_repro.target_mixed_ephemeral (
10791081 edit_by_user_id INTEGER NOT NULL,
10801082 edit_at TIMESTAMPTZ NOT NULL DEFAULT statement_timestamp(),
10811083 edit_comment TEXT,
1082- valid_from DATE NOT NULL DEFAULT CURRENT_DATE ,
1084+ valid_from DATE NOT NULL DEFAULT saga_repro.test_date() ,
10831085 valid_until DATE NOT NULL DEFAULT 'infinity'::date,
10841086 valid_range daterange NOT NULL,
10851087 PRIMARY KEY (id, valid_range WITHOUT OVERLAPS)
@@ -1111,7 +1113,7 @@ CREATE TABLE saga_repro.source_mixed_ephemeral (
11111113 edit_by_user_id INTEGER NOT NULL,
11121114 edit_at TIMESTAMPTZ NOT NULL,
11131115 edit_comment TEXT,
1114- valid_from DATE NOT NULL DEFAULT CURRENT_DATE ,
1116+ valid_from DATE NOT NULL DEFAULT saga_repro.test_date() ,
11151117 valid_until DATE NOT NULL DEFAULT 'infinity'::date
11161118);
11171119INSERT INTO saga_repro.source_mixed_ephemeral
0 commit comments