2961 #define MATCH(tokname, namelen) \
2962 (length == namelen && memcmp(token, tokname, namelen) == 0)
2964 if (
MATCH(
"QUERY", 5))
2966 else if (
MATCH(
"WITHCHECKOPTION", 15))
2968 else if (
MATCH(
"SORTGROUPCLAUSE", 15))
2970 else if (
MATCH(
"GROUPINGSET", 11))
2972 else if (
MATCH(
"WINDOWCLAUSE", 12))
2974 else if (
MATCH(
"ROWMARKCLAUSE", 13))
2976 else if (
MATCH(
"CTESEARCHCLAUSE", 15))
2978 else if (
MATCH(
"CTECYCLECLAUSE", 14))
2980 else if (
MATCH(
"COMMONTABLEEXPR", 15))
2982 else if (
MATCH(
"MERGEWHENCLAUSE", 15))
2984 else if (
MATCH(
"MERGEACTION", 11))
2986 else if (
MATCH(
"SETOPERATIONSTMT", 16))
2988 else if (
MATCH(
"ALIAS", 5))
2990 else if (
MATCH(
"RANGEVAR", 8))
2992 else if (
MATCH(
"INTOCLAUSE", 10))
2994 else if (
MATCH(
"TABLEFUNC", 9))
2996 else if (
MATCH(
"VAR", 3))
2998 else if (
MATCH(
"CONST", 5))
3000 else if (
MATCH(
"PARAM", 5))
3002 else if (
MATCH(
"AGGREF", 6))
3004 else if (
MATCH(
"GROUPINGFUNC", 12))
3006 else if (
MATCH(
"WINDOWFUNC", 10))
3008 else if (
MATCH(
"SUBSCRIPTINGREF", 15))
3010 else if (
MATCH(
"FUNCEXPR", 8))
3012 else if (
MATCH(
"NAMEDARGEXPR", 12))
3014 else if (
MATCH(
"OPEXPR", 6))
3016 else if (
MATCH(
"DISTINCTEXPR", 12))
3018 else if (
MATCH(
"NULLIFEXPR", 10))
3020 else if (
MATCH(
"SCALARARRAYOPEXPR", 17))
3022 else if (
MATCH(
"BOOLEXPR", 8))
3024 else if (
MATCH(
"SUBLINK", 7))
3026 else if (
MATCH(
"FIELDSELECT", 11))
3028 else if (
MATCH(
"FIELDSTORE", 10))
3030 else if (
MATCH(
"RELABELTYPE", 11))
3032 else if (
MATCH(
"COERCEVIAIO", 11))
3034 else if (
MATCH(
"ARRAYCOERCEEXPR", 15))
3036 else if (
MATCH(
"CONVERTROWTYPEEXPR", 18))
3038 else if (
MATCH(
"COLLATEEXPR", 11))
3040 else if (
MATCH(
"CASEEXPR", 8))
3042 else if (
MATCH(
"CASEWHEN", 8))
3044 else if (
MATCH(
"CASETESTEXPR", 12))
3046 else if (
MATCH(
"ARRAYEXPR", 9))
3048 else if (
MATCH(
"ROWEXPR", 7))
3050 else if (
MATCH(
"ROWCOMPAREEXPR", 14))
3052 else if (
MATCH(
"COALESCEEXPR", 12))
3054 else if (
MATCH(
"MINMAXEXPR", 10))
3056 else if (
MATCH(
"SQLVALUEFUNCTION", 16))
3058 else if (
MATCH(
"XMLEXPR", 7))
3060 else if (
MATCH(
"NULLTEST", 8))
3062 else if (
MATCH(
"BOOLEANTEST", 11))
3064 else if (
MATCH(
"COERCETODOMAIN", 14))
3066 else if (
MATCH(
"COERCETODOMAINVALUE", 19))
3068 else if (
MATCH(
"SETTODEFAULT", 12))
3070 else if (
MATCH(
"CURRENTOFEXPR", 13))
3072 else if (
MATCH(
"NEXTVALUEEXPR", 13))
3074 else if (
MATCH(
"INFERENCEELEM", 13))
3076 else if (
MATCH(
"TARGETENTRY", 11))
3078 else if (
MATCH(
"RANGETBLREF", 11))
3080 else if (
MATCH(
"JOINEXPR", 8))
3082 else if (
MATCH(
"FROMEXPR", 8))
3084 else if (
MATCH(
"ONCONFLICTEXPR", 14))
3086 else if (
MATCH(
"APPENDRELINFO", 13))
3088 else if (
MATCH(
"RANGETBLENTRY", 13))
3090 else if (
MATCH(
"RANGETBLFUNCTION", 16))
3092 else if (
MATCH(
"TABLESAMPLECLAUSE", 17))
3094 else if (
MATCH(
"NOTIFYSTMT", 10))
3096 else if (
MATCH(
"DEFELEM", 7))
3098 else if (
MATCH(
"DECLARECURSORSTMT", 17))
3100 else if (
MATCH(
"PLANNEDSTMT", 11))
3102 else if (
MATCH(
"PLAN", 4))
3104 else if (
MATCH(
"RESULT", 6))
3106 else if (
MATCH(
"PROJECTSET", 10))
3108 else if (
MATCH(
"MODIFYTABLE", 11))
3110 else if (
MATCH(
"APPEND", 6))
3112 else if (
MATCH(
"MERGEAPPEND", 11))
3114 else if (
MATCH(
"RECURSIVEUNION", 14))
3116 else if (
MATCH(
"BITMAPAND", 9))
3118 else if (
MATCH(
"BITMAPOR", 8))
3120 else if (
MATCH(
"SCAN", 4))
3122 else if (
MATCH(
"SEQSCAN", 7))
3124 else if (
MATCH(
"SAMPLESCAN", 10))
3126 else if (
MATCH(
"INDEXSCAN", 9))
3128 else if (
MATCH(
"INDEXONLYSCAN", 13))
3130 else if (
MATCH(
"BITMAPINDEXSCAN", 15))
3132 else if (
MATCH(
"BITMAPHEAPSCAN", 14))
3134 else if (
MATCH(
"TIDSCAN", 7))
3136 else if (
MATCH(
"TIDRANGESCAN", 12))
3138 else if (
MATCH(
"SUBQUERYSCAN", 12))
3140 else if (
MATCH(
"FUNCTIONSCAN", 12))
3142 else if (
MATCH(
"VALUESSCAN", 10))
3144 else if (
MATCH(
"TABLEFUNCSCAN", 13))
3146 else if (
MATCH(
"CTESCAN", 7))
3148 else if (
MATCH(
"NAMEDTUPLESTORESCAN", 19))
3150 else if (
MATCH(
"WORKTABLESCAN", 13))
3152 else if (
MATCH(
"FOREIGNSCAN", 11))
3154 else if (
MATCH(
"CUSTOMSCAN", 10))
3156 else if (
MATCH(
"JOIN", 4))
3158 else if (
MATCH(
"NESTLOOP", 8))
3160 else if (
MATCH(
"MERGEJOIN", 9))
3162 else if (
MATCH(
"HASHJOIN", 8))
3164 else if (
MATCH(
"MATERIAL", 8))
3166 else if (
MATCH(
"MEMOIZE", 7))
3168 else if (
MATCH(
"SORT", 4))
3170 else if (
MATCH(
"INCREMENTALSORT", 15))
3172 else if (
MATCH(
"GROUP", 5))
3174 else if (
MATCH(
"AGG", 3))
3176 else if (
MATCH(
"WINDOWAGG", 9))
3178 else if (
MATCH(
"UNIQUE", 6))
3180 else if (
MATCH(
"GATHER", 6))
3182 else if (
MATCH(
"GATHERMERGE", 11))
3184 else if (
MATCH(
"HASH", 4))
3186 else if (
MATCH(
"SETOP", 5))
3188 else if (
MATCH(
"LOCKROWS", 8))
3190 else if (
MATCH(
"LIMIT", 5))
3192 else if (
MATCH(
"NESTLOOPPARAM", 13))
3194 else if (
MATCH(
"PLANROWMARK", 11))
3196 else if (
MATCH(
"PARTITIONPRUNEINFO", 18))
3198 else if (
MATCH(
"PARTITIONEDRELPRUNEINFO", 23))
3200 else if (
MATCH(
"PARTITIONPRUNESTEPOP", 20))
3202 else if (
MATCH(
"PARTITIONPRUNESTEPCOMBINE", 25))
3204 else if (
MATCH(
"PLANINVALITEM", 13))
3206 else if (
MATCH(
"SUBPLAN", 7))
3208 else if (
MATCH(
"ALTERNATIVESUBPLAN", 18))
3210 else if (
MATCH(
"EXTENSIBLENODE", 14))
3212 else if (
MATCH(
"PARTITIONBOUNDSPEC", 18))
3214 else if (
MATCH(
"PARTITIONRANGEDATUM", 19))
3216 else if (
MATCH(
"JSONFORMAT", 10))
3218 else if (
MATCH(
"JSONRETURNING", 13))
3220 else if (
MATCH(
"JSONVALUEEXPR", 13))
3222 else if (
MATCH(
"JSONCONSTRUCTOREXPR", 19))
3224 else if (
MATCH(
"JSONISPREDICATE", 15))
3226 else if (
MATCH(
"JSONBEHAVIOR", 12))
3228 else if (
MATCH(
"JSONEXPR", 8))
3230 else if (
MATCH(
"JSONCOERCION", 12))
3232 else if (
MATCH(
"JSONITEMCOERCIONS", 17))
3234 else if (
MATCH(
"JSONTABLEPARENT", 15))
3236 else if (
MATCH(
"JSONTABLESIBLING", 16))
3240 elog(
ERROR,
"badly formatted node string \"%.32s\"...", token);
3241 return_value = NULL;
3244 return (
Node *) return_value;
void check_stack_depth(void)
static MergeAction * _readMergeAction(void)
static PlannedStmt * _readPlannedStmt(void)
static JsonCoercion * _readJsonCoercion(void)
static PartitionedRelPruneInfo * _readPartitionedRelPruneInfo(void)
static CollateExpr * _readCollateExpr(void)
static CoerceViaIO * _readCoerceViaIO(void)
static PlanInvalItem * _readPlanInvalItem(void)
static WithCheckOption * _readWithCheckOption(void)
static Alias * _readAlias(void)
static NestLoopParam * _readNestLoopParam(void)
static PartitionPruneStepOp * _readPartitionPruneStepOp(void)
static RangeTblFunction * _readRangeTblFunction(void)
static JsonValueExpr * _readJsonValueExpr(void)
static PartitionPruneInfo * _readPartitionPruneInfo(void)
static Result * _readResult(void)
static AlternativeSubPlan * _readAlternativeSubPlan(void)
static JsonConstructorExpr * _readJsonConstructorExpr(void)
static PartitionRangeDatum * _readPartitionRangeDatum(void)
static WorkTableScan * _readWorkTableScan(void)
static CoerceToDomain * _readCoerceToDomain(void)
static IndexScan * _readIndexScan(void)
static ArrayCoerceExpr * _readArrayCoerceExpr(void)
static Group * _readGroup(void)
static WindowAgg * _readWindowAgg(void)
static NamedArgExpr * _readNamedArgExpr(void)
static RowExpr * _readRowExpr(void)
static CoerceToDomainValue * _readCoerceToDomainValue(void)
static RangeTblEntry * _readRangeTblEntry(void)
static JsonTableParent * _readJsonTableParent(void)
static FieldStore * _readFieldStore(void)
static ScalarArrayOpExpr * _readScalarArrayOpExpr(void)
static TableFunc * _readTableFunc(void)
static SetOp * _readSetOp(void)
static TableFuncScan * _readTableFuncScan(void)
static CoalesceExpr * _readCoalesceExpr(void)
static TableSampleClause * _readTableSampleClause(void)
static DefElem * _readDefElem(void)
static RangeTblRef * _readRangeTblRef(void)
static BooleanTest * _readBooleanTest(void)
static FuncExpr * _readFuncExpr(void)
static JsonFormat * _readJsonFormat(void)
static BitmapOr * _readBitmapOr(void)
static Const * _readConst(void)
static JoinExpr * _readJoinExpr(void)
static Sort * _readSort(void)
static Aggref * _readAggref(void)
static SQLValueFunction * _readSQLValueFunction(void)
static RowMarkClause * _readRowMarkClause(void)
static IncrementalSort * _readIncrementalSort(void)
static AppendRelInfo * _readAppendRelInfo(void)
static Plan * _readPlan(void)
static RangeVar * _readRangeVar(void)
static CaseWhen * _readCaseWhen(void)
static Scan * _readScan(void)
static Memoize * _readMemoize(void)
static ConvertRowtypeExpr * _readConvertRowtypeExpr(void)
static Gather * _readGather(void)
static IntoClause * _readIntoClause(void)
static TidScan * _readTidScan(void)
static CTESearchClause * _readCTESearchClause(void)
static InferenceElem * _readInferenceElem(void)
static NextValueExpr * _readNextValueExpr(void)
static NamedTuplestoreScan * _readNamedTuplestoreScan(void)
static WindowFunc * _readWindowFunc(void)
static NestLoop * _readNestLoop(void)
static JsonItemCoercions * _readJsonItemCoercions(void)
static Agg * _readAgg(void)
static CustomScan * _readCustomScan(void)
static MergeAppend * _readMergeAppend(void)
static Var * _readVar(void)
static CommonTableExpr * _readCommonTableExpr(void)
static SampleScan * _readSampleScan(void)
static TargetEntry * _readTargetEntry(void)
static OnConflictExpr * _readOnConflictExpr(void)
static BoolExpr * _readBoolExpr(void)
static ModifyTable * _readModifyTable(void)
static CTECycleClause * _readCTECycleClause(void)
static WindowClause * _readWindowClause(void)
static JsonReturning * _readJsonReturning(void)
static BitmapIndexScan * _readBitmapIndexScan(void)
static Query * _readQuery(void)
static CurrentOfExpr * _readCurrentOfExpr(void)
static MergeWhenClause * _readMergeWhenClause(void)
static SeqScan * _readSeqScan(void)
static LockRows * _readLockRows(void)
static DistinctExpr * _readDistinctExpr(void)
static GroupingFunc * _readGroupingFunc(void)
static JsonIsPredicate * _readJsonIsPredicate()
static DeclareCursorStmt * _readDeclareCursorStmt(void)
static FromExpr * _readFromExpr(void)
static NotifyStmt * _readNotifyStmt(void)
static Hash * _readHash(void)
static JsonExpr * _readJsonExpr(void)
static PlanRowMark * _readPlanRowMark(void)
static IndexOnlyScan * _readIndexOnlyScan(void)
static JsonBehavior * _readJsonBehavior(void)
static JsonTableSibling * _readJsonTableSibling(void)
static PartitionPruneStepCombine * _readPartitionPruneStepCombine(void)
static ExtensibleNode * _readExtensibleNode(void)
static RecursiveUnion * _readRecursiveUnion(void)
static ArrayExpr * _readArrayExpr(void)
static Append * _readAppend(void)
static ValuesScan * _readValuesScan(void)
static XmlExpr * _readXmlExpr(void)
#define MATCH(tokname, namelen)
static FunctionScan * _readFunctionScan(void)
static SetToDefault * _readSetToDefault(void)
static MergeJoin * _readMergeJoin(void)
static BitmapHeapScan * _readBitmapHeapScan(void)
static FieldSelect * _readFieldSelect(void)
static Join * _readJoin(void)
static SubscriptingRef * _readSubscriptingRef(void)
static NullIfExpr * _readNullIfExpr(void)
static ProjectSet * _readProjectSet(void)
static GatherMerge * _readGatherMerge(void)
static CteScan * _readCteScan(void)
static SetOperationStmt * _readSetOperationStmt(void)
static CaseTestExpr * _readCaseTestExpr(void)
static RelabelType * _readRelabelType(void)
static RowCompareExpr * _readRowCompareExpr(void)
static SubPlan * _readSubPlan(void)
static PartitionBoundSpec * _readPartitionBoundSpec(void)
static NullTest * _readNullTest(void)
static Material * _readMaterial(void)
static CaseExpr * _readCaseExpr(void)
static Param * _readParam(void)
static GroupingSet * _readGroupingSet(void)
static HashJoin * _readHashJoin(void)
static SubLink * _readSubLink(void)
#define READ_TEMP_LOCALS()
static SubqueryScan * _readSubqueryScan(void)
static BitmapAnd * _readBitmapAnd(void)
static TidRangeScan * _readTidRangeScan(void)
static OpExpr * _readOpExpr(void)
static SortGroupClause * _readSortGroupClause(void)
static Unique * _readUnique(void)
static MinMaxExpr * _readMinMaxExpr(void)
static ForeignScan * _readForeignScan(void)
static Limit * _readLimit(void)