summaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorTatsuo Ishii <ishii@postgresql.org>2004-03-11 01:47:41 +0000
committerTatsuo Ishii <ishii@postgresql.org>2004-03-11 01:47:41 +0000
commit0b86ade1c2f3dcd2407e535baad1654e65252316 (patch)
treef643be1064f229e2245c30467e2d12923ba0f677 /src/backend/parser
parent60a068b3897a27cbb1a13a6b050d05a0ca479055 (diff)
Add NOWAIT option to LOCK command
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y13
-rw-r--r--src/backend/parser/keywords.c3
2 files changed, 12 insertions, 4 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 20db7fc6213..9fd2e5b5795 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.447 2004/03/09 05:05:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.448 2004/03/11 01:47:37 ishii Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -169,6 +169,7 @@ static void doNegateFloat(Value *v);
%type <ival> opt_lock lock_type cast_context
%type <boolean> opt_force opt_or_replace transaction_access_mode
opt_grant_grant_option opt_revoke_grant_option
+ opt_nowait
%type <boolean> like_including_defaults
@@ -375,7 +376,7 @@ static void doNegateFloat(Value *v);
MATCH MAXVALUE MINUTE_P MINVALUE MODE MONTH_P MOVE
NAMES NATIONAL NATURAL NCHAR NEW NEXT NO NOCREATEDB
- NOCREATEUSER NONE NOT NOTHING NOTIFY NOTNULL NULL_P
+ NOCREATEUSER NONE NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P
NULLIF NUMERIC
OBJECT_P OF OFF OFFSET OIDS OLD ON ONLY OPERATOR OPTION OR
@@ -4347,12 +4348,13 @@ DeleteStmt: DELETE_P FROM relation_expr where_clause
}
;
-LockStmt: LOCK_P opt_table qualified_name_list opt_lock
+LockStmt: LOCK_P opt_table qualified_name_list opt_lock opt_nowait
{
LockStmt *n = makeNode(LockStmt);
n->relations = $3;
n->mode = $4;
+ n->nowait = $5;
$$ = (Node *)n;
}
;
@@ -4371,6 +4373,10 @@ lock_type: ACCESS SHARE { $$ = AccessShareLock; }
| ACCESS EXCLUSIVE { $$ = AccessExclusiveLock; }
;
+opt_nowait: NOWAIT { $$ = TRUE; }
+ | /*EMPTY*/ { $$ = FALSE; }
+ ;
+
/*****************************************************************************
*
@@ -7683,6 +7689,7 @@ reserved_keyword:
| LOCALTIMESTAMP
| NEW
| NOT
+ | NOWAIT
| NULL_P
| OFF
| OFFSET
diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c
index 24430a9cc60..54ac767126f 100644
--- a/src/backend/parser/keywords.c
+++ b/src/backend/parser/keywords.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/keywords.c,v 1.146 2004/03/09 05:05:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/keywords.c,v 1.147 2004/03/11 01:47:40 ishii Exp $
*
*-------------------------------------------------------------------------
*/
@@ -213,6 +213,7 @@ static const ScanKeyword ScanKeywords[] = {
{"nothing", NOTHING},
{"notify", NOTIFY},
{"notnull", NOTNULL},
+ {"nowait", NOWAIT},
{"null", NULL_P},
{"nullif", NULLIF},
{"numeric", NUMERIC},