</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>
 
    AccessExclusiveLock,        /* highest valid lock mode number */
    true,
    LockConflicts,
-   lock_mode_names
+   lock_mode_names,
+#ifdef LOCK_DEBUG
+   &Trace_userlocks
+#else
+   &Dummy_trace
+#endif
 };
 
 /*
 
 int            Trace_lock_oidmin = FirstNormalObjectId;
 bool       Trace_locks = false;
+bool       Trace_userlocks = false;
 int            Trace_lock_table = 0;
 bool       Debug_deadlocks = false;
 
 
 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
 
        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."),
 
 #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 */