Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1daee0c

Browse files
committed
[PGPRO-6538] Changed lock order
The parent table is locked first and then are locked the partitions.
1 parente57e04d commit1daee0c

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

‎src/pl_range_funcs.c‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -683,9 +683,6 @@ merge_range_partitions(PG_FUNCTION_ARGS)
683683
/* Extract partition Oids from array */
684684
parts[i]=DatumGetObjectId(datums[i]);
685685

686-
/* Prevent modification of partitions */
687-
LockRelationOid(parts[i],AccessExclusiveLock);
688-
689686
/* Check if all partitions are from the same parent */
690687
cur_parent=get_parent_of_partition(parts[i]);
691688

@@ -708,6 +705,10 @@ merge_range_partitions(PG_FUNCTION_ARGS)
708705
/* Prevent changes in partitioning scheme */
709706
LockRelationOid(parent,ShareUpdateExclusiveLock);
710707

708+
/* Prevent modification of partitions */
709+
for (i=0;i<nparts;i++)
710+
LockRelationOid(parts[i],AccessExclusiveLock);
711+
711712
/* Emit an error if it is not partitioned by RANGE */
712713
prel=get_pathman_relation_info(parent);
713714
shout_if_prel_is_invalid(parent,prel,PT_RANGE);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp