@@ -94,15 +94,12 @@ DECLARE
9494 i INTEGER ;
9595
9696BEGIN
97- /* Acquire exclusive lock on parent */
98- PERFORM @extschema@.lock_partitioned_relation(parent_relid);
99-
10097 IF partition_data = true THEN
101- /* Perform some checks regarding the blocking partitioning */
102- PERFORM @extschema@.common_blocking_partitioning_checks (parent_relid);
103-
104- /* Acquire data modification lock (prevent further modifications) */
105- PERFORM @extschema@.lock_relation_modification (parent_relid);
98+ /* Acquire data modification lock */
99+ PERFORM @extschema@.prevent_relation_modification (parent_relid);
100+ ELSE
101+ /* Acquire lock on parent */
102+ PERFORM @extschema@.lock_partitioned_relation (parent_relid);
106103 END IF;
107104
108105 PERFORM @extschema@.validate_relname(parent_relid);
@@ -196,15 +193,12 @@ DECLARE
196193 i INTEGER ;
197194
198195BEGIN
199- /* Acquire exclusive lock on parent */
200- PERFORM @extschema@.lock_partitioned_relation(parent_relid);
201-
202196 IF partition_data = true THEN
203- /* Perform some checks regarding the blocking partitioning */
204- PERFORM @extschema@.common_blocking_partitioning_checks (parent_relid);
205-
206- /* Acquire data modification lock (prevent further modifications) */
207- PERFORM @extschema@.lock_relation_modification (parent_relid);
197+ /* Acquire data modification lock */
198+ PERFORM @extschema@.prevent_relation_modification (parent_relid);
199+ ELSE
200+ /* Acquire lock on parent */
201+ PERFORM @extschema@.lock_partitioned_relation (parent_relid);
208202 END IF;
209203
210204 PERFORM @extschema@.validate_relname(parent_relid);
@@ -296,15 +290,12 @@ DECLARE
296290 part_count INTEGER := 0 ;
297291
298292BEGIN
299- /* Acquire exclusive lock on parent */
300- PERFORM @extschema@.lock_partitioned_relation(parent_relid);
301-
302293 IF partition_data = true THEN
303- /* Perform some checks regarding the blocking partitioning */
304- PERFORM @extschema@.common_blocking_partitioning_checks (parent_relid);
305-
306- /* Acquire data modification lock (prevent further modifications) */
307- PERFORM @extschema@.lock_relation_modification (parent_relid);
294+ /* Acquire data modification lock */
295+ PERFORM @extschema@.prevent_relation_modification (parent_relid);
296+ ELSE
297+ /* Acquire lock on parent */
298+ PERFORM @extschema@.lock_partitioned_relation (parent_relid);
308299 END IF;
309300
310301 PERFORM @extschema@.validate_relname(parent_relid);
@@ -369,15 +360,12 @@ DECLARE
369360 part_count INTEGER := 0 ;
370361
371362BEGIN
372- /* Acquire exclusive lock on parent */
373- PERFORM @extschema@.lock_partitioned_relation(parent_relid);
374-
375363 IF partition_data = true THEN
376- /* Perform some checks regarding the blocking partitioning */
377- PERFORM @extschema@.common_blocking_partitioning_checks (parent_relid);
378-
379- /* Acquire data modification lock (prevent further modifications) */
380- PERFORM @extschema@.lock_relation_modification (parent_relid);
364+ /* Acquire data modification lock */
365+ PERFORM @extschema@.prevent_relation_modification (parent_relid);
366+ ELSE
367+ /* Acquire lock on parent */
368+ PERFORM @extschema@.lock_partitioned_relation (parent_relid);
381369 END IF;
382370
383371 PERFORM @extschema@.validate_relname(parent_relid);
@@ -518,12 +506,11 @@ BEGIN
518506 v_part_relname := @extschema@.validate_relname(p_partition);
519507 v_parent_relid = @extschema@.get_parent_of_partition(p_partition);
520508
521- /* Acquire exclusive lock on parent */
509+ /* Acquire lock on parent */
522510 PERFORM @extschema@.lock_partitioned_relation(v_parent_relid);
523511
524512 /* Acquire data modification lock (prevent further modifications) */
525- PERFORM @extschema@.common_blocking_partitioning_checks(p_partition);
526- PERFORM @extschema@.lock_relation_modification(p_partition);
513+ PERFORM @extschema@.prevent_relation_modification(p_partition);
527514
528515 SELECT attname, parttype
529516 FROM @extschema@.pathman_config
@@ -610,16 +597,14 @@ BEGIN
610597 v_parent_relid2 := @extschema@.get_parent_of_partition(partition2);
611598
612599 /* Acquire data modification locks (prevent further modifications) */
613- PERFORM @extschema@.common_blocking_partitioning_checks(partition1);
614- PERFORM @extschema@.lock_relation_modification(partition1);
615- PERFORM @extschema@.common_blocking_partitioning_checks(partition2);
616- PERFORM @extschema@.lock_relation_modification(partition2);
600+ PERFORM @extschema@.prevent_relation_modification(partition1);
601+ PERFORM @extschema@.prevent_relation_modification(partition2);
617602
618603 IF v_parent_relid1 != v_parent_relid2 THEN
619604 RAISE EXCEPTION ' Cannot merge partitions with different parents' ;
620605 END IF;
621606
622- /* Acquire exclusive lock on parent */
607+ /* Acquire lock on parent */
623608 PERFORM @extschema@.lock_partitioned_relation(v_parent_relid1);
624609
625610 SELECT attname, parttype
@@ -731,7 +716,7 @@ DECLARE
731716 v_interval TEXT ;
732717
733718BEGIN
734- /* Acquire exclusive lock on parent */
719+ /* Acquire lock on parent */
735720 PERFORM @extschema@.lock_partitioned_relation(parent_relid);
736721
737722 SELECT attname, range_interval
@@ -923,7 +908,7 @@ DECLARE
923908 v_part_name TEXT ;
924909
925910BEGIN
926- /* Acquire exclusive lock on parent */
911+ /* Acquire lock on parent */
927912 PERFORM @extschema@.lock_partitioned_relation(parent_relid);
928913
929914 IF p_start_value >= p_end_value THEN
@@ -964,7 +949,7 @@ BEGIN
964949 parent_relid := @extschema@.get_parent_of_partition(p_partition);
965950 part_name := p_partition::TEXT ; /* save the name to be returned */
966951
967- /* Acquire exclusive lock on parent */
952+ /* Acquire lock on parent */
968953 PERFORM @extschema@.lock_partitioned_relation(parent_relid);
969954
970955 /* Drop table */
@@ -994,7 +979,7 @@ DECLARE
994979 rel_persistence CHAR ;
995980
996981BEGIN
997- /* Acquire exclusive lock on parent */
982+ /* Acquire lock on parent */
998983 PERFORM @extschema@.lock_partitioned_relation(parent_relid);
999984
1000985 /* Ignore temporary tables */
@@ -1054,7 +1039,7 @@ DECLARE
10541039BEGIN
10551040 parent_relid = @extschema@.get_parent_of_partition(p_partition);
10561041
1057- /* Acquire exclusive lock on parent */
1042+ /* Acquire lock on parent */
10581043 PERFORM @extschema@.lock_partitioned_relation(parent_relid);
10591044
10601045 v_attname := attname
0 commit comments