@@ -5,7 +5,7 @@ CREATE OR REPLACE FUNCTION create_range_partitions(
5
5
v_relation TEXT
6
6
, v_attribute TEXT
7
7
, v_start_timestamp TIMESTAMP
8
- , v_interval INTERVAL
8
+ , v_interval TEXT
9
9
, v_premake INTEGER )
10
10
RETURNS VOID AS
11
11
$$
@@ -26,10 +26,14 @@ BEGIN
26
26
SELECT current_date INTO v_dt;
27
27
END IF;
28
28
29
+ /* create first partition */
29
30
PERFORM create_single_range_partition(v_relation
30
31
, v_dt
31
32
, v_interval);
32
33
34
+ /* premake further partitions */
35
+ PERFORM append_range_partitions(v_relation, v_interval, v_premake);
36
+
33
37
INSERT INTO pg_pathman_rels (
34
38
relname
35
39
, attname
76
80
LOOP
77
81
PERFORM create_single_range_partition(v_relation
78
82
, v_part_timestamp
79
- , v_interval::INTERVAL );
83
+ , v_interval);
80
84
v_part_timestamp := v_part_timestamp + v_interval::INTERVAL;
81
85
END LOOP;
82
86
ELSIF NOT v_part_num IS NULL THEN
85
89
LOOP
86
90
PERFORM create_single_range_partition(v_relation
87
91
, v_part_timestamp
88
- , v_interval:: INTEGER );
92
+ , v_interval);
89
93
v_part_timestamp := v_part_timestamp + v_interval;
90
94
END LOOP;
91
95
END IF;
@@ -99,8 +103,8 @@ $$ LANGUAGE plpgsql;
99
103
*/
100
104
CREATE OR REPLACE FUNCTION create_single_range_partition (
101
105
v_parent_relname TEXT
102
- , v_start_timestamp TIMESTAMPTZ
103
- , v_interval INTERVAL )
106
+ , v_start_timestamp TIMESTAMP
107
+ , v_interval TEXT )
104
108
RETURNS VOID AS
105
109
$$
106
110
DECLARE
@@ -127,7 +131,7 @@ BEGIN
127
131
INSERT INTO pg_pathman_range_rels (parent, min_dt, max_dt, child)
128
132
VALUES (v_parent_relname
129
133
, v_start_timestamp
130
- , v_start_timestamp + v_interval
134
+ , v_start_timestamp + v_interval::INTERVAL
131
135
, v_child_relname);
132
136
END
133
137
$$ LANGUAGE plpgsql;
0 commit comments