diff --git a/doc/src/sgml/ref/lock.sgml b/doc/src/sgml/ref/lock.sgml
index dc702b0cdb8..804872d4a10 100644
--- a/doc/src/sgml/ref/lock.sgml
+++ b/doc/src/sgml/ref/lock.sgml
@@ -18,7 +18,7 @@
1998-09-24
- LOCK [ TABLE ] table
+ LOCK [ TABLE ] [[IN] [ROW|ACCESS] [SHARE|EXCLUSIVE] MODE] table
@@ -55,20 +55,6 @@
-
-
- DELETE 0
-
-
-
- Message returned on a successful lock.
- LOCK is implemented as a
- DELETE FROM table
- which is guaranteed to not delete any rows.
-
-
-
-
ERROR table: Table does not exist.
@@ -92,8 +78,9 @@
Description
- LOCK locks in exclusive mode a table inside
- a transaction. The classic use for this is
+ By default, LOCK locks in exclusive mode a table inside
+ a transaction. Various options allow shared access, or row-level locking
+ control. The classic use for this is
the case where you want to select some data, then
update it inside a transaction.
If you don't explicit lock a table using LOCK statement, it will be
@@ -183,7 +170,7 @@
There is no LOCK TABLE in SQL92,
which instead uses SET TRANSACTION to specify
- concurrency level on transactions.
+ concurrency level on transactions. We support that too.
diff --git a/src/bin/psql/psqlHelp.h b/src/bin/psql/psqlHelp.h
index 6840786358f..507b0d54b4d 100644
--- a/src/bin/psql/psqlHelp.h
+++ b/src/bin/psql/psqlHelp.h
@@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: psqlHelp.h,v 1.66 1999/06/03 18:37:59 momjian Exp $
+ * $Id: psqlHelp.h,v 1.67 1999/06/03 19:17:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -283,7 +283,8 @@ static struct _helpStruct QL_HELP[] = {
{"lock",
"exclusive lock a table inside a transaction",
"\
-\tLOCK [TABLE] class_name;"},
+\tLOCK [TABLE] class_name \n\
+\t[[IN] [ROW|ACCESS] [SHARE|EXCLUSIVE] MODE];"},
{"move",
"move an cursor position",
"\
diff --git a/src/man/lock.l b/src/man/lock.l
index 440e491b863..5f71a8a5d6a 100644
--- a/src/man/lock.l
+++ b/src/man/lock.l
@@ -1,16 +1,20 @@
.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
-.\" $Header: /cvsroot/pgsql/src/man/Attic/lock.l,v 1.5 1998/03/23 15:09:34 momjian Exp $
+.\" $Header: /cvsroot/pgsql/src/man/Attic/lock.l,v 1.6 1999/06/03 19:18:00 momjian Exp $
.TH FETCH SQL 01/23/93 PostgreSQL PostgreSQL
.SH NAME
lock - exclusive lock a table
.SH SYNOPSIS
.nf
-\fBlock\fR [\fBtable\fR] classname
+\fBlock\fR [\fBtable\fR] classname [[IN] [ROW|ACCESS] [SHARE|EXCLUSIVE] MODE]
.fi
.SH DESCRIPTION
+By default,
.BR lock
-exclusive locks a table inside a transaction. The classic use for this
+exclusive locks an entire table inside a transaction.
+Various options allow shared access, or row-level locking control.
+.PP
+The classic use for this
is the case where you want to \fBselect\fP some data, then update it
inside a transaction. If you don't exclusive lock the table before the
\fBselect\fP, some other user may also read the selected data, and try