aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes/readfuncs.c
diff options
context:
space:
mode:
authorVadim B. Mikheev <vadim4o@yahoo.com>1999-01-21 16:08:55 +0000
committerVadim B. Mikheev <vadim4o@yahoo.com>1999-01-21 16:08:55 +0000
commit12be3e08f11add3d553b179a7c37d06de9cc5150 (patch)
tree2e730ecaea3b5804ad6bdf3a43e3cb9e4f1ab2a7 /src/backend/nodes/readfuncs.c
parentc8ae6afd130f41e02ee2c818066c8eac38b3cf9e (diff)
downloadpostgresql-12be3e08f11add3d553b179a7c37d06de9cc5150.tar.gz
postgresql-12be3e08f11add3d553b179a7c37d06de9cc5150.zip
FOR UPDATE is in parser & rules.
Diffstat (limited to 'src/backend/nodes/readfuncs.c')
-rw-r--r--src/backend/nodes/readfuncs.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index edcfdd9d261..6a4237def2f 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.41 1999/01/18 00:09:46 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.42 1999/01/21 16:08:37 vadim Exp $
*
* NOTES
* Most of the read functions for plan nodes are tested. (In fact, they
@@ -174,6 +174,9 @@ _readQuery()
token = lsptok(NULL, &length); /* skip :limitCount */
local_node->limitCount = nodeRead(true);
+ token = lsptok(NULL, &length); /* skip :rowMark */
+ local_node->rowMark = nodeRead(true);
+
return local_node;
}
@@ -1427,6 +1430,24 @@ _readRangeTblEntry()
return local_node;
}
+static RowMark *
+_readRowMark()
+{
+ RowMark *local_node = makeNode(RowMark);
+ char *token;
+ int length;
+
+ token = lsptok(NULL, &length); /* eat :rti */
+ token = lsptok(NULL, &length); /* get :rti */
+ local_node->rti = strtoul(token, NULL, 10);
+
+ token = lsptok(NULL, &length); /* eat :info */
+ token = lsptok(NULL, &length); /* get :info */
+ local_node->info = strtoul(token, NULL, 10);
+
+ return local_node;
+}
+
/* ----------------
* _readPath
*
@@ -2090,6 +2111,8 @@ parsePlanString(void)
return_value = _readCaseExpr();
else if (!strncmp(token, "WHEN", length))
return_value = _readCaseWhen();
+ else if (!strncmp(token, "ROWMARK", length))
+ return_value = _readRowMark();
else
elog(ERROR, "badly formatted planstring \"%.10s\"...\n", token);