From: Vadim B. Mikheev Date: Mon, 12 May 1997 07:17:23 +0000 (+0000) Subject: Added _readAggreg() to work with T_Aggreg type. X-Git-Tag: REL6_1~180 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3e248edf4352fa3dc7c57f16f9bb4ec54c222693;p=postgresql Added _readAggreg() to work with T_Aggreg type. --- diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index 334f820dd0..fc5797e2be 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.4 1996/11/10 03:00:51 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.5 1997/05/12 07:17:23 vadim Exp $ * * NOTES * Most of the read functions for plan nodes are tested. (In fact, they @@ -1015,6 +1015,45 @@ _readParam() return(local_node); } +/* ---------------- + * _readAggreg + * + * Aggreg is a subclass of Node + * ---------------- + */ +static Aggreg * +_readAggreg() +{ + Aggreg *local_node; + char *token; + int length; + + local_node = makeNode(Aggreg); + + token = lsptok(NULL, &length); /* eat :aggname */ + token = lsptok(NULL, &length); /* get aggname */ + local_node->aggname = (char*) palloc (length + 1); + memset (local_node->aggname, 0, length + 1); + strncpy (local_node->aggname, token, length); + + token = lsptok(NULL, &length); /* eat :basetype */ + token = lsptok(NULL, &length); /* get basetype */ + local_node->basetype = (Oid)atol(token); + + token = lsptok(NULL, &length); /* eat :aggtype */ + token = lsptok(NULL, &length); /* get aggtype */ + local_node->aggtype = (Oid)atol(token); + + token = lsptok(NULL, &length); /* eat :aggno */ + token = lsptok(NULL, &length); /* get aggno */ + local_node->aggno = atoi(token); + + token = lsptok(NULL, &length); /* eat :target */ + local_node->target = nodeRead(true); /* now read it */ + + return(local_node); +} + /* * Stuff from execnodes.h */ @@ -1822,6 +1861,8 @@ parsePlanString(void) return_value = _readTemp(); }else if (!strncmp(token, "SORT", 4)) { return_value = _readSort(); + }else if (!strncmp(token, "AGGREG", 6)) { + return_value = _readAggreg(); }else if (!strncmp(token, "AGG", 3)) { return_value = _readAgg(); }else if (!strncmp(token, "UNIQUE", 4)) {