From 7e12c7d94022e5bce47d25d6bfbf6eb9174825cf Mon Sep 17 00:00:00 2001 From: icefairy <860668820@qq.com> Date: Fri, 29 Mar 2024 18:50:58 +0800 Subject: [PATCH] copy latest to version --- .../sql/udfs/create_time_partitions/10.2-1.sql | 8 ++++++-- .../sql/udfs/drop_old_time_partitions/12.0-1.sql | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/backend/distributed/sql/udfs/create_time_partitions/10.2-1.sql b/src/backend/distributed/sql/udfs/create_time_partitions/10.2-1.sql index 11edcc5ac..5d414aa89 100644 --- a/src/backend/distributed/sql/udfs/create_time_partitions/10.2-1.sql +++ b/src/backend/distributed/sql/udfs/create_time_partitions/10.2-1.sql @@ -32,14 +32,18 @@ BEGIN SELECT * FROM get_missing_time_partition_ranges(table_name, partition_interval, end_at, start_from) LOOP - EXECUTE format('CREATE TABLE %I.%I PARTITION OF %I.%I FOR VALUES FROM (%L) TO (%L)', + EXECUTE format('CREATE TABLE %I.%I (LIKE %I INCLUDING DEFAULTS INCLUDING CONSTRAINTS)', schema_name_text, missing_partition_record.partition_name, + table_name_text); + EXECUTE format('ALTER TABLE %I.%I ATTACH PARTITION %I.%I FOR VALUES FROM (%L) TO (%L)', schema_name_text, table_name_text, + schema_name_text, + missing_partition_record.partition_name, missing_partition_record.range_from_value, missing_partition_record.range_to_value); - + RAISE NOTICE 'created partition % for table %', missing_partition_record.partition_name, table_name_text; partition_created := true; END LOOP; diff --git a/src/backend/distributed/sql/udfs/drop_old_time_partitions/12.0-1.sql b/src/backend/distributed/sql/udfs/drop_old_time_partitions/12.0-1.sql index a4bcd45a0..dac86aa1f 100644 --- a/src/backend/distributed/sql/udfs/drop_old_time_partitions/12.0-1.sql +++ b/src/backend/distributed/sql/udfs/drop_old_time_partitions/12.0-1.sql @@ -57,7 +57,8 @@ BEGIN ORDER BY to_value%1$s::timestamptz', custom_cast); FOR r IN EXECUTE older_partitions_query USING table_name, older_than LOOP - RAISE NOTICE 'dropping % with start time % and end time %', r.partition, r.from_value, r.to_value; + RAISE NOTICE 'dropping % with start time % and end time % using DETACH PARTITION partition_name AND THEN DROP IT. ', r.partition, r.from_value, r.to_value; + EXECUTE format('ALTER TABLE %I.%I DETACH PARTITION %I',r.schema_name, r.table_name, r.partition); EXECUTE format('DROP TABLE %I.%I', r.schema_name, r.table_name); END LOOP; END;