]> granicus.if.org Git - postgresql/blobdiff - src/include/nodes/nodes.h
Support GROUPING SETS, CUBE and ROLLUP.
[postgresql] / src / include / nodes / nodes.h
index 067c7685f0d2986c48f26d496cb089e881eaa085..669a0afa09c94e535d897cc36b1ad00bf3ed5329 100644 (file)
@@ -4,7 +4,7 @@
  *       Definitions for tagged nodes.
  *
  *
- * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1996-2015, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * src/include/nodes/nodes.h
@@ -61,7 +61,9 @@ typedef enum NodeTag
        T_ValuesScan,
        T_CteScan,
        T_WorkTableScan,
+       T_SampleScan,
        T_ForeignScan,
+       T_CustomScan,
        T_Join,
        T_NestLoop,
        T_MergeJoin,
@@ -96,6 +98,7 @@ typedef enum NodeTag
        T_BitmapOrState,
        T_ScanState,
        T_SeqScanState,
+       T_SampleScanState,
        T_IndexScanState,
        T_IndexOnlyScanState,
        T_BitmapIndexScanState,
@@ -107,6 +110,7 @@ typedef enum NodeTag
        T_CteScanState,
        T_WorkTableScanState,
        T_ForeignScanState,
+       T_CustomScanState,
        T_JoinState,
        T_NestLoopState,
        T_MergeJoinState,
@@ -132,6 +136,7 @@ typedef enum NodeTag
        T_Const,
        T_Param,
        T_Aggref,
+       T_GroupingFunc,
        T_WindowFunc,
        T_ArrayRef,
        T_FuncExpr,
@@ -166,10 +171,12 @@ typedef enum NodeTag
        T_CoerceToDomainValue,
        T_SetToDefault,
        T_CurrentOfExpr,
+       T_InferenceElem,
        T_TargetEntry,
        T_RangeTblRef,
        T_JoinExpr,
        T_FromExpr,
+       T_OnConflictExpr,
        T_IntoClause,
 
        /*
@@ -182,6 +189,7 @@ typedef enum NodeTag
        T_GenericExprState,
        T_WholeRowVarExprState,
        T_AggrefExprState,
+       T_GroupingFuncExprState,
        T_WindowFuncExprState,
        T_ArrayRefExprState,
        T_FuncExprState,
@@ -224,6 +232,7 @@ typedef enum NodeTag
        T_HashPath,
        T_TidPath,
        T_ForeignPath,
+       T_CustomPath,
        T_AppendPath,
        T_MergeAppendPath,
        T_ResultPath,
@@ -354,7 +363,7 @@ typedef enum NodeTag
        T_AlterUserMappingStmt,
        T_DropUserMappingStmt,
        T_AlterTableSpaceOptionsStmt,
-       T_AlterTableSpaceMoveStmt,
+       T_AlterTableMoveAllStmt,
        T_SecLabelStmt,
        T_CreateForeignTableStmt,
        T_ImportForeignSchemaStmt,
@@ -366,6 +375,9 @@ typedef enum NodeTag
        T_RefreshMatViewStmt,
        T_ReplicaIdentityStmt,
        T_AlterSystemStmt,
+       T_CreatePolicyStmt,
+       T_AlterPolicyStmt,
+       T_CreateTransformStmt,
 
        /*
         * TAGS FOR PARSE TREE NODES (parsenodes.h)
@@ -396,6 +408,7 @@ typedef enum NodeTag
        T_RangeTblFunction,
        T_WithCheckOption,
        T_SortGroupClause,
+       T_GroupingSet,
        T_WindowClause,
        T_PrivGrantee,
        T_FuncWithArgs,
@@ -407,7 +420,12 @@ typedef enum NodeTag
        T_RowMarkClause,
        T_XmlSerialize,
        T_WithClause,
+       T_InferClause,
+       T_OnConflictClause,
        T_CommonTableExpr,
+       T_RoleSpec,
+       T_RangeTableSample,
+       T_TableSampleClause,
 
        /*
         * TAGS FOR REPLICATION GRAMMAR PARSE NODES (replnodes.h)
@@ -619,4 +637,17 @@ typedef enum JoinType
           (1 << JOIN_RIGHT) | \
           (1 << JOIN_ANTI))) != 0)
 
+/*
+ * OnConflictAction -
+ *       "ON CONFLICT" clause type of query
+ *
+ * This is needed in both parsenodes.h and plannodes.h, so put it here...
+ */
+typedef enum OnConflictAction
+{
+       ONCONFLICT_NONE,                /* No "ON CONFLICT" clause */
+       ONCONFLICT_NOTHING,             /* ON CONFLICT ... DO NOTHING */
+       ONCONFLICT_UPDATE               /* ON CONFLICT ... DO UPDATE */
+} OnConflictAction;
+
 #endif   /* NODES_H */