diff options
| author | Vadim B. Mikheev | 1999-01-21 16:08:55 +0000 |
|---|---|---|
| committer | Vadim B. Mikheev | 1999-01-21 16:08:55 +0000 |
| commit | 12be3e08f11add3d553b179a7c37d06de9cc5150 (patch) | |
| tree | 2e730ecaea3b5804ad6bdf3a43e3cb9e4f1ab2a7 /src/include | |
| parent | c8ae6afd130f41e02ee2c818066c8eac38b3cf9e (diff) | |
FOR UPDATE is in parser & rules.
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/nodes/nodes.h | 5 | ||||
| -rw-r--r-- | src/include/nodes/parsenodes.h | 28 |
2 files changed, 23 insertions, 10 deletions
diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h index 5b9237c5f0e..6482fd66fbd 100644 --- a/src/include/nodes/nodes.h +++ b/src/include/nodes/nodes.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: nodes.h,v 1.33 1998/12/18 09:09:53 vadim Exp $ + * $Id: nodes.h,v 1.34 1999/01/21 16:08:53 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -216,7 +216,8 @@ typedef enum NodeTag T_SubSelect, T_JoinUsing, T_CaseExpr, - T_CaseWhen + T_CaseWhen, + T_RowMark } NodeTag; /* diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index d71d8c6b1e5..0e6c8e5068b 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parsenodes.h,v 1.66 1999/01/18 00:10:06 momjian Exp $ + * $Id: parsenodes.h,v 1.67 1999/01/21 16:08:55 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -53,6 +53,7 @@ typedef struct Query List *rtable; /* list of range table entries */ List *targetList; /* target list (of TargetEntry) */ Node *qual; /* qualifications */ + List *rowMark; /* list of RowMark entries */ List *groupClause; /* list of columns to specified in GROUP * BY */ @@ -608,9 +609,10 @@ typedef struct InsertStmt List *groupClause; /* group by clause */ Node *havingClause; /* having conditional-expression */ List *unionClause; /* union subselect parameters */ - bool unionall; /* union without unique sort */ - /***S*I***/ - List *intersectClause; + bool unionall; /* union without unique sort */ + /***S*I***/ + List *intersectClause; + List *forUpdate; /* FOR UPDATE clause */ } InsertStmt; /* ---------------------- @@ -651,10 +653,10 @@ typedef struct SelectStmt Node *whereClause; /* qualifications */ List *groupClause; /* group by clause */ Node *havingClause; /* having conditional-expression */ - /***S*I***/ - List *intersectClause; - List *exceptClause; - + /***S*I***/ + List *intersectClause; + List *exceptClause; + List *unionClause; /* union subselect parameters */ List *sortClause; /* sort clause (a list of SortGroupBy's) */ char *portalname; /* the portal (cursor) to create */ @@ -958,4 +960,14 @@ typedef struct GroupClause Oid grpOpoid; /* the sort operator to use */ } GroupClause; +#define ROW_MARK_FOR_UPDATE (1 << 0) +#define ROW_ACL_FOR_UPDATE (1 << 1) + +typedef struct RowMark +{ + NodeTag type; + Index rti; /* index in Query->rtable */ + bits8 info; /* as above */ +} RowMark; + #endif /* PARSENODES_H */ |
