diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 1999-06-06 17:46:40 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 1999-06-06 17:46:40 +0000 |
commit | 48c1887964d259688d602c7bcd8be25b5144739b (patch) | |
tree | 7a02e2cbd235ad4a0e644e7a05eb5d6221b1a5fa /src | |
parent | dfaf9fbcb4e09f674301edea8ddce438643c48af (diff) | |
download | postgresql-48c1887964d259688d602c7bcd8be25b5144739b.tar.gz postgresql-48c1887964d259688d602c7bcd8be25b5144739b.zip |
equal() needs a case for Aggref nodes, as shown by:
regression=> select sum(q1) from int8_tbl group by q2 order by sum(q1);
NOTICE: equal: don't know whether nodes of type 107 are equal
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/nodes/equalfuncs.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index e08787b79b9..6a680190b20 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.38 1999/05/25 22:41:13 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.39 1999/06/06 17:46:40 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -258,6 +258,27 @@ _equalParam(Param *a, Param *b) } /* + * Aggref is a subclass of Expr. + */ +static bool +_equalAggref(Aggref *a, Aggref *b) +{ + if (strcmp(a->aggname, b->aggname) != 0) + return false; + if (a->basetype != b->basetype) + return false; + if (a->aggtype != b->aggtype) + return false; + if (!equal(a->target, b->target)) + return false; + if (a->aggno != b->aggno) + return false; + if (a->usenulls != b->usenulls) + return false; + return true; +} + +/* * Func is a subclass of Expr. */ static bool @@ -769,6 +790,9 @@ equal(void *a, void *b) case T_Param: retval = _equalParam(a, b); break; + case T_Aggref: + retval = _equalAggref(a, b); + break; case T_Func: retval = _equalFunc(a, b); break; |