Skip to content

Commit f040473

Browse files
committed
fix migration script
1 parent 37bad35 commit f040473

File tree

2 files changed

+43
-31
lines changed

2 files changed

+43
-31
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ DATA_built = pg_pathman--$(EXTVERSION).sql
2020

2121
DATA = pg_pathman--1.0--1.1.sql \
2222
pg_pathman--1.1--1.2.sql \
23-
pg_pathman--1.2--1.3.sql
23+
pg_pathman--1.2--1.3.sql \
24+
pg_pathman--1.3--1.4.sql
2425

2526
PGFILEDESC = "pg_pathman - partitioning tool for PostgreSQL"
2627

pg_pathman--1.3--1.4.sql

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,31 @@
1515
ALTER TABLE @extschema@.pathman_config RENAME COLUMN attname TO expr;
1616
ALTER TABLE @extschema@.pathman_config ADD COLUMN cooked_expr TEXT;
1717

18-
DROP TRIGGER pathman_config_params_trigger;
18+
DROP TRIGGER pathman_config_params_trigger ON @extschema@.pathman_config_params;
1919

2020
CREATE TRIGGER pathman_config_params_trigger
2121
AFTER INSERT OR UPDATE OR DELETE ON @extschema@.pathman_config_params
2222
FOR EACH ROW EXECUTE PROCEDURE @extschema@.pathman_config_params_trigger_func();
2323

24-
CREATE OR REPLACE VIEW @extschema@.pathman_cache_stats
25-
AS SELECT * FROM @extschema@.show_cache_stats();
24+
25+
DROP FUNCTION @extschema@.validate_interval_value(REGCLASS, TEXT, INTEGER, TEXT) CASCADE;
26+
27+
CREATE OR REPLACE FUNCTION @extschema@.validate_interval_value(
28+
partrel REGCLASS,
29+
expr TEXT,
30+
parttype INTEGER,
31+
range_interval TEXT,
32+
cooked_expr TEXT)
33+
RETURNS BOOL AS 'pg_pathman', 'validate_interval_value'
34+
LANGUAGE C;
2635

2736
ALTER TABLE @extschema@.pathman_config
2837
ADD CONSTRAINT pathman_config_interval_check
29-
CHECK (@extschema@.validate_interval_value(atttype,
38+
CHECK (@extschema@.validate_interval_value(partrel,
39+
expr,
3040
parttype,
31-
range_interval));
41+
range_interval,
42+
cooked_expr));
3243

3344
DO $$
3445
DECLARE
@@ -41,18 +52,35 @@ BEGIN
4152
EXECUTE format('ALTER TABLE %s RENAME CONSTRAINT %s TO %s',
4253
v_rec.t, v_rec.conname, v_rec.new_conname);
4354
END LOOP;
44-
45-
RETURN TRUE;
4655
END
4756
$$ LANGUAGE plpgsql;
4857

4958

59+
DROP VIEW pathman_partition_list;
60+
61+
DROP FUNCTION @extschema@.show_partition_list();
62+
63+
CREATE OR REPLACE FUNCTION @extschema@.show_partition_list()
64+
RETURNS TABLE (
65+
parent REGCLASS,
66+
partition REGCLASS,
67+
parttype INT4,
68+
expr TEXT,
69+
range_min TEXT,
70+
range_max TEXT)
71+
AS 'pg_pathman', 'show_partition_list_internal'
72+
LANGUAGE C STRICT;
73+
74+
CREATE OR REPLACE VIEW @extschema@.pathman_partition_list
75+
AS SELECT * FROM @extschema@.show_partition_list();
76+
77+
GRANT SELECT ON @extschema@.pathman_partition_list TO PUBLIC;
78+
79+
5080
/* ------------------------------------------------------------------------
5181
* Drop irrelevant objects
5282
* ----------------------------------------------------------------------*/
53-
DROP FUNCTION @extschema@.validate_interval_value(REGCLASS, TEXT, INTEGER, TEXT);
54-
DROP FUNCTION @extschema@.show_partition_list();
55-
DROP FUNCTION @extschema@._partition_data_concurrent(REGCLASS, ANYELEMENT, ANYELEMENT, INT, BIGINT);
83+
DROP FUNCTION @extschema@._partition_data_concurrent(REGCLASS, ANYELEMENT, ANYELEMENT, INT, OUT BIGINT);
5684
DROP FUNCTION @extschema@.disable_pathman_for(REGCLASS);
5785
DROP FUNCTION @extschema@.common_relation_checks(REGCLASS, TEXT);
5886
DROP FUNCTION @extschema@.validate_relations_equality(OID, OID);
@@ -89,26 +117,6 @@ ALTER FUNCTION @extschema@.build_sequence_name(REGCLASS) STRICT;
89117
/* ------------------------------------------------------------------------
90118
* (Re)create functions
91119
* ----------------------------------------------------------------------*/
92-
CREATE OR REPLACE FUNCTION @extschema@.validate_interval_value(
93-
partrel REGCLASS,
94-
expr TEXT,
95-
parttype INTEGER,
96-
range_interval TEXT,
97-
cooked_expr TEXT)
98-
RETURNS BOOL AS 'pg_pathman', 'validate_interval_value'
99-
LANGUAGE C;
100-
101-
CREATE OR REPLACE FUNCTION @extschema@.show_partition_list()
102-
RETURNS TABLE (
103-
parent REGCLASS,
104-
partition REGCLASS,
105-
parttype INT4,
106-
expr TEXT,
107-
range_min TEXT,
108-
range_max TEXT)
109-
AS 'pg_pathman', 'show_partition_list_internal'
110-
LANGUAGE C STRICT;
111-
112120
CREATE OR REPLACE FUNCTION @extschema@.show_cache_stats()
113121
RETURNS TABLE (
114122
context TEXT,
@@ -118,6 +126,9 @@ RETURNS TABLE (
118126
AS 'pg_pathman', 'show_cache_stats_internal'
119127
LANGUAGE C STRICT;
120128

129+
CREATE OR REPLACE VIEW @extschema@.pathman_cache_stats
130+
AS SELECT * FROM @extschema@.show_cache_stats();
131+
121132

122133
CREATE OR REPLACE FUNCTION @extschema@._partition_data_concurrent(
123134
relation REGCLASS,

0 commit comments

Comments
 (0)