diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/storage/lmgr/deadlock.c | 12 | ||||
-rw-r--r-- | src/backend/storage/lmgr/lmgr.c | 3 | ||||
-rw-r--r-- | src/backend/utils/adt/lockfuncs.c | 16 |
3 files changed, 21 insertions, 10 deletions
diff --git a/src/backend/storage/lmgr/deadlock.c b/src/backend/storage/lmgr/deadlock.c index f75ca1da4cf..de8f8fe99c1 100644 --- a/src/backend/storage/lmgr/deadlock.c +++ b/src/backend/storage/lmgr/deadlock.c @@ -12,7 +12,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/lmgr/deadlock.c,v 1.42 2006/09/18 22:40:36 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/storage/lmgr/deadlock.c,v 1.43 2006/09/22 23:20:13 tgl Exp $ * * Interface: * @@ -872,8 +872,16 @@ DescribeLockTag(StringInfo buf, const LOCKTAG *lock) lock->locktag_field1); break; case LOCKTAG_USERLOCK: + /* reserved for old contrib code, now on pgfoundry */ appendStringInfo(buf, - _("user lock [%u,%u,%u,%u]"), + _("user lock [%u,%u,%u]"), + lock->locktag_field1, + lock->locktag_field2, + lock->locktag_field3); + break; + case LOCKTAG_ADVISORY: + appendStringInfo(buf, + _("advisory lock [%u,%u,%u,%u]"), lock->locktag_field1, lock->locktag_field2, lock->locktag_field3, diff --git a/src/backend/storage/lmgr/lmgr.c b/src/backend/storage/lmgr/lmgr.c index 4442d3909f0..28e862533df 100644 --- a/src/backend/storage/lmgr/lmgr.c +++ b/src/backend/storage/lmgr/lmgr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/lmgr/lmgr.c,v 1.87 2006/08/18 16:09:09 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/storage/lmgr/lmgr.c,v 1.88 2006/09/22 23:20:13 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -629,6 +629,7 @@ LockTagIsTemp(const LOCKTAG *tag) /* there are currently no non-table temp objects */ break; case LOCKTAG_USERLOCK: + case LOCKTAG_ADVISORY: /* assume these aren't temp */ break; } diff --git a/src/backend/utils/adt/lockfuncs.c b/src/backend/utils/adt/lockfuncs.c index f7c7deca8d9..a9d8b8b88f4 100644 --- a/src/backend/utils/adt/lockfuncs.c +++ b/src/backend/utils/adt/lockfuncs.c @@ -6,7 +6,7 @@ * Copyright (c) 2002-2006, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/lockfuncs.c,v 1.25 2006/09/18 22:40:37 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/lockfuncs.c,v 1.26 2006/09/22 23:20:14 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -28,7 +28,8 @@ static const char *const LockTagTypeNames[] = { "tuple", "transactionid", "object", - "userlock" + "userlock", + "advisory" }; /* Working status for pg_lock_status */ @@ -181,7 +182,7 @@ pg_lock_status(PG_FUNCTION_ARGS) MemSet(values, 0, sizeof(values)); MemSet(nulls, ' ', sizeof(nulls)); - if (lock->tag.locktag_type <= LOCKTAG_USERLOCK) + if (lock->tag.locktag_type <= LOCKTAG_ADVISORY) locktypename = LockTagTypeNames[lock->tag.locktag_type]; else { @@ -238,6 +239,7 @@ pg_lock_status(PG_FUNCTION_ARGS) break; case LOCKTAG_OBJECT: case LOCKTAG_USERLOCK: + case LOCKTAG_ADVISORY: default: /* treat unknown locktags like OBJECT */ values[1] = ObjectIdGetDatum(lock->tag.locktag_field1); values[6] = ObjectIdGetDatum(lock->tag.locktag_field2); @@ -270,7 +272,7 @@ pg_lock_status(PG_FUNCTION_ARGS) /* - * Functions for manipulating USERLOCK locks + * Functions for manipulating advisory locks * * We make use of the locktag fields as follows: * @@ -280,13 +282,13 @@ pg_lock_status(PG_FUNCTION_ARGS) * field4: 1 if using an int8 key, 2 if using 2 int4 keys */ #define SET_LOCKTAG_INT64(tag, key64) \ - SET_LOCKTAG_USERLOCK(tag, \ + SET_LOCKTAG_ADVISORY(tag, \ MyDatabaseId, \ (uint32) ((key64) >> 32), \ (uint32) (key64), \ 1) #define SET_LOCKTAG_INT32(tag, key1, key2) \ - SET_LOCKTAG_USERLOCK(tag, MyDatabaseId, key1, key2, 2) + SET_LOCKTAG_ADVISORY(tag, MyDatabaseId, key1, key2, 2) /* * pg_advisory_lock(int8) - acquire exclusive lock on an int8 key @@ -511,7 +513,7 @@ pg_advisory_unlock_shared_int4(PG_FUNCTION_ARGS) } /* - * pg_advisory_unlock_all() - release all userlocks + * pg_advisory_unlock_all() - release all advisory locks */ Datum pg_advisory_unlock_all(PG_FUNCTION_ARGS) |