Skip to content

Commit 3bf4c01

Browse files
melihmutlugayyappan
andcommitted
Updates on cagg and invalidation catalogs
Following updates on two catalogs to support granular refresh: - Add seqnum column to cagg invalidation logs to both continuous_aggs_hypertable_invalidation_log and continuous_aggs_materialization_invalidation_log so invalidation entries can be matched up with granular trackings. NULL means the entry has no associated granular tracking. - Add granular_refresh_enabled to continuous_agg Add a granular_refresh_enabled flag (default FALSE) to the continuous_agg catalog table, marking caggs that opt into granular refresh. Also, this updates upgrade/downgrade tests to cover seqnum in invalidation log verifications. Removes FK on continuous_aggs_materialization_ranges to continuous_agg to isolate continuous_aggs_materialization_ranges as it's deprecated. Co-authored-by: gayyappan <gayathri@timescale.com>
1 parent 631682d commit 3bf4c01

11 files changed

Lines changed: 485 additions & 113 deletions

File tree

.unreleased/pr_10357

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Implements: #10357 Updates on cagg and invalidations catalogs to support granular refresh

sql/pre_install/tables.sql

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,7 @@ CREATE TABLE _timescaledb_catalog.continuous_agg (
327327
direct_view_name name NOT NULL,
328328
materialized_only bool NOT NULL DEFAULT FALSE,
329329
schema_change_timestamp bigint,
330+
granular_refresh_enabled bool NOT NULL DEFAULT FALSE,
330331
-- table constraints
331332
CONSTRAINT continuous_agg_pkey PRIMARY KEY (mat_hypertable_id),
332333
CONSTRAINT continuous_agg_partial_view_schema_partial_view_name_key UNIQUE (partial_view_schema, partial_view_name),
@@ -391,7 +392,9 @@ SELECT pg_catalog.pg_extension_config_dump('_timescaledb_catalog.continuous_aggs
391392
CREATE TABLE _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log (
392393
hypertable_id integer NOT NULL,
393394
lowest_modified_value bigint NOT NULL,
394-
greatest_modified_value bigint NOT NULL
395+
greatest_modified_value bigint NOT NULL,
396+
-- Granular sequence number. NULL when tenant tracking does not apply
397+
seqnum integer
395398
);
396399

397400
SELECT pg_catalog.pg_extension_config_dump('_timescaledb_catalog.continuous_aggs_hypertable_invalidation_log', '');
@@ -403,6 +406,8 @@ CREATE TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_l
403406
materialization_id integer,
404407
lowest_modified_value bigint NOT NULL,
405408
greatest_modified_value bigint NOT NULL,
409+
-- Granular sequence number. NULL when tenant tracking does not apply
410+
seqnum integer,
406411
-- table constraints
407412
CONSTRAINT continuous_aggs_materialization_invalid_materialization_id_fkey FOREIGN KEY (materialization_id) REFERENCES _timescaledb_catalog.continuous_agg (mat_hypertable_id) ON DELETE CASCADE
408413
);
@@ -415,9 +420,7 @@ CREATE INDEX continuous_aggs_materialization_invalidation_log_idx ON _timescaled
415420
CREATE TABLE _timescaledb_catalog.continuous_aggs_materialization_ranges (
416421
materialization_id integer,
417422
lowest_modified_value bigint NOT NULL,
418-
greatest_modified_value bigint NOT NULL,
419-
-- table constraints
420-
CONSTRAINT continuous_aggs_materialization_ranges_materialization_id_fkey FOREIGN KEY (materialization_id) REFERENCES _timescaledb_catalog.continuous_agg (mat_hypertable_id) ON DELETE CASCADE
423+
greatest_modified_value bigint NOT NULL
421424
);
422425

423426
SELECT pg_catalog.pg_extension_config_dump('_timescaledb_catalog.continuous_aggs_materialization_ranges', '');

sql/updates/latest-dev.sql

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
-- Rebuild the catalog table `_timescaledb_catalog.continuous_aggs_hypertable_invalidation_log`
2+
-- to add the `seqnum` column.
3+
CREATE TABLE _timescaledb_catalog._tmp_continuous_aggs_hypertable_invalidation_log AS
4+
SELECT hypertable_id, lowest_modified_value, greatest_modified_value
5+
FROM _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log;
6+
7+
ALTER EXTENSION timescaledb
8+
DROP TABLE _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log;
9+
DROP TABLE _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log;
10+
11+
CREATE TABLE _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log (
12+
hypertable_id integer NOT NULL,
13+
lowest_modified_value bigint NOT NULL,
14+
greatest_modified_value bigint NOT NULL,
15+
seqnum integer
16+
);
17+
18+
INSERT INTO _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log
19+
(hypertable_id, lowest_modified_value, greatest_modified_value, seqnum)
20+
SELECT *, NULL::integer FROM _timescaledb_catalog._tmp_continuous_aggs_hypertable_invalidation_log;
21+
DROP TABLE _timescaledb_catalog._tmp_continuous_aggs_hypertable_invalidation_log;
22+
23+
CREATE INDEX continuous_aggs_hypertable_invalidation_log_idx ON _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log (hypertable_id, lowest_modified_value ASC);
24+
25+
SELECT pg_catalog.pg_extension_config_dump('_timescaledb_catalog.continuous_aggs_hypertable_invalidation_log', '');
26+
-- end rebuild _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log --
27+
28+
-- Rebuild the catalog table `_timescaledb_catalog.continuous_aggs_materialization_invalidation_log`
29+
-- to add the `seqnum` column.
30+
CREATE TABLE _timescaledb_catalog._tmp_continuous_aggs_materialization_invalidation_log AS
31+
SELECT materialization_id, lowest_modified_value, greatest_modified_value
32+
FROM _timescaledb_catalog.continuous_aggs_materialization_invalidation_log;
33+
34+
ALTER EXTENSION timescaledb
35+
DROP TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_log;
36+
DROP TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_log;
37+
38+
CREATE TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_log (
39+
materialization_id integer,
40+
lowest_modified_value bigint NOT NULL,
41+
greatest_modified_value bigint NOT NULL,
42+
seqnum integer,
43+
CONSTRAINT continuous_aggs_materialization_invalid_materialization_id_fkey FOREIGN KEY (materialization_id) REFERENCES _timescaledb_catalog.continuous_agg (mat_hypertable_id) ON DELETE CASCADE
44+
);
45+
46+
INSERT INTO _timescaledb_catalog.continuous_aggs_materialization_invalidation_log
47+
(materialization_id, lowest_modified_value, greatest_modified_value, seqnum)
48+
SELECT *, NULL::integer FROM _timescaledb_catalog._tmp_continuous_aggs_materialization_invalidation_log;
49+
DROP TABLE _timescaledb_catalog._tmp_continuous_aggs_materialization_invalidation_log;
50+
51+
CREATE INDEX continuous_aggs_materialization_invalidation_log_idx ON _timescaledb_catalog.continuous_aggs_materialization_invalidation_log (materialization_id, lowest_modified_value ASC);
52+
53+
SELECT pg_catalog.pg_extension_config_dump('_timescaledb_catalog.continuous_aggs_materialization_invalidation_log', '');
54+
-- end rebuild _timescaledb_catalog.continuous_aggs_materialization_invalidation_log --
55+
56+
-- Rebuild _timescaledb_catalog.continuous_agg to add granular_refresh_enabled.
57+
DROP VIEW IF EXISTS timescaledb_experimental.policies;
58+
59+
ALTER TABLE _timescaledb_catalog.continuous_aggs_jobs_refresh_ranges
60+
DROP CONSTRAINT continuous_aggs_jobs_refresh_ranges_materialization_id_fkey;
61+
ALTER TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_log
62+
DROP CONSTRAINT continuous_aggs_materialization_invalid_materialization_id_fkey;
63+
ALTER TABLE _timescaledb_catalog.continuous_aggs_watermark
64+
DROP CONSTRAINT continuous_aggs_watermark_mat_hypertable_id_fkey;
65+
-- We're dropping this FK and not recreating it since continuous_aggs_materialization_ranges
66+
-- is being deprecated and will be removed in a future release.
67+
ALTER TABLE _timescaledb_catalog.continuous_aggs_materialization_ranges
68+
DROP CONSTRAINT continuous_aggs_materialization_ranges_materialization_id_fkey;
69+
70+
ALTER EXTENSION timescaledb DROP TABLE _timescaledb_catalog.continuous_agg;
71+
72+
CREATE TABLE _timescaledb_catalog._tmp_continuous_agg AS
73+
SELECT
74+
mat_hypertable_id,
75+
raw_hypertable_id,
76+
parent_mat_hypertable_id,
77+
user_view_schema,
78+
user_view_name,
79+
partial_view_schema,
80+
partial_view_name,
81+
direct_view_schema,
82+
direct_view_name,
83+
materialized_only,
84+
schema_change_timestamp
85+
FROM
86+
_timescaledb_catalog.continuous_agg
87+
ORDER BY
88+
mat_hypertable_id;
89+
90+
DROP TABLE _timescaledb_catalog.continuous_agg;
91+
92+
CREATE TABLE _timescaledb_catalog.continuous_agg (
93+
mat_hypertable_id integer NOT NULL,
94+
raw_hypertable_id integer NOT NULL,
95+
parent_mat_hypertable_id integer,
96+
user_view_schema name NOT NULL,
97+
user_view_name name NOT NULL,
98+
partial_view_schema name NOT NULL,
99+
partial_view_name name NOT NULL,
100+
direct_view_schema name NOT NULL,
101+
direct_view_name name NOT NULL,
102+
materialized_only bool NOT NULL DEFAULT FALSE,
103+
schema_change_timestamp bigint,
104+
granular_refresh_enabled bool NOT NULL DEFAULT FALSE,
105+
CONSTRAINT continuous_agg_pkey PRIMARY KEY (mat_hypertable_id),
106+
CONSTRAINT continuous_agg_partial_view_schema_partial_view_name_key UNIQUE (partial_view_schema, partial_view_name),
107+
CONSTRAINT continuous_agg_user_view_schema_user_view_name_key UNIQUE (user_view_schema, user_view_name),
108+
CONSTRAINT continuous_agg_mat_hypertable_id_fkey
109+
FOREIGN KEY (mat_hypertable_id) REFERENCES _timescaledb_catalog.hypertable (id) ON DELETE CASCADE,
110+
CONSTRAINT continuous_agg_raw_hypertable_id_fkey
111+
FOREIGN KEY (raw_hypertable_id) REFERENCES _timescaledb_catalog.hypertable (id) ON DELETE CASCADE,
112+
CONSTRAINT continuous_agg_parent_mat_hypertable_id_fkey
113+
FOREIGN KEY (parent_mat_hypertable_id)
114+
REFERENCES _timescaledb_catalog.continuous_agg (mat_hypertable_id) ON DELETE CASCADE
115+
);
116+
117+
INSERT INTO _timescaledb_catalog.continuous_agg (
118+
mat_hypertable_id,
119+
raw_hypertable_id,
120+
parent_mat_hypertable_id,
121+
user_view_schema,
122+
user_view_name,
123+
partial_view_schema,
124+
partial_view_name,
125+
direct_view_schema,
126+
direct_view_name,
127+
materialized_only,
128+
schema_change_timestamp
129+
)
130+
SELECT * FROM _timescaledb_catalog._tmp_continuous_agg;
131+
DROP TABLE _timescaledb_catalog._tmp_continuous_agg;
132+
133+
CREATE INDEX continuous_agg_raw_hypertable_id_idx ON _timescaledb_catalog.continuous_agg (raw_hypertable_id);
134+
135+
SELECT pg_catalog.pg_extension_config_dump('_timescaledb_catalog.continuous_agg', '');
136+
137+
GRANT SELECT ON TABLE _timescaledb_catalog.continuous_agg TO PUBLIC;
138+
139+
ALTER TABLE _timescaledb_catalog.continuous_aggs_jobs_refresh_ranges
140+
ADD CONSTRAINT continuous_aggs_jobs_refresh_ranges_materialization_id_fkey
141+
FOREIGN KEY (materialization_id) REFERENCES _timescaledb_catalog.continuous_agg(mat_hypertable_id) ON DELETE CASCADE;
142+
ALTER TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_log
143+
ADD CONSTRAINT continuous_aggs_materialization_invalid_materialization_id_fkey
144+
FOREIGN KEY (materialization_id) REFERENCES _timescaledb_catalog.continuous_agg(mat_hypertable_id) ON DELETE CASCADE;
145+
ALTER TABLE _timescaledb_catalog.continuous_aggs_watermark
146+
ADD CONSTRAINT continuous_aggs_watermark_mat_hypertable_id_fkey
147+
FOREIGN KEY (mat_hypertable_id) REFERENCES _timescaledb_catalog.continuous_agg(mat_hypertable_id) ON DELETE CASCADE;
148+
-- end rebuild _timescaledb_catalog.continuous_agg --

sql/updates/reverse-dev.sql

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
-- Rebuild the catalog table `_timescaledb_catalog.continuous_aggs_hypertable_invalidation_log`
2+
-- to drop the `seqnum` column.
3+
CREATE TABLE _timescaledb_catalog._tmp_continuous_aggs_hypertable_invalidation_log AS
4+
SELECT hypertable_id, lowest_modified_value, greatest_modified_value
5+
FROM _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log;
6+
7+
ALTER EXTENSION timescaledb
8+
DROP TABLE _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log;
9+
DROP TABLE _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log;
10+
11+
CREATE TABLE _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log (
12+
hypertable_id integer NOT NULL,
13+
lowest_modified_value bigint NOT NULL,
14+
greatest_modified_value bigint NOT NULL
15+
);
16+
17+
INSERT INTO _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log
18+
SELECT * FROM _timescaledb_catalog._tmp_continuous_aggs_hypertable_invalidation_log;
19+
DROP TABLE _timescaledb_catalog._tmp_continuous_aggs_hypertable_invalidation_log;
20+
21+
CREATE INDEX continuous_aggs_hypertable_invalidation_log_idx ON _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log (hypertable_id, lowest_modified_value ASC);
22+
23+
SELECT pg_catalog.pg_extension_config_dump('_timescaledb_catalog.continuous_aggs_hypertable_invalidation_log', '');
24+
-- end rebuild _timescaledb_catalog.continuous_aggs_hypertable_invalidation_log --
25+
26+
-- Rebuild the catalog table `_timescaledb_catalog.continuous_aggs_materialization_invalidation_log`
27+
-- to drop the `seqnum` column.
28+
CREATE TABLE _timescaledb_catalog._tmp_continuous_aggs_materialization_invalidation_log AS
29+
SELECT materialization_id, lowest_modified_value, greatest_modified_value
30+
FROM _timescaledb_catalog.continuous_aggs_materialization_invalidation_log;
31+
32+
ALTER EXTENSION timescaledb
33+
DROP TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_log;
34+
DROP TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_log;
35+
36+
CREATE TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_log (
37+
materialization_id integer,
38+
lowest_modified_value bigint NOT NULL,
39+
greatest_modified_value bigint NOT NULL,
40+
CONSTRAINT continuous_aggs_materialization_invalid_materialization_id_fkey FOREIGN KEY (materialization_id) REFERENCES _timescaledb_catalog.continuous_agg (mat_hypertable_id) ON DELETE CASCADE
41+
);
42+
43+
INSERT INTO _timescaledb_catalog.continuous_aggs_materialization_invalidation_log
44+
(materialization_id, lowest_modified_value, greatest_modified_value)
45+
SELECT * FROM _timescaledb_catalog._tmp_continuous_aggs_materialization_invalidation_log;
46+
DROP TABLE _timescaledb_catalog._tmp_continuous_aggs_materialization_invalidation_log;
47+
48+
CREATE INDEX continuous_aggs_materialization_invalidation_log_idx ON _timescaledb_catalog.continuous_aggs_materialization_invalidation_log (materialization_id, lowest_modified_value ASC);
49+
50+
SELECT pg_catalog.pg_extension_config_dump('_timescaledb_catalog.continuous_aggs_materialization_invalidation_log', '');
51+
-- end rebuild _timescaledb_catalog.continuous_aggs_materialization_invalidation_log --
52+
53+
-- Rebuild _timescaledb_catalog.continuous_agg to drop granular_refresh_enabled.
54+
DROP VIEW IF EXISTS timescaledb_experimental.policies;
55+
56+
ALTER TABLE _timescaledb_catalog.continuous_aggs_jobs_refresh_ranges
57+
DROP CONSTRAINT continuous_aggs_jobs_refresh_ranges_materialization_id_fkey;
58+
ALTER TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_log
59+
DROP CONSTRAINT continuous_aggs_materialization_invalid_materialization_id_fkey;
60+
ALTER TABLE _timescaledb_catalog.continuous_aggs_watermark
61+
DROP CONSTRAINT continuous_aggs_watermark_mat_hypertable_id_fkey;
62+
ALTER TABLE _timescaledb_catalog.continuous_aggs_materialization_ranges
63+
DROP CONSTRAINT continuous_aggs_materialization_ranges_materialization_id_fkey;
64+
65+
ALTER EXTENSION timescaledb DROP TABLE _timescaledb_catalog.continuous_agg;
66+
67+
CREATE TABLE _timescaledb_catalog._tmp_continuous_agg AS
68+
SELECT
69+
mat_hypertable_id,
70+
raw_hypertable_id,
71+
parent_mat_hypertable_id,
72+
user_view_schema,
73+
user_view_name,
74+
partial_view_schema,
75+
partial_view_name,
76+
direct_view_schema,
77+
direct_view_name,
78+
materialized_only,
79+
schema_change_timestamp
80+
FROM
81+
_timescaledb_catalog.continuous_agg
82+
ORDER BY
83+
mat_hypertable_id;
84+
85+
DROP TABLE _timescaledb_catalog.continuous_agg;
86+
87+
CREATE TABLE _timescaledb_catalog.continuous_agg (
88+
mat_hypertable_id integer NOT NULL,
89+
raw_hypertable_id integer NOT NULL,
90+
parent_mat_hypertable_id integer,
91+
user_view_schema name NOT NULL,
92+
user_view_name name NOT NULL,
93+
partial_view_schema name NOT NULL,
94+
partial_view_name name NOT NULL,
95+
direct_view_schema name NOT NULL,
96+
direct_view_name name NOT NULL,
97+
materialized_only bool NOT NULL DEFAULT FALSE,
98+
schema_change_timestamp bigint,
99+
CONSTRAINT continuous_agg_pkey PRIMARY KEY (mat_hypertable_id),
100+
CONSTRAINT continuous_agg_partial_view_schema_partial_view_name_key UNIQUE (partial_view_schema, partial_view_name),
101+
CONSTRAINT continuous_agg_user_view_schema_user_view_name_key UNIQUE (user_view_schema, user_view_name),
102+
CONSTRAINT continuous_agg_mat_hypertable_id_fkey
103+
FOREIGN KEY (mat_hypertable_id) REFERENCES _timescaledb_catalog.hypertable (id) ON DELETE CASCADE,
104+
CONSTRAINT continuous_agg_raw_hypertable_id_fkey
105+
FOREIGN KEY (raw_hypertable_id) REFERENCES _timescaledb_catalog.hypertable (id) ON DELETE CASCADE,
106+
CONSTRAINT continuous_agg_parent_mat_hypertable_id_fkey
107+
FOREIGN KEY (parent_mat_hypertable_id)
108+
REFERENCES _timescaledb_catalog.continuous_agg (mat_hypertable_id) ON DELETE CASCADE
109+
);
110+
111+
INSERT INTO _timescaledb_catalog.continuous_agg (
112+
mat_hypertable_id,
113+
raw_hypertable_id,
114+
parent_mat_hypertable_id,
115+
user_view_schema,
116+
user_view_name,
117+
partial_view_schema,
118+
partial_view_name,
119+
direct_view_schema,
120+
direct_view_name,
121+
materialized_only,
122+
schema_change_timestamp
123+
)
124+
SELECT * FROM _timescaledb_catalog._tmp_continuous_agg;
125+
DROP TABLE _timescaledb_catalog._tmp_continuous_agg;
126+
127+
CREATE INDEX continuous_agg_raw_hypertable_id_idx ON _timescaledb_catalog.continuous_agg (raw_hypertable_id);
128+
129+
SELECT pg_catalog.pg_extension_config_dump('_timescaledb_catalog.continuous_agg', '');
130+
131+
GRANT SELECT ON TABLE _timescaledb_catalog.continuous_agg TO PUBLIC;
132+
133+
ALTER TABLE _timescaledb_catalog.continuous_aggs_jobs_refresh_ranges
134+
ADD CONSTRAINT continuous_aggs_jobs_refresh_ranges_materialization_id_fkey
135+
FOREIGN KEY (materialization_id) REFERENCES _timescaledb_catalog.continuous_agg(mat_hypertable_id) ON DELETE CASCADE;
136+
ALTER TABLE _timescaledb_catalog.continuous_aggs_materialization_invalidation_log
137+
ADD CONSTRAINT continuous_aggs_materialization_invalid_materialization_id_fkey
138+
FOREIGN KEY (materialization_id) REFERENCES _timescaledb_catalog.continuous_agg(mat_hypertable_id) ON DELETE CASCADE;
139+
ALTER TABLE _timescaledb_catalog.continuous_aggs_materialization_ranges
140+
ADD CONSTRAINT continuous_aggs_materialization_ranges_materialization_id_fkey
141+
FOREIGN KEY (materialization_id) REFERENCES _timescaledb_catalog.continuous_agg(mat_hypertable_id) ON DELETE CASCADE;
142+
ALTER TABLE _timescaledb_catalog.continuous_aggs_watermark
143+
ADD CONSTRAINT continuous_aggs_watermark_mat_hypertable_id_fkey
144+
FOREIGN KEY (mat_hypertable_id) REFERENCES _timescaledb_catalog.continuous_agg(mat_hypertable_id) ON DELETE CASCADE;
145+
-- end rebuild _timescaledb_catalog.continuous_agg --

src/ts_catalog/catalog.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -790,6 +790,7 @@ typedef enum Anum_continuous_agg
790790
Anum_continuous_agg_direct_view_name,
791791
Anum_continuous_agg_materialize_only,
792792
Anum_continuous_agg_schema_change_timestamp,
793+
Anum_continuous_agg_granular_refresh_enabled,
793794
_Anum_continuous_agg_max,
794795
} Anum_continuous_agg;
795796

@@ -808,6 +809,7 @@ typedef struct FormData_continuous_agg
808809
NameData direct_view_name;
809810
bool materialized_only;
810811
int64 schema_change_timestamp;
812+
bool granular_refresh_enabled;
811813
} FormData_continuous_agg;
812814

813815
typedef FormData_continuous_agg *Form_continuous_agg;
@@ -904,6 +906,7 @@ typedef enum Anum_continuous_aggs_hypertable_invalidation_log
904906
Anum_continuous_aggs_hypertable_invalidation_log_hypertable_id = 1,
905907
Anum_continuous_aggs_hypertable_invalidation_log_lowest_modified_value,
906908
Anum_continuous_aggs_hypertable_invalidation_log_greatest_modified_value,
909+
Anum_continuous_aggs_hypertable_invalidation_log_seqnum,
907910
_Anum_continuous_aggs_hypertable_invalidation_log_max,
908911
} Anum_continuous_aggs_hypertable_invalidation_log;
909912

@@ -915,6 +918,7 @@ typedef struct FormData_continuous_aggs_hypertable_invalidation_log
915918
int32 hypertable_id;
916919
int64 lowest_modified_value;
917920
int64 greatest_modified_value;
921+
int32 seqnum;
918922
} FormData_continuous_aggs_hypertable_invalidation_log;
919923

920924
typedef FormData_continuous_aggs_hypertable_invalidation_log
@@ -978,6 +982,7 @@ typedef enum Anum_continuous_aggs_materialization_invalidation_log
978982
Anum_continuous_aggs_materialization_invalidation_log_materialization_id = 1,
979983
Anum_continuous_aggs_materialization_invalidation_log_lowest_modified_value,
980984
Anum_continuous_aggs_materialization_invalidation_log_greatest_modified_value,
985+
Anum_continuous_aggs_materialization_invalidation_log_seqnum,
981986
_Anum_continuous_aggs_materialization_invalidation_log_max,
982987
} Anum_continuous_aggs_materialization_invalidation_log;
983988

@@ -989,6 +994,7 @@ typedef struct FormData_continuous_aggs_materialization_invalidation_log
989994
int32 materialization_id;
990995
int64 lowest_modified_value;
991996
int64 greatest_modified_value;
997+
int32 seqnum;
992998
} FormData_continuous_aggs_materialization_invalidation_log;
993999

9941000
typedef FormData_continuous_aggs_materialization_invalidation_log

0 commit comments

Comments
 (0)