|
|
|
@ -1,6 +1,7 @@ |
|
|
|
|
-- |
|
|
|
|
-- ADVISORY LOCKS |
|
|
|
|
-- |
|
|
|
|
SELECT oid AS datoid FROM pg_database WHERE datname = current_database() \gset |
|
|
|
|
BEGIN; |
|
|
|
|
SELECT |
|
|
|
|
pg_advisory_xact_lock(1), pg_advisory_xact_lock_shared(2), |
|
|
|
@ -11,7 +12,7 @@ SELECT |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT locktype, classid, objid, objsubid, mode, granted |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid |
|
|
|
|
ORDER BY classid, objid, objsubid; |
|
|
|
|
locktype | classid | objid | objsubid | mode | granted |
|
|
|
|
----------+---------+-------+----------+---------------+--------- |
|
|
|
@ -28,7 +29,7 @@ SELECT pg_advisory_unlock_all(); |
|
|
|
|
|
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory'; |
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid; |
|
|
|
|
count |
|
|
|
|
------- |
|
|
|
|
4 |
|
|
|
@ -49,7 +50,7 @@ WARNING: you don't own a lock of type ShareLock |
|
|
|
|
|
|
|
|
|
-- automatically release xact locks at commit |
|
|
|
|
COMMIT; |
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory'; |
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid; |
|
|
|
|
count |
|
|
|
|
------- |
|
|
|
|
0 |
|
|
|
@ -66,7 +67,7 @@ SELECT |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT locktype, classid, objid, objsubid, mode, granted |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid |
|
|
|
|
ORDER BY classid, objid, objsubid; |
|
|
|
|
locktype | classid | objid | objsubid | mode | granted |
|
|
|
|
----------+---------+-------+----------+---------------+--------- |
|
|
|
@ -86,7 +87,7 @@ SELECT |
|
|
|
|
|
|
|
|
|
ROLLBACK; |
|
|
|
|
SELECT locktype, classid, objid, objsubid, mode, granted |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid |
|
|
|
|
ORDER BY classid, objid, objsubid; |
|
|
|
|
locktype | classid | objid | objsubid | mode | granted |
|
|
|
|
----------+---------+-------+----------+---------------+--------- |
|
|
|
@ -111,7 +112,7 @@ WARNING: you don't own a lock of type ShareLock |
|
|
|
|
t | f | t | f | t | f | t | f |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory'; |
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid; |
|
|
|
|
count |
|
|
|
|
------- |
|
|
|
|
0 |
|
|
|
@ -128,7 +129,7 @@ SELECT |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT locktype, classid, objid, objsubid, mode, granted |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid |
|
|
|
|
ORDER BY classid, objid, objsubid; |
|
|
|
|
locktype | classid | objid | objsubid | mode | granted |
|
|
|
|
----------+---------+-------+----------+---------------+--------- |
|
|
|
@ -148,7 +149,7 @@ SELECT |
|
|
|
|
|
|
|
|
|
ROLLBACK; |
|
|
|
|
SELECT locktype, classid, objid, objsubid, mode, granted |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid |
|
|
|
|
ORDER BY classid, objid, objsubid; |
|
|
|
|
locktype | classid | objid | objsubid | mode | granted |
|
|
|
|
----------+---------+-------+----------+---------------+--------- |
|
|
|
@ -165,7 +166,7 @@ SELECT pg_advisory_unlock_all(); |
|
|
|
|
|
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory'; |
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid; |
|
|
|
|
count |
|
|
|
|
------- |
|
|
|
|
0 |
|
|
|
@ -184,7 +185,7 @@ SELECT |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT locktype, classid, objid, objsubid, mode, granted |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid |
|
|
|
|
ORDER BY classid, objid, objsubid; |
|
|
|
|
locktype | classid | objid | objsubid | mode | granted |
|
|
|
|
----------+---------+-------+----------+---------------+--------- |
|
|
|
@ -195,7 +196,7 @@ SELECT locktype, classid, objid, objsubid, mode, granted |
|
|
|
|
(4 rows) |
|
|
|
|
|
|
|
|
|
COMMIT; |
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory'; |
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid; |
|
|
|
|
count |
|
|
|
|
------- |
|
|
|
|
0 |
|
|
|
@ -213,7 +214,7 @@ SELECT |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT locktype, classid, objid, objsubid, mode, granted |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid |
|
|
|
|
ORDER BY classid, objid, objsubid; |
|
|
|
|
locktype | classid | objid | objsubid | mode | granted |
|
|
|
|
----------+---------+-------+----------+---------------+--------- |
|
|
|
@ -233,7 +234,7 @@ SELECT |
|
|
|
|
t | t | t | t | t | t | t | t |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory'; |
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid; |
|
|
|
|
count |
|
|
|
|
------- |
|
|
|
|
0 |
|
|
|
@ -251,7 +252,7 @@ SELECT |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT locktype, classid, objid, objsubid, mode, granted |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' |
|
|
|
|
FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid |
|
|
|
|
ORDER BY classid, objid, objsubid; |
|
|
|
|
locktype | classid | objid | objsubid | mode | granted |
|
|
|
|
----------+---------+-------+----------+---------------+--------- |
|
|
|
@ -267,7 +268,7 @@ SELECT pg_advisory_unlock_all(); |
|
|
|
|
|
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory'; |
|
|
|
|
SELECT count(*) FROM pg_locks WHERE locktype = 'advisory' AND database = :datoid; |
|
|
|
|
count |
|
|
|
|
------- |
|
|
|
|
0 |
|
|
|
|