diff --git a/doc/src/sgml/ref/lock.sgml b/doc/src/sgml/ref/lock.sgml index dc702b0cdb..804872d4a1 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 6840786358..507b0d54b4 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 440e491b86..5f71a8a5d6 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