@@ -94,15 +94,12 @@ DECLARE
94
94
i INTEGER ;
95
95
96
96
BEGIN
97
- /* Acquire exclusive lock on parent */
98
- PERFORM @
[email protected] _partitioned_relation(parent_relid);
99
-
100
97
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);
106
103
END IF;
107
104
108
105
PERFORM @
[email protected] _relname(parent_relid);
@@ -196,15 +193,12 @@ DECLARE
196
193
i INTEGER ;
197
194
198
195
BEGIN
199
- /* Acquire exclusive lock on parent */
200
- PERFORM @
[email protected] _partitioned_relation(parent_relid);
201
-
202
196
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);
208
202
END IF;
209
203
210
204
PERFORM @
[email protected] _relname(parent_relid);
@@ -296,15 +290,12 @@ DECLARE
296
290
part_count INTEGER := 0 ;
297
291
298
292
BEGIN
299
- /* Acquire exclusive lock on parent */
300
- PERFORM @
[email protected] _partitioned_relation(parent_relid);
301
-
302
293
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);
308
299
END IF;
309
300
310
301
PERFORM @
[email protected] _relname(parent_relid);
@@ -369,15 +360,12 @@ DECLARE
369
360
part_count INTEGER := 0 ;
370
361
371
362
BEGIN
372
- /* Acquire exclusive lock on parent */
373
- PERFORM @
[email protected] _partitioned_relation(parent_relid);
374
-
375
363
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);
381
369
END IF;
382
370
383
371
PERFORM @
[email protected] _relname(parent_relid);
@@ -518,12 +506,11 @@ BEGIN
518
506
v_part_relname :
= @
[email protected] _relname(p_partition);
519
507
v_parent_relid
= @
[email protected] _parent_of_partition(p_partition);
520
508
521
- /* Acquire exclusive lock on parent */
509
+ /* Acquire lock on parent */
522
510
PERFORM @
[email protected] _partitioned_relation(v_parent_relid);
523
511
524
512
/* Acquire data modification lock (prevent further modifications) */
525
- PERFORM @
[email protected] _blocking_partitioning_checks(p_partition);
526
- PERFORM @
[email protected] _relation_modification(p_partition);
513
+ PERFORM @
[email protected] _relation_modification(p_partition);
527
514
528
515
SELECT attname, parttype
529
516
@@ -610,16 +597,14 @@ BEGIN
610
597
v_parent_relid2 :
= @
[email protected] _parent_of_partition(partition2);
611
598
612
599
/* Acquire data modification locks (prevent further modifications) */
613
- PERFORM @
[email protected] _blocking_partitioning_checks(partition1);
614
- PERFORM @
[email protected] _relation_modification(partition1);
615
- PERFORM @
[email protected] _blocking_partitioning_checks(partition2);
616
- PERFORM @
[email protected] _relation_modification(partition2);
600
+ PERFORM @
[email protected] _relation_modification(partition1);
601
+ PERFORM @
[email protected] _relation_modification(partition2);
617
602
618
603
IF v_parent_relid1 != v_parent_relid2 THEN
619
604
RAISE EXCEPTION ' Cannot merge partitions with different parents' ;
620
605
END IF;
621
606
622
- /* Acquire exclusive lock on parent */
607
+ /* Acquire lock on parent */
623
608
PERFORM @
[email protected] _partitioned_relation(v_parent_relid1);
624
609
625
610
SELECT attname, parttype
@@ -731,7 +716,7 @@ DECLARE
731
716
v_interval TEXT ;
732
717
733
718
BEGIN
734
- /* Acquire exclusive lock on parent */
719
+ /* Acquire lock on parent */
735
720
PERFORM @
[email protected] _partitioned_relation(parent_relid);
736
721
737
722
SELECT attname, range_interval
@@ -923,7 +908,7 @@ DECLARE
923
908
v_part_name TEXT ;
924
909
925
910
BEGIN
926
- /* Acquire exclusive lock on parent */
911
+ /* Acquire lock on parent */
927
912
PERFORM @
[email protected] _partitioned_relation(parent_relid);
928
913
929
914
IF p_start_value >= p_end_value THEN
@@ -964,7 +949,7 @@ BEGIN
964
949
parent_relid :
= @
[email protected] _parent_of_partition(p_partition);
965
950
part_name := p_partition::TEXT ; /* save the name to be returned */
966
951
967
- /* Acquire exclusive lock on parent */
952
+ /* Acquire lock on parent */
968
953
PERFORM @
[email protected] _partitioned_relation(parent_relid);
969
954
970
955
/* Drop table */
@@ -994,7 +979,7 @@ DECLARE
994
979
rel_persistence CHAR ;
995
980
996
981
BEGIN
997
- /* Acquire exclusive lock on parent */
982
+ /* Acquire lock on parent */
998
983
PERFORM @
[email protected] _partitioned_relation(parent_relid);
999
984
1000
985
/* Ignore temporary tables */
@@ -1054,7 +1039,7 @@ DECLARE
1054
1039
BEGIN
1055
1040
parent_relid
= @
[email protected] _parent_of_partition(p_partition);
1056
1041
1057
- /* Acquire exclusive lock on parent */
1042
+ /* Acquire lock on parent */
1058
1043
PERFORM @
[email protected] _partitioned_relation(parent_relid);
1059
1044
1060
1045
v_attname := attname
0 commit comments