From: Bruce Momjian Date: Mon, 27 Apr 1998 02:58:07 +0000 (+0000) Subject: FIx confusion over SORT and SORTCLAUSE in node handling. X-Git-Tag: REL6_4_2~1066 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4fcd0d63717d5afc4991cd59d0a517e241cfa961;p=postgresql FIx confusion over SORT and SORTCLAUSE in node handling. --- diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 309d2f96cd..d322c8ee3e 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.33 1998/02/26 04:32:12 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.34 1998/04/27 02:58:05 momjian Exp $ * * NOTES * Every (plan) node in POSTGRES has an associated "out" routine which @@ -70,22 +70,22 @@ _outIntList(StringInfo str, List *list) static void _outCreateStmt(StringInfo str, CreateStmt *node) { - appendStringInfo(str, "CREATE"); + appendStringInfo(str, " CREATE "); appendStringInfo(str, " :relname "); appendStringInfo(str, node->relname); - appendStringInfo(str, " :columns"); + appendStringInfo(str, " :columns "); _outNode(str, node->tableElts); - appendStringInfo(str, " :inhRelnames"); + appendStringInfo(str, " :inhRelnames "); _outNode(str, node->inhRelnames); - appendStringInfo(str, " :constraints"); + appendStringInfo(str, " :constraints "); _outNode(str, node->constraints); } static void _outIndexStmt(StringInfo str, IndexStmt *node) { - appendStringInfo(str, "INDEX"); + appendStringInfo(str, " INDEX "); appendStringInfo(str, " :idxname "); appendStringInfo(str, node->idxname); @@ -110,7 +110,7 @@ _outIndexStmt(StringInfo str, IndexStmt *node) static void _outColumnDef(StringInfo str, ColumnDef *node) { - appendStringInfo(str, "COLUMNDEF"); + appendStringInfo(str, " COLUMNDEF "); appendStringInfo(str, " :colname "); appendStringInfo(str, node->colname); @@ -120,7 +120,7 @@ _outColumnDef(StringInfo str, ColumnDef *node) appendStringInfo(str, (node->is_not_null ? "true" : "false")); appendStringInfo(str, " :defval "); appendStringInfo(str, node->defval); - appendStringInfo(str, " :constraints"); + appendStringInfo(str, " :constraints "); _outNode(str, node->constraints); } @@ -129,7 +129,7 @@ _outTypeName(StringInfo str, TypeName *node) { char buf[500]; - appendStringInfo(str, "TYPENAME"); + appendStringInfo(str, " TYPENAME "); appendStringInfo(str, " :name "); appendStringInfo(str, node->name); @@ -147,7 +147,7 @@ _outTypeName(StringInfo str, TypeName *node) static void _outIndexElem(StringInfo str, IndexElem *node) { - appendStringInfo(str, "INDEXELEM"); + appendStringInfo(str, " INDEXELEM "); appendStringInfo(str, " :name "); appendStringInfo(str, node->name); @@ -155,7 +155,7 @@ _outIndexElem(StringInfo str, IndexElem *node) _outNode(str, node->args); appendStringInfo(str, " :class "); appendStringInfo(str, node->class); - appendStringInfo(str, " :tname"); + appendStringInfo(str, " :tname "); _outNode(str, node->tname); } @@ -164,7 +164,7 @@ _outQuery(StringInfo str, Query *node) { char buf[500]; - appendStringInfo(str, "QUERY"); + appendStringInfo(str, " QUERY "); appendStringInfo(str, " :command "); sprintf(buf, " %d ", node->commandType); @@ -241,7 +241,7 @@ _outSortClause(StringInfo str, SortClause *node) { char buf[500]; - appendStringInfo(str, "SORTCLAUSE"); + appendStringInfo(str, " SORTCLAUSE "); appendStringInfo(str, " :resdom "); _outNode(str, node->resdom); @@ -255,7 +255,7 @@ _outGroupClause(StringInfo str, GroupClause *node) { char buf[500]; - appendStringInfo(str, "GROUPCLAUSE"); + appendStringInfo(str, " GROUPCLAUSE "); appendStringInfo(str, " :entry "); _outNode(str, node->entry); @@ -304,14 +304,14 @@ _outPlanInfo(StringInfo str, Plan *node) static void _outPlan(StringInfo str, Plan *node) { - appendStringInfo(str, "PLAN"); + appendStringInfo(str, " PLAN "); _outPlanInfo(str, (Plan *) node); } static void _outResult(StringInfo str, Result *node) { - appendStringInfo(str, "RESULT"); + appendStringInfo(str, " RESULT "); _outPlanInfo(str, (Plan *) node); appendStringInfo(str, " :resconstantqual "); @@ -327,7 +327,7 @@ _outAppend(StringInfo str, Append *node) { char buf[500]; - appendStringInfo(str, "APPEND"); + appendStringInfo(str, " APPEND "); _outPlanInfo(str, (Plan *) node); appendStringInfo(str, " :unionplans "); @@ -350,7 +350,7 @@ _outAppend(StringInfo str, Append *node) static void _outJoin(StringInfo str, Join *node) { - appendStringInfo(str, "JOIN"); + appendStringInfo(str, " JOIN "); _outPlanInfo(str, (Plan *) node); } @@ -361,7 +361,7 @@ _outJoin(StringInfo str, Join *node) static void _outNestLoop(StringInfo str, NestLoop *node) { - appendStringInfo(str, "NESTLOOP"); + appendStringInfo(str, " NESTLOOP "); _outPlanInfo(str, (Plan *) node); } @@ -373,7 +373,7 @@ _outMergeJoin(StringInfo str, MergeJoin *node) { char buf[500]; - appendStringInfo(str, "MERGEJOIN"); + appendStringInfo(str, " MERGEJOIN "); _outPlanInfo(str, (Plan *) node); appendStringInfo(str, " :mergeclauses "); @@ -397,7 +397,7 @@ _outHashJoin(StringInfo str, HashJoin *node) { char buf[500]; - appendStringInfo(str, "HASHJOIN"); + appendStringInfo(str, " HASHJOIN "); _outPlanInfo(str, (Plan *) node); appendStringInfo(str, " :hashclauses "); @@ -420,7 +420,7 @@ _outSubPlan(StringInfo str, SubPlan *node) { char buf[500]; - appendStringInfo(str, "SUBPLAN"); + appendStringInfo(str, " SUBPLAN "); appendStringInfo(str, " :plan "); _outNode(str, node->plan); sprintf(buf, " :planid %u ", node->plan_id); @@ -443,7 +443,7 @@ _outScan(StringInfo str, Scan *node) { char buf[500]; - appendStringInfo(str, "SCAN"); + appendStringInfo(str, " SCAN "); _outPlanInfo(str, (Plan *) node); sprintf(buf, " :scanrelid %d ", node->scanrelid); @@ -459,7 +459,7 @@ _outSeqScan(StringInfo str, SeqScan *node) { char buf[500]; - appendStringInfo(str, "SEQSCAN"); + appendStringInfo(str, " SEQSCAN "); _outPlanInfo(str, (Plan *) node); sprintf(buf, " :scanrelid %d ", node->scanrelid); @@ -476,7 +476,7 @@ _outIndexScan(StringInfo str, IndexScan *node) { char buf[500]; - appendStringInfo(str, "INDEXSCAN"); + appendStringInfo(str, " INDEXSCAN "); _outPlanInfo(str, (Plan *) node); sprintf(buf, " :scanrelid %d ", node->scan.scanrelid); @@ -498,7 +498,7 @@ _outTemp(StringInfo str, Temp *node) { char buf[500]; - appendStringInfo(str, "TEMP"); + appendStringInfo(str, " TEMP "); _outPlanInfo(str, (Plan *) node); sprintf(buf, " :tempid %u ", node->tempid); @@ -516,7 +516,7 @@ _outSort(StringInfo str, Sort *node) { char buf[500]; - appendStringInfo(str, "SORT"); + appendStringInfo(str, " SORT "); _outPlanInfo(str, (Plan *) node); sprintf(buf, " :tempid %u ", node->tempid); @@ -530,7 +530,7 @@ static void _outAgg(StringInfo str, Agg *node) { - appendStringInfo(str, "AGG"); + appendStringInfo(str, " AGG "); _outPlanInfo(str, (Plan *) node); appendStringInfo(str, " :aggs "); @@ -542,7 +542,7 @@ _outGroup(StringInfo str, Group *node) { char buf[500]; - appendStringInfo(str, "GRP"); + appendStringInfo(str, " GRP "); _outPlanInfo(str, (Plan *) node); /* the actual Group fields */ @@ -561,7 +561,7 @@ _outUnique(StringInfo str, Unique *node) { char buf[500]; - appendStringInfo(str, "UNIQUE"); + appendStringInfo(str, " UNIQUE "); _outPlanInfo(str, (Plan *) node); sprintf(buf, " :tempid %u ", node->tempid); @@ -580,7 +580,7 @@ _outHash(StringInfo str, Hash *node) { char buf[500]; - appendStringInfo(str, "HASH"); + appendStringInfo(str, " HASH "); _outPlanInfo(str, (Plan *) node); appendStringInfo(str, " :hashkey "); @@ -599,7 +599,7 @@ _outTee(StringInfo str, Tee *node) { char buf[500]; - appendStringInfo(str, "TEE"); + appendStringInfo(str, " TEE "); _outPlanInfo(str, (Plan *) node); sprintf(buf, " :leftParent %X ", (int) (node->leftParent)); @@ -628,7 +628,7 @@ _outResdom(StringInfo str, Resdom *node) { char buf[500]; - appendStringInfo(str, "RESDOM"); + appendStringInfo(str, " RESDOM "); sprintf(buf, " :resno %d ", node->resno); appendStringInfo(str, buf); sprintf(buf, " :restype %u ", node->restype); @@ -652,7 +652,7 @@ _outFjoin(StringInfo str, Fjoin *node) char buf[500]; int i; - appendStringInfo(str, "FJOIN"); + appendStringInfo(str, " FJOIN "); appendStringInfo(str, " :initialized "); appendStringInfo(str, node->fj_initialized ? "true" : "false"); sprintf(buf, " :nNodes %d ", node->fj_nNodes); @@ -680,7 +680,7 @@ _outExpr(StringInfo str, Expr *node) char buf[500]; char *opstr = NULL; - appendStringInfo(str, "EXPR"); + appendStringInfo(str, " EXPR "); sprintf(buf, " :typeOid %u ", node->typeOid); appendStringInfo(str, buf); @@ -721,7 +721,7 @@ _outVar(StringInfo str, Var *node) { char buf[500]; - appendStringInfo(str, "VAR"); + appendStringInfo(str, " VAR "); sprintf(buf, " :varno %d ", node->varno); appendStringInfo(str, buf); sprintf(buf, " :varattno %d ", node->varattno); @@ -746,7 +746,7 @@ _outConst(StringInfo str, Const *node) { char buf[500]; - appendStringInfo(str, "CONST"); + appendStringInfo(str, " CONST "); sprintf(buf, " :consttype %u ", node->consttype); appendStringInfo(str, buf); sprintf(buf, " :constlen %d ", node->constlen); @@ -774,7 +774,7 @@ _outAggreg(StringInfo str, Aggreg *node) { char buf[500]; - appendStringInfo(str, "AGGREG"); + appendStringInfo(str, " AGGREG "); appendStringInfo(str, " :aggname "); appendStringInfo(str, (char *) node->aggname); sprintf(buf, " :basetype %u ", node->basetype); @@ -797,7 +797,7 @@ _outSubLink(StringInfo str, SubLink *node) { char buf[500]; - appendStringInfo(str, "SUBLINK"); + appendStringInfo(str, " SUBLINK "); sprintf(buf, " :subLinkType %d ", node->subLinkType); appendStringInfo(str, buf); appendStringInfo(str, " :useor "); @@ -819,7 +819,7 @@ _outArray(StringInfo str, Array *node) char buf[500]; int i; - appendStringInfo(str, "ARRAY"); + appendStringInfo(str, " ARRAY "); sprintf(buf, " :arrayelemtype %u ", node->arrayelemtype); appendStringInfo(str, buf); sprintf(buf, " :arrayelemlength %d ", node->arrayelemlength); @@ -852,7 +852,7 @@ _outArrayRef(StringInfo str, ArrayRef *node) { char buf[500]; - appendStringInfo(str, "ARRAYREF"); + appendStringInfo(str, " ARRAYREF "); sprintf(buf, " :refelemtype %u ", node->refelemtype); appendStringInfo(str, buf); sprintf(buf, " :refattrlength %d ", node->refattrlength); @@ -883,7 +883,7 @@ _outFunc(StringInfo str, Func *node) { char buf[500]; - appendStringInfo(str, "FUNC"); + appendStringInfo(str, " FUNC "); sprintf(buf, " :funcid %u ", node->funcid); appendStringInfo(str, buf); sprintf(buf, " :functype %u ", node->functype); @@ -910,7 +910,7 @@ _outOper(StringInfo str, Oper *node) { char buf[500]; - appendStringInfo(str, "OPER"); + appendStringInfo(str, " OPER "); sprintf(buf, " :opno %u ", node->opno); appendStringInfo(str, buf); sprintf(buf, " :opid %u ", node->opid); @@ -928,7 +928,7 @@ _outParam(StringInfo str, Param *node) { char buf[500]; - appendStringInfo(str, "PARAM"); + appendStringInfo(str, " PARAM "); sprintf(buf, " :paramkind %d ", node->paramkind); appendStringInfo(str, buf); sprintf(buf, " :paramid %d ", node->paramid); @@ -954,7 +954,7 @@ _outEState(StringInfo str, EState *node) { char buf[500]; - appendStringInfo(str, "ESTATE"); + appendStringInfo(str, " ESTATE "); sprintf(buf, " :direction %d ", node->es_direction); appendStringInfo(str, buf); @@ -975,7 +975,7 @@ _outRel(StringInfo str, Rel *node) { char buf[500]; - appendStringInfo(str, "REL"); + appendStringInfo(str, " REL "); appendStringInfo(str, " :relids "); _outIntList(str, node->relids); @@ -1039,7 +1039,7 @@ _outRel(StringInfo str, Rel *node) static void _outTargetEntry(StringInfo str, TargetEntry *node) { - appendStringInfo(str, "TLE"); + appendStringInfo(str, " TLE "); appendStringInfo(str, " :resdom "); _outNode(str, node->resdom); @@ -1052,7 +1052,7 @@ _outRangeTblEntry(StringInfo str, RangeTblEntry *node) { char buf[500]; - appendStringInfo(str, "RTE"); + appendStringInfo(str, " RTE "); appendStringInfo(str, " :relname "); appendStringInfo(str, node->relname); @@ -1082,7 +1082,7 @@ _outPath(StringInfo str, Path *node) { char buf[500]; - appendStringInfo(str, "PATH"); + appendStringInfo(str, " PATH "); sprintf(buf, " :pathtype %d ", node->pathtype); appendStringInfo(str, buf); @@ -1103,7 +1103,7 @@ _outIndexPath(StringInfo str, IndexPath *node) { char buf[500]; - appendStringInfo(str, "INDEXPATH"); + appendStringInfo(str, " INDEXPATH "); sprintf(buf, " :pathtype %d ", node->path.pathtype); appendStringInfo(str, buf); @@ -1139,7 +1139,7 @@ _outJoinPath(StringInfo str, JoinPath *node) { char buf[500]; - appendStringInfo(str, "JOINPATH"); + appendStringInfo(str, " JOINPATH "); sprintf(buf, " :pathtype %d ", node->path.pathtype); appendStringInfo(str, buf); @@ -1188,7 +1188,7 @@ _outMergePath(StringInfo str, MergePath *node) { char buf[500]; - appendStringInfo(str, "MERGEPATH"); + appendStringInfo(str, " MERGEPATH "); sprintf(buf, " :pathtype %d ", node->jpath.path.pathtype); appendStringInfo(str, buf); @@ -1237,7 +1237,7 @@ _outHashPath(StringInfo str, HashPath *node) { char buf[500]; - appendStringInfo(str, "HASHPATH"); + appendStringInfo(str, " HASHPATH "); sprintf(buf, " :pathtype %d ", node->jpath.path.pathtype); appendStringInfo(str, buf); @@ -1286,7 +1286,7 @@ _outOrderKey(StringInfo str, OrderKey *node) { char buf[500]; - appendStringInfo(str, "ORDERKEY"); + appendStringInfo(str, " ORDERKEY "); sprintf(buf, " :attribute_number %d ", node->attribute_number); appendStringInfo(str, buf); sprintf(buf, " :array_index %d ", node->array_index); @@ -1300,7 +1300,7 @@ _outOrderKey(StringInfo str, OrderKey *node) static void _outJoinKey(StringInfo str, JoinKey *node) { - appendStringInfo(str, "JOINKEY"); + appendStringInfo(str, " JOINKEY "); appendStringInfo(str, " :outer "); _outNode(str, node->outer); @@ -1318,7 +1318,7 @@ _outMergeOrder(StringInfo str, MergeOrder *node) { char buf[500]; - appendStringInfo(str, "MERGEORDER"); + appendStringInfo(str, " MERGEORDER "); sprintf(buf, " :join_operator %d ", node->join_operator); appendStringInfo(str, buf); @@ -1341,7 +1341,7 @@ _outCInfo(StringInfo str, CInfo *node) { char buf[500]; - appendStringInfo(str, "CINFO"); + appendStringInfo(str, " CINFO "); appendStringInfo(str, " :clause "); _outNode(str, node->clause); @@ -1368,7 +1368,7 @@ _outCInfo(StringInfo str, CInfo *node) static void _outJoinMethod(StringInfo str, JoinMethod *node) { - appendStringInfo(str, "JOINMETHOD"); + appendStringInfo(str, " JOINMETHOD "); appendStringInfo(str, " :jmkeys "); _outNode(str, node->jmkeys); @@ -1387,7 +1387,7 @@ _outHInfo(StringInfo str, HInfo *node) { char buf[500]; - appendStringInfo(str, "HASHINFO"); + appendStringInfo(str, " HASHINFO "); appendStringInfo(str, " :hashop "); sprintf(buf, " %u ", node->hashop); @@ -1407,7 +1407,7 @@ _outHInfo(StringInfo str, HInfo *node) static void _outJInfo(StringInfo str, JInfo *node) { - appendStringInfo(str, "JINFO"); + appendStringInfo(str, " JINFO "); appendStringInfo(str, " :otherrels "); _outIntList(str, node->otherrels); @@ -1492,7 +1492,7 @@ _outDatum(StringInfo str, Datum value, Oid type) static void _outIter(StringInfo str, Iter *node) { - appendStringInfo(str, "ITER"); + appendStringInfo(str, " ITER "); appendStringInfo(str, " :iterexpr "); _outNode(str, node->iterexpr); @@ -1503,7 +1503,7 @@ _outStream(StringInfo str, Stream *node) { char buf[500]; - appendStringInfo(str, "STREAM"); + appendStringInfo(str, " STREAM "); sprintf(buf, " :pathptr @ 0x%x ", (int) (node->pathptr)); appendStringInfo(str, buf); diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index 79611ba058..9b54731cfb 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.28 1998/02/26 04:32:17 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.29 1998/04/27 02:58:07 momjian Exp $ * * NOTES * Most of the read functions for plan nodes are tested. (In fact, they @@ -1978,188 +1978,187 @@ parsePlanString(void) token = lsptok(NULL, &length); - if (!strncmp(token, "PLAN", 4)) + if (!strncmp(token, "PLAN", length)) { return_value = _readPlan(); } - else if (!strncmp(token, "RESULT", 6)) + else if (!strncmp(token, "RESULT", length)) { return_value = _readResult(); } - else if (!strncmp(token, "APPEND", 6)) + else if (!strncmp(token, "APPEND", length)) { return_value = _readAppend(); } - else if (!strncmp(token, "JOIN", 4)) + else if (!strncmp(token, "JOIN", length)) { return_value = _readJoin(); } - else if (!strncmp(token, "NESTLOOP", 8)) + else if (!strncmp(token, "NESTLOOP", length)) { return_value = _readNestLoop(); } - else if (!strncmp(token, "MERGEJOIN", 9)) + else if (!strncmp(token, "MERGEJOIN", length)) { return_value = _readMergeJoin(); } - else if (!strncmp(token, "HASHJOIN", 8)) + else if (!strncmp(token, "HASHJOIN", length)) { return_value = _readHashJoin(); } - else if (!strncmp(token, "SCAN", 4)) + else if (!strncmp(token, "SCAN", length)) { return_value = _readScan(); } - else if (!strncmp(token, "SEQSCAN", 7)) + else if (!strncmp(token, "SEQSCAN", length)) { return_value = _readSeqScan(); } - else if (!strncmp(token, "INDEXSCAN", 9)) + else if (!strncmp(token, "INDEXSCAN", length)) { return_value = _readIndexScan(); } - else if (!strncmp(token, "TEMP", 4)) + else if (!strncmp(token, "TEMP", length)) { return_value = _readTemp(); } - else if (!strncmp(token, "SORT", 4)) + else if (!strncmp(token, "SORT", length)) { return_value = _readSort(); } - else if (!strncmp(token, "AGGREG", 6)) + else if (!strncmp(token, "AGGREG", length)) { return_value = _readAggreg(); } - else if (!strncmp(token, "SUBLINK", 6)) + else if (!strncmp(token, "SUBLINK", length)) { return_value = _readSubLink(); } - else if (!strncmp(token, "AGG", 3)) + else if (!strncmp(token, "AGG", length)) { return_value = _readAgg(); } - else if (!strncmp(token, "UNIQUE", 4)) + else if (!strncmp(token, "UNIQUE", length)) { return_value = _readUnique(); } - else if (!strncmp(token, "HASH", 4)) + else if (!strncmp(token, "HASH", length)) { return_value = _readHash(); } - else if (!strncmp(token, "RESDOM", 6)) + else if (!strncmp(token, "RESDOM", length)) { return_value = _readResdom(); } - else if (!strncmp(token, "EXPR", 4)) + else if (!strncmp(token, "EXPR", length)) { return_value = _readExpr(); } - else if (!strncmp(token, "ARRAYREF", 7)) + else if (!strncmp(token, "ARRAYREF", length)) { - /* make sure this strncmp is done before that of ARRAY */ return_value = _readArrayRef(); } - else if (!strncmp(token, "ARRAY", 5)) + else if (!strncmp(token, "ARRAY", length)) { return_value = _readArray(); } - else if (!strncmp(token, "VAR", 3)) + else if (!strncmp(token, "VAR", length)) { return_value = _readVar(); } - else if (!strncmp(token, "CONST", 5)) + else if (!strncmp(token, "CONST", length)) { return_value = _readConst(); } - else if (!strncmp(token, "FUNC", 4)) + else if (!strncmp(token, "FUNC", length)) { return_value = _readFunc(); } - else if (!strncmp(token, "OPER", 4)) + else if (!strncmp(token, "OPER", length)) { return_value = _readOper(); } - else if (!strncmp(token, "PARAM", 5)) + else if (!strncmp(token, "PARAM", length)) { return_value = _readParam(); } - else if (!strncmp(token, "ESTATE", 6)) + else if (!strncmp(token, "ESTATE", length)) { return_value = _readEState(); } - else if (!strncmp(token, "REL", 3)) + else if (!strncmp(token, "REL", length)) { return_value = _readRel(); } - else if (!strncmp(token, "TLE", 3)) + else if (!strncmp(token, "TLE", length)) { return_value = _readTargetEntry(); } - else if (!strncmp(token, "RTE", 3)) + else if (!strncmp(token, "RTE", length)) { return_value = _readRangeTblEntry(); } - else if (!strncmp(token, "PATH", 4)) + else if (!strncmp(token, "PATH", length)) { return_value = _readPath(); } - else if (!strncmp(token, "INDEXPATH", 9)) + else if (!strncmp(token, "INDEXPATH", length)) { return_value = _readIndexPath(); } - else if (!strncmp(token, "JOINPATH", 8)) + else if (!strncmp(token, "JOINPATH", length)) { return_value = _readJoinPath(); } - else if (!strncmp(token, "MERGEPATH", 9)) + else if (!strncmp(token, "MERGEPATH", length)) { return_value = _readMergePath(); } - else if (!strncmp(token, "HASHPATH", 8)) + else if (!strncmp(token, "HASHPATH", length)) { return_value = _readHashPath(); } - else if (!strncmp(token, "ORDERKEY", 8)) + else if (!strncmp(token, "ORDERKEY", length)) { return_value = _readOrderKey(); } - else if (!strncmp(token, "JOINKEY", 7)) + else if (!strncmp(token, "JOINKEY", length)) { return_value = _readJoinKey(); } - else if (!strncmp(token, "MERGEORDER", 10)) + else if (!strncmp(token, "MERGEORDER", length)) { return_value = _readMergeOrder(); } - else if (!strncmp(token, "CINFO", 5)) + else if (!strncmp(token, "CINFO", length)) { return_value = _readCInfo(); } - else if (!strncmp(token, "JOINMETHOD", 10)) + else if (!strncmp(token, "JOINMETHOD", length)) { return_value = _readJoinMethod(); } - else if (!strncmp(token, "JINFO", 5)) + else if (!strncmp(token, "JINFO", length)) { return_value = _readJInfo(); } - else if (!strncmp(token, "HINFO", 5)) + else if (!strncmp(token, "HINFO", length)) { return_value = _readHInfo(); } - else if (!strncmp(token, "ITER", 4)) + else if (!strncmp(token, "ITER", length)) { return_value = _readIter(); } - else if (!strncmp(token, "QUERY", 5)) + else if (!strncmp(token, "QUERY", length)) { return_value = _readQuery(); } - else if (!strncmp(token, "SORTCLAUSE", 10)) + else if (!strncmp(token, "SORTCLAUSE", length)) { return_value = _readSortClause(); } - else if (!strncmp(token, "GROUPCLAUSE", 10)) + else if (!strncmp(token, "GROUPCLAUSE", length)) { return_value = _readGroupClause(); }