Revert removal of trace_userlocks, because userlocks aren't gone.

This reverts commit 0180bd6180.
contrib/userlock is gone, but user-level locking still exists,
and is exposed via the pg_advisory* family of functions.
This commit is contained in:
Robert Haas 2011-11-10 17:54:27 -05:00
parent cf22e851b6
commit 71b2b657c0
5 changed files with 41 additions and 2 deletions

View File

@ -6217,6 +6217,28 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
</listitem>
</varlistentry>
<varlistentry>
<term><varname>trace_userlocks</varname> (<type>boolean</type>)</term>
<indexterm>
<primary><varname>trace_userlocks</> configuration parameter</primary>
</indexterm>
<listitem>
<para>
If on, emit information about user lock usage. Output is the same
as for <symbol>trace_locks</symbol>, only for user locks.
</para>
<para>
User locks were removed as of PostgreSQL version 8.2. This option
currently has no effect.
</para>
<para>
This parameter is only available if the <symbol>LOCK_DEBUG</symbol>
macro was defined when <productname>PostgreSQL</productname> was
compiled.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>trace_lock_oidmin</varname> (<type>integer</type>)</term>
<indexterm>

View File

@ -213,7 +213,12 @@ static const LockMethodData user_lockmethod = {
AccessExclusiveLock, /* highest valid lock mode number */
true,
LockConflicts,
lock_mode_names
lock_mode_names,
#ifdef LOCK_DEBUG
&Trace_userlocks
#else
&Dummy_trace
#endif
};
/*
@ -271,6 +276,7 @@ static ResourceOwner awaitedOwner;
int Trace_lock_oidmin = FirstNormalObjectId;
bool Trace_locks = false;
bool Trace_userlocks = false;
int Trace_lock_table = 0;
bool Debug_deadlocks = false;

View File

@ -20,7 +20,7 @@ INTENTIONALLY_NOT_INCLUDED="autocommit debug_deadlocks \
is_superuser lc_collate lc_ctype lc_messages lc_monetary lc_numeric lc_time \
pre_auth_delay role seed server_encoding server_version server_version_int \
session_authorization trace_lock_oidmin trace_lock_table trace_locks trace_lwlocks \
trace_notify transaction_isolation transaction_read_only \
trace_notify trace_userlocks transaction_isolation transaction_read_only \
zero_damaged_pages"
### What options are listed in postgresql.conf.sample, but don't appear

View File

@ -1060,6 +1060,16 @@ static struct config_bool ConfigureNamesBool[] =
false,
NULL, NULL, NULL
},
{
{"trace_userlocks", PGC_SUSET, DEVELOPER_OPTIONS,
gettext_noop("No description available."),
NULL,
GUC_NOT_IN_SAMPLE
},
&Trace_userlocks,
false,
NULL, NULL, NULL
},
{
{"trace_lwlocks", PGC_SUSET, DEVELOPER_OPTIONS,
gettext_noop("No description available."),

View File

@ -34,6 +34,7 @@ extern int max_locks_per_xact;
#ifdef LOCK_DEBUG
extern int Trace_lock_oidmin;
extern bool Trace_locks;
extern bool Trace_userlocks;
extern int Trace_lock_table;
extern bool Debug_deadlocks;
#endif /* LOCK_DEBUG */