Josh Berkus wrote:
> On 6/3/11 11:01 AM, Bruce Momjian wrote:
> > According to our documentation, 'userlocks' were removed in PG 8.2:
> >
> > http://developer.postgresql.org/pgdocs/postgres/runtime-config-developer.html
>
> I take it this doesn't trace advisory locks, and trace_locks does?
>
> If so, then by all means remove the code. I highly doubt anyone is
> using that option anyway ...
The attached, applied patch removes all "traces" of trace_userlocks.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
new file mode 100644
index d3a8b26..fa2dcf3
*** a/doc/src/sgml/config.sgml
--- b/doc/src/sgml/config.sgml
*************** LOG: CleanUpLock: deleting: lock(0xb7ac
*** 6193,6220 ****
</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>
<primary><varname>trace_lock_oidmin</> configuration parameter</primary>
--- 6193,6198 ----
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c
new file mode 100644
index 905502f..ed8344f
*** a/src/backend/storage/lmgr/lock.c
--- b/src/backend/storage/lmgr/lock.c
*************** static const LockMethodData user_lockmet
*** 213,224 ****
AccessExclusiveLock, /* highest valid lock mode number */
true,
LockConflicts,
! lock_mode_names,
! #ifdef LOCK_DEBUG
! &Trace_userlocks
! #else
! &Dummy_trace
! #endif
};
/*
--- 213,219 ----
AccessExclusiveLock, /* highest valid lock mode number */
true,
LockConflicts,
! lock_mode_names
};
/*
*************** static ResourceOwner awaitedOwner;
*** 276,282 ****
int Trace_lock_oidmin = FirstNormalObjectId;
bool Trace_locks = false;
- bool Trace_userlocks = false;
int Trace_lock_table = 0;
bool Debug_deadlocks = false;
--- 271,276 ----
diff --git a/src/backend/utils/misc/check_guc b/src/backend/utils/misc/check_guc
new file mode 100755
index 293fb03..91c1c58
*** a/src/backend/utils/misc/check_guc
--- b/src/backend/utils/misc/check_guc
*************** INTENTIONALLY_NOT_INCLUDED="autocommit d
*** 20,26 ****
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 trace_userlocks transaction_isolation transaction_read_only \
zero_damaged_pages"
### What options are listed in postgresql.conf.sample, but don't appear
--- 20,26 ----
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 \
zero_damaged_pages"
### What options are listed in postgresql.conf.sample, but don't appear
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
new file mode 100644
index 106096f..f1d35a9
*** a/src/backend/utils/misc/guc.c
--- b/src/backend/utils/misc/guc.c
*************** static struct config_bool ConfigureNames
*** 1059,1074 ****
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."),
NULL,
--- 1059,1064 ----
diff --git a/src/include/storage/lock.h b/src/include/storage/lock.h
new file mode 100644
index e106ad5..bc746a3
*** a/src/include/storage/lock.h
--- b/src/include/storage/lock.h
*************** extern int max_locks_per_xact;
*** 34,40 ****
#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 */
--- 34,39 ----