diff options
Diffstat (limited to 'src/include/nodes/parsenodes.h')
-rw-r--r-- | src/include/nodes/parsenodes.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index fc88dec5351..90a282e1632 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.288 2005/08/01 04:03:58 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.289 2005/08/01 20:31:15 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -95,6 +95,7 @@ typedef struct Query bool forUpdate; /* true if rowMarks are FOR UPDATE, * false if they are FOR SHARE */ + bool rowNoWait; /* FOR UPDATE/SHARE NOWAIT option */ List *targetList; /* target list (of TargetEntry) */ @@ -415,6 +416,20 @@ typedef struct DefElem Node *arg; /* a (Value *) or a (TypeName *) */ } DefElem; +/* + * LockingClause - raw representation of FOR UPDATE/SHARE options + * + * Note: lockedRels == NIL means "all relations in query". Otherwise it + * is a list of String nodes giving relation eref names. + */ +typedef struct LockingClause +{ + NodeTag type; + List *lockedRels; /* FOR UPDATE or FOR SHARE relations */ + bool forUpdate; /* true = FOR UPDATE, false = FOR SHARE */ + bool nowait; /* NOWAIT option */ +} LockingClause; + /**************************************************************************** * Nodes for a Query tree @@ -686,8 +701,7 @@ typedef struct SelectStmt List *sortClause; /* sort clause (a list of SortBy's) */ Node *limitOffset; /* # of result tuples to skip */ Node *limitCount; /* # of result tuples to return */ - List *lockedRels; /* FOR UPDATE or FOR SHARE relations */ - bool forUpdate; /* true = FOR UPDATE, false = FOR SHARE */ + LockingClause *lockingClause; /* FOR UPDATE/FOR SHARE */ /* * These fields are used only in upper-level SelectStmts. @@ -699,6 +713,7 @@ typedef struct SelectStmt /* Eventually add fields for CORRESPONDING spec here */ } SelectStmt; + /* ---------------------- * Set Operation node for post-analysis query trees * |