@@ -68,13 +68,82 @@ SET status = status | 4, -- set compression bit
6868 compression_state = 0
6969WHERE compression_state = 1 ;
7070
71- --
72- -- END set compression status flag on hypertables
73- --
74-
7571ALTER TABLE _timescaledb_catalog .hypertable DROP CONSTRAINT hypertable_dim_compress_check;
7672ALTER TABLE _timescaledb_catalog .hypertable ADD CONSTRAINT hypertable_num_dimensions_check CHECK (num_dimensions > 0 );
7773ALTER TABLE _timescaledb_catalog .hypertable DROP CONSTRAINT hypertable_compress_check;
7874
75+ --
76+ -- END set compression status flag on hypertables
77+ --
78+
7979DROP FUNCTION IF EXISTS @extschema@.alter_job(job_id INTEGER , schedule_interval INTERVAL, max_runtime INTERVAL, max_retries INTEGER , retry_period INTERVAL, scheduled BOOL, config JSONB, next_start TIMESTAMPTZ , if_exists BOOL, check_config REGPROC, fixed_schedule BOOL, initial_start TIMESTAMPTZ , timezone TEXT , job_name TEXT );
8080
81+ --
82+ -- BEGIN add chunk.relid and drop chunk.compressed_chunk_id, schema_name, table_name
83+ --
84+
85+ CREATE TABLE _timescaledb_internal .tmp_chunk AS SELECT * FROM _timescaledb_catalog .chunk ;
86+ CREATE TABLE _timescaledb_internal .tmp_chunk_seq_value AS SELECT last_value, is_called FROM _timescaledb_catalog .chunk_id_seq ;
87+
88+ -- drop foreign keys referencing the chunk table
89+ ALTER TABLE _timescaledb_catalog .dimension_slice DROP CONSTRAINT dimension_slice_chunk_id_fkey;
90+ ALTER TABLE _timescaledb_catalog .chunk_column_stats DROP CONSTRAINT chunk_column_stats_chunk_id_fkey;
91+ ALTER TABLE _timescaledb_internal .bgw_policy_chunk_stats DROP CONSTRAINT bgw_policy_chunk_stats_chunk_id_fkey;
92+ ALTER TABLE _timescaledb_catalog .compression_chunk_size DROP CONSTRAINT compression_chunk_size_chunk_id_fkey;
93+
94+ -- drop dependent views, they are recreated later in the update
95+ DROP VIEW IF EXISTS _timescaledb_internal .hypertable_chunk_local_size ;
96+ DROP VIEW IF EXISTS _timescaledb_internal .compressed_chunk_stats ;
97+
98+ ALTER EXTENSION timescaledb DROP TABLE _timescaledb_catalog .chunk;
99+ ALTER EXTENSION timescaledb DROP SEQUENCE _timescaledb_catalog .chunk_id_seq ;
100+
101+ DROP TABLE _timescaledb_catalog .chunk ;
102+
103+ CREATE SEQUENCE _timescaledb_catalog .chunk_id_seq MINVALUE 1 ;
104+
105+ CREATE TABLE _timescaledb_catalog .chunk (
106+ id integer NOT NULL DEFAULT nextval(' _timescaledb_catalog.chunk_id_seq' ),
107+ relid regclass NOT NULL ,
108+ hypertable_id int NOT NULL ,
109+ status integer NOT NULL DEFAULT 0 ,
110+ osm_chunk boolean NOT NULL DEFAULT FALSE,
111+ creation_time timestamptz NOT NULL ,
112+ CONSTRAINT chunk_pkey PRIMARY KEY (id),
113+ CONSTRAINT chunk_relid_key UNIQUE (relid)
114+ ) WITH (user_catalog_table = true);
115+
116+ INSERT INTO _timescaledb_catalog .chunk
117+ (id, relid, hypertable_id, status, osm_chunk, creation_time)
118+ SELECT
119+ id, format(' %I.%I' , schema_name, table_name)::regclass, hypertable_id, status, osm_chunk, creation_time
120+ FROM _timescaledb_internal .tmp_chunk ;
121+
122+ CREATE INDEX chunk_hypertable_id_idx ON _timescaledb_catalog .chunk (hypertable_id);
123+ CREATE INDEX chunk_osm_chunk_idx ON _timescaledb_catalog .chunk (osm_chunk, hypertable_id);
124+ CREATE INDEX chunk_hypertable_id_creation_time_idx ON _timescaledb_catalog .chunk (hypertable_id, creation_time);
125+
126+ ALTER SEQUENCE _timescaledb_catalog .chunk_id_seq OWNED BY _timescaledb_catalog .chunk .id;
127+ SELECT setval(' _timescaledb_catalog.chunk_id_seq' , last_value, is_called) FROM _timescaledb_internal .tmp_chunk_seq_value ;
128+
129+ ALTER TABLE _timescaledb_catalog .chunk ADD CONSTRAINT chunk_hypertable_id_fkey FOREIGN KEY (hypertable_id) REFERENCES _timescaledb_catalog .hypertable (id);
130+
131+ SELECT pg_catalog .pg_extension_config_dump (' _timescaledb_catalog.chunk' , ' ' );
132+ SELECT pg_catalog .pg_extension_config_dump (' _timescaledb_catalog.chunk_id_seq' , ' ' );
133+
134+ -- restore foreign keys referencing the chunk table
135+ ALTER TABLE _timescaledb_catalog .dimension_slice ADD CONSTRAINT dimension_slice_chunk_id_fkey FOREIGN KEY (chunk_id) REFERENCES _timescaledb_catalog .chunk (id) ON DELETE CASCADE ;
136+ ALTER TABLE _timescaledb_catalog .chunk_column_stats ADD CONSTRAINT chunk_column_stats_chunk_id_fkey FOREIGN KEY (chunk_id) REFERENCES _timescaledb_catalog .chunk (id);
137+ ALTER TABLE _timescaledb_internal .bgw_policy_chunk_stats ADD CONSTRAINT bgw_policy_chunk_stats_chunk_id_fkey FOREIGN KEY (chunk_id) REFERENCES _timescaledb_catalog .chunk (id) ON DELETE CASCADE ;
138+ ALTER TABLE _timescaledb_catalog .compression_chunk_size ADD CONSTRAINT compression_chunk_size_chunk_id_fkey FOREIGN KEY (chunk_id) REFERENCES _timescaledb_catalog .chunk (id) ON DELETE CASCADE ;
139+
140+ DROP TABLE _timescaledb_internal .tmp_chunk ;
141+ DROP TABLE _timescaledb_internal .tmp_chunk_seq_value ;
142+
143+ GRANT SELECT ON _timescaledb_catalog .chunk_id_seq TO PUBLIC;
144+ GRANT SELECT ON _timescaledb_catalog .chunk TO PUBLIC;
145+
146+ --
147+ -- END add chunk.relid
148+ --
149+
0 commit comments