Skip to content

Commit 4886da8

Browse files
committed
Mark advisory-lock functions as parallel restricted, not parallel unsafe.
There seems no good reason not to allow a parallel leader to execute these functions. (The workers still can't, though. Although the code would work, any such lock would go away at worker exit, which is not the documented behavior of advisory locks.) Discussion: https://postgr.es/m/11847.1564496844@sss.pgh.pa.us
1 parent fd6ec93 commit 4886da8

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

src/include/catalog/catversion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@
5353
*/
5454

5555
/* yyyymmddN */
56-
#define CATALOG_VERSION_NO 201907222
56+
#define CATALOG_VERSION_NO 201908011
5757

5858
#endif

src/include/catalog/pg_proc.dat

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7951,87 +7951,87 @@
79517951

79527952
# userlock replacements
79537953
{ oid => '2880', descr => 'obtain exclusive advisory lock',
7954-
proname => 'pg_advisory_lock', provolatile => 'v', proparallel => 'u',
7954+
proname => 'pg_advisory_lock', provolatile => 'v', proparallel => 'r',
79557955
prorettype => 'void', proargtypes => 'int8',
79567956
prosrc => 'pg_advisory_lock_int8' },
79577957
{ oid => '3089', descr => 'obtain exclusive advisory lock',
7958-
proname => 'pg_advisory_xact_lock', provolatile => 'v', proparallel => 'u',
7958+
proname => 'pg_advisory_xact_lock', provolatile => 'v', proparallel => 'r',
79597959
prorettype => 'void', proargtypes => 'int8',
79607960
prosrc => 'pg_advisory_xact_lock_int8' },
79617961
{ oid => '2881', descr => 'obtain shared advisory lock',
7962-
proname => 'pg_advisory_lock_shared', provolatile => 'v', proparallel => 'u',
7962+
proname => 'pg_advisory_lock_shared', provolatile => 'v', proparallel => 'r',
79637963
prorettype => 'void', proargtypes => 'int8',
79647964
prosrc => 'pg_advisory_lock_shared_int8' },
79657965
{ oid => '3090', descr => 'obtain shared advisory lock',
79667966
proname => 'pg_advisory_xact_lock_shared', provolatile => 'v',
7967-
proparallel => 'u', prorettype => 'void', proargtypes => 'int8',
7967+
proparallel => 'r', prorettype => 'void', proargtypes => 'int8',
79687968
prosrc => 'pg_advisory_xact_lock_shared_int8' },
79697969
{ oid => '2882', descr => 'obtain exclusive advisory lock if available',
7970-
proname => 'pg_try_advisory_lock', provolatile => 'v', proparallel => 'u',
7970+
proname => 'pg_try_advisory_lock', provolatile => 'v', proparallel => 'r',
79717971
prorettype => 'bool', proargtypes => 'int8',
79727972
prosrc => 'pg_try_advisory_lock_int8' },
79737973
{ oid => '3091', descr => 'obtain exclusive advisory lock if available',
79747974
proname => 'pg_try_advisory_xact_lock', provolatile => 'v',
7975-
proparallel => 'u', prorettype => 'bool', proargtypes => 'int8',
7975+
proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
79767976
prosrc => 'pg_try_advisory_xact_lock_int8' },
79777977
{ oid => '2883', descr => 'obtain shared advisory lock if available',
79787978
proname => 'pg_try_advisory_lock_shared', provolatile => 'v',
7979-
proparallel => 'u', prorettype => 'bool', proargtypes => 'int8',
7979+
proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
79807980
prosrc => 'pg_try_advisory_lock_shared_int8' },
79817981
{ oid => '3092', descr => 'obtain shared advisory lock if available',
79827982
proname => 'pg_try_advisory_xact_lock_shared', provolatile => 'v',
7983-
proparallel => 'u', prorettype => 'bool', proargtypes => 'int8',
7983+
proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
79847984
prosrc => 'pg_try_advisory_xact_lock_shared_int8' },
79857985
{ oid => '2884', descr => 'release exclusive advisory lock',
7986-
proname => 'pg_advisory_unlock', provolatile => 'v', proparallel => 'u',
7986+
proname => 'pg_advisory_unlock', provolatile => 'v', proparallel => 'r',
79877987
prorettype => 'bool', proargtypes => 'int8',
79887988
prosrc => 'pg_advisory_unlock_int8' },
79897989
{ oid => '2885', descr => 'release shared advisory lock',
79907990
proname => 'pg_advisory_unlock_shared', provolatile => 'v',
7991-
proparallel => 'u', prorettype => 'bool', proargtypes => 'int8',
7991+
proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
79927992
prosrc => 'pg_advisory_unlock_shared_int8' },
79937993
{ oid => '2886', descr => 'obtain exclusive advisory lock',
7994-
proname => 'pg_advisory_lock', provolatile => 'v', proparallel => 'u',
7994+
proname => 'pg_advisory_lock', provolatile => 'v', proparallel => 'r',
79957995
prorettype => 'void', proargtypes => 'int4 int4',
79967996
prosrc => 'pg_advisory_lock_int4' },
79977997
{ oid => '3093', descr => 'obtain exclusive advisory lock',
7998-
proname => 'pg_advisory_xact_lock', provolatile => 'v', proparallel => 'u',
7998+
proname => 'pg_advisory_xact_lock', provolatile => 'v', proparallel => 'r',
79997999
prorettype => 'void', proargtypes => 'int4 int4',
80008000
prosrc => 'pg_advisory_xact_lock_int4' },
80018001
{ oid => '2887', descr => 'obtain shared advisory lock',
8002-
proname => 'pg_advisory_lock_shared', provolatile => 'v', proparallel => 'u',
8002+
proname => 'pg_advisory_lock_shared', provolatile => 'v', proparallel => 'r',
80038003
prorettype => 'void', proargtypes => 'int4 int4',
80048004
prosrc => 'pg_advisory_lock_shared_int4' },
80058005
{ oid => '3094', descr => 'obtain shared advisory lock',
80068006
proname => 'pg_advisory_xact_lock_shared', provolatile => 'v',
8007-
proparallel => 'u', prorettype => 'void', proargtypes => 'int4 int4',
8007+
proparallel => 'r', prorettype => 'void', proargtypes => 'int4 int4',
80088008
prosrc => 'pg_advisory_xact_lock_shared_int4' },
80098009
{ oid => '2888', descr => 'obtain exclusive advisory lock if available',
8010-
proname => 'pg_try_advisory_lock', provolatile => 'v', proparallel => 'u',
8010+
proname => 'pg_try_advisory_lock', provolatile => 'v', proparallel => 'r',
80118011
prorettype => 'bool', proargtypes => 'int4 int4',
80128012
prosrc => 'pg_try_advisory_lock_int4' },
80138013
{ oid => '3095', descr => 'obtain exclusive advisory lock if available',
80148014
proname => 'pg_try_advisory_xact_lock', provolatile => 'v',
8015-
proparallel => 'u', prorettype => 'bool', proargtypes => 'int4 int4',
8015+
proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
80168016
prosrc => 'pg_try_advisory_xact_lock_int4' },
80178017
{ oid => '2889', descr => 'obtain shared advisory lock if available',
80188018
proname => 'pg_try_advisory_lock_shared', provolatile => 'v',
8019-
proparallel => 'u', prorettype => 'bool', proargtypes => 'int4 int4',
8019+
proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
80208020
prosrc => 'pg_try_advisory_lock_shared_int4' },
80218021
{ oid => '3096', descr => 'obtain shared advisory lock if available',
80228022
proname => 'pg_try_advisory_xact_lock_shared', provolatile => 'v',
8023-
proparallel => 'u', prorettype => 'bool', proargtypes => 'int4 int4',
8023+
proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
80248024
prosrc => 'pg_try_advisory_xact_lock_shared_int4' },
80258025
{ oid => '2890', descr => 'release exclusive advisory lock',
8026-
proname => 'pg_advisory_unlock', provolatile => 'v', proparallel => 'u',
8026+
proname => 'pg_advisory_unlock', provolatile => 'v', proparallel => 'r',
80278027
prorettype => 'bool', proargtypes => 'int4 int4',
80288028
prosrc => 'pg_advisory_unlock_int4' },
80298029
{ oid => '2891', descr => 'release shared advisory lock',
80308030
proname => 'pg_advisory_unlock_shared', provolatile => 'v',
8031-
proparallel => 'u', prorettype => 'bool', proargtypes => 'int4 int4',
8031+
proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
80328032
prosrc => 'pg_advisory_unlock_shared_int4' },
80338033
{ oid => '2892', descr => 'release all advisory locks',
8034-
proname => 'pg_advisory_unlock_all', provolatile => 'v', proparallel => 'u',
8034+
proname => 'pg_advisory_unlock_all', provolatile => 'v', proparallel => 'r',
80358035
prorettype => 'void', proargtypes => '', prosrc => 'pg_advisory_unlock_all' },
80368036

80378037
# XML support

0 commit comments

Comments
 (0)