summaryrefslogtreecommitdiff
path: root/src/backend/nodes/equalfuncs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/nodes/equalfuncs.c')
-rw-r--r--src/backend/nodes/equalfuncs.c334
1 files changed, 167 insertions, 167 deletions
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index 792c8783f99..21958ca293e 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.7 1997/09/07 04:42:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.8 1997/09/08 02:23:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -26,7 +26,7 @@
#include "utils/elog.h"
#include "storage/itemptr.h"
-static bool equali(List * a, List * b);
+static bool equali(List * a, List * b);
/*
* Stuff from primnodes.h
@@ -35,7 +35,7 @@ static bool equali(List * a, List * b);
/*
* Resdom is a subclass of Node.
*/
-static bool
+static bool
_equalResdom(Resdom * a, Resdom * b)
{
if (a->resno != b->resno)
@@ -54,10 +54,10 @@ _equalResdom(Resdom * a, Resdom * b)
return (true);
}
-static bool
+static bool
_equalFjoin(Fjoin * a, Fjoin * b)
{
- int nNodes;
+ int nNodes;
if (a->fj_initialized != b->fj_initialized)
return (false);
@@ -78,7 +78,7 @@ _equalFjoin(Fjoin * a, Fjoin * b)
/*
* Expr is a subclass of Node.
*/
-static bool
+static bool
_equalExpr(Expr * a, Expr * b)
{
if (a->opType != b->opType)
@@ -91,13 +91,13 @@ _equalExpr(Expr * a, Expr * b)
return (true);
}
-static bool
+static bool
_equalIter(Iter * a, Iter * b)
{
return (equal(a->iterexpr, b->iterexpr));
}
-static bool
+static bool
_equalStream(Stream * a, Stream * b)
{
if (a->clausetype != b->clausetype)
@@ -120,7 +120,7 @@ _equalStream(Stream * a, Stream * b)
/*
* Var is a subclass of Expr.
*/
-static bool
+static bool
_equalVar(Var * a, Var * b)
{
if (a->varno != b->varno)
@@ -137,7 +137,7 @@ _equalVar(Var * a, Var * b)
return (true);
}
-static bool
+static bool
_equalArray(Array * a, Array * b)
{
if (a->arrayelemtype != b->arrayelemtype)
@@ -153,7 +153,7 @@ _equalArray(Array * a, Array * b)
return (TRUE);
}
-static bool
+static bool
_equalArrayRef(ArrayRef * a, ArrayRef * b)
{
if (a->refelemtype != b->refelemtype)
@@ -176,7 +176,7 @@ _equalArrayRef(ArrayRef * a, ArrayRef * b)
/*
* Oper is a subclass of Expr.
*/
-static bool
+static bool
_equalOper(Oper * a, Oper * b)
{
if (a->opno != b->opno)
@@ -190,7 +190,7 @@ _equalOper(Oper * a, Oper * b)
/*
* Const is a subclass of Expr.
*/
-static bool
+static bool
_equalConst(Const * a, Const * b)
{
@@ -213,7 +213,7 @@ _equalConst(Const * a, Const * b)
/*
* Param is a subclass of Expr.
*/
-static bool
+static bool
_equalParam(Param * a, Param * b)
{
if (a->paramkind != b->paramkind)
@@ -225,26 +225,26 @@ _equalParam(Param * a, Param * b)
switch (a->paramkind)
{
- case PARAM_NAMED:
- case PARAM_NEW:
- case PARAM_OLD:
- if (strcmp(a->paramname, b->paramname) != 0)
- return (false);
- break;
- case PARAM_NUM:
- if (a->paramid != b->paramid)
- return (false);
- break;
- case PARAM_INVALID:
-
- /*
- * XXX: Hmmm... What are we supposed to return in this case ??
- */
- return (true);
- break;
- default:
- elog(WARN, "_equalParam: Invalid paramkind value: %d",
- a->paramkind);
+ case PARAM_NAMED:
+ case PARAM_NEW:
+ case PARAM_OLD:
+ if (strcmp(a->paramname, b->paramname) != 0)
+ return (false);
+ break;
+ case PARAM_NUM:
+ if (a->paramid != b->paramid)
+ return (false);
+ break;
+ case PARAM_INVALID:
+
+ /*
+ * XXX: Hmmm... What are we supposed to return in this case ??
+ */
+ return (true);
+ break;
+ default:
+ elog(WARN, "_equalParam: Invalid paramkind value: %d",
+ a->paramkind);
}
return (true);
@@ -253,7 +253,7 @@ _equalParam(Param * a, Param * b)
/*
* Func is a subclass of Expr.
*/
-static bool
+static bool
_equalFunc(Func * a, Func * b)
{
if (a->funcid != b->funcid)
@@ -275,7 +275,7 @@ _equalFunc(Func * a, Func * b)
/*
* CInfo is a subclass of Node.
*/
-static bool
+static bool
_equalCInfo(CInfo * a, CInfo * b)
{
Assert(IsA(a, CInfo));
@@ -297,7 +297,7 @@ _equalCInfo(CInfo * a, CInfo * b)
(b->indexids)));
}
-static bool
+static bool
_equalJoinMethod(JoinMethod * a, JoinMethod * b)
{
Assert(IsA(a, JoinMethod));
@@ -312,7 +312,7 @@ _equalJoinMethod(JoinMethod * a, JoinMethod * b)
return (true);
}
-static bool
+static bool
_equalPath(Path * a, Path * b)
{
if (a->pathtype != b->pathtype)
@@ -325,7 +325,7 @@ _equalPath(Path * a, Path * b)
*/
if (a->p_ordering.ordtype == SORTOP_ORDER)
{
- int i = 0;
+ int i = 0;
if (a->p_ordering.ord.sortop == NULL ||
b->p_ordering.ord.sortop == NULL)
@@ -367,7 +367,7 @@ _equalPath(Path * a, Path * b)
return (true);
}
-static bool
+static bool
_equalIndexPath(IndexPath * a, IndexPath * b)
{
if (!_equalPath((Path *) a, (Path *) b))
@@ -379,7 +379,7 @@ _equalIndexPath(IndexPath * a, IndexPath * b)
return (true);
}
-static bool
+static bool
_equalJoinPath(JoinPath * a, JoinPath * b)
{
Assert(IsA_JoinPath(a));
@@ -396,7 +396,7 @@ _equalJoinPath(JoinPath * a, JoinPath * b)
return (true);
}
-static bool
+static bool
_equalMergePath(MergePath * a, MergePath * b)
{
Assert(IsA(a, MergePath));
@@ -413,7 +413,7 @@ _equalMergePath(MergePath * a, MergePath * b)
return (true);
}
-static bool
+static bool
_equalHashPath(HashPath * a, HashPath * b)
{
Assert(IsA(a, HashPath));
@@ -430,7 +430,7 @@ _equalHashPath(HashPath * a, HashPath * b)
return (true);
}
-static bool
+static bool
_equalJoinKey(JoinKey * a, JoinKey * b)
{
Assert(IsA(a, JoinKey));
@@ -443,7 +443,7 @@ _equalJoinKey(JoinKey * a, JoinKey * b)
return (true);
}
-static bool
+static bool
_equalMergeOrder(MergeOrder * a, MergeOrder * b)
{
if (a == (MergeOrder *) NULL && b == (MergeOrder *) NULL)
@@ -464,7 +464,7 @@ _equalMergeOrder(MergeOrder * a, MergeOrder * b)
return (true);
}
-static bool
+static bool
_equalHInfo(HInfo * a, HInfo * b)
{
Assert(IsA(a, HInfo));
@@ -478,7 +478,7 @@ _equalHInfo(HInfo * a, HInfo * b)
/* XXX This equality function is a quick hack, should be
* fixed to compare all fields.
*/
-static bool
+static bool
_equalIndexScan(IndexScan * a, IndexScan * b)
{
Assert(IsA(a, IndexScan));
@@ -499,7 +499,7 @@ _equalIndexScan(IndexScan * a, IndexScan * b)
return (true);
}
-static bool
+static bool
_equalJInfo(JInfo * a, JInfo * b)
{
Assert(IsA(a, JInfo));
@@ -522,7 +522,7 @@ _equalJInfo(JInfo * a, JInfo * b)
/*
* EState is a subclass of Node.
*/
-static bool
+static bool
_equalEState(EState * a, EState * b)
{
if (a->es_direction != b->es_direction)
@@ -537,7 +537,7 @@ _equalEState(EState * a, EState * b)
return (true);
}
-static bool
+static bool
_equalTargetEntry(TargetEntry * a, TargetEntry * b)
{
if (!equal(a->resdom, b->resdom))
@@ -557,7 +557,7 @@ _equalTargetEntry(TargetEntry * a, TargetEntry * b)
* This is a comparison by value. It would be simpler to write it
* to be recursive, but it should run faster if we iterate.
*/
-static bool
+static bool
_equalValue(Value * a, Value * b)
{
if (a->type != b->type)
@@ -565,14 +565,14 @@ _equalValue(Value * a, Value * b)
switch (a->type)
{
- case T_String:
- return strcmp(a->val.str, b->val.str);
- case T_Integer:
- return (a->val.ival == b->val.ival);
- case T_Float:
- return (a->val.dval == b->val.dval);
- default:
- break;
+ case T_String:
+ return strcmp(a->val.str, b->val.str);
+ case T_Integer:
+ return (a->val.ival == b->val.ival);
+ case T_Float:
+ return (a->val.dval == b->val.dval);
+ default:
+ break;
}
return (true);
@@ -585,7 +585,7 @@ _equalValue(Value * a, Value * b)
bool
equal(void *a, void *b)
{
- bool retval = false;
+ bool retval = false;
if (a == b)
return (true);
@@ -604,112 +604,112 @@ equal(void *a, void *b)
switch (nodeTag(a))
{
- case T_Resdom:
- retval = _equalResdom(a, b);
- break;
- case T_Fjoin:
- retval = _equalFjoin(a, b);
- break;
- case T_Expr:
- retval = _equalExpr(a, b);
- break;
- case T_TargetEntry:
- retval = _equalTargetEntry(a, b);
- break;
- case T_Iter:
- retval = _equalIter(a, b);
- break;
- case T_Stream:
- retval = _equalStream(a, b);
- break;
- case T_Var:
- retval = _equalVar(a, b);
- break;
- case T_Array:
- retval = _equalArray(a, b);
- break;
- case T_ArrayRef:
- retval = _equalArrayRef(a, b);
- break;
- case T_Oper:
- retval = _equalOper(a, b);
- break;
- case T_Const:
- retval = _equalConst(a, b);
- break;
- case T_Param:
- retval = _equalParam(a, b);
- break;
- case T_Func:
- retval = _equalFunc(a, b);
- break;
- case T_CInfo:
- retval = _equalCInfo(a, b);
- break;
- case T_JoinMethod:
- retval = _equalJoinMethod(a, b);
- break;
- case T_Path:
- retval = _equalPath(a, b);
- break;
- case T_IndexPath:
- retval = _equalIndexPath(a, b);
- break;
- case T_JoinPath:
- retval = _equalJoinPath(a, b);
- break;
- case T_MergePath:
- retval = _equalMergePath(a, b);
- break;
- case T_HashPath:
- retval = _equalHashPath(a, b);
- break;
- case T_JoinKey:
- retval = _equalJoinKey(a, b);
- break;
- case T_MergeOrder:
- retval = _equalMergeOrder(a, b);
- break;
- case T_HInfo:
- retval = _equalHInfo(a, b);
- break;
- case T_IndexScan:
- retval = _equalIndexScan(a, b);
- break;
- case T_JInfo:
- retval = _equalJInfo(a, b);
- break;
- case T_EState:
- retval = _equalEState(a, b);
- break;
- case T_Integer:
- case T_String:
- case T_Float:
- retval = _equalValue(a, b);
- break;
- case T_List:
- {
- List *la = (List *) a;
- List *lb = (List *) b;
- List *l;
-
- if (a == NULL && b == NULL)
- return (true);
- if (length(a) != length(b))
- return (false);
- foreach(l, la)
+ case T_Resdom:
+ retval = _equalResdom(a, b);
+ break;
+ case T_Fjoin:
+ retval = _equalFjoin(a, b);
+ break;
+ case T_Expr:
+ retval = _equalExpr(a, b);
+ break;
+ case T_TargetEntry:
+ retval = _equalTargetEntry(a, b);
+ break;
+ case T_Iter:
+ retval = _equalIter(a, b);
+ break;
+ case T_Stream:
+ retval = _equalStream(a, b);
+ break;
+ case T_Var:
+ retval = _equalVar(a, b);
+ break;
+ case T_Array:
+ retval = _equalArray(a, b);
+ break;
+ case T_ArrayRef:
+ retval = _equalArrayRef(a, b);
+ break;
+ case T_Oper:
+ retval = _equalOper(a, b);
+ break;
+ case T_Const:
+ retval = _equalConst(a, b);
+ break;
+ case T_Param:
+ retval = _equalParam(a, b);
+ break;
+ case T_Func:
+ retval = _equalFunc(a, b);
+ break;
+ case T_CInfo:
+ retval = _equalCInfo(a, b);
+ break;
+ case T_JoinMethod:
+ retval = _equalJoinMethod(a, b);
+ break;
+ case T_Path:
+ retval = _equalPath(a, b);
+ break;
+ case T_IndexPath:
+ retval = _equalIndexPath(a, b);
+ break;
+ case T_JoinPath:
+ retval = _equalJoinPath(a, b);
+ break;
+ case T_MergePath:
+ retval = _equalMergePath(a, b);
+ break;
+ case T_HashPath:
+ retval = _equalHashPath(a, b);
+ break;
+ case T_JoinKey:
+ retval = _equalJoinKey(a, b);
+ break;
+ case T_MergeOrder:
+ retval = _equalMergeOrder(a, b);
+ break;
+ case T_HInfo:
+ retval = _equalHInfo(a, b);
+ break;
+ case T_IndexScan:
+ retval = _equalIndexScan(a, b);
+ break;
+ case T_JInfo:
+ retval = _equalJInfo(a, b);
+ break;
+ case T_EState:
+ retval = _equalEState(a, b);
+ break;
+ case T_Integer:
+ case T_String:
+ case T_Float:
+ retval = _equalValue(a, b);
+ break;
+ case T_List:
{
- if (!equal(lfirst(l), lfirst(lb)))
+ List *la = (List *) a;
+ List *lb = (List *) b;
+ List *l;
+
+ if (a == NULL && b == NULL)
+ return (true);
+ if (length(a) != length(b))
return (false);
- lb = lnext(lb);
+ foreach(l, la)
+ {
+ if (!equal(lfirst(l), lfirst(lb)))
+ return (false);
+ lb = lnext(lb);
+ }
+ retval = true;
}
- retval = true;
- }
- break;
- default:
- elog(NOTICE, "equal: don't know whether nodes of type %d are equal",
- nodeTag(a));
- break;
+ break;
+ default:
+ elog(NOTICE, "equal: don't know whether nodes of type %d are equal",
+ nodeTag(a));
+ break;
}
return retval;
@@ -721,12 +721,12 @@ equal(void *a, void *b)
*
* XXX temp hack. needs something like T_IntList
*/
-static bool
+static bool
equali(List * a, List * b)
{
- List *la = (List *) a;
- List *lb = (List *) b;
- List *l;
+ List *la = (List *) a;
+ List *lb = (List *) b;
+ List *l;
if (a == NULL && b == NULL)
return (true);