aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>1999-06-06 17:46:40 +0000
committerTom Lane <tgl@sss.pgh.pa.us>1999-06-06 17:46:40 +0000
commit48c1887964d259688d602c7bcd8be25b5144739b (patch)
tree7a02e2cbd235ad4a0e644e7a05eb5d6221b1a5fa /src
parentdfaf9fbcb4e09f674301edea8ddce438643c48af (diff)
downloadpostgresql-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.c26
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;