diff --git a/doc/src/sgml/ref/lock.sgml b/doc/src/sgml/ref/lock.sgml index dc702b0cdb8550c21ebdcd87bf043248ee2f1551..804872d4a103776cefa1c2ea77d2c80e6f790147 100644 --- a/doc/src/sgml/ref/lock.sgml +++ b/doc/src/sgml/ref/lock.sgml @@ -18,7 +18,7 @@ <DATE>1998-09-24</DATE> </REFSYNOPSISDIVINFO> <SYNOPSIS> - LOCK [ TABLE ] <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE> + LOCK [ TABLE ] [[IN] [ROW|ACCESS] [SHARE|EXCLUSIVE] MODE] <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE> </SYNOPSIS> <REFSECT2 ID="R2-SQL-LOCK-1"> @@ -55,20 +55,6 @@ <PARA> <VARIABLELIST> - <VARLISTENTRY> - <TERM> - DELETE 0 - </TERM> - <LISTITEM> - <PARA> - Message returned on a successful lock. - <command>LOCK</command> is implemented as a - <command>DELETE FROM <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE></command> - which is guaranteed to not delete any rows. - </para> - </listitem> - </varlistentry> - <VARLISTENTRY> <TERM> ERROR <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE>: Table does not exist. </TERM> @@ -92,8 +78,9 @@ Description </TITLE> <PARA> - <command>LOCK</command> locks in exclusive mode a table inside - a transaction. The classic use for this is + By default, <command>LOCK</command> 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 @@ <PARA> There is no <command>LOCK TABLE</command> in <acronym>SQL92</acronym>, which instead uses <command>SET TRANSACTION</command> to specify - concurrency level on transactions. + concurrency level on transactions. We support that too. </para> </refsect2> </refsect1> diff --git a/src/bin/psql/psqlHelp.h b/src/bin/psql/psqlHelp.h index 6840786358f2e0571512792c024a444edf84fc85..507b0d54b4d139fa40600273dc7078a1f561a493 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 440e491b8637718ed433e03113d0b0f2790cb40f..5f71a8a5d6ac63833d2f22d3314cabe6c49d87da 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