@@ -439,7 +439,7 @@ $$ LANGUAGE plpgsql;
439
439
* Split RANGE partition
440
440
*/
441
441
CREATE OR REPLACE FUNCTION @extschema@.split_range_partition(
442
- partition REGCLASS,
442
+ partition_relid REGCLASS,
443
443
split_value ANYELEMENT,
444
444
partition_name TEXT DEFAULT NULL ,
445
445
tablespace TEXT DEFAULT NULL ,
@@ -456,13 +456,13 @@ DECLARE
456
456
v_check_name TEXT ;
457
457
458
458
BEGIN
459
- v_parent = @extschema@.get_parent_of_partition(partition );
459
+ v_parent = @extschema@.get_parent_of_partition(partition_relid );
460
460
461
461
/* Acquire lock on parent */
462
462
PERFORM @extschema@.lock_partitioned_relation(v_parent);
463
463
464
464
/* Acquire data modification lock (prevent further modifications) */
465
- PERFORM @extschema@.prevent_relation_modification(partition );
465
+ PERFORM @extschema@.prevent_relation_modification(partition_relid );
466
466
467
467
SELECT attname, parttype
468
468
FROM @extschema@.pathman_config
@@ -475,15 +475,15 @@ BEGIN
475
475
476
476
/* Check if this is a RANGE partition */
477
477
IF v_part_type != 2 THEN
478
- RAISE EXCEPTION ' "%" is not a RANGE partition' , partition ::TEXT ;
478
+ RAISE EXCEPTION ' "%" is not a RANGE partition' , partition_relid ::TEXT ;
479
479
END IF;
480
480
481
481
v_atttype = @extschema@.get_attribute_type(v_parent, v_attname);
482
482
483
483
/* Get partition values range */
484
484
EXECUTE format(' SELECT @extschema@.get_part_range($1, NULL::%s)' ,
485
485
@extschema@.get_base_type(v_atttype)::TEXT )
486
- USING partition
486
+ USING partition_relid
487
487
INTO p_range;
488
488
489
489
IF p_range IS NULL THEN
@@ -509,21 +509,21 @@ BEGIN
509
509
v_attname, split_value, p_range[2 ]);
510
510
EXECUTE format(' WITH part_data AS (DELETE FROM %s WHERE %s RETURNING *)
511
511
INSERT INTO %s SELECT * FROM part_data' ,
512
- partition ::TEXT ,
512
+ partition_relid ::TEXT ,
513
513
v_cond,
514
514
v_new_partition);
515
515
516
516
/* Alter original partition */
517
- v_cond := @extschema@.build_range_condition(partition ::regclass,
517
+ v_cond := @extschema@.build_range_condition(partition_relid ::regclass,
518
518
v_attname, p_range[1 ], split_value);
519
- v_check_name := @extschema@.build_check_constraint_name(partition , v_attname);
519
+ v_check_name := @extschema@.build_check_constraint_name(partition_relid , v_attname);
520
520
521
521
EXECUTE format(' ALTER TABLE %s DROP CONSTRAINT %s' ,
522
- partition ::TEXT ,
522
+ partition_relid ::TEXT ,
523
523
v_check_name);
524
524
525
525
EXECUTE format(' ALTER TABLE %s ADD CONSTRAINT %s CHECK (%s)' ,
526
- partition ::TEXT ,
526
+ partition_relid ::TEXT ,
527
527
v_check_name,
528
528
v_cond);
529
529
@@ -958,7 +958,7 @@ LANGUAGE plpgsql;
958
958
* Drop range partition
959
959
*/
960
960
CREATE OR REPLACE FUNCTION @extschema@.drop_range_partition(
961
- partition REGCLASS,
961
+ partition_relid REGCLASS,
962
962
delete_data BOOLEAN DEFAULT TRUE)
963
963
RETURNS TEXT AS
964
964
$$
@@ -970,8 +970,8 @@ DECLARE
970
970
v_part_type INTEGER ;
971
971
972
972
BEGIN
973
- parent_relid := @extschema@.get_parent_of_partition(partition );
974
- part_name := partition ::TEXT ; /* save the name to be returned */
973
+ parent_relid := @extschema@.get_parent_of_partition(partition_relid );
974
+ part_name := partition_relid ::TEXT ; /* save the name to be returned */
975
975
976
976
SELECT parttype
977
977
FROM @extschema@.pathman_config
@@ -980,7 +980,7 @@ BEGIN
980
980
981
981
/* Check if this is a RANGE partition */
982
982
IF v_part_type != 2 THEN
983
- RAISE EXCEPTION ' "%" is not a RANGE partition' , partition ::TEXT ;
983
+ RAISE EXCEPTION ' "%" is not a RANGE partition' , partition_relid ::TEXT ;
984
984
END IF;
985
985
986
986
/* Acquire lock on parent */
@@ -989,15 +989,15 @@ BEGIN
989
989
IF NOT delete_data THEN
990
990
EXECUTE format(' INSERT INTO %s SELECT * FROM %s' ,
991
991
parent_relid::TEXT ,
992
- partition ::TEXT );
992
+ partition_relid ::TEXT );
993
993
GET DIAGNOSTICS v_rows = ROW_COUNT;
994
994
995
995
/* Show number of copied rows */
996
- RAISE NOTICE ' % rows copied from %' , v_rows, partition ::TEXT ;
996
+ RAISE NOTICE ' % rows copied from %' , v_rows, partition_relid ::TEXT ;
997
997
END IF;
998
998
999
999
SELECT relkind FROM pg_catalog .pg_class
1000
- WHERE oid = partition
1000
+ WHERE oid = partition_relid
1001
1001
INTO v_relkind;
1002
1002
1003
1003
/*
@@ -1006,9 +1006,9 @@ BEGIN
1006
1006
* DROP TABLE or DROP FOREIGN TABLE.
1007
1007
*/
1008
1008
IF v_relkind = ' f' THEN
1009
- EXECUTE format(' DROP FOREIGN TABLE %s' , partition ::TEXT );
1009
+ EXECUTE format(' DROP FOREIGN TABLE %s' , partition_relid ::TEXT );
1010
1010
ELSE
1011
- EXECUTE format(' DROP TABLE %s' , partition ::TEXT );
1011
+ EXECUTE format(' DROP TABLE %s' , partition_relid ::TEXT );
1012
1012
END IF;
1013
1013
1014
1014
/* Invalidate cache */
@@ -1026,7 +1026,7 @@ SET pg_pathman.enable_partitionfilter = off; /* ensures that PartitionFilter is
1026
1026
*/
1027
1027
CREATE OR REPLACE FUNCTION @extschema@.attach_range_partition(
1028
1028
parent_relid REGCLASS,
1029
- partition REGCLASS,
1029
+ partition_relid REGCLASS,
1030
1030
start_value ANYELEMENT,
1031
1031
end_value ANYELEMENT)
1032
1032
RETURNS TEXT AS
@@ -1038,29 +1038,29 @@ DECLARE
1038
1038
1039
1039
BEGIN
1040
1040
PERFORM @extschema@.validate_relname(parent_relid);
1041
- PERFORM @extschema@.validate_relname(partition );
1041
+ PERFORM @extschema@.validate_relname(partition_relid );
1042
1042
1043
1043
/* Acquire lock on parent */
1044
1044
PERFORM @extschema@.lock_partitioned_relation(parent_relid);
1045
1045
1046
1046
/* Ignore temporary tables */
1047
1047
SELECT relpersistence FROM pg_catalog .pg_class
1048
- WHERE oid = partition INTO rel_persistence;
1048
+ WHERE oid = partition_relid INTO rel_persistence;
1049
1049
1050
1050
IF rel_persistence = ' t' ::CHAR THEN
1051
1051
RAISE EXCEPTION ' temporary table "%" cannot be used as a partition' ,
1052
- partition ::TEXT ;
1052
+ partition_relid ::TEXT ;
1053
1053
END IF;
1054
1054
1055
1055
/* check range overlap */
1056
1056
PERFORM @extschema@.check_range_available(parent_relid, start_value, end_value);
1057
1057
1058
- IF NOT @extschema@.validate_relations_equality(parent_relid, partition ) THEN
1058
+ IF NOT @extschema@.validate_relations_equality(parent_relid, partition_relid ) THEN
1059
1059
RAISE EXCEPTION ' partition must have the exact same structure as parent' ;
1060
1060
END IF;
1061
1061
1062
1062
/* Set inheritance */
1063
- EXECUTE format(' ALTER TABLE %s INHERIT %s' , partition , parent_relid);
1063
+ EXECUTE format(' ALTER TABLE %s INHERIT %s' , partition_relid , parent_relid);
1064
1064
1065
1065
v_attname := attname FROM @extschema@.pathman_config WHERE partrel = parent_relid;
1066
1066
@@ -1070,9 +1070,9 @@ BEGIN
1070
1070
1071
1071
/* Set check constraint */
1072
1072
EXECUTE format(' ALTER TABLE %s ADD CONSTRAINT %s CHECK (%s)' ,
1073
- partition ::TEXT ,
1074
- @extschema@.build_check_constraint_name(partition , v_attname),
1075
- @extschema@.build_range_condition(partition ,
1073
+ partition_relid ::TEXT ,
1074
+ @extschema@.build_check_constraint_name(partition_relid , v_attname),
1075
+ @extschema@.build_range_condition(partition_relid ,
1076
1076
v_attname,
1077
1077
start_value,
1078
1078
end_value));
@@ -1086,15 +1086,15 @@ BEGIN
1086
1086
INTO v_init_callback;
1087
1087
1088
1088
PERFORM @extschema@.invoke_on_partition_created_callback(parent_relid,
1089
- partition ,
1089
+ partition_relid ,
1090
1090
v_init_callback,
1091
1091
start_value,
1092
1092
end_value);
1093
1093
1094
1094
/* Invalidate cache */
1095
1095
PERFORM @extschema@.on_update_partitions(parent_relid);
1096
1096
1097
- RETURN partition ;
1097
+ RETURN partition_relid ;
1098
1098
END
1099
1099
$$
1100
1100
LANGUAGE plpgsql;
@@ -1104,15 +1104,15 @@ LANGUAGE plpgsql;
1104
1104
* Detach range partition
1105
1105
*/
1106
1106
CREATE OR REPLACE FUNCTION @extschema@.detach_range_partition(
1107
- partition REGCLASS)
1107
+ partition_relid REGCLASS)
1108
1108
RETURNS TEXT AS
1109
1109
$$
1110
1110
DECLARE
1111
1111
v_attname TEXT ;
1112
1112
parent_relid REGCLASS;
1113
1113
1114
1114
BEGIN
1115
- parent_relid := @extschema@.get_parent_of_partition(partition );
1115
+ parent_relid := @extschema@.get_parent_of_partition(partition_relid );
1116
1116
1117
1117
/* Acquire lock on parent */
1118
1118
PERFORM @extschema@.lock_partitioned_relation(parent_relid);
@@ -1127,18 +1127,18 @@ BEGIN
1127
1127
1128
1128
/* Remove inheritance */
1129
1129
EXECUTE format(' ALTER TABLE %s NO INHERIT %s' ,
1130
- partition ::TEXT ,
1130
+ partition_relid ::TEXT ,
1131
1131
parent_relid::TEXT );
1132
1132
1133
1133
/* Remove check constraint */
1134
1134
EXECUTE format(' ALTER TABLE %s DROP CONSTRAINT %s' ,
1135
- partition ::TEXT ,
1136
- @extschema@.build_check_constraint_name(partition , v_attname));
1135
+ partition_relid ::TEXT ,
1136
+ @extschema@.build_check_constraint_name(partition_relid , v_attname));
1137
1137
1138
1138
/* Invalidate cache */
1139
1139
PERFORM @extschema@.on_update_partitions(parent_relid);
1140
1140
1141
- RETURN partition ;
1141
+ RETURN partition_relid ;
1142
1142
END
1143
1143
$$
1144
1144
LANGUAGE plpgsql;
0 commit comments