diff options
Diffstat (limited to 'src/backend/nodes/nodes.h')
-rw-r--r-- | src/backend/nodes/nodes.h | 299 |
1 files changed, 0 insertions, 299 deletions
diff --git a/src/backend/nodes/nodes.h b/src/backend/nodes/nodes.h deleted file mode 100644 index 7fa9fdb5a93..00000000000 --- a/src/backend/nodes/nodes.h +++ /dev/null @@ -1,299 +0,0 @@ -/*------------------------------------------------------------------------- - * - * nodes.h-- - * Definitions for tagged nodes. - * - * - * Copyright (c) 1994, Regents of the University of California - * - * $Id: nodes.h,v 1.1.1.1 1996/07/09 06:21:33 scrappy Exp $ - * - *------------------------------------------------------------------------- - */ -#ifndef NODES_H -#define NODES_H - -#include "c.h" - -/* - * The first field of every node is NodeTag. Each node created (with makeNode) - * will have one of the following tags as the value of its first field. - * - * Note that the number of the node tags are not contiguous. We left holes - * here so that we can add more tags without changing the existing enum's. - */ -typedef enum NodeTag { - T_Invalid = 0, - - /*--------------------- - * TAGS FOR PLAN NODES (plannodes.h) - *--------------------- - */ - T_Plan = 10, - T_Existential, - T_Result, - T_Append, - T_Scan, - T_SeqScan, - T_IndexScan, - T_Join, - T_NestLoop, - T_MergeJoin, - T_HashJoin, - T_Temp, - T_Material, - T_Sort, - T_Agg, - T_Unique, - T_Hash, - T_Choose, - T_Tee, - T_Group, - - /*--------------------- - * TAGS FOR PRIMITIVE NODES (primnodes.h) - *--------------------- - */ - T_Resdom = 100, - T_Fjoin, - T_Expr, - T_Var, - T_Oper, - T_Const, - T_Param, - T_Aggreg, - T_Func, - T_Array, - T_ArrayRef, - - /*--------------------- - * TAGS FOR INNER PLAN NODES (relation.h) - *--------------------- - */ - T_Rel = 200, - T_Path, - T_IndexPath, - T_JoinPath, - T_MergePath, - T_HashPath, - T_OrderKey, - T_JoinKey, - T_MergeOrder, - T_CInfo, - T_JoinMethod, - T_HInfo, - T_MInfo, - T_JInfo, - T_Iter, - T_Stream, - - /*--------------------- - * TAGS FOR EXECUTOR NODES (execnodes.h) - *--------------------- - */ - T_IndexInfo = 300, - T_RelationInfo, - T_TupleCount, - T_TupleTableSlot, - T_ExprContext, - T_ProjectionInfo, - T_JunkFilter, - T_EState, - T_BaseNode, - T_CommonState, - T_ResultState, - T_AppendState, - T_CommonScanState, - T_ScanState, - T_IndexScanState, - T_JoinState, - T_NestLoopState, - T_MergeJoinState, - T_HashJoinState, - T_MaterialState, - T_AggState, - T_GroupState, - T_SortState, - T_UniqueState, - T_HashState, - T_TeeState, - - /*--------------------- - * TAGS FOR MEMORY NODES (memnodes.h) - *--------------------- - */ - T_MemoryContext = 400, - T_GlobalMemory, - T_PortalMemoryContext, - T_PortalVariableMemory, - T_PortalHeapMemory, - - /*--------------------- - * TAGS FOR VALUE NODES (pg_list.h) - *--------------------- - */ - T_Value = 500, - T_List, - T_Integer, - T_Float, - T_String, - T_Null, - - /*--------------------- - * TAGS FOR PARSE TREE NODES (parsenode.h) - *--------------------- - */ - T_Query = 600, - T_AppendStmt, - T_DeleteStmt, - T_ReplaceStmt, - T_CursorStmt, - T_RetrieveStmt, - T_AddAttrStmt, - T_AggregateStmt, - T_ChangeACLStmt, - T_ClosePortalStmt, - T_ClusterStmt, - T_CopyStmt, - T_CreateStmt, - T_VersionStmt, - T_DefineStmt, - T_DestroyStmt, - T_ExtendStmt, - T_FetchStmt, - T_IndexStmt, - T_MoveStmt, - T_ProcedureStmt, - T_PurgeStmt, - T_RecipeStmt, - T_RemoveFuncStmt, - T_RemoveOperStmt, - T_RemoveStmt, - T_RenameStmt, - T_RuleStmt, - T_NotifyStmt, - T_ListenStmt, - T_TransactionStmt, - T_ViewStmt, - T_LoadStmt, - T_CreatedbStmt, - T_DestroydbStmt, - T_VacuumStmt, - T_ExplainStmt, - - T_A_Expr = 700, - T_Attr, - T_A_Const, - T_ParamNo, - T_Ident, - T_FuncCall, - T_A_Indices, - T_ResTarget, - T_ParamString, - T_TimeRange, - T_RelExpr, - T_SortBy, - T_RangeVar, - T_TypeName, - T_IndexElem, - T_ColumnDef, - T_DefElem, - T_TargetEntry, - T_RangeTblEntry, - T_SortClause, - T_GroupClause -} NodeTag; - -/* - * The first field of a node of any type is gauranteed to be the NodeTag. - * Hence the type of any node can be gotten by casting it to Node. Declaring - * a variable to be of Node * (instead of void *) can also facilitate - * debugging. - */ -typedef struct Node { - NodeTag type; -} Node; - -#define nodeTag(_node_) ((Node*)_node_)->type - -#define makeNode(_node_) (_node_*)newNode(sizeof(_node_),T_##_node_) -#define NodeSetTag(n, t) ((Node *)n)->type = t - -#define IsA(_node_,_tag_) (nodeTag(_node_) == T_##_tag_) - -/* ---------------------------------------------------------------- - * IsA functions (no inheritence any more) - * ---------------------------------------------------------------- - */ -#define IsA_JoinPath(jp) \ - (nodeTag(jp)==T_JoinPath || nodeTag(jp)==T_MergePath || \ - nodeTag(jp)==T_HashPath) - -#define IsA_Join(j) \ - (nodeTag(j)==T_Join || nodeTag(j)==T_NestLoop || \ - nodeTag(j)==T_MergeJoin || nodeTag(j)==T_HashJoin) - -#define IsA_Temp(t) \ - (nodeTag(t)==T_Temp || nodeTag(t)==T_Material || nodeTag(t)==T_Sort || \ - nodeTag(t)==T_Unique) - -/* ---------------------------------------------------------------- - * extern declarations follow - * ---------------------------------------------------------------- - */ - -/* - * nodes/nodes.c - */ -extern Node *newNode(Size size, NodeTag tag); - -/* - * nodes/{outfuncs.c,print.c} - */ -#define nodeDisplay print - -extern char *nodeToString(void *obj); -extern void print(void *obj); - -/* - * nodes/{readfuncs.c,read.c} - */ -extern void *stringToNode(char *str); - -/* - * nodes/copyfuncs.c - */ -extern void *copyObject(void *obj); - -/* - * nodes/equalfuncs.c - */ -extern bool equal(void *a, void *b); - - -/* ---------------- - * I don't know why this is here. Most likely a hack.. - * -cim 6/3/90 - * ---------------- - */ -typedef float Cost; - -/* - * CmdType - - * enums for type of operation to aid debugging - * - * ??? could have put this in parsenodes.h but many files not in the - * optimizer also need this... - */ -typedef enum CmdType { - CMD_UNKNOWN, - CMD_SELECT, /* select stmt (formerly retrieve) */ - CMD_UPDATE, /* update stmt (formerly replace) */ - CMD_INSERT, /* insert stmt (formerly append) */ - CMD_DELETE, - CMD_NOTIFY, - CMD_UTILITY /* cmds like create, destroy, copy, vacuum, etc. */ -} CmdType; - - -#endif /* NODES_H */ |