mirror of
https://github.com/postgres/postgres.git
synced 2025-11-10 17:42:29 +03:00
Add SHARE UPDATE EXCLUSIVE lock mode, coming soon to a VACUUM near you.
Name chosen per pghackers discussion around 6/22/01.
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.233 2001/06/30 22:03:25 petere Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.234 2001/07/09 22:18:33 tgl Exp $
|
||||
*
|
||||
* HISTORY
|
||||
* AUTHOR DATE MAJOR EVENT
|
||||
@@ -153,7 +153,7 @@ static void doNegateFloat(Value *v);
|
||||
%type <list> createdb_opt_list, createdb_opt_item
|
||||
|
||||
%type <ival> opt_lock, lock_type
|
||||
%type <boolean> opt_lmode, opt_force
|
||||
%type <boolean> opt_force
|
||||
|
||||
%type <ival> user_createdb_clause, user_createuser_clause
|
||||
%type <str> user_passwd_clause
|
||||
@@ -3277,18 +3277,18 @@ LockStmt: LOCK_P opt_table relation_name opt_lock
|
||||
}
|
||||
;
|
||||
|
||||
opt_lock: IN lock_type MODE { $$ = $2; }
|
||||
opt_lock: IN lock_type MODE { $$ = $2; }
|
||||
| /*EMPTY*/ { $$ = AccessExclusiveLock; }
|
||||
;
|
||||
|
||||
lock_type: SHARE ROW EXCLUSIVE { $$ = ShareRowExclusiveLock; }
|
||||
| ROW opt_lmode { $$ = ($2? RowShareLock: RowExclusiveLock); }
|
||||
| ACCESS opt_lmode { $$ = ($2? AccessShareLock: AccessExclusiveLock); }
|
||||
| opt_lmode { $$ = ($1? ShareLock: ExclusiveLock); }
|
||||
;
|
||||
|
||||
opt_lmode: SHARE { $$ = TRUE; }
|
||||
| EXCLUSIVE { $$ = FALSE; }
|
||||
lock_type: ACCESS SHARE { $$ = AccessShareLock; }
|
||||
| ROW SHARE { $$ = RowShareLock; }
|
||||
| ROW EXCLUSIVE { $$ = RowExclusiveLock; }
|
||||
| SHARE UPDATE EXCLUSIVE { $$ = ShareUpdateExclusiveLock; }
|
||||
| SHARE { $$ = ShareLock; }
|
||||
| SHARE ROW EXCLUSIVE { $$ = ShareRowExclusiveLock; }
|
||||
| EXCLUSIVE { $$ = ExclusiveLock; }
|
||||
| ACCESS EXCLUSIVE { $$ = AccessExclusiveLock; }
|
||||
;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user