Header And Logo

PostgreSQL
| The world's most advanced open source database.

Data Structures | Defines | Typedefs | Enumerations | Functions | Variables

nodes.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Node

Defines

#define nodeTag(nodeptr)   (((const Node*)(nodeptr))->type)
#define newNode(size, tag)
#define makeNode(_type_)   ((_type_ *) newNode(sizeof(_type_),T_##_type_))
#define NodeSetTag(nodeptr, t)   (((Node*)(nodeptr))->type = (t))
#define IsA(nodeptr, _type_)   (nodeTag(nodeptr) == T_##_type_)
#define IS_OUTER_JOIN(jointype)

Typedefs

typedef enum NodeTag NodeTag
typedef struct Node Node
typedef double Selectivity
typedef double Cost
typedef enum CmdType CmdType
typedef enum JoinType JoinType

Enumerations

enum  NodeTag {
  T_Invalid = 0, T_IndexInfo = 10, T_ExprContext, T_ProjectionInfo,
  T_JunkFilter, T_ResultRelInfo, T_EState, T_TupleTableSlot,
  T_Plan = 100, T_Result, T_ModifyTable, T_Append,
  T_MergeAppend, T_RecursiveUnion, T_BitmapAnd, T_BitmapOr,
  T_Scan, T_SeqScan, T_IndexScan, T_IndexOnlyScan,
  T_BitmapIndexScan, T_BitmapHeapScan, T_TidScan, T_SubqueryScan,
  T_FunctionScan, T_ValuesScan, T_CteScan, T_WorkTableScan,
  T_ForeignScan, T_Join, T_NestLoop, T_MergeJoin,
  T_HashJoin, T_Material, T_Sort, T_Group,
  T_Agg, T_WindowAgg, T_Unique, T_Hash,
  T_SetOp, T_LockRows, T_Limit, T_NestLoopParam,
  T_PlanRowMark, T_PlanInvalItem, T_PlanState = 200, T_ResultState,
  T_ModifyTableState, T_AppendState, T_MergeAppendState, T_RecursiveUnionState,
  T_BitmapAndState, T_BitmapOrState, T_ScanState, T_SeqScanState,
  T_IndexScanState, T_IndexOnlyScanState, T_BitmapIndexScanState, T_BitmapHeapScanState,
  T_TidScanState, T_SubqueryScanState, T_FunctionScanState, T_ValuesScanState,
  T_CteScanState, T_WorkTableScanState, T_ForeignScanState, T_JoinState,
  T_NestLoopState, T_MergeJoinState, T_HashJoinState, T_MaterialState,
  T_SortState, T_GroupState, T_AggState, T_WindowAggState,
  T_UniqueState, T_HashState, T_SetOpState, T_LockRowsState,
  T_LimitState, T_Alias = 300, T_RangeVar, T_Expr,
  T_Var, T_Const, T_Param, T_Aggref,
  T_WindowFunc, T_ArrayRef, T_FuncExpr, T_NamedArgExpr,
  T_OpExpr, T_DistinctExpr, T_NullIfExpr, T_ScalarArrayOpExpr,
  T_BoolExpr, T_SubLink, T_SubPlan, T_AlternativeSubPlan,
  T_FieldSelect, T_FieldStore, T_RelabelType, T_CoerceViaIO,
  T_ArrayCoerceExpr, T_ConvertRowtypeExpr, T_CollateExpr, T_CaseExpr,
  T_CaseWhen, T_CaseTestExpr, T_ArrayExpr, T_RowExpr,
  T_RowCompareExpr, T_CoalesceExpr, T_MinMaxExpr, T_XmlExpr,
  T_NullTest, T_BooleanTest, T_CoerceToDomain, T_CoerceToDomainValue,
  T_SetToDefault, T_CurrentOfExpr, T_TargetEntry, T_RangeTblRef,
  T_JoinExpr, T_FromExpr, T_IntoClause, T_ExprState = 400,
  T_GenericExprState, T_WholeRowVarExprState, T_AggrefExprState, T_WindowFuncExprState,
  T_ArrayRefExprState, T_FuncExprState, T_ScalarArrayOpExprState, T_BoolExprState,
  T_SubPlanState, T_AlternativeSubPlanState, T_FieldSelectState, T_FieldStoreState,
  T_CoerceViaIOState, T_ArrayCoerceExprState, T_ConvertRowtypeExprState, T_CaseExprState,
  T_CaseWhenState, T_ArrayExprState, T_RowExprState, T_RowCompareExprState,
  T_CoalesceExprState, T_MinMaxExprState, T_XmlExprState, T_NullTestState,
  T_CoerceToDomainState, T_DomainConstraintState, T_PlannerInfo = 500, T_PlannerGlobal,
  T_RelOptInfo, T_IndexOptInfo, T_ParamPathInfo, T_Path,
  T_IndexPath, T_BitmapHeapPath, T_BitmapAndPath, T_BitmapOrPath,
  T_NestPath, T_MergePath, T_HashPath, T_TidPath,
  T_ForeignPath, T_AppendPath, T_MergeAppendPath, T_ResultPath,
  T_MaterialPath, T_UniquePath, T_EquivalenceClass, T_EquivalenceMember,
  T_PathKey, T_RestrictInfo, T_PlaceHolderVar, T_SpecialJoinInfo,
  T_LateralJoinInfo, T_AppendRelInfo, T_PlaceHolderInfo, T_MinMaxAggInfo,
  T_PlannerParamItem, T_MemoryContext = 600, T_AllocSetContext, T_Value = 650,
  T_Integer, T_Float, T_String, T_BitString,
  T_Null, T_List, T_IntList, T_OidList,
  T_Query = 700, T_PlannedStmt, T_InsertStmt, T_DeleteStmt,
  T_UpdateStmt, T_SelectStmt, T_AlterTableStmt, T_AlterTableCmd,
  T_AlterDomainStmt, T_SetOperationStmt, T_GrantStmt, T_GrantRoleStmt,
  T_AlterDefaultPrivilegesStmt, T_ClosePortalStmt, T_ClusterStmt, T_CopyStmt,
  T_CreateStmt, T_DefineStmt, T_DropStmt, T_TruncateStmt,
  T_CommentStmt, T_FetchStmt, T_IndexStmt, T_CreateFunctionStmt,
  T_AlterFunctionStmt, T_DoStmt, T_RenameStmt, T_RuleStmt,
  T_NotifyStmt, T_ListenStmt, T_UnlistenStmt, T_TransactionStmt,
  T_ViewStmt, T_LoadStmt, T_CreateDomainStmt, T_CreatedbStmt,
  T_DropdbStmt, T_VacuumStmt, T_ExplainStmt, T_CreateTableAsStmt,
  T_CreateSeqStmt, T_AlterSeqStmt, T_VariableSetStmt, T_VariableShowStmt,
  T_DiscardStmt, T_CreateTrigStmt, T_CreatePLangStmt, T_CreateRoleStmt,
  T_AlterRoleStmt, T_DropRoleStmt, T_LockStmt, T_ConstraintsSetStmt,
  T_ReindexStmt, T_CheckPointStmt, T_CreateSchemaStmt, T_AlterDatabaseStmt,
  T_AlterDatabaseSetStmt, T_AlterRoleSetStmt, T_CreateConversionStmt, T_CreateCastStmt,
  T_CreateOpClassStmt, T_CreateOpFamilyStmt, T_AlterOpFamilyStmt, T_PrepareStmt,
  T_ExecuteStmt, T_DeallocateStmt, T_DeclareCursorStmt, T_CreateTableSpaceStmt,
  T_DropTableSpaceStmt, T_AlterObjectSchemaStmt, T_AlterOwnerStmt, T_DropOwnedStmt,
  T_ReassignOwnedStmt, T_CompositeTypeStmt, T_CreateEnumStmt, T_CreateRangeStmt,
  T_AlterEnumStmt, T_AlterTSDictionaryStmt, T_AlterTSConfigurationStmt, T_CreateFdwStmt,
  T_AlterFdwStmt, T_CreateForeignServerStmt, T_AlterForeignServerStmt, T_CreateUserMappingStmt,
  T_AlterUserMappingStmt, T_DropUserMappingStmt, T_AlterTableSpaceOptionsStmt, T_SecLabelStmt,
  T_CreateForeignTableStmt, T_CreateExtensionStmt, T_AlterExtensionStmt, T_AlterExtensionContentsStmt,
  T_CreateEventTrigStmt, T_AlterEventTrigStmt, T_RefreshMatViewStmt, T_A_Expr = 900,
  T_ColumnRef, T_ParamRef, T_A_Const, T_FuncCall,
  T_A_Star, T_A_Indices, T_A_Indirection, T_A_ArrayExpr,
  T_ResTarget, T_TypeCast, T_CollateClause, T_SortBy,
  T_WindowDef, T_RangeSubselect, T_RangeFunction, T_TypeName,
  T_ColumnDef, T_IndexElem, T_Constraint, T_DefElem,
  T_RangeTblEntry, T_SortGroupClause, T_WindowClause, T_PrivGrantee,
  T_FuncWithArgs, T_AccessPriv, T_CreateOpClassItem, T_TableLikeClause,
  T_FunctionParameter, T_LockingClause, T_RowMarkClause, T_XmlSerialize,
  T_WithClause, T_CommonTableExpr, T_IdentifySystemCmd, T_BaseBackupCmd,
  T_StartReplicationCmd, T_TimeLineHistoryCmd, T_TriggerData = 950, T_EventTriggerData,
  T_ReturnSetInfo, T_WindowObjectData, T_TIDBitmap, T_InlineCodeBlock,
  T_FdwRoutine
}
enum  CmdType {
  CMD_UNKNOWN, CMD_SELECT, CMD_UPDATE, CMD_INSERT,
  CMD_DELETE, CMD_UTILITY, CMD_NOTHING
}
enum  JoinType {
  JOIN_INNER, JOIN_LEFT, JOIN_FULL, JOIN_RIGHT,
  JOIN_SEMI, JOIN_ANTI, JOIN_UNIQUE_OUTER, JOIN_UNIQUE_INNER
}

Functions

char * nodeToString (const void *obj)
void * stringToNode (char *str)
void * copyObject (const void *obj)
bool equal (const void *a, const void *b)

Variables

PGDLLIMPORT NodenewNodeMacroHolder

Define Documentation

#define IS_OUTER_JOIN (   jointype  ) 
Value:
(((1 << (jointype)) & \
      ((1 << JOIN_LEFT) | \
       (1 << JOIN_FULL) | \
       (1 << JOIN_RIGHT) | \
       (1 << JOIN_ANTI))) != 0)

Definition at line 606 of file nodes.h.

Referenced by calc_joinrel_size_estimate(), create_hashjoin_plan(), create_mergejoin_plan(), create_nestloop_plan(), hash_inner_and_outer(), reduce_outer_joins_pass1(), select_mergejoin_clauses(), and subquery_planner().

#define IsA (   nodeptr,
  _type_ 
)    (nodeTag(nodeptr) == T_##_type_)

Definition at line 487 of file nodes.h.

Referenced by _outList(), _outNode(), _SPI_execute_plan(), accumulate_append_subpath(), AcquireExecutorLocks(), acquireLocksOnSubLinks(), AcquirePlannerLocks(), AcquireRewriteLocks(), add_base_rels_to_query(), add_path(), add_vars_to_targetlist(), AddQual(), addRangeTableEntryForCTE(), AddRelationNewConstraints(), adjust_appendrel_attrs(), adjust_appendrel_attrs_mutator(), adjust_inherited_tlist(), adjust_view_column_set(), adjustJoinTreeList(), AggCheckCallContext(), AlterDomainAddConstraint(), AlterDomainDefault(), AlterOpFamilyAdd(), AlterOpFamilyDrop(), AlterTableGetLockLevel(), analyzeCTE(), and_clause(), arraycontsel(), assign_collations_walker(), assign_param_for_placeholdervar(), assign_param_for_var(), assign_query_collations_walker(), ATColumnChangeRequiresRewrite(), ATExecAddConstraint(), ATExecAddIndex(), ATExecAddIndexConstraint(), ATExecSetOptions(), ATExecSetStatistics(), ATExecSetStorage(), ATPostAlterTypeParse(), attribute_used_walker(), BeginCopy(), BitmapHeapNext(), btcostestimate(), btree_predicate_proof(), build_index_paths(), build_joinrel_tlist(), build_physical_tlist(), build_subplan(), build_tlist_index(), build_tlist_index_other_vars(), buildMergedJoinVar(), buildScalarFunctionAlias(), cached_plan_cost(), calc_joinrel_size_estimate(), canonicalize_ec_expression(), ChangeVarNodes(), ChangeVarNodes_walker(), check_agg_arguments_walker(), check_constant_qual(), check_functional_grouping(), check_parameter_resolution_walker(), check_ungrouped_columns_walker(), checkExprHasSubLink_walker(), checkWellFormedRecursion(), checkWellFormedRecursionWalker(), ChoosePortalStrategy(), clause_selectivity(), clauselist_selectivity(), coerce_record_to_complex(), coerce_to_target_type(), coerce_type(), CommandIsReadOnly(), CommuteRowCompareExpr(), compute_semi_anti_join_factors(), ComputeIndexAttrs(), connectby_text(), connectby_text_serial(), contain_agg_clause_walker(), contain_aggs_of_level_walker(), contain_mutable_functions_walker(), contain_nonstrict_functions_walker(), contain_subplans_walker(), contain_var_clause_walker(), contain_vars_of_level_walker(), contain_volatile_functions_walker(), contain_windowfuncs_walker(), convert_EXISTS_to_ANY(), convert_testexpr_mutator(), cost_bitmap_heap_scan(), cost_bitmap_or_node(), cost_bitmap_tree_node(), cost_index(), cost_qual_eval_walker(), cost_tidscan(), cost_windowagg(), count_agg_clauses_walker(), count_rowexpr_columns(), create_bitmap_scan_plan(), create_bitmap_subplan(), create_hashjoin_plan(), create_indexscan_plan(), create_lateral_join_info(), create_mergejoin_plan(), create_nestloop_plan(), create_or_index_quals(), create_unique_path(), CreateCommandTag(), createdb(), crosstab(), crosstab_hash(), currtid_for_view(), deconstruct_jointree(), deconstruct_recurse(), DefineDomain(), DefineOpClass(), DefineView(), deflist_to_tuplestore(), deparseArrayRef(), determineRecursiveColTypes(), drop_indexable_join_clauses(), each_worker(), eqsel(), errdetail_execute(), estimate_array_length(), eval_const_expressions_mutator(), evaluate_function(), examine_simple_variable(), examine_variable(), exec_init_tuple_store(), exec_simple_check_plan(), exec_simple_query(), exec_simple_recheck_plan(), exec_stmt_execsql(), ExecAlternativeSubPlan(), ExecAssignScanProjectionInfo(), ExecBuildProjectionInfo(), ExecCheckPlanOutput(), ExecCleanTargetListLength(), ExecCreateTableAs(), ExecDropSingleTupleTableSlot(), ExecIndexBuildScanKeys(), ExecInitCteScan(), ExecInitExpr(), ExecInitHashJoin(), ExecInitLockRows(), ExecInitMergeJoin(), ExecInitModifyTable(), ExecInitNode(), ExecInitSubPlan(), ExecMakeTableFunctionResult(), ExecNestLoop(), ExecRefreshMatView(), ExecResetTupleTable(), ExecSetVariableStmt(), execute_sql_string(), ExecuteQuery(), ExecWorkTableScan(), expand_boolean_index_clause(), expand_function_arguments(), expand_indexqual_conditions(), expandRecordVariable(), ExpandRowReference(), expandRTE(), ExplainExecuteQuery(), ExplainNode(), ExplainOneUtility(), ExplainQuery(), ExplainTargetRel(), exprCollation(), expression_returns_set_rows_walker(), expression_returns_set_walker(), expression_tree_walker(), exprIsLengthCoercion(), exprIsNullConstant(), exprSetCollation(), exprType(), exprTypmod(), extract_actual_clauses(), extract_actual_join_clauses(), extract_lateral_references(), extract_not_arg(), extract_query_dependencies_walker(), extract_strong_not_arg(), fetch_function_defaults(), FetchStatementTargetList(), FigureColnameInternal(), final_cost_hashjoin(), final_cost_mergejoin(), finalize_primnode(), find_ec_member_for_tle(), find_expr_references_walker(), find_forced_null_var(), find_forced_null_vars(), find_indexpath_quals(), find_jointree_node_for_rel(), find_minmax_aggs_walker(), find_nonnullable_rels_walker(), find_nonnullable_vars_walker(), find_param_referent(), find_placeholders_in_jointree(), find_placeholders_recurse(), find_unaggregated_cols_walker(), find_window_functions_walker(), findTargetlistEntrySQL92(), fireRIRonSubLink(), fix_expr_common(), fix_indexorderby_references(), fix_indexqual_operand(), fix_indexqual_references(), fix_join_expr_mutator(), fix_opfuncids_walker(), fix_scan_expr_mutator(), fix_scan_expr_walker(), fix_upper_expr_mutator(), flatCopyTargetEntry(), flatten_join_alias_vars_mutator(), flatten_join_using_qual(), flatten_set_variable_args(), flatten_simple_union_all(), fmgr_security_definer(), fmgr_sql(), func_get_detail(), generate_base_implied_equalities_const(), generate_bitmap_or_paths(), generate_join_implied_equalities_normal(), generate_setop_tlist(), genericcostestimate(), get_actual_clauses(), get_agg_expr(), get_all_actual_clauses(), get_assignment_input(), get_base_rel_indexes(), get_bitmap_tree_required_outer(), get_call_expr_arg_stable(), get_call_expr_argtype(), get_coercion_expr(), get_expr_result_type(), get_first_col_type(), get_fn_expr_variadic(), get_from_clause(), get_from_clause_item(), get_func_expr(), get_indexpath_pages(), get_last_attnums(), get_name_for_var_field(), get_parameter(), get_relids_in_jointree(), get_rte_attribute_is_dropped(), get_rule_expr(), get_rule_sortgroupclause(), get_select_query_def(), get_setop_query(), get_sublink_expr(), get_target_list(), get_utility_query_def(), get_variable(), get_variable_numdistinct(), get_windowfunc_expr(), GetFdwRoutine(), getInsertSelectQuery(), gincost_opexpr(), gincost_scalararrayopexpr(), gincostestimate(), has_indexed_join_quals(), has_unnamed_full_join_using(), hide_coercion_node(), identify_join_columns(), IncrementVarSublevelsUp_walker(), init_execution_state(), init_MultiFuncCall(), inline_function(), inline_set_returning_function(), internal_get_result_type(), interval_transform(), is_dummy_plan(), is_safe_append_member(), is_simple_subquery(), is_simple_union_all(), is_simple_union_all_recurse(), is_strict_saop(), isAssignmentIndirectionExpr(), isQueryUsingTempRelation_walker(), isSimpleNode(), IsTidEqualAnyClause(), IsTidEqualClause(), IsTransactionExitStmt(), IsTransactionExitStmtList(), IsTransactionStmtList(), json_array_elements(), json_populate_recordset(), JumbleExpr(), JumbleQuery(), JumbleRangeTable(), limit_needed(), list_member_strip(), locate_agg_of_level_walker(), locate_var_of_level_walker(), locate_windowfunc_walker(), ltreeparentsel(), make_ands_implicit(), make_fn_arguments(), make_rel_from_joinlist(), make_restrictinfo_from_bitmapqual(), make_row_comparison_op(), make_subplan(), make_subplanTargetList(), makeDependencyGraphWalker(), map_variable_attnos_mutator(), mark_placeholders_in_expr(), markQueryForLocking(), markRTEForSelectPriv(), markTargetListOrigin(), markVarForSelectPriv(), match_boolean_index_clause(), match_clause_to_indexcol(), match_clauses_to_index(), match_index_to_operand(), match_special_index_operator(), MJExamineQuals(), MultiExecBitmapAnd(), MultiExecBitmapOr(), NameListToString(), not_clause(), numeric_transform(), OffsetVarNodes(), OffsetVarNodes_walker(), or_clause(), parseCheckAggregates(), ParseComplexProjection(), ParseFuncOrColumn(), parseTypeString(), pass_down_bound(), patternsel(), PerformCursorOpen(), pg_available_extension_versions(), pg_available_extensions(), pg_cursor(), pg_event_trigger_dropped_objects(), pg_extension_update_paths(), pg_get_indexdef_worker(), pg_prepared_statement(), pg_stat_get_wal_senders(), pg_stat_statements(), pgss_ProcessUtility(), plan_list_is_transient(), plan_set_operations(), PlanCacheComputeResultDesc(), PlanCacheFuncCallback(), PlanCacheRelCallback(), plperl_func_handler(), plpgsql_exec_function(), plpgsql_inline_handler(), PLy_exec_function(), PortalListGetPrimaryStmt(), PortalRunMulti(), PortalRunUtility(), PortalStart(), postgresGetForeignPlan(), postquel_start(), predicate_classify(), predicate_implied_by_recurse(), predicate_implied_by_simple_clause(), predicate_refuted_by_recurse(), predicate_refuted_by_simple_clause(), preprocess_limit(), preprocess_minmax_aggregates(), preprocess_qual_conditions(), preprocess_targetlist(), prepTuplestoreResult(), print_expr(), print_function_arguments(), ProcedureCreate(), process_implied_equality(), process_matched_tle(), process_sublinks_mutator(), process_subquery_nestloop_params(), ProcessCopyOptions(), processIndirection(), ProcessUtilitySlow(), pull_up_sublinks(), pull_up_sublinks_jointree_recurse(), pull_up_sublinks_qual_recurse(), pull_up_subqueries_recurse(), pull_up_union_leaf_queries(), pull_var_clause_walker(), pull_varattnos_walker(), pull_varnos_walker(), pull_vars_walker(), pullup_replace_vars_callback(), pullup_replace_vars_subquery(), qual_is_pushdown_safe(), query_contains_extern_params_walker(), query_is_distinct_for(), query_or_expression_tree_mutator(), query_or_expression_tree_walker(), query_tree_mutator(), query_tree_walker(), rangesel(), rangeTableEntry_used_walker(), RangeVarCallbackForAlterRelation(), raw_expression_tree_walker(), reconsider_full_join_clause(), recurse_push_qual(), recurse_pushdown_safe(), recurse_set_operations(), recurse_union_children(), reduce_outer_joins_pass1(), reduce_outer_joins_pass2(), relabel_to_typmod(), remove_rel_from_joinlist(), reorder_function_arguments(), replace_aggs_with_params_mutator(), replace_correlation_vars_mutator(), replace_nestloop_params_mutator(), replace_rte_variables(), replace_rte_variables_mutator(), replace_vars_in_jointree(), ResetPlanCache(), resolve_column_ref(), restriction_is_constant_false(), RewriteQuery(), rewriteTargetListIU(), rewriteTargetView(), rewriteValuesRTE(), scalararraysel(), scalararraysel_containment(), scalargtsel(), scalarltsel(), ScanQueryWalker(), searchForDefault(), select_mergejoin_clauses(), set_append_rel_size(), set_cheapest(), set_deparse_planstate(), set_dummy_tlist_references(), set_join_references(), set_plan_references(), set_rel_width(), set_subquery_size_estimates(), set_upper_references(), set_using_names(), setRuleCheckAsUser_walker(), show_hash_info(), show_plan_tlist(), show_scan_qual(), show_sort_info(), simplify_and_arguments(), simplify_boolean_equality(), simplify_or_arguments(), SPI_cursor_open_internal(), sql_fn_post_column_ref(), standard_planner(), standard_ProcessUtility(), strip_array_coercion(), strip_implicit_coercions(), subquery_is_pushdown_safe(), substitute_actual_parameters_mutator(), substitute_actual_srf_parameters_mutator(), substitute_multiple_relids_walker(), TemporalTransform(), testexpr_is_hashable(), TidListCreate(), TidQualFromExpr(), TidQualFromRestrictinfo(), tlist_matches_tupdesc(), tlist_member_ignore_relabel(), transformAExprDistinct(), transformAExprIn(), transformAExprOp(), transformAlterTableStmt(), transformArrayExpr(), transformArraySubscripts(), transformAssignedExpr(), transformAssignmentIndirection(), transformCaseExpr(), transformColumnDefinition(), transformColumnRef(), transformConstraintAttrs(), transformCreateStmt(), transformCurrentOfExpr(), transformDeclareCursorStmt(), transformExpressionList(), transformExprRecurse(), transformFromClauseItem(), transformIndexConstraint(), transformIndexConstraints(), transformIndirection(), transformInsertRow(), transformInsertStmt(), transformRangeSubselect(), transformSetOperationStmt(), transformSetOperationTree(), transformSubLink(), transformTargetList(), transformTopLevelStmt(), transformUpdateStmt(), transformValuesClause(), transformWithClause(), transformXmlExpr(), translate_col_privs(), translate_sub_tlist(), trivial_subqueryscan(), tsmatchsel(), TypeNameListToString(), typenameTypeMod(), unknown_attribute(), update_proconfig_value(), UtilityContainsQuery(), varbit_transform(), varchar_transform(), view_is_auto_updatable(), and xpath_table().

#define makeNode (   _type_  )     ((_type_ *) newNode(sizeof(_type_),T_##_type_))

Definition at line 484 of file nodes.h.

Referenced by _copyA_ArrayExpr(), _copyA_Indirection(), _copyAccessPriv(), _copyAConst(), _copyAExpr(), _copyAgg(), _copyAggref(), _copyAIndices(), _copyAlias(), _copyAlterDatabaseSetStmt(), _copyAlterDatabaseStmt(), _copyAlterDefaultPrivilegesStmt(), _copyAlterDomainStmt(), _copyAlterEnumStmt(), _copyAlterEventTrigStmt(), _copyAlterExtensionContentsStmt(), _copyAlterExtensionStmt(), _copyAlterFdwStmt(), _copyAlterForeignServerStmt(), _copyAlterFunctionStmt(), _copyAlternativeSubPlan(), _copyAlterObjectSchemaStmt(), _copyAlterOpFamilyStmt(), _copyAlterOwnerStmt(), _copyAlterRoleSetStmt(), _copyAlterRoleStmt(), _copyAlterSeqStmt(), _copyAlterTableCmd(), _copyAlterTableSpaceOptionsStmt(), _copyAlterTableStmt(), _copyAlterTSConfigurationStmt(), _copyAlterTSDictionaryStmt(), _copyAlterUserMappingStmt(), _copyAppend(), _copyAppendRelInfo(), _copyArrayCoerceExpr(), _copyArrayExpr(), _copyArrayRef(), _copyAStar(), _copyBitmapAnd(), _copyBitmapHeapScan(), _copyBitmapIndexScan(), _copyBitmapOr(), _copyBooleanTest(), _copyBoolExpr(), _copyCaseExpr(), _copyCaseTestExpr(), _copyCaseWhen(), _copyClosePortalStmt(), _copyClusterStmt(), _copyCoalesceExpr(), _copyCoerceToDomain(), _copyCoerceToDomainValue(), _copyCoerceViaIO(), _copyCollateClause(), _copyCollateExpr(), _copyColumnDef(), _copyColumnRef(), _copyCommentStmt(), _copyCommonTableExpr(), _copyCompositeTypeStmt(), _copyConst(), _copyConstraint(), _copyConstraintsSetStmt(), _copyConvertRowtypeExpr(), _copyCopyStmt(), _copyCreateCastStmt(), _copyCreateConversionStmt(), _copyCreatedbStmt(), _copyCreateDomainStmt(), _copyCreateEnumStmt(), _copyCreateEventTrigStmt(), _copyCreateExtensionStmt(), _copyCreateFdwStmt(), _copyCreateForeignServerStmt(), _copyCreateForeignTableStmt(), _copyCreateFunctionStmt(), _copyCreateOpClassItem(), _copyCreateOpClassStmt(), _copyCreateOpFamilyStmt(), _copyCreatePLangStmt(), _copyCreateRangeStmt(), _copyCreateRoleStmt(), _copyCreateSchemaStmt(), _copyCreateSeqStmt(), _copyCreateStmt(), _copyCreateTableAsStmt(), _copyCreateTableSpaceStmt(), _copyCreateTrigStmt(), _copyCreateUserMappingStmt(), _copyCteScan(), _copyCurrentOfExpr(), _copyDeallocateStmt(), _copyDeclareCursorStmt(), _copyDefElem(), _copyDefineStmt(), _copyDeleteStmt(), _copyDiscardStmt(), _copyDistinctExpr(), _copyDoStmt(), _copyDropdbStmt(), _copyDropOwnedStmt(), _copyDropRoleStmt(), _copyDropStmt(), _copyDropTableSpaceStmt(), _copyDropUserMappingStmt(), _copyExecuteStmt(), _copyExplainStmt(), _copyFetchStmt(), _copyFieldSelect(), _copyFieldStore(), _copyForeignScan(), _copyFromExpr(), _copyFuncCall(), _copyFuncExpr(), _copyFunctionParameter(), _copyFunctionScan(), _copyFuncWithArgs(), _copyGrantRoleStmt(), _copyGrantStmt(), _copyGroup(), _copyHash(), _copyHashJoin(), _copyIndexElem(), _copyIndexOnlyScan(), _copyIndexScan(), _copyIndexStmt(), _copyInsertStmt(), _copyIntoClause(), _copyJoin(), _copyJoinExpr(), _copyLateralJoinInfo(), _copyLimit(), _copyList(), _copyListenStmt(), _copyLoadStmt(), _copyLockingClause(), _copyLockRows(), _copyLockStmt(), _copyMaterial(), _copyMergeAppend(), _copyMergeJoin(), _copyMinMaxExpr(), _copyModifyTable(), _copyNamedArgExpr(), _copyNestLoop(), _copyNestLoopParam(), _copyNotifyStmt(), _copyNullIfExpr(), _copyNullTest(), _copyOpExpr(), _copyParam(), _copyParamRef(), _copyPathKey(), _copyPlaceHolderInfo(), _copyPlaceHolderVar(), _copyPlan(), _copyPlanInvalItem(), _copyPlannedStmt(), _copyPlanRowMark(), _copyPrepareStmt(), _copyPrivGrantee(), _copyQuery(), _copyRangeFunction(), _copyRangeSubselect(), _copyRangeTblEntry(), _copyRangeTblRef(), _copyRangeVar(), _copyReassignOwnedStmt(), _copyRecursiveUnion(), _copyRefreshMatViewStmt(), _copyReindexStmt(), _copyRelabelType(), _copyRenameStmt(), _copyResTarget(), _copyRestrictInfo(), _copyResult(), _copyRowCompareExpr(), _copyRowExpr(), _copyRowMarkClause(), _copyRuleStmt(), _copyScalarArrayOpExpr(), _copyScan(), _copySecLabelStmt(), _copySelectStmt(), _copySeqScan(), _copySetOp(), _copySetOperationStmt(), _copySetToDefault(), _copySort(), _copySortBy(), _copySortGroupClause(), _copySpecialJoinInfo(), _copySubLink(), _copySubPlan(), _copySubqueryScan(), _copyTableLikeClause(), _copyTargetEntry(), _copyTidScan(), _copyTransactionStmt(), _copyTruncateStmt(), _copyTypeCast(), _copyTypeName(), _copyUnique(), _copyUnlistenStmt(), _copyUpdateStmt(), _copyVacuumStmt(), _copyValue(), _copyValuesScan(), _copyVar(), _copyVariableSetStmt(), _copyVariableShowStmt(), _copyViewStmt(), _copyWindowAgg(), _copyWindowClause(), _copyWindowDef(), _copyWindowFunc(), _copyWithClause(), _copyWorkTableScan(), _copyXmlExpr(), _copyXmlSerialize(), add_eq_member(), add_lateral_info(), AddInvertedQual(), addRangeTableEntry(), addRangeTableEntryForCTE(), addRangeTableEntryForFunction(), addRangeTableEntryForJoin(), addRangeTableEntryForRelation(), addRangeTableEntryForSubquery(), addRangeTableEntryForValues(), addRTEtoQuery(), addTargetToGroupList(), addTargetToSortList(), adjust_appendrel_attrs_mutator(), adjust_rowcompare_for_index(), applyLockingClause(), assign_nestloop_param_placeholdervar(), assign_nestloop_param_var(), assign_param_for_placeholdervar(), assign_param_for_var(), ATPostAlterTypeParse(), ATPrepAddOids(), ATPrepCmd(), build_aggregate_fnexprs(), build_coercion_expression(), build_join_rel(), build_minmax_path(), build_simple_rel(), build_subplan(), BuildIndexInfo(), buildMergedJoinVar(), CatalogOpenIndexes(), CheckIndexCompatible(), checkInsertTargets(), coerce_record_to_complex(), coerce_to_domain(), coerce_to_target_type(), coerce_type(), convert_ANY_sublink_to_join(), convert_EXISTS_sublink_to_join(), ConvertTriggerToFK(), CopyFrom(), copyObject(), create_append_path(), create_bitmap_and_path(), create_bitmap_heap_path(), create_bitmap_or_path(), create_ctescan_path(), create_foreignscan_path(), create_functionscan_path(), create_hashjoin_path(), create_index_path(), create_material_path(), create_merge_append_path(), create_merge_append_plan(), create_mergejoin_path(), create_nestloop_path(), create_result_path(), create_seqscan_path(), create_subqueryscan_path(), create_tidscan_path(), create_toast_table(), create_unique_path(), create_unique_plan(), create_valuesscan_path(), create_worktablescan_path(), CreateExecutorState(), CreateExprContext(), CreateExtension(), CreateFKCheckTrigger(), createForeignKeyTriggers(), CreateStandaloneExprContext(), DefineCompositeType(), DefineIndex(), DefineSequence(), DefineVirtualRelation(), deparse_context_for(), DoCopy(), domainAddConstraint(), eval_const_expressions_mutator(), evaluate_function(), ExecBuildProjectionInfo(), ExecGetTriggerResultRel(), ExecInitAgg(), ExecInitAlternativeSubPlan(), ExecInitAppend(), ExecInitBitmapAnd(), ExecInitBitmapHeapScan(), ExecInitBitmapIndexScan(), ExecInitBitmapOr(), ExecInitCteScan(), ExecInitExpr(), ExecInitForeignScan(), ExecInitFunctionScan(), ExecInitGroup(), ExecInitHash(), ExecInitHashJoin(), ExecInitIndexOnlyScan(), ExecInitIndexScan(), ExecInitJunkFilter(), ExecInitJunkFilterConversion(), ExecInitLimit(), ExecInitLockRows(), ExecInitMaterial(), ExecInitMergeAppend(), ExecInitMergeJoin(), ExecInitModifyTable(), ExecInitNestLoop(), ExecInitRecursiveUnion(), ExecInitResult(), ExecInitSeqScan(), ExecInitSetOp(), ExecInitSort(), ExecInitSubPlan(), ExecInitSubqueryScan(), ExecInitTidScan(), ExecInitUnique(), ExecInitValuesScan(), ExecInitWindowAgg(), ExecInitWorkTableScan(), ExecuteDoStmt(), expand_inherited_rtentry(), ExpandRowReference(), file_fdw_handler(), find_minmax_aggs_walker(), find_placeholder_info(), fixed_paramref_hook(), flatCopyTargetEntry(), flatten_join_alias_vars_mutator(), flatten_simple_union_all(), generate_new_param(), generateClonedIndexStmt(), get_appendrel_parampathinfo(), get_baserel_parampathinfo(), get_eclass_for_sort_expr(), get_joinrel_parampathinfo(), get_relation_constraints(), get_relation_info(), get_switched_clauses(), GetDomainConstraints(), index_check_primary_key(), index_constraint_create(), inheritance_planner(), inline_function(), intorel_startup(), make_agg(), make_andclause(), make_append(), make_bitmap_and(), make_bitmap_heapscan(), make_bitmap_indexscan(), make_bitmap_or(), make_canonical_pathkey(), make_ctescan(), make_datum_param(), make_foreignscan(), make_functionscan(), make_group(), make_hash(), make_hashjoin(), make_indexonlyscan(), make_indexscan(), make_limit(), make_lockrows(), make_material(), make_mergejoin(), make_modifytable(), make_nestloop(), make_notclause(), make_op(), make_opclause(), make_orclause(), make_outerjoininfo(), make_placeholder_expr(), make_recursive_union(), make_restrictinfo_internal(), make_result(), make_row_comparison_op(), make_scalar_array_op(), make_seqscan(), make_setop(), make_sort(), make_subplan(), make_subqueryscan(), make_tidscan(), make_unique(), make_valuesscan(), make_windowagg(), make_worktablescan(), makeA_Expr(), makeAlias(), makeBitString(), makeBoolExpr(), makeConst(), makeDefElem(), makeDefElemExtended(), makeFloat(), makeFromExpr(), makeFuncExpr(), makeInteger(), makeRangeVar(), makeRelabelType(), makeSimpleA_Expr(), makeString(), makeTargetEntry(), MakeTupleTableSlot(), makeTypeNameFromNameList(), makeTypeNameFromOid(), makeVar(), match_clause_to_ordering_op(), MergeAttributes(), negate_clause(), parseCheckAggregates(), ParseComplexProjection(), ParseFuncOrColumn(), pg_get_triggerdef_worker(), plan_cluster_use_sort(), postgres_fdw_handler(), preprocess_rowmarks(), process_equivalence(), process_matched_tle(), process_subquery_nestloop_params(), pull_up_simple_subquery(), pull_up_union_leaf_queries(), pullup_replace_vars_callback(), record_plan_function_dependency(), reparameterize_path(), replace_nestloop_params_mutator(), replace_outer_agg(), replace_outer_placeholdervar(), replace_outer_var(), ReplaceVarsFromTargetList_callback(), RI_Initial_Check(), scalararraysel(), sql_fn_make_param(), SS_make_initplan_from_plan(), SS_process_ctes(), standard_planner(), subquery_planner(), tbm_create(), transformAExprIn(), transformAExprOp(), transformAlterTableStmt(), transformArrayExpr(), transformArraySubscripts(), transformAssignmentIndirection(), transformCaseExpr(), transformCoalesceExpr(), transformCollateClause(), transformColumnDefinition(), transformCreateTableAsStmt(), transformCurrentOfExpr(), transformDeleteStmt(), transformExplainStmt(), transformFKConstraints(), transformFromClauseItem(), transformIndexConstraint(), transformInsertStmt(), transformLockingClause(), transformMinMaxExpr(), transformOfType(), transformRowExpr(), transformRuleStmt(), transformSelectStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformStmt(), transformSubLink(), transformTableLikeClause(), transformTopLevelStmt(), transformUpdateStmt(), transformValuesClause(), transformWindowDefinitions(), transformXmlExpr(), transformXmlSerialize(), and variable_paramref_hook().

#define newNode (   size,
  tag 
)
Value:
( \
    AssertMacro((size) >= sizeof(Node)),        /* need the tag, at least */ \
    newNodeMacroHolder = (Node *) palloc0fast(size), \
    newNodeMacroHolder->type = (tag), \
    newNodeMacroHolder \
)

Definition at line 474 of file nodes.h.

#define NodeSetTag (   nodeptr,
  t 
)    (((Node*)(nodeptr))->type = (t))

Definition at line 485 of file nodes.h.

Referenced by make_distinct_op(), and transformAExprNullIf().

#define nodeTag (   nodeptr  )     (((const Node*)(nodeptr))->type)

Definition at line 441 of file nodes.h.

Referenced by _outNode(), _outQuery(), add_base_rels_to_query(), add_vars_to_targetlist(), AlterDomainAddConstraint(), analyze_requires_snapshot(), assign_collations_walker(), ATPostAlterTypeParse(), btcostestimate(), build_joinrel_tlist(), build_subplan(), check_xact_readonly(), contain_leaky_functions_walker(), copyObject(), cost_bitmap_tree_node(), cost_subplan(), create_bitmap_subplan(), CreateCommandTag(), createdb(), deconstruct_recurse(), defGetBoolean(), defGetInt64(), defGetNumeric(), defGetQualifiedName(), defGetString(), defGetTypeLength(), defGetTypeName(), DefineDomain(), deparseExpr(), equal(), eval_const_expressions_mutator(), exec_simple_check_node(), ExecEndNode(), ExecEvalWholeRowVar(), ExecIndexBuildScanKeys(), ExecInitExpr(), ExecInitNode(), ExecInitSubPlan(), ExecMarkPos(), ExecProcNode(), ExecReScan(), ExecRestrPos(), ExecSetVariableStmt(), ExecSupportsBackwardScan(), expand_indexqual_conditions(), ExplainNode(), ExplainPreScanNode(), ExplainTargetRel(), exprCollation(), expression_tree_mutator(), expression_tree_walker(), exprInputCollation(), exprLocation(), exprSetCollation(), exprSetInputCollation(), exprType(), exprTypmod(), FigureColnameInternal(), finalize_plan(), find_indexpath_quals(), find_jointree_node_for_rel(), find_placeholders_recurse(), fix_indexorderby_references(), fix_indexqual_references(), flatten_join_using_qual(), flatten_set_variable_args(), foreign_expr_walker(), get_base_rel_indexes(), get_bitmap_tree_required_outer(), get_from_clause_item(), get_indexpath_pages(), get_relids_in_jointree(), get_rule_expr(), get_setop_query(), get_sublink_expr(), GetCommandLogLevel(), gincostestimate(), has_unnamed_full_join_using(), hide_coercion_node(), identify_join_columns(), is_projection_capable_plan(), is_simple_union_all_recurse(), isSimpleNode(), JumbleExpr(), make_const(), make_rel_from_joinlist(), make_restrictinfo_from_bitmapqual(), markQueryForLocking(), markRTEForSelectPriv(), MultiExecProcNode(), NameListToString(), negate_clause(), oidparse(), preprocess_qual_conditions(), ProcessUtilitySlow(), pull_up_sublinks_jointree_recurse(), pull_up_subqueries_recurse(), pull_up_union_leaf_queries(), RangeVarCallbackForAlterRelation(), raw_expression_tree_walker(), recurse_push_qual(), recurse_pushdown_safe(), recurse_set_operations(), reduce_outer_joins_pass1(), reduce_outer_joins_pass2(), remove_rel_from_joinlist(), replace_vars_in_jointree(), search_plan_tree(), sepgsql_utility_command(), set_plan_refs(), set_using_names(), standard_ProcessUtility(), transformAlterTableStmt(), transformConstraintAttrs(), transformCreateSchemaStmt(), transformCreateStmt(), transformExprRecurse(), transformFromClauseItem(), transformStmt(), UtilityContainsQuery(), UtilityReturnsTuples(), and UtilityTupleDescriptor().


Typedef Documentation

typedef enum CmdType CmdType
typedef double Cost

Definition at line 524 of file nodes.h.

typedef enum JoinType JoinType
typedef struct Node Node
typedef enum NodeTag NodeTag
typedef double Selectivity

Definition at line 523 of file nodes.h.


Enumeration Type Documentation

enum CmdType
Enumerator:
CMD_UNKNOWN 
CMD_SELECT 
CMD_UPDATE 
CMD_INSERT 
CMD_DELETE 
CMD_UTILITY 
CMD_NOTHING 

Definition at line 533 of file nodes.h.

{
    CMD_UNKNOWN,
    CMD_SELECT,                 /* select stmt */
    CMD_UPDATE,                 /* update stmt */
    CMD_INSERT,                 /* insert stmt */
    CMD_DELETE,
    CMD_UTILITY,                /* cmds like create, destroy, copy, vacuum,
                                 * etc. */
    CMD_NOTHING                 /* dummy command for instead nothing rules
                                 * with qual */
} CmdType;

enum JoinType
Enumerator:
JOIN_INNER 
JOIN_LEFT 
JOIN_FULL 
JOIN_RIGHT 
JOIN_SEMI 
JOIN_ANTI 
JOIN_UNIQUE_OUTER 
JOIN_UNIQUE_INNER 

Definition at line 557 of file nodes.h.

{
    /*
     * The canonical kinds of joins according to the SQL JOIN syntax. Only
     * these codes can appear in parser output (e.g., JoinExpr nodes).
     */
    JOIN_INNER,                 /* matching tuple pairs only */
    JOIN_LEFT,                  /* pairs + unmatched LHS tuples */
    JOIN_FULL,                  /* pairs + unmatched LHS + unmatched RHS */
    JOIN_RIGHT,                 /* pairs + unmatched RHS tuples */

    /*
     * Semijoins and anti-semijoins (as defined in relational theory) do not
     * appear in the SQL JOIN syntax, but there are standard idioms for
     * representing them (e.g., using EXISTS).  The planner recognizes these
     * cases and converts them to joins.  So the planner and executor must
     * support these codes.  NOTE: in JOIN_SEMI output, it is unspecified
     * which matching RHS row is joined to.  In JOIN_ANTI output, the row is
     * guaranteed to be null-extended.
     */
    JOIN_SEMI,                  /* 1 copy of each LHS row that has match(es) */
    JOIN_ANTI,                  /* 1 copy of each LHS row that has no match */

    /*
     * These codes are used internally in the planner, but are not supported
     * by the executor (nor, indeed, by most of the planner).
     */
    JOIN_UNIQUE_OUTER,          /* LHS path must be made unique */
    JOIN_UNIQUE_INNER           /* RHS path must be made unique */

    /*
     * We might need additional join types someday.
     */
} JoinType;

enum NodeTag
Enumerator:
T_Invalid 
T_IndexInfo 
T_ExprContext 
T_ProjectionInfo 
T_JunkFilter 
T_ResultRelInfo 
T_EState 
T_TupleTableSlot 
T_Plan 
T_Result 
T_ModifyTable 
T_Append 
T_MergeAppend 
T_RecursiveUnion 
T_BitmapAnd 
T_BitmapOr 
T_Scan 
T_SeqScan 
T_IndexScan 
T_IndexOnlyScan 
T_BitmapIndexScan 
T_BitmapHeapScan 
T_TidScan 
T_SubqueryScan 
T_FunctionScan 
T_ValuesScan 
T_CteScan 
T_WorkTableScan 
T_ForeignScan 
T_Join 
T_NestLoop 
T_MergeJoin 
T_HashJoin 
T_Material 
T_Sort 
T_Group 
T_Agg 
T_WindowAgg 
T_Unique 
T_Hash 
T_SetOp 
T_LockRows 
T_Limit 
T_NestLoopParam 
T_PlanRowMark 
T_PlanInvalItem 
T_PlanState 
T_ResultState 
T_ModifyTableState 
T_AppendState 
T_MergeAppendState 
T_RecursiveUnionState 
T_BitmapAndState 
T_BitmapOrState 
T_ScanState 
T_SeqScanState 
T_IndexScanState 
T_IndexOnlyScanState 
T_BitmapIndexScanState 
T_BitmapHeapScanState 
T_TidScanState 
T_SubqueryScanState 
T_FunctionScanState 
T_ValuesScanState 
T_CteScanState 
T_WorkTableScanState 
T_ForeignScanState 
T_JoinState 
T_NestLoopState 
T_MergeJoinState 
T_HashJoinState 
T_MaterialState 
T_SortState 
T_GroupState 
T_AggState 
T_WindowAggState 
T_UniqueState 
T_HashState 
T_SetOpState 
T_LockRowsState 
T_LimitState 
T_Alias 
T_RangeVar 
T_Expr 
T_Var 
T_Const 
T_Param 
T_Aggref 
T_WindowFunc 
T_ArrayRef 
T_FuncExpr 
T_NamedArgExpr 
T_OpExpr 
T_DistinctExpr 
T_NullIfExpr 
T_ScalarArrayOpExpr 
T_BoolExpr 
T_SubLink 
T_SubPlan 
T_AlternativeSubPlan 
T_FieldSelect 
T_FieldStore 
T_RelabelType 
T_CoerceViaIO 
T_ArrayCoerceExpr 
T_ConvertRowtypeExpr 
T_CollateExpr 
T_CaseExpr 
T_CaseWhen 
T_CaseTestExpr 
T_ArrayExpr 
T_RowExpr 
T_RowCompareExpr 
T_CoalesceExpr 
T_MinMaxExpr 
T_XmlExpr 
T_NullTest 
T_BooleanTest 
T_CoerceToDomain 
T_CoerceToDomainValue 
T_SetToDefault 
T_CurrentOfExpr 
T_TargetEntry 
T_RangeTblRef 
T_JoinExpr 
T_FromExpr 
T_IntoClause 
T_ExprState 
T_GenericExprState 
T_WholeRowVarExprState 
T_AggrefExprState 
T_WindowFuncExprState 
T_ArrayRefExprState 
T_FuncExprState 
T_ScalarArrayOpExprState 
T_BoolExprState 
T_SubPlanState 
T_AlternativeSubPlanState 
T_FieldSelectState 
T_FieldStoreState 
T_CoerceViaIOState 
T_ArrayCoerceExprState 
T_ConvertRowtypeExprState 
T_CaseExprState 
T_CaseWhenState 
T_ArrayExprState 
T_RowExprState 
T_RowCompareExprState 
T_CoalesceExprState 
T_MinMaxExprState 
T_XmlExprState 
T_NullTestState 
T_CoerceToDomainState 
T_DomainConstraintState 
T_PlannerInfo 
T_PlannerGlobal 
T_RelOptInfo 
T_IndexOptInfo 
T_ParamPathInfo 
T_Path 
T_IndexPath 
T_BitmapHeapPath 
T_BitmapAndPath 
T_BitmapOrPath 
T_NestPath 
T_MergePath 
T_HashPath 
T_TidPath 
T_ForeignPath 
T_AppendPath 
T_MergeAppendPath 
T_ResultPath 
T_MaterialPath 
T_UniquePath 
T_EquivalenceClass 
T_EquivalenceMember 
T_PathKey 
T_RestrictInfo 
T_PlaceHolderVar 
T_SpecialJoinInfo 
T_LateralJoinInfo 
T_AppendRelInfo 
T_PlaceHolderInfo 
T_MinMaxAggInfo 
T_PlannerParamItem 
T_MemoryContext 
T_AllocSetContext 
T_Value 
T_Integer 
T_Float 
T_String 
T_BitString 
T_Null 
T_List 
T_IntList 
T_OidList 
T_Query 
T_PlannedStmt 
T_InsertStmt 
T_DeleteStmt 
T_UpdateStmt 
T_SelectStmt 
T_AlterTableStmt 
T_AlterTableCmd 
T_AlterDomainStmt 
T_SetOperationStmt 
T_GrantStmt 
T_GrantRoleStmt 
T_AlterDefaultPrivilegesStmt 
T_ClosePortalStmt 
T_ClusterStmt 
T_CopyStmt 
T_CreateStmt 
T_DefineStmt 
T_DropStmt 
T_TruncateStmt 
T_CommentStmt 
T_FetchStmt 
T_IndexStmt 
T_CreateFunctionStmt 
T_AlterFunctionStmt 
T_DoStmt 
T_RenameStmt 
T_RuleStmt 
T_NotifyStmt 
T_ListenStmt 
T_UnlistenStmt 
T_TransactionStmt 
T_ViewStmt 
T_LoadStmt 
T_CreateDomainStmt 
T_CreatedbStmt 
T_DropdbStmt 
T_VacuumStmt 
T_ExplainStmt 
T_CreateTableAsStmt 
T_CreateSeqStmt 
T_AlterSeqStmt 
T_VariableSetStmt 
T_VariableShowStmt 
T_DiscardStmt 
T_CreateTrigStmt 
T_CreatePLangStmt 
T_CreateRoleStmt 
T_AlterRoleStmt 
T_DropRoleStmt 
T_LockStmt 
T_ConstraintsSetStmt 
T_ReindexStmt 
T_CheckPointStmt 
T_CreateSchemaStmt 
T_AlterDatabaseStmt 
T_AlterDatabaseSetStmt 
T_AlterRoleSetStmt 
T_CreateConversionStmt 
T_CreateCastStmt 
T_CreateOpClassStmt 
T_CreateOpFamilyStmt 
T_AlterOpFamilyStmt 
T_PrepareStmt 
T_ExecuteStmt 
T_DeallocateStmt 
T_DeclareCursorStmt 
T_CreateTableSpaceStmt 
T_DropTableSpaceStmt 
T_AlterObjectSchemaStmt 
T_AlterOwnerStmt 
T_DropOwnedStmt 
T_ReassignOwnedStmt 
T_CompositeTypeStmt 
T_CreateEnumStmt 
T_CreateRangeStmt 
T_AlterEnumStmt 
T_AlterTSDictionaryStmt 
T_AlterTSConfigurationStmt 
T_CreateFdwStmt 
T_AlterFdwStmt 
T_CreateForeignServerStmt 
T_AlterForeignServerStmt 
T_CreateUserMappingStmt 
T_AlterUserMappingStmt 
T_DropUserMappingStmt 
T_AlterTableSpaceOptionsStmt 
T_SecLabelStmt 
T_CreateForeignTableStmt 
T_CreateExtensionStmt 
T_AlterExtensionStmt 
T_AlterExtensionContentsStmt 
T_CreateEventTrigStmt 
T_AlterEventTrigStmt 
T_RefreshMatViewStmt 
T_A_Expr 
T_ColumnRef 
T_ParamRef 
T_A_Const 
T_FuncCall 
T_A_Star 
T_A_Indices 
T_A_Indirection 
T_A_ArrayExpr 
T_ResTarget 
T_TypeCast 
T_CollateClause 
T_SortBy 
T_WindowDef 
T_RangeSubselect 
T_RangeFunction 
T_TypeName 
T_ColumnDef 
T_IndexElem 
T_Constraint 
T_DefElem 
T_RangeTblEntry 
T_SortGroupClause 
T_WindowClause 
T_PrivGrantee 
T_FuncWithArgs 
T_AccessPriv 
T_CreateOpClassItem 
T_TableLikeClause 
T_FunctionParameter 
T_LockingClause 
T_RowMarkClause 
T_XmlSerialize 
T_WithClause 
T_CommonTableExpr 
T_IdentifySystemCmd 
T_BaseBackupCmd 
T_StartReplicationCmd 
T_TimeLineHistoryCmd 
T_TriggerData 
T_EventTriggerData 
T_ReturnSetInfo 
T_WindowObjectData 
T_TIDBitmap 
T_InlineCodeBlock 
T_FdwRoutine 

Definition at line 26 of file nodes.h.

{
    T_Invalid = 0,

    /*
     * TAGS FOR EXECUTOR NODES (execnodes.h)
     */
    T_IndexInfo = 10,
    T_ExprContext,
    T_ProjectionInfo,
    T_JunkFilter,
    T_ResultRelInfo,
    T_EState,
    T_TupleTableSlot,

    /*
     * TAGS FOR PLAN NODES (plannodes.h)
     */
    T_Plan = 100,
    T_Result,
    T_ModifyTable,
    T_Append,
    T_MergeAppend,
    T_RecursiveUnion,
    T_BitmapAnd,
    T_BitmapOr,
    T_Scan,
    T_SeqScan,
    T_IndexScan,
    T_IndexOnlyScan,
    T_BitmapIndexScan,
    T_BitmapHeapScan,
    T_TidScan,
    T_SubqueryScan,
    T_FunctionScan,
    T_ValuesScan,
    T_CteScan,
    T_WorkTableScan,
    T_ForeignScan,
    T_Join,
    T_NestLoop,
    T_MergeJoin,
    T_HashJoin,
    T_Material,
    T_Sort,
    T_Group,
    T_Agg,
    T_WindowAgg,
    T_Unique,
    T_Hash,
    T_SetOp,
    T_LockRows,
    T_Limit,
    /* these aren't subclasses of Plan: */
    T_NestLoopParam,
    T_PlanRowMark,
    T_PlanInvalItem,

    /*
     * TAGS FOR PLAN STATE NODES (execnodes.h)
     *
     * These should correspond one-to-one with Plan node types.
     */
    T_PlanState = 200,
    T_ResultState,
    T_ModifyTableState,
    T_AppendState,
    T_MergeAppendState,
    T_RecursiveUnionState,
    T_BitmapAndState,
    T_BitmapOrState,
    T_ScanState,
    T_SeqScanState,
    T_IndexScanState,
    T_IndexOnlyScanState,
    T_BitmapIndexScanState,
    T_BitmapHeapScanState,
    T_TidScanState,
    T_SubqueryScanState,
    T_FunctionScanState,
    T_ValuesScanState,
    T_CteScanState,
    T_WorkTableScanState,
    T_ForeignScanState,
    T_JoinState,
    T_NestLoopState,
    T_MergeJoinState,
    T_HashJoinState,
    T_MaterialState,
    T_SortState,
    T_GroupState,
    T_AggState,
    T_WindowAggState,
    T_UniqueState,
    T_HashState,
    T_SetOpState,
    T_LockRowsState,
    T_LimitState,

    /*
     * TAGS FOR PRIMITIVE NODES (primnodes.h)
     */
    T_Alias = 300,
    T_RangeVar,
    T_Expr,
    T_Var,
    T_Const,
    T_Param,
    T_Aggref,
    T_WindowFunc,
    T_ArrayRef,
    T_FuncExpr,
    T_NamedArgExpr,
    T_OpExpr,
    T_DistinctExpr,
    T_NullIfExpr,
    T_ScalarArrayOpExpr,
    T_BoolExpr,
    T_SubLink,
    T_SubPlan,
    T_AlternativeSubPlan,
    T_FieldSelect,
    T_FieldStore,
    T_RelabelType,
    T_CoerceViaIO,
    T_ArrayCoerceExpr,
    T_ConvertRowtypeExpr,
    T_CollateExpr,
    T_CaseExpr,
    T_CaseWhen,
    T_CaseTestExpr,
    T_ArrayExpr,
    T_RowExpr,
    T_RowCompareExpr,
    T_CoalesceExpr,
    T_MinMaxExpr,
    T_XmlExpr,
    T_NullTest,
    T_BooleanTest,
    T_CoerceToDomain,
    T_CoerceToDomainValue,
    T_SetToDefault,
    T_CurrentOfExpr,
    T_TargetEntry,
    T_RangeTblRef,
    T_JoinExpr,
    T_FromExpr,
    T_IntoClause,

    /*
     * TAGS FOR EXPRESSION STATE NODES (execnodes.h)
     *
     * These correspond (not always one-for-one) to primitive nodes derived
     * from Expr.
     */
    T_ExprState = 400,
    T_GenericExprState,
    T_WholeRowVarExprState,
    T_AggrefExprState,
    T_WindowFuncExprState,
    T_ArrayRefExprState,
    T_FuncExprState,
    T_ScalarArrayOpExprState,
    T_BoolExprState,
    T_SubPlanState,
    T_AlternativeSubPlanState,
    T_FieldSelectState,
    T_FieldStoreState,
    T_CoerceViaIOState,
    T_ArrayCoerceExprState,
    T_ConvertRowtypeExprState,
    T_CaseExprState,
    T_CaseWhenState,
    T_ArrayExprState,
    T_RowExprState,
    T_RowCompareExprState,
    T_CoalesceExprState,
    T_MinMaxExprState,
    T_XmlExprState,
    T_NullTestState,
    T_CoerceToDomainState,
    T_DomainConstraintState,

    /*
     * TAGS FOR PLANNER NODES (relation.h)
     */
    T_PlannerInfo = 500,
    T_PlannerGlobal,
    T_RelOptInfo,
    T_IndexOptInfo,
    T_ParamPathInfo,
    T_Path,
    T_IndexPath,
    T_BitmapHeapPath,
    T_BitmapAndPath,
    T_BitmapOrPath,
    T_NestPath,
    T_MergePath,
    T_HashPath,
    T_TidPath,
    T_ForeignPath,
    T_AppendPath,
    T_MergeAppendPath,
    T_ResultPath,
    T_MaterialPath,
    T_UniquePath,
    T_EquivalenceClass,
    T_EquivalenceMember,
    T_PathKey,
    T_RestrictInfo,
    T_PlaceHolderVar,
    T_SpecialJoinInfo,
    T_LateralJoinInfo,
    T_AppendRelInfo,
    T_PlaceHolderInfo,
    T_MinMaxAggInfo,
    T_PlannerParamItem,

    /*
     * TAGS FOR MEMORY NODES (memnodes.h)
     */
    T_MemoryContext = 600,
    T_AllocSetContext,

    /*
     * TAGS FOR VALUE NODES (value.h)
     */
    T_Value = 650,
    T_Integer,
    T_Float,
    T_String,
    T_BitString,
    T_Null,

    /*
     * TAGS FOR LIST NODES (pg_list.h)
     */
    T_List,
    T_IntList,
    T_OidList,

    /*
     * TAGS FOR STATEMENT NODES (mostly in parsenodes.h)
     */
    T_Query = 700,
    T_PlannedStmt,
    T_InsertStmt,
    T_DeleteStmt,
    T_UpdateStmt,
    T_SelectStmt,
    T_AlterTableStmt,
    T_AlterTableCmd,
    T_AlterDomainStmt,
    T_SetOperationStmt,
    T_GrantStmt,
    T_GrantRoleStmt,
    T_AlterDefaultPrivilegesStmt,
    T_ClosePortalStmt,
    T_ClusterStmt,
    T_CopyStmt,
    T_CreateStmt,
    T_DefineStmt,
    T_DropStmt,
    T_TruncateStmt,
    T_CommentStmt,
    T_FetchStmt,
    T_IndexStmt,
    T_CreateFunctionStmt,
    T_AlterFunctionStmt,
    T_DoStmt,
    T_RenameStmt,
    T_RuleStmt,
    T_NotifyStmt,
    T_ListenStmt,
    T_UnlistenStmt,
    T_TransactionStmt,
    T_ViewStmt,
    T_LoadStmt,
    T_CreateDomainStmt,
    T_CreatedbStmt,
    T_DropdbStmt,
    T_VacuumStmt,
    T_ExplainStmt,
    T_CreateTableAsStmt,
    T_CreateSeqStmt,
    T_AlterSeqStmt,
    T_VariableSetStmt,
    T_VariableShowStmt,
    T_DiscardStmt,
    T_CreateTrigStmt,
    T_CreatePLangStmt,
    T_CreateRoleStmt,
    T_AlterRoleStmt,
    T_DropRoleStmt,
    T_LockStmt,
    T_ConstraintsSetStmt,
    T_ReindexStmt,
    T_CheckPointStmt,
    T_CreateSchemaStmt,
    T_AlterDatabaseStmt,
    T_AlterDatabaseSetStmt,
    T_AlterRoleSetStmt,
    T_CreateConversionStmt,
    T_CreateCastStmt,
    T_CreateOpClassStmt,
    T_CreateOpFamilyStmt,
    T_AlterOpFamilyStmt,
    T_PrepareStmt,
    T_ExecuteStmt,
    T_DeallocateStmt,
    T_DeclareCursorStmt,
    T_CreateTableSpaceStmt,
    T_DropTableSpaceStmt,
    T_AlterObjectSchemaStmt,
    T_AlterOwnerStmt,
    T_DropOwnedStmt,
    T_ReassignOwnedStmt,
    T_CompositeTypeStmt,
    T_CreateEnumStmt,
    T_CreateRangeStmt,
    T_AlterEnumStmt,
    T_AlterTSDictionaryStmt,
    T_AlterTSConfigurationStmt,
    T_CreateFdwStmt,
    T_AlterFdwStmt,
    T_CreateForeignServerStmt,
    T_AlterForeignServerStmt,
    T_CreateUserMappingStmt,
    T_AlterUserMappingStmt,
    T_DropUserMappingStmt,
    T_AlterTableSpaceOptionsStmt,
    T_SecLabelStmt,
    T_CreateForeignTableStmt,
    T_CreateExtensionStmt,
    T_AlterExtensionStmt,
    T_AlterExtensionContentsStmt,
    T_CreateEventTrigStmt,
    T_AlterEventTrigStmt,
    T_RefreshMatViewStmt,

    /*
     * TAGS FOR PARSE TREE NODES (parsenodes.h)
     */
    T_A_Expr = 900,
    T_ColumnRef,
    T_ParamRef,
    T_A_Const,
    T_FuncCall,
    T_A_Star,
    T_A_Indices,
    T_A_Indirection,
    T_A_ArrayExpr,
    T_ResTarget,
    T_TypeCast,
    T_CollateClause,
    T_SortBy,
    T_WindowDef,
    T_RangeSubselect,
    T_RangeFunction,
    T_TypeName,
    T_ColumnDef,
    T_IndexElem,
    T_Constraint,
    T_DefElem,
    T_RangeTblEntry,
    T_SortGroupClause,
    T_WindowClause,
    T_PrivGrantee,
    T_FuncWithArgs,
    T_AccessPriv,
    T_CreateOpClassItem,
    T_TableLikeClause,
    T_FunctionParameter,
    T_LockingClause,
    T_RowMarkClause,
    T_XmlSerialize,
    T_WithClause,
    T_CommonTableExpr,

    /*
     * TAGS FOR REPLICATION GRAMMAR PARSE NODES (replnodes.h)
     */
    T_IdentifySystemCmd,
    T_BaseBackupCmd,
    T_StartReplicationCmd,
    T_TimeLineHistoryCmd,

    /*
     * TAGS FOR RANDOM OTHER STUFF
     *
     * These are objects that aren't part of parse/plan/execute node tree
     * structures, but we give them NodeTags anyway for identification
     * purposes (usually because they are involved in APIs where we want to
     * pass multiple object types through the same pointer).
     */
    T_TriggerData = 950,        /* in commands/trigger.h */
    T_EventTriggerData,         /* in commands/event_trigger.h */
    T_ReturnSetInfo,            /* in nodes/execnodes.h */
    T_WindowObjectData,         /* private in nodeWindowAgg.c */
    T_TIDBitmap,                /* in nodes/tidbitmap.h */
    T_InlineCodeBlock,          /* in nodes/parsenodes.h */
    T_FdwRoutine                /* in foreign/fdwapi.h */
} NodeTag;


Function Documentation

void* copyObject ( const void *  obj  ) 

Definition at line 3828 of file copyfuncs.c.

References _copyA_ArrayExpr(), _copyA_Indirection(), _copyAccessPriv(), _copyAConst(), _copyAExpr(), _copyAgg(), _copyAggref(), _copyAIndices(), _copyAlias(), _copyAlterDatabaseSetStmt(), _copyAlterDatabaseStmt(), _copyAlterDefaultPrivilegesStmt(), _copyAlterDomainStmt(), _copyAlterEnumStmt(), _copyAlterEventTrigStmt(), _copyAlterExtensionContentsStmt(), _copyAlterExtensionStmt(), _copyAlterFdwStmt(), _copyAlterForeignServerStmt(), _copyAlterFunctionStmt(), _copyAlternativeSubPlan(), _copyAlterObjectSchemaStmt(), _copyAlterOpFamilyStmt(), _copyAlterOwnerStmt(), _copyAlterRoleSetStmt(), _copyAlterRoleStmt(), _copyAlterSeqStmt(), _copyAlterTableCmd(), _copyAlterTableSpaceOptionsStmt(), _copyAlterTableStmt(), _copyAlterTSConfigurationStmt(), _copyAlterTSDictionaryStmt(), _copyAlterUserMappingStmt(), _copyAppend(), _copyAppendRelInfo(), _copyArrayCoerceExpr(), _copyArrayExpr(), _copyArrayRef(), _copyAStar(), _copyBitmapAnd(), _copyBitmapHeapScan(), _copyBitmapIndexScan(), _copyBitmapOr(), _copyBooleanTest(), _copyBoolExpr(), _copyCaseExpr(), _copyCaseTestExpr(), _copyCaseWhen(), _copyClosePortalStmt(), _copyClusterStmt(), _copyCoalesceExpr(), _copyCoerceToDomain(), _copyCoerceToDomainValue(), _copyCoerceViaIO(), _copyCollateClause(), _copyCollateExpr(), _copyColumnDef(), _copyColumnRef(), _copyCommentStmt(), _copyCommonTableExpr(), _copyCompositeTypeStmt(), _copyConst(), _copyConstraint(), _copyConstraintsSetStmt(), _copyConvertRowtypeExpr(), _copyCopyStmt(), _copyCreateCastStmt(), _copyCreateConversionStmt(), _copyCreatedbStmt(), _copyCreateDomainStmt(), _copyCreateEnumStmt(), _copyCreateEventTrigStmt(), _copyCreateExtensionStmt(), _copyCreateFdwStmt(), _copyCreateForeignServerStmt(), _copyCreateForeignTableStmt(), _copyCreateFunctionStmt(), _copyCreateOpClassItem(), _copyCreateOpClassStmt(), _copyCreateOpFamilyStmt(), _copyCreatePLangStmt(), _copyCreateRangeStmt(), _copyCreateRoleStmt(), _copyCreateSchemaStmt(), _copyCreateSeqStmt(), _copyCreateStmt(), _copyCreateTableAsStmt(), _copyCreateTableSpaceStmt(), _copyCreateTrigStmt(), _copyCreateUserMappingStmt(), _copyCteScan(), _copyCurrentOfExpr(), _copyDeallocateStmt(), _copyDeclareCursorStmt(), _copyDefElem(), _copyDefineStmt(), _copyDeleteStmt(), _copyDiscardStmt(), _copyDistinctExpr(), _copyDoStmt(), _copyDropdbStmt(), _copyDropOwnedStmt(), _copyDropRoleStmt(), _copyDropStmt(), _copyDropTableSpaceStmt(), _copyDropUserMappingStmt(), _copyExecuteStmt(), _copyExplainStmt(), _copyFetchStmt(), _copyFieldSelect(), _copyFieldStore(), _copyForeignScan(), _copyFromExpr(), _copyFuncCall(), _copyFuncExpr(), _copyFunctionParameter(), _copyFunctionScan(), _copyFuncWithArgs(), _copyGrantRoleStmt(), _copyGrantStmt(), _copyGroup(), _copyHash(), _copyHashJoin(), _copyIndexElem(), _copyIndexOnlyScan(), _copyIndexScan(), _copyIndexStmt(), _copyInsertStmt(), _copyIntoClause(), _copyJoin(), _copyJoinExpr(), _copyLateralJoinInfo(), _copyLimit(), _copyList(), _copyListenStmt(), _copyLoadStmt(), _copyLockingClause(), _copyLockRows(), _copyLockStmt(), _copyMaterial(), _copyMergeAppend(), _copyMergeJoin(), _copyMinMaxExpr(), _copyModifyTable(), _copyNamedArgExpr(), _copyNestLoop(), _copyNestLoopParam(), _copyNotifyStmt(), _copyNullIfExpr(), _copyNullTest(), _copyOpExpr(), _copyParam(), _copyParamRef(), _copyPathKey(), _copyPlaceHolderInfo(), _copyPlaceHolderVar(), _copyPlan(), _copyPlanInvalItem(), _copyPlannedStmt(), _copyPlanRowMark(), _copyPrepareStmt(), _copyPrivGrantee(), _copyQuery(), _copyRangeFunction(), _copyRangeSubselect(), _copyRangeTblEntry(), _copyRangeTblRef(), _copyRangeVar(), _copyReassignOwnedStmt(), _copyRecursiveUnion(), _copyRefreshMatViewStmt(), _copyReindexStmt(), _copyRelabelType(), _copyRenameStmt(), _copyResTarget(), _copyRestrictInfo(), _copyResult(), _copyRowCompareExpr(), _copyRowExpr(), _copyRowMarkClause(), _copyRuleStmt(), _copyScalarArrayOpExpr(), _copyScan(), _copySecLabelStmt(), _copySelectStmt(), _copySeqScan(), _copySetOp(), _copySetOperationStmt(), _copySetToDefault(), _copySort(), _copySortBy(), _copySortGroupClause(), _copySpecialJoinInfo(), _copySubLink(), _copySubPlan(), _copySubqueryScan(), _copyTableLikeClause(), _copyTargetEntry(), _copyTidScan(), _copyTransactionStmt(), _copyTruncateStmt(), _copyTypeCast(), _copyTypeName(), _copyUnique(), _copyUnlistenStmt(), _copyUpdateStmt(), _copyVacuumStmt(), _copyValue(), _copyValuesScan(), _copyVar(), _copyVariableSetStmt(), _copyVariableShowStmt(), _copyViewStmt(), _copyWindowAgg(), _copyWindowClause(), _copyWindowDef(), _copyWindowFunc(), _copyWithClause(), _copyWorkTableScan(), _copyXmlExpr(), _copyXmlSerialize(), check_stack_depth(), elog, ERROR, list_copy(), makeNode, nodeTag, NULL, T_A_ArrayExpr, T_A_Const, T_A_Expr, T_A_Indices, T_A_Indirection, T_A_Star, T_AccessPriv, T_Agg, T_Aggref, T_Alias, T_AlterDatabaseSetStmt, T_AlterDatabaseStmt, T_AlterDefaultPrivilegesStmt, T_AlterDomainStmt, T_AlterEnumStmt, T_AlterEventTrigStmt, T_AlterExtensionContentsStmt, T_AlterExtensionStmt, T_AlterFdwStmt, T_AlterForeignServerStmt, T_AlterFunctionStmt, T_AlternativeSubPlan, T_AlterObjectSchemaStmt, T_AlterOpFamilyStmt, T_AlterOwnerStmt, T_AlterRoleSetStmt, T_AlterRoleStmt, T_AlterSeqStmt, T_AlterTableCmd, T_AlterTableSpaceOptionsStmt, T_AlterTableStmt, T_AlterTSConfigurationStmt, T_AlterTSDictionaryStmt, T_AlterUserMappingStmt, T_Append, T_AppendRelInfo, T_ArrayCoerceExpr, T_ArrayExpr, T_ArrayRef, T_BitmapAnd, T_BitmapHeapScan, T_BitmapIndexScan, T_BitmapOr, T_BitString, T_BooleanTest, T_BoolExpr, T_CaseExpr, T_CaseTestExpr, T_CaseWhen, T_CheckPointStmt, T_ClosePortalStmt, T_ClusterStmt, T_CoalesceExpr, T_CoerceToDomain, T_CoerceToDomainValue, T_CoerceViaIO, T_CollateClause, T_CollateExpr, T_ColumnDef, T_ColumnRef, T_CommentStmt, T_CommonTableExpr, T_CompositeTypeStmt, T_Const, T_Constraint, T_ConstraintsSetStmt, T_ConvertRowtypeExpr, T_CopyStmt, T_CreateCastStmt, T_CreateConversionStmt, T_CreatedbStmt, T_CreateDomainStmt, T_CreateEnumStmt, T_CreateEventTrigStmt, T_CreateExtensionStmt, T_CreateFdwStmt, T_CreateForeignServerStmt, T_CreateForeignTableStmt, T_CreateFunctionStmt, T_CreateOpClassItem, T_CreateOpClassStmt, T_CreateOpFamilyStmt, T_CreatePLangStmt, T_CreateRangeStmt, T_CreateRoleStmt, T_CreateSchemaStmt, T_CreateSeqStmt, T_CreateStmt, T_CreateTableAsStmt, T_CreateTableSpaceStmt, T_CreateTrigStmt, T_CreateUserMappingStmt, T_CteScan, T_CurrentOfExpr, T_DeallocateStmt, T_DeclareCursorStmt, T_DefElem, T_DefineStmt, T_DeleteStmt, T_DiscardStmt, T_DistinctExpr, T_DoStmt, T_DropdbStmt, T_DropOwnedStmt, T_DropRoleStmt, T_DropStmt, T_DropTableSpaceStmt, T_DropUserMappingStmt, T_ExecuteStmt, T_ExplainStmt, T_FetchStmt, T_FieldSelect, T_FieldStore, T_Float, T_ForeignScan, T_FromExpr, T_FuncCall, T_FuncExpr, T_FunctionParameter, T_FunctionScan, T_FuncWithArgs, T_GrantRoleStmt, T_GrantStmt, T_Group, T_Hash, T_HashJoin, T_IndexElem, T_IndexOnlyScan, T_IndexScan, T_IndexStmt, T_InsertStmt, T_Integer, T_IntList, T_IntoClause, T_Join, T_JoinExpr, T_LateralJoinInfo, T_Limit, T_List, T_ListenStmt, T_LoadStmt, T_LockingClause, T_LockRows, T_LockStmt, T_Material, T_MergeAppend, T_MergeJoin, T_MinMaxExpr, T_ModifyTable, T_NamedArgExpr, T_NestLoop, T_NestLoopParam, T_NotifyStmt, T_Null, T_NullIfExpr, T_NullTest, T_OidList, T_OpExpr, T_Param, T_ParamRef, T_PathKey, T_PlaceHolderInfo, T_PlaceHolderVar, T_Plan, T_PlanInvalItem, T_PlannedStmt, T_PlanRowMark, T_PrepareStmt, T_PrivGrantee, T_Query, T_RangeFunction, T_RangeSubselect, T_RangeTblEntry, T_RangeTblRef, T_RangeVar, T_ReassignOwnedStmt, T_RecursiveUnion, T_RefreshMatViewStmt, T_ReindexStmt, T_RelabelType, T_RenameStmt, T_ResTarget, T_RestrictInfo, T_Result, T_RowCompareExpr, T_RowExpr, T_RowMarkClause, T_RuleStmt, T_ScalarArrayOpExpr, T_Scan, T_SecLabelStmt, T_SelectStmt, T_SeqScan, T_SetOp, T_SetOperationStmt, T_SetToDefault, T_Sort, T_SortBy, T_SortGroupClause, T_SpecialJoinInfo, T_String, T_SubLink, T_SubPlan, T_SubqueryScan, T_TableLikeClause, T_TargetEntry, T_TidScan, T_TransactionStmt, T_TruncateStmt, T_TypeCast, T_TypeName, T_Unique, T_UnlistenStmt, T_UpdateStmt, T_VacuumStmt, T_ValuesScan, T_Var, T_VariableSetStmt, T_VariableShowStmt, T_ViewStmt, T_WindowAgg, T_WindowClause, T_WindowDef, T_WindowFunc, T_WithClause, T_WorkTableScan, T_XmlExpr, and T_XmlSerialize.

Referenced by add_placeholders_to_base_rels(), add_to_flat_tlist(), add_vars_to_targetlist(), AddQual(), addRangeTableEntryForCTE(), addRangeTableEntryForJoin(), addRangeTableEntryForSubquery(), addRangeTableEntryForValues(), adjust_appendrel_attrs_mutator(), adjust_rowcompare_for_index(), adjustJoinTreeList(), analyzeCTETargetList(), ApplyRetrieveRule(), assign_param_for_placeholdervar(), assign_param_for_var(), ATAddCheckConstraint(), ATExecAddColumn(), ATPrepCmd(), BeginCopy(), build_implied_join_equality(), build_minmax_path(), build_relation_tlist(), BuildCachedPlan(), buildScalarFunctionAlias(), CompleteCachedPlan(), convert_EXISTS_sublink_to_join(), convert_testexpr_mutator(), ConvertTriggerToFK(), CopyAndAddInvertedQual(), CopyCachedPlan(), create_scan_plan(), create_unique_path(), CreateCachedPlan(), CreateTrigger(), DefineView(), eval_const_expressions_mutator(), EvaluateParams(), ExecCreateTableAs(), expand_inherited_rtentry(), ExpandIndirectionStar(), ExpandRowReference(), expandRTE(), ExplainOneUtility(), ExplainQuery(), expression_tree_mutator(), extract_lateral_references(), FetchPreparedStatementTargetList(), find_placeholder_info(), fireRules(), fix_indexqual_operand(), fix_scan_expr_mutator(), flatten_join_alias_vars_mutator(), flatten_simple_union_all(), generate_setop_grouplist(), get_eclass_for_sort_expr(), grouping_planner(), index_register(), inheritance_planner(), inline_function(), inline_set_returning_function(), intorel_startup(), make_subplan(), PerformCursorOpen(), pg_parse_query(), pg_plan_query(), pg_rewrite_query(), prepare_sort_from_pathkeys(), PrepareQuery(), process_implied_equality(), process_subquery_nestloop_params(), pull_up_simple_subquery(), pull_up_simple_union_all(), pullup_replace_vars_callback(), query_tree_mutator(), range_table_mutator(), refresh_matview_datafill(), RelationGetIndexExpressions(), RelationGetIndexPredicate(), replace_outer_agg(), ReplaceVarsFromTargetList_callback(), RevalidateCachedQuery(), rewriteRuleAction(), rewriteTargetView(), set_plan_refs(), set_subquery_pathlist(), SPI_cursor_open_internal(), SS_process_ctes(), subquery_planner(), substitute_actual_srf_parameters_mutator(), transformAExprIn(), transformAlterTableStmt(), transformColumnRef(), transformCreateStmt(), transformCreateTableAsStmt(), transformDistinctClause(), transformDistinctOnClause(), transformExprRecurse(), transformGroupClause(), transformIndexStmt(), transformJoinUsingClause(), transformRuleStmt(), transformWindowDefinitions(), UpdateRangeTableOfViewParse(), and verify_dictoptions().

{
    void       *retval;

    if (from == NULL)
        return NULL;

    /* Guard against stack overflow due to overly complex expressions */
    check_stack_depth();

    switch (nodeTag(from))
    {
            /*
             * PLAN NODES
             */
        case T_PlannedStmt:
            retval = _copyPlannedStmt(from);
            break;
        case T_Plan:
            retval = _copyPlan(from);
            break;
        case T_Result:
            retval = _copyResult(from);
            break;
        case T_ModifyTable:
            retval = _copyModifyTable(from);
            break;
        case T_Append:
            retval = _copyAppend(from);
            break;
        case T_MergeAppend:
            retval = _copyMergeAppend(from);
            break;
        case T_RecursiveUnion:
            retval = _copyRecursiveUnion(from);
            break;
        case T_BitmapAnd:
            retval = _copyBitmapAnd(from);
            break;
        case T_BitmapOr:
            retval = _copyBitmapOr(from);
            break;
        case T_Scan:
            retval = _copyScan(from);
            break;
        case T_SeqScan:
            retval = _copySeqScan(from);
            break;
        case T_IndexScan:
            retval = _copyIndexScan(from);
            break;
        case T_IndexOnlyScan:
            retval = _copyIndexOnlyScan(from);
            break;
        case T_BitmapIndexScan:
            retval = _copyBitmapIndexScan(from);
            break;
        case T_BitmapHeapScan:
            retval = _copyBitmapHeapScan(from);
            break;
        case T_TidScan:
            retval = _copyTidScan(from);
            break;
        case T_SubqueryScan:
            retval = _copySubqueryScan(from);
            break;
        case T_FunctionScan:
            retval = _copyFunctionScan(from);
            break;
        case T_ValuesScan:
            retval = _copyValuesScan(from);
            break;
        case T_CteScan:
            retval = _copyCteScan(from);
            break;
        case T_WorkTableScan:
            retval = _copyWorkTableScan(from);
            break;
        case T_ForeignScan:
            retval = _copyForeignScan(from);
            break;
        case T_Join:
            retval = _copyJoin(from);
            break;
        case T_NestLoop:
            retval = _copyNestLoop(from);
            break;
        case T_MergeJoin:
            retval = _copyMergeJoin(from);
            break;
        case T_HashJoin:
            retval = _copyHashJoin(from);
            break;
        case T_Material:
            retval = _copyMaterial(from);
            break;
        case T_Sort:
            retval = _copySort(from);
            break;
        case T_Group:
            retval = _copyGroup(from);
            break;
        case T_Agg:
            retval = _copyAgg(from);
            break;
        case T_WindowAgg:
            retval = _copyWindowAgg(from);
            break;
        case T_Unique:
            retval = _copyUnique(from);
            break;
        case T_Hash:
            retval = _copyHash(from);
            break;
        case T_SetOp:
            retval = _copySetOp(from);
            break;
        case T_LockRows:
            retval = _copyLockRows(from);
            break;
        case T_Limit:
            retval = _copyLimit(from);
            break;
        case T_NestLoopParam:
            retval = _copyNestLoopParam(from);
            break;
        case T_PlanRowMark:
            retval = _copyPlanRowMark(from);
            break;
        case T_PlanInvalItem:
            retval = _copyPlanInvalItem(from);
            break;

            /*
             * PRIMITIVE NODES
             */
        case T_Alias:
            retval = _copyAlias(from);
            break;
        case T_RangeVar:
            retval = _copyRangeVar(from);
            break;
        case T_IntoClause:
            retval = _copyIntoClause(from);
            break;
        case T_Var:
            retval = _copyVar(from);
            break;
        case T_Const:
            retval = _copyConst(from);
            break;
        case T_Param:
            retval = _copyParam(from);
            break;
        case T_Aggref:
            retval = _copyAggref(from);
            break;
        case T_WindowFunc:
            retval = _copyWindowFunc(from);
            break;
        case T_ArrayRef:
            retval = _copyArrayRef(from);
            break;
        case T_FuncExpr:
            retval = _copyFuncExpr(from);
            break;
        case T_NamedArgExpr:
            retval = _copyNamedArgExpr(from);
            break;
        case T_OpExpr:
            retval = _copyOpExpr(from);
            break;
        case T_DistinctExpr:
            retval = _copyDistinctExpr(from);
            break;
        case T_NullIfExpr:
            retval = _copyNullIfExpr(from);
            break;
        case T_ScalarArrayOpExpr:
            retval = _copyScalarArrayOpExpr(from);
            break;
        case T_BoolExpr:
            retval = _copyBoolExpr(from);
            break;
        case T_SubLink:
            retval = _copySubLink(from);
            break;
        case T_SubPlan:
            retval = _copySubPlan(from);
            break;
        case T_AlternativeSubPlan:
            retval = _copyAlternativeSubPlan(from);
            break;
        case T_FieldSelect:
            retval = _copyFieldSelect(from);
            break;
        case T_FieldStore:
            retval = _copyFieldStore(from);
            break;
        case T_RelabelType:
            retval = _copyRelabelType(from);
            break;
        case T_CoerceViaIO:
            retval = _copyCoerceViaIO(from);
            break;
        case T_ArrayCoerceExpr:
            retval = _copyArrayCoerceExpr(from);
            break;
        case T_ConvertRowtypeExpr:
            retval = _copyConvertRowtypeExpr(from);
            break;
        case T_CollateExpr:
            retval = _copyCollateExpr(from);
            break;
        case T_CaseExpr:
            retval = _copyCaseExpr(from);
            break;
        case T_CaseWhen:
            retval = _copyCaseWhen(from);
            break;
        case T_CaseTestExpr:
            retval = _copyCaseTestExpr(from);
            break;
        case T_ArrayExpr:
            retval = _copyArrayExpr(from);
            break;
        case T_RowExpr:
            retval = _copyRowExpr(from);
            break;
        case T_RowCompareExpr:
            retval = _copyRowCompareExpr(from);
            break;
        case T_CoalesceExpr:
            retval = _copyCoalesceExpr(from);
            break;
        case T_MinMaxExpr:
            retval = _copyMinMaxExpr(from);
            break;
        case T_XmlExpr:
            retval = _copyXmlExpr(from);
            break;
        case T_NullTest:
            retval = _copyNullTest(from);
            break;
        case T_BooleanTest:
            retval = _copyBooleanTest(from);
            break;
        case T_CoerceToDomain:
            retval = _copyCoerceToDomain(from);
            break;
        case T_CoerceToDomainValue:
            retval = _copyCoerceToDomainValue(from);
            break;
        case T_SetToDefault:
            retval = _copySetToDefault(from);
            break;
        case T_CurrentOfExpr:
            retval = _copyCurrentOfExpr(from);
            break;
        case T_TargetEntry:
            retval = _copyTargetEntry(from);
            break;
        case T_RangeTblRef:
            retval = _copyRangeTblRef(from);
            break;
        case T_JoinExpr:
            retval = _copyJoinExpr(from);
            break;
        case T_FromExpr:
            retval = _copyFromExpr(from);
            break;

            /*
             * RELATION NODES
             */
        case T_PathKey:
            retval = _copyPathKey(from);
            break;
        case T_RestrictInfo:
            retval = _copyRestrictInfo(from);
            break;
        case T_PlaceHolderVar:
            retval = _copyPlaceHolderVar(from);
            break;
        case T_SpecialJoinInfo:
            retval = _copySpecialJoinInfo(from);
            break;
        case T_LateralJoinInfo:
            retval = _copyLateralJoinInfo(from);
            break;
        case T_AppendRelInfo:
            retval = _copyAppendRelInfo(from);
            break;
        case T_PlaceHolderInfo:
            retval = _copyPlaceHolderInfo(from);
            break;

            /*
             * VALUE NODES
             */
        case T_Integer:
        case T_Float:
        case T_String:
        case T_BitString:
        case T_Null:
            retval = _copyValue(from);
            break;

            /*
             * LIST NODES
             */
        case T_List:
            retval = _copyList(from);
            break;

            /*
             * Lists of integers and OIDs don't need to be deep-copied, so we
             * perform a shallow copy via list_copy()
             */
        case T_IntList:
        case T_OidList:
            retval = list_copy(from);
            break;

            /*
             * PARSE NODES
             */
        case T_Query:
            retval = _copyQuery(from);
            break;
        case T_InsertStmt:
            retval = _copyInsertStmt(from);
            break;
        case T_DeleteStmt:
            retval = _copyDeleteStmt(from);
            break;
        case T_UpdateStmt:
            retval = _copyUpdateStmt(from);
            break;
        case T_SelectStmt:
            retval = _copySelectStmt(from);
            break;
        case T_SetOperationStmt:
            retval = _copySetOperationStmt(from);
            break;
        case T_AlterTableStmt:
            retval = _copyAlterTableStmt(from);
            break;
        case T_AlterTableCmd:
            retval = _copyAlterTableCmd(from);
            break;
        case T_AlterDomainStmt:
            retval = _copyAlterDomainStmt(from);
            break;
        case T_GrantStmt:
            retval = _copyGrantStmt(from);
            break;
        case T_GrantRoleStmt:
            retval = _copyGrantRoleStmt(from);
            break;
        case T_AlterDefaultPrivilegesStmt:
            retval = _copyAlterDefaultPrivilegesStmt(from);
            break;
        case T_DeclareCursorStmt:
            retval = _copyDeclareCursorStmt(from);
            break;
        case T_ClosePortalStmt:
            retval = _copyClosePortalStmt(from);
            break;
        case T_ClusterStmt:
            retval = _copyClusterStmt(from);
            break;
        case T_CopyStmt:
            retval = _copyCopyStmt(from);
            break;
        case T_CreateStmt:
            retval = _copyCreateStmt(from);
            break;
        case T_TableLikeClause:
            retval = _copyTableLikeClause(from);
            break;
        case T_DefineStmt:
            retval = _copyDefineStmt(from);
            break;
        case T_DropStmt:
            retval = _copyDropStmt(from);
            break;
        case T_TruncateStmt:
            retval = _copyTruncateStmt(from);
            break;
        case T_CommentStmt:
            retval = _copyCommentStmt(from);
            break;
        case T_SecLabelStmt:
            retval = _copySecLabelStmt(from);
            break;
        case T_FetchStmt:
            retval = _copyFetchStmt(from);
            break;
        case T_IndexStmt:
            retval = _copyIndexStmt(from);
            break;
        case T_CreateFunctionStmt:
            retval = _copyCreateFunctionStmt(from);
            break;
        case T_FunctionParameter:
            retval = _copyFunctionParameter(from);
            break;
        case T_AlterFunctionStmt:
            retval = _copyAlterFunctionStmt(from);
            break;
        case T_DoStmt:
            retval = _copyDoStmt(from);
            break;
        case T_RenameStmt:
            retval = _copyRenameStmt(from);
            break;
        case T_AlterObjectSchemaStmt:
            retval = _copyAlterObjectSchemaStmt(from);
            break;
        case T_AlterOwnerStmt:
            retval = _copyAlterOwnerStmt(from);
            break;
        case T_RuleStmt:
            retval = _copyRuleStmt(from);
            break;
        case T_NotifyStmt:
            retval = _copyNotifyStmt(from);
            break;
        case T_ListenStmt:
            retval = _copyListenStmt(from);
            break;
        case T_UnlistenStmt:
            retval = _copyUnlistenStmt(from);
            break;
        case T_TransactionStmt:
            retval = _copyTransactionStmt(from);
            break;
        case T_CompositeTypeStmt:
            retval = _copyCompositeTypeStmt(from);
            break;
        case T_CreateEnumStmt:
            retval = _copyCreateEnumStmt(from);
            break;
        case T_CreateRangeStmt:
            retval = _copyCreateRangeStmt(from);
            break;
        case T_AlterEnumStmt:
            retval = _copyAlterEnumStmt(from);
            break;
        case T_ViewStmt:
            retval = _copyViewStmt(from);
            break;
        case T_LoadStmt:
            retval = _copyLoadStmt(from);
            break;
        case T_CreateDomainStmt:
            retval = _copyCreateDomainStmt(from);
            break;
        case T_CreateOpClassStmt:
            retval = _copyCreateOpClassStmt(from);
            break;
        case T_CreateOpClassItem:
            retval = _copyCreateOpClassItem(from);
            break;
        case T_CreateOpFamilyStmt:
            retval = _copyCreateOpFamilyStmt(from);
            break;
        case T_AlterOpFamilyStmt:
            retval = _copyAlterOpFamilyStmt(from);
            break;
        case T_CreatedbStmt:
            retval = _copyCreatedbStmt(from);
            break;
        case T_AlterDatabaseStmt:
            retval = _copyAlterDatabaseStmt(from);
            break;
        case T_AlterDatabaseSetStmt:
            retval = _copyAlterDatabaseSetStmt(from);
            break;
        case T_DropdbStmt:
            retval = _copyDropdbStmt(from);
            break;
        case T_VacuumStmt:
            retval = _copyVacuumStmt(from);
            break;
        case T_ExplainStmt:
            retval = _copyExplainStmt(from);
            break;
        case T_CreateTableAsStmt:
            retval = _copyCreateTableAsStmt(from);
            break;
        case T_RefreshMatViewStmt:
            retval = _copyRefreshMatViewStmt(from);
            break;
        case T_CreateSeqStmt:
            retval = _copyCreateSeqStmt(from);
            break;
        case T_AlterSeqStmt:
            retval = _copyAlterSeqStmt(from);
            break;
        case T_VariableSetStmt:
            retval = _copyVariableSetStmt(from);
            break;
        case T_VariableShowStmt:
            retval = _copyVariableShowStmt(from);
            break;
        case T_DiscardStmt:
            retval = _copyDiscardStmt(from);
            break;
        case T_CreateTableSpaceStmt:
            retval = _copyCreateTableSpaceStmt(from);
            break;
        case T_DropTableSpaceStmt:
            retval = _copyDropTableSpaceStmt(from);
            break;
        case T_AlterTableSpaceOptionsStmt:
            retval = _copyAlterTableSpaceOptionsStmt(from);
            break;
        case T_CreateExtensionStmt:
            retval = _copyCreateExtensionStmt(from);
            break;
        case T_AlterExtensionStmt:
            retval = _copyAlterExtensionStmt(from);
            break;
        case T_AlterExtensionContentsStmt:
            retval = _copyAlterExtensionContentsStmt(from);
            break;
        case T_CreateFdwStmt:
            retval = _copyCreateFdwStmt(from);
            break;
        case T_AlterFdwStmt:
            retval = _copyAlterFdwStmt(from);
            break;
        case T_CreateForeignServerStmt:
            retval = _copyCreateForeignServerStmt(from);
            break;
        case T_AlterForeignServerStmt:
            retval = _copyAlterForeignServerStmt(from);
            break;
        case T_CreateUserMappingStmt:
            retval = _copyCreateUserMappingStmt(from);
            break;
        case T_AlterUserMappingStmt:
            retval = _copyAlterUserMappingStmt(from);
            break;
        case T_DropUserMappingStmt:
            retval = _copyDropUserMappingStmt(from);
            break;
        case T_CreateForeignTableStmt:
            retval = _copyCreateForeignTableStmt(from);
            break;
        case T_CreateTrigStmt:
            retval = _copyCreateTrigStmt(from);
            break;
        case T_CreateEventTrigStmt:
            retval = _copyCreateEventTrigStmt(from);
            break;
        case T_AlterEventTrigStmt:
            retval = _copyAlterEventTrigStmt(from);
            break;
        case T_CreatePLangStmt:
            retval = _copyCreatePLangStmt(from);
            break;
        case T_CreateRoleStmt:
            retval = _copyCreateRoleStmt(from);
            break;
        case T_AlterRoleStmt:
            retval = _copyAlterRoleStmt(from);
            break;
        case T_AlterRoleSetStmt:
            retval = _copyAlterRoleSetStmt(from);
            break;
        case T_DropRoleStmt:
            retval = _copyDropRoleStmt(from);
            break;
        case T_LockStmt:
            retval = _copyLockStmt(from);
            break;
        case T_ConstraintsSetStmt:
            retval = _copyConstraintsSetStmt(from);
            break;
        case T_ReindexStmt:
            retval = _copyReindexStmt(from);
            break;
        case T_CheckPointStmt:
            retval = (void *) makeNode(CheckPointStmt);
            break;
        case T_CreateSchemaStmt:
            retval = _copyCreateSchemaStmt(from);
            break;
        case T_CreateConversionStmt:
            retval = _copyCreateConversionStmt(from);
            break;
        case T_CreateCastStmt:
            retval = _copyCreateCastStmt(from);
            break;
        case T_PrepareStmt:
            retval = _copyPrepareStmt(from);
            break;
        case T_ExecuteStmt:
            retval = _copyExecuteStmt(from);
            break;
        case T_DeallocateStmt:
            retval = _copyDeallocateStmt(from);
            break;
        case T_DropOwnedStmt:
            retval = _copyDropOwnedStmt(from);
            break;
        case T_ReassignOwnedStmt:
            retval = _copyReassignOwnedStmt(from);
            break;
        case T_AlterTSDictionaryStmt:
            retval = _copyAlterTSDictionaryStmt(from);
            break;
        case T_AlterTSConfigurationStmt:
            retval = _copyAlterTSConfigurationStmt(from);
            break;

        case T_A_Expr:
            retval = _copyAExpr(from);
            break;
        case T_ColumnRef:
            retval = _copyColumnRef(from);
            break;
        case T_ParamRef:
            retval = _copyParamRef(from);
            break;
        case T_A_Const:
            retval = _copyAConst(from);
            break;
        case T_FuncCall:
            retval = _copyFuncCall(from);
            break;
        case T_A_Star:
            retval = _copyAStar(from);
            break;
        case T_A_Indices:
            retval = _copyAIndices(from);
            break;
        case T_A_Indirection:
            retval = _copyA_Indirection(from);
            break;
        case T_A_ArrayExpr:
            retval = _copyA_ArrayExpr(from);
            break;
        case T_ResTarget:
            retval = _copyResTarget(from);
            break;
        case T_TypeCast:
            retval = _copyTypeCast(from);
            break;
        case T_CollateClause:
            retval = _copyCollateClause(from);
            break;
        case T_SortBy:
            retval = _copySortBy(from);
            break;
        case T_WindowDef:
            retval = _copyWindowDef(from);
            break;
        case T_RangeSubselect:
            retval = _copyRangeSubselect(from);
            break;
        case T_RangeFunction:
            retval = _copyRangeFunction(from);
            break;
        case T_TypeName:
            retval = _copyTypeName(from);
            break;
        case T_IndexElem:
            retval = _copyIndexElem(from);
            break;
        case T_ColumnDef:
            retval = _copyColumnDef(from);
            break;
        case T_Constraint:
            retval = _copyConstraint(from);
            break;
        case T_DefElem:
            retval = _copyDefElem(from);
            break;
        case T_LockingClause:
            retval = _copyLockingClause(from);
            break;
        case T_RangeTblEntry:
            retval = _copyRangeTblEntry(from);
            break;
        case T_SortGroupClause:
            retval = _copySortGroupClause(from);
            break;
        case T_WindowClause:
            retval = _copyWindowClause(from);
            break;
        case T_RowMarkClause:
            retval = _copyRowMarkClause(from);
            break;
        case T_WithClause:
            retval = _copyWithClause(from);
            break;
        case T_CommonTableExpr:
            retval = _copyCommonTableExpr(from);
            break;
        case T_PrivGrantee:
            retval = _copyPrivGrantee(from);
            break;
        case T_FuncWithArgs:
            retval = _copyFuncWithArgs(from);
            break;
        case T_AccessPriv:
            retval = _copyAccessPriv(from);
            break;
        case T_XmlSerialize:
            retval = _copyXmlSerialize(from);
            break;

        default:
            elog(ERROR, "unrecognized node type: %d", (int) nodeTag(from));
            retval = 0;         /* keep compiler quiet */
            break;
    }

    return retval;
}

bool equal ( const void *  a,
const void *  b 
)

Definition at line 2423 of file equalfuncs.c.

References _equalA_ArrayExpr(), _equalA_Indirection(), _equalAccessPriv(), _equalAConst(), _equalAExpr(), _equalAggref(), _equalAIndices(), _equalAlias(), _equalAlterDatabaseSetStmt(), _equalAlterDatabaseStmt(), _equalAlterDefaultPrivilegesStmt(), _equalAlterDomainStmt(), _equalAlterEnumStmt(), _equalAlterEventTrigStmt(), _equalAlterExtensionContentsStmt(), _equalAlterExtensionStmt(), _equalAlterFdwStmt(), _equalAlterForeignServerStmt(), _equalAlterFunctionStmt(), _equalAlternativeSubPlan(), _equalAlterObjectSchemaStmt(), _equalAlterOpFamilyStmt(), _equalAlterOwnerStmt(), _equalAlterRoleSetStmt(), _equalAlterRoleStmt(), _equalAlterSeqStmt(), _equalAlterTableCmd(), _equalAlterTableSpaceOptionsStmt(), _equalAlterTableStmt(), _equalAlterTSConfigurationStmt(), _equalAlterTSDictionaryStmt(), _equalAlterUserMappingStmt(), _equalAppendRelInfo(), _equalArrayCoerceExpr(), _equalArrayExpr(), _equalArrayRef(), _equalAStar(), _equalBooleanTest(), _equalBoolExpr(), _equalCaseExpr(), _equalCaseTestExpr(), _equalCaseWhen(), _equalClosePortalStmt(), _equalClusterStmt(), _equalCoalesceExpr(), _equalCoerceToDomain(), _equalCoerceToDomainValue(), _equalCoerceViaIO(), _equalCollateClause(), _equalCollateExpr(), _equalColumnDef(), _equalColumnRef(), _equalCommentStmt(), _equalCommonTableExpr(), _equalCompositeTypeStmt(), _equalConst(), _equalConstraint(), _equalConstraintsSetStmt(), _equalConvertRowtypeExpr(), _equalCopyStmt(), _equalCreateCastStmt(), _equalCreateConversionStmt(), _equalCreatedbStmt(), _equalCreateDomainStmt(), _equalCreateEnumStmt(), _equalCreateEventTrigStmt(), _equalCreateExtensionStmt(), _equalCreateFdwStmt(), _equalCreateForeignServerStmt(), _equalCreateForeignTableStmt(), _equalCreateFunctionStmt(), _equalCreateOpClassItem(), _equalCreateOpClassStmt(), _equalCreateOpFamilyStmt(), _equalCreatePLangStmt(), _equalCreateRangeStmt(), _equalCreateRoleStmt(), _equalCreateSchemaStmt(), _equalCreateSeqStmt(), _equalCreateStmt(), _equalCreateTableAsStmt(), _equalCreateTableSpaceStmt(), _equalCreateTrigStmt(), _equalCreateUserMappingStmt(), _equalCurrentOfExpr(), _equalDeallocateStmt(), _equalDeclareCursorStmt(), _equalDefElem(), _equalDefineStmt(), _equalDeleteStmt(), _equalDiscardStmt(), _equalDistinctExpr(), _equalDoStmt(), _equalDropdbStmt(), _equalDropOwnedStmt(), _equalDropRoleStmt(), _equalDropStmt(), _equalDropTableSpaceStmt(), _equalDropUserMappingStmt(), _equalExecuteStmt(), _equalExplainStmt(), _equalFetchStmt(), _equalFieldSelect(), _equalFieldStore(), _equalFromExpr(), _equalFuncCall(), _equalFuncExpr(), _equalFunctionParameter(), _equalFuncWithArgs(), _equalGrantRoleStmt(), _equalGrantStmt(), _equalIndexElem(), _equalIndexStmt(), _equalInsertStmt(), _equalIntoClause(), _equalJoinExpr(), _equalLateralJoinInfo(), _equalList(), _equalListenStmt(), _equalLoadStmt(), _equalLockingClause(), _equalLockStmt(), _equalMinMaxExpr(), _equalNamedArgExpr(), _equalNotifyStmt(), _equalNullIfExpr(), _equalNullTest(), _equalOpExpr(), _equalParam(), _equalParamRef(), _equalPathKey(), _equalPlaceHolderInfo(), _equalPlaceHolderVar(), _equalPrepareStmt(), _equalPrivGrantee(), _equalQuery(), _equalRangeFunction(), _equalRangeSubselect(), _equalRangeTblEntry(), _equalRangeTblRef(), _equalRangeVar(), _equalReassignOwnedStmt(), _equalRefreshMatViewStmt(), _equalReindexStmt(), _equalRelabelType(), _equalRenameStmt(), _equalResTarget(), _equalRestrictInfo(), _equalRowCompareExpr(), _equalRowExpr(), _equalRowMarkClause(), _equalRuleStmt(), _equalScalarArrayOpExpr(), _equalSecLabelStmt(), _equalSelectStmt(), _equalSetOperationStmt(), _equalSetToDefault(), _equalSortBy(), _equalSortGroupClause(), _equalSpecialJoinInfo(), _equalSubLink(), _equalSubPlan(), _equalTableLikeClause(), _equalTargetEntry(), _equalTransactionStmt(), _equalTruncateStmt(), _equalTypeCast(), _equalTypeName(), _equalUnlistenStmt(), _equalUpdateStmt(), _equalVacuumStmt(), _equalValue(), _equalVar(), _equalVariableSetStmt(), _equalVariableShowStmt(), _equalViewStmt(), _equalWindowClause(), _equalWindowDef(), _equalWindowFunc(), _equalWithClause(), _equalXmlExpr(), _equalXmlSerialize(), elog, ERROR, nodeTag, NULL, T_A_ArrayExpr, T_A_Const, T_A_Expr, T_A_Indices, T_A_Indirection, T_A_Star, T_AccessPriv, T_Aggref, T_Alias, T_AlterDatabaseSetStmt, T_AlterDatabaseStmt, T_AlterDefaultPrivilegesStmt, T_AlterDomainStmt, T_AlterEnumStmt, T_AlterEventTrigStmt, T_AlterExtensionContentsStmt, T_AlterExtensionStmt, T_AlterFdwStmt, T_AlterForeignServerStmt, T_AlterFunctionStmt, T_AlternativeSubPlan, T_AlterObjectSchemaStmt, T_AlterOpFamilyStmt, T_AlterOwnerStmt, T_AlterRoleSetStmt, T_AlterRoleStmt, T_AlterSeqStmt, T_AlterTableCmd, T_AlterTableSpaceOptionsStmt, T_AlterTableStmt, T_AlterTSConfigurationStmt, T_AlterTSDictionaryStmt, T_AlterUserMappingStmt, T_AppendRelInfo, T_ArrayCoerceExpr, T_ArrayExpr, T_ArrayRef, T_BitString, T_BooleanTest, T_BoolExpr, T_CaseExpr, T_CaseTestExpr, T_CaseWhen, T_CheckPointStmt, T_ClosePortalStmt, T_ClusterStmt, T_CoalesceExpr, T_CoerceToDomain, T_CoerceToDomainValue, T_CoerceViaIO, T_CollateClause, T_CollateExpr, T_ColumnDef, T_ColumnRef, T_CommentStmt, T_CommonTableExpr, T_CompositeTypeStmt, T_Const, T_Constraint, T_ConstraintsSetStmt, T_ConvertRowtypeExpr, T_CopyStmt, T_CreateCastStmt, T_CreateConversionStmt, T_CreatedbStmt, T_CreateDomainStmt, T_CreateEnumStmt, T_CreateEventTrigStmt, T_CreateExtensionStmt, T_CreateFdwStmt, T_CreateForeignServerStmt, T_CreateForeignTableStmt, T_CreateFunctionStmt, T_CreateOpClassItem, T_CreateOpClassStmt, T_CreateOpFamilyStmt, T_CreatePLangStmt, T_CreateRangeStmt, T_CreateRoleStmt, T_CreateSchemaStmt, T_CreateSeqStmt, T_CreateStmt, T_CreateTableAsStmt, T_CreateTableSpaceStmt, T_CreateTrigStmt, T_CreateUserMappingStmt, T_CurrentOfExpr, T_DeallocateStmt, T_DeclareCursorStmt, T_DefElem, T_DefineStmt, T_DeleteStmt, T_DiscardStmt, T_DistinctExpr, T_DoStmt, T_DropdbStmt, T_DropOwnedStmt, T_DropRoleStmt, T_DropStmt, T_DropTableSpaceStmt, T_DropUserMappingStmt, T_ExecuteStmt, T_ExplainStmt, T_FetchStmt, T_FieldSelect, T_FieldStore, T_Float, T_FromExpr, T_FuncCall, T_FuncExpr, T_FunctionParameter, T_FuncWithArgs, T_GrantRoleStmt, T_GrantStmt, T_IndexElem, T_IndexStmt, T_InsertStmt, T_Integer, T_IntList, T_IntoClause, T_JoinExpr, T_LateralJoinInfo, T_List, T_ListenStmt, T_LoadStmt, T_LockingClause, T_LockStmt, T_MinMaxExpr, T_NamedArgExpr, T_NotifyStmt, T_Null, T_NullIfExpr, T_NullTest, T_OidList, T_OpExpr, T_Param, T_ParamRef, T_PathKey, T_PlaceHolderInfo, T_PlaceHolderVar, T_PrepareStmt, T_PrivGrantee, T_Query, T_RangeFunction, T_RangeSubselect, T_RangeTblEntry, T_RangeTblRef, T_RangeVar, T_ReassignOwnedStmt, T_RefreshMatViewStmt, T_ReindexStmt, T_RelabelType, T_RenameStmt, T_ResTarget, T_RestrictInfo, T_RowCompareExpr, T_RowExpr, T_RowMarkClause, T_RuleStmt, T_ScalarArrayOpExpr, T_SecLabelStmt, T_SelectStmt, T_SetOperationStmt, T_SetToDefault, T_SortBy, T_SortGroupClause, T_SpecialJoinInfo, T_String, T_SubLink, T_SubPlan, T_TableLikeClause, T_TargetEntry, T_TransactionStmt, T_TruncateStmt, T_TypeCast, T_TypeName, T_UnlistenStmt, T_UpdateStmt, T_VacuumStmt, T_Var, T_VariableSetStmt, T_VariableShowStmt, T_ViewStmt, T_WindowClause, T_WindowDef, T_WindowFunc, T_WithClause, T_XmlExpr, and T_XmlSerialize.

Referenced by _equalAConst(), _equalList(), add_unique_group_var(), addRangeClause(), btree_predicate_proof(), check_ungrouped_columns_walker(), convert_subquery_pathkeys(), ConvertTriggerToFK(), cube_out(), deparseParam(), deparseVar(), ec_member_matches_foreign(), equalRuleLocks(), examine_variable(), ExecInitAgg(), ExecInitWindowAgg(), exprs_known_equal(), find_ec_member_for_tle(), find_list_position(), find_minmax_aggs_walker(), findTargetlistEntrySQL92(), findTargetlistEntrySQL99(), fix_indexqual_operand(), get_eclass_for_sort_expr(), list_delete(), list_member(), list_member_strip(), match_index_to_operand(), MergeAttributes(), MergeCheckConstraint(), MergeWithExistingConstraint(), OverrideSearchPathMatchesCurrent(), pg_parse_query(), pg_plan_query(), pg_rewrite_query(), predicate_implied_by_simple_clause(), predicate_refuted_by_recurse(), predicate_refuted_by_simple_clause(), preprocess_groupclause(), process_duplicate_ors(), process_equivalence(), process_matched_tle(), process_subquery_nestloop_params(), reconsider_full_join_clause(), reconsider_outer_join_clause(), recurse_union_children(), replace_aggs_with_params_mutator(), replace_nestloop_params_mutator(), search_indexed_tlist_for_sortgroupref(), select_active_windows(), tlist_member(), tlist_member_ignore_relabel(), tlist_same_exprs(), transformIndexConstraints(), transformWindowFuncCall(), and trivial_subqueryscan().

{
    bool        retval;

    if (a == b)
        return true;

    /*
     * note that a!=b, so only one of them can be NULL
     */
    if (a == NULL || b == NULL)
        return false;

    /*
     * are they the same type of nodes?
     */
    if (nodeTag(a) != nodeTag(b))
        return false;

    switch (nodeTag(a))
    {
            /*
             * PRIMITIVE NODES
             */
        case T_Alias:
            retval = _equalAlias(a, b);
            break;
        case T_RangeVar:
            retval = _equalRangeVar(a, b);
            break;
        case T_IntoClause:
            retval = _equalIntoClause(a, b);
            break;
        case T_Var:
            retval = _equalVar(a, b);
            break;
        case T_Const:
            retval = _equalConst(a, b);
            break;
        case T_Param:
            retval = _equalParam(a, b);
            break;
        case T_Aggref:
            retval = _equalAggref(a, b);
            break;
        case T_WindowFunc:
            retval = _equalWindowFunc(a, b);
            break;
        case T_ArrayRef:
            retval = _equalArrayRef(a, b);
            break;
        case T_FuncExpr:
            retval = _equalFuncExpr(a, b);
            break;
        case T_NamedArgExpr:
            retval = _equalNamedArgExpr(a, b);
            break;
        case T_OpExpr:
            retval = _equalOpExpr(a, b);
            break;
        case T_DistinctExpr:
            retval = _equalDistinctExpr(a, b);
            break;
        case T_NullIfExpr:
            retval = _equalNullIfExpr(a, b);
            break;
        case T_ScalarArrayOpExpr:
            retval = _equalScalarArrayOpExpr(a, b);
            break;
        case T_BoolExpr:
            retval = _equalBoolExpr(a, b);
            break;
        case T_SubLink:
            retval = _equalSubLink(a, b);
            break;
        case T_SubPlan:
            retval = _equalSubPlan(a, b);
            break;
        case T_AlternativeSubPlan:
            retval = _equalAlternativeSubPlan(a, b);
            break;
        case T_FieldSelect:
            retval = _equalFieldSelect(a, b);
            break;
        case T_FieldStore:
            retval = _equalFieldStore(a, b);
            break;
        case T_RelabelType:
            retval = _equalRelabelType(a, b);
            break;
        case T_CoerceViaIO:
            retval = _equalCoerceViaIO(a, b);
            break;
        case T_ArrayCoerceExpr:
            retval = _equalArrayCoerceExpr(a, b);
            break;
        case T_ConvertRowtypeExpr:
            retval = _equalConvertRowtypeExpr(a, b);
            break;
        case T_CollateExpr:
            retval = _equalCollateExpr(a, b);
            break;
        case T_CaseExpr:
            retval = _equalCaseExpr(a, b);
            break;
        case T_CaseWhen:
            retval = _equalCaseWhen(a, b);
            break;
        case T_CaseTestExpr:
            retval = _equalCaseTestExpr(a, b);
            break;
        case T_ArrayExpr:
            retval = _equalArrayExpr(a, b);
            break;
        case T_RowExpr:
            retval = _equalRowExpr(a, b);
            break;
        case T_RowCompareExpr:
            retval = _equalRowCompareExpr(a, b);
            break;
        case T_CoalesceExpr:
            retval = _equalCoalesceExpr(a, b);
            break;
        case T_MinMaxExpr:
            retval = _equalMinMaxExpr(a, b);
            break;
        case T_XmlExpr:
            retval = _equalXmlExpr(a, b);
            break;
        case T_NullTest:
            retval = _equalNullTest(a, b);
            break;
        case T_BooleanTest:
            retval = _equalBooleanTest(a, b);
            break;
        case T_CoerceToDomain:
            retval = _equalCoerceToDomain(a, b);
            break;
        case T_CoerceToDomainValue:
            retval = _equalCoerceToDomainValue(a, b);
            break;
        case T_SetToDefault:
            retval = _equalSetToDefault(a, b);
            break;
        case T_CurrentOfExpr:
            retval = _equalCurrentOfExpr(a, b);
            break;
        case T_TargetEntry:
            retval = _equalTargetEntry(a, b);
            break;
        case T_RangeTblRef:
            retval = _equalRangeTblRef(a, b);
            break;
        case T_FromExpr:
            retval = _equalFromExpr(a, b);
            break;
        case T_JoinExpr:
            retval = _equalJoinExpr(a, b);
            break;

            /*
             * RELATION NODES
             */
        case T_PathKey:
            retval = _equalPathKey(a, b);
            break;
        case T_RestrictInfo:
            retval = _equalRestrictInfo(a, b);
            break;
        case T_PlaceHolderVar:
            retval = _equalPlaceHolderVar(a, b);
            break;
        case T_SpecialJoinInfo:
            retval = _equalSpecialJoinInfo(a, b);
            break;
        case T_LateralJoinInfo:
            retval = _equalLateralJoinInfo(a, b);
            break;
        case T_AppendRelInfo:
            retval = _equalAppendRelInfo(a, b);
            break;
        case T_PlaceHolderInfo:
            retval = _equalPlaceHolderInfo(a, b);
            break;

        case T_List:
        case T_IntList:
        case T_OidList:
            retval = _equalList(a, b);
            break;

        case T_Integer:
        case T_Float:
        case T_String:
        case T_BitString:
        case T_Null:
            retval = _equalValue(a, b);
            break;

            /*
             * PARSE NODES
             */
        case T_Query:
            retval = _equalQuery(a, b);
            break;
        case T_InsertStmt:
            retval = _equalInsertStmt(a, b);
            break;
        case T_DeleteStmt:
            retval = _equalDeleteStmt(a, b);
            break;
        case T_UpdateStmt:
            retval = _equalUpdateStmt(a, b);
            break;
        case T_SelectStmt:
            retval = _equalSelectStmt(a, b);
            break;
        case T_SetOperationStmt:
            retval = _equalSetOperationStmt(a, b);
            break;
        case T_AlterTableStmt:
            retval = _equalAlterTableStmt(a, b);
            break;
        case T_AlterTableCmd:
            retval = _equalAlterTableCmd(a, b);
            break;
        case T_AlterDomainStmt:
            retval = _equalAlterDomainStmt(a, b);
            break;
        case T_GrantStmt:
            retval = _equalGrantStmt(a, b);
            break;
        case T_GrantRoleStmt:
            retval = _equalGrantRoleStmt(a, b);
            break;
        case T_AlterDefaultPrivilegesStmt:
            retval = _equalAlterDefaultPrivilegesStmt(a, b);
            break;
        case T_DeclareCursorStmt:
            retval = _equalDeclareCursorStmt(a, b);
            break;
        case T_ClosePortalStmt:
            retval = _equalClosePortalStmt(a, b);
            break;
        case T_ClusterStmt:
            retval = _equalClusterStmt(a, b);
            break;
        case T_CopyStmt:
            retval = _equalCopyStmt(a, b);
            break;
        case T_CreateStmt:
            retval = _equalCreateStmt(a, b);
            break;
        case T_TableLikeClause:
            retval = _equalTableLikeClause(a, b);
            break;
        case T_DefineStmt:
            retval = _equalDefineStmt(a, b);
            break;
        case T_DropStmt:
            retval = _equalDropStmt(a, b);
            break;
        case T_TruncateStmt:
            retval = _equalTruncateStmt(a, b);
            break;
        case T_CommentStmt:
            retval = _equalCommentStmt(a, b);
            break;
        case T_SecLabelStmt:
            retval = _equalSecLabelStmt(a, b);
            break;
        case T_FetchStmt:
            retval = _equalFetchStmt(a, b);
            break;
        case T_IndexStmt:
            retval = _equalIndexStmt(a, b);
            break;
        case T_CreateFunctionStmt:
            retval = _equalCreateFunctionStmt(a, b);
            break;
        case T_FunctionParameter:
            retval = _equalFunctionParameter(a, b);
            break;
        case T_AlterFunctionStmt:
            retval = _equalAlterFunctionStmt(a, b);
            break;
        case T_DoStmt:
            retval = _equalDoStmt(a, b);
            break;
        case T_RenameStmt:
            retval = _equalRenameStmt(a, b);
            break;
        case T_AlterObjectSchemaStmt:
            retval = _equalAlterObjectSchemaStmt(a, b);
            break;
        case T_AlterOwnerStmt:
            retval = _equalAlterOwnerStmt(a, b);
            break;
        case T_RuleStmt:
            retval = _equalRuleStmt(a, b);
            break;
        case T_NotifyStmt:
            retval = _equalNotifyStmt(a, b);
            break;
        case T_ListenStmt:
            retval = _equalListenStmt(a, b);
            break;
        case T_UnlistenStmt:
            retval = _equalUnlistenStmt(a, b);
            break;
        case T_TransactionStmt:
            retval = _equalTransactionStmt(a, b);
            break;
        case T_CompositeTypeStmt:
            retval = _equalCompositeTypeStmt(a, b);
            break;
        case T_CreateEnumStmt:
            retval = _equalCreateEnumStmt(a, b);
            break;
        case T_CreateRangeStmt:
            retval = _equalCreateRangeStmt(a, b);
            break;
        case T_AlterEnumStmt:
            retval = _equalAlterEnumStmt(a, b);
            break;
        case T_ViewStmt:
            retval = _equalViewStmt(a, b);
            break;
        case T_LoadStmt:
            retval = _equalLoadStmt(a, b);
            break;
        case T_CreateDomainStmt:
            retval = _equalCreateDomainStmt(a, b);
            break;
        case T_CreateOpClassStmt:
            retval = _equalCreateOpClassStmt(a, b);
            break;
        case T_CreateOpClassItem:
            retval = _equalCreateOpClassItem(a, b);
            break;
        case T_CreateOpFamilyStmt:
            retval = _equalCreateOpFamilyStmt(a, b);
            break;
        case T_AlterOpFamilyStmt:
            retval = _equalAlterOpFamilyStmt(a, b);
            break;
        case T_CreatedbStmt:
            retval = _equalCreatedbStmt(a, b);
            break;
        case T_AlterDatabaseStmt:
            retval = _equalAlterDatabaseStmt(a, b);
            break;
        case T_AlterDatabaseSetStmt:
            retval = _equalAlterDatabaseSetStmt(a, b);
            break;
        case T_DropdbStmt:
            retval = _equalDropdbStmt(a, b);
            break;
        case T_VacuumStmt:
            retval = _equalVacuumStmt(a, b);
            break;
        case T_ExplainStmt:
            retval = _equalExplainStmt(a, b);
            break;
        case T_CreateTableAsStmt:
            retval = _equalCreateTableAsStmt(a, b);
            break;
        case T_RefreshMatViewStmt:
            retval = _equalRefreshMatViewStmt(a, b);
            break;
        case T_CreateSeqStmt:
            retval = _equalCreateSeqStmt(a, b);
            break;
        case T_AlterSeqStmt:
            retval = _equalAlterSeqStmt(a, b);
            break;
        case T_VariableSetStmt:
            retval = _equalVariableSetStmt(a, b);
            break;
        case T_VariableShowStmt:
            retval = _equalVariableShowStmt(a, b);
            break;
        case T_DiscardStmt:
            retval = _equalDiscardStmt(a, b);
            break;
        case T_CreateTableSpaceStmt:
            retval = _equalCreateTableSpaceStmt(a, b);
            break;
        case T_DropTableSpaceStmt:
            retval = _equalDropTableSpaceStmt(a, b);
            break;
        case T_AlterTableSpaceOptionsStmt:
            retval = _equalAlterTableSpaceOptionsStmt(a, b);
            break;
        case T_CreateExtensionStmt:
            retval = _equalCreateExtensionStmt(a, b);
            break;
        case T_AlterExtensionStmt:
            retval = _equalAlterExtensionStmt(a, b);
            break;
        case T_AlterExtensionContentsStmt:
            retval = _equalAlterExtensionContentsStmt(a, b);
            break;
        case T_CreateFdwStmt:
            retval = _equalCreateFdwStmt(a, b);
            break;
        case T_AlterFdwStmt:
            retval = _equalAlterFdwStmt(a, b);
            break;
        case T_CreateForeignServerStmt:
            retval = _equalCreateForeignServerStmt(a, b);
            break;
        case T_AlterForeignServerStmt:
            retval = _equalAlterForeignServerStmt(a, b);
            break;
        case T_CreateUserMappingStmt:
            retval = _equalCreateUserMappingStmt(a, b);
            break;
        case T_AlterUserMappingStmt:
            retval = _equalAlterUserMappingStmt(a, b);
            break;
        case T_DropUserMappingStmt:
            retval = _equalDropUserMappingStmt(a, b);
            break;
        case T_CreateForeignTableStmt:
            retval = _equalCreateForeignTableStmt(a, b);
            break;
        case T_CreateTrigStmt:
            retval = _equalCreateTrigStmt(a, b);
            break;
        case T_CreateEventTrigStmt:
            retval = _equalCreateEventTrigStmt(a, b);
            break;
        case T_AlterEventTrigStmt:
            retval = _equalAlterEventTrigStmt(a, b);
            break;
        case T_CreatePLangStmt:
            retval = _equalCreatePLangStmt(a, b);
            break;
        case T_CreateRoleStmt:
            retval = _equalCreateRoleStmt(a, b);
            break;
        case T_AlterRoleStmt:
            retval = _equalAlterRoleStmt(a, b);
            break;
        case T_AlterRoleSetStmt:
            retval = _equalAlterRoleSetStmt(a, b);
            break;
        case T_DropRoleStmt:
            retval = _equalDropRoleStmt(a, b);
            break;
        case T_LockStmt:
            retval = _equalLockStmt(a, b);
            break;
        case T_ConstraintsSetStmt:
            retval = _equalConstraintsSetStmt(a, b);
            break;
        case T_ReindexStmt:
            retval = _equalReindexStmt(a, b);
            break;
        case T_CheckPointStmt:
            retval = true;
            break;
        case T_CreateSchemaStmt:
            retval = _equalCreateSchemaStmt(a, b);
            break;
        case T_CreateConversionStmt:
            retval = _equalCreateConversionStmt(a, b);
            break;
        case T_CreateCastStmt:
            retval = _equalCreateCastStmt(a, b);
            break;
        case T_PrepareStmt:
            retval = _equalPrepareStmt(a, b);
            break;
        case T_ExecuteStmt:
            retval = _equalExecuteStmt(a, b);
            break;
        case T_DeallocateStmt:
            retval = _equalDeallocateStmt(a, b);
            break;
        case T_DropOwnedStmt:
            retval = _equalDropOwnedStmt(a, b);
            break;
        case T_ReassignOwnedStmt:
            retval = _equalReassignOwnedStmt(a, b);
            break;
        case T_AlterTSDictionaryStmt:
            retval = _equalAlterTSDictionaryStmt(a, b);
            break;
        case T_AlterTSConfigurationStmt:
            retval = _equalAlterTSConfigurationStmt(a, b);
            break;

        case T_A_Expr:
            retval = _equalAExpr(a, b);
            break;
        case T_ColumnRef:
            retval = _equalColumnRef(a, b);
            break;
        case T_ParamRef:
            retval = _equalParamRef(a, b);
            break;
        case T_A_Const:
            retval = _equalAConst(a, b);
            break;
        case T_FuncCall:
            retval = _equalFuncCall(a, b);
            break;
        case T_A_Star:
            retval = _equalAStar(a, b);
            break;
        case T_A_Indices:
            retval = _equalAIndices(a, b);
            break;
        case T_A_Indirection:
            retval = _equalA_Indirection(a, b);
            break;
        case T_A_ArrayExpr:
            retval = _equalA_ArrayExpr(a, b);
            break;
        case T_ResTarget:
            retval = _equalResTarget(a, b);
            break;
        case T_TypeCast:
            retval = _equalTypeCast(a, b);
            break;
        case T_CollateClause:
            retval = _equalCollateClause(a, b);
            break;
        case T_SortBy:
            retval = _equalSortBy(a, b);
            break;
        case T_WindowDef:
            retval = _equalWindowDef(a, b);
            break;
        case T_RangeSubselect:
            retval = _equalRangeSubselect(a, b);
            break;
        case T_RangeFunction:
            retval = _equalRangeFunction(a, b);
            break;
        case T_TypeName:
            retval = _equalTypeName(a, b);
            break;
        case T_IndexElem:
            retval = _equalIndexElem(a, b);
            break;
        case T_ColumnDef:
            retval = _equalColumnDef(a, b);
            break;
        case T_Constraint:
            retval = _equalConstraint(a, b);
            break;
        case T_DefElem:
            retval = _equalDefElem(a, b);
            break;
        case T_LockingClause:
            retval = _equalLockingClause(a, b);
            break;
        case T_RangeTblEntry:
            retval = _equalRangeTblEntry(a, b);
            break;
        case T_SortGroupClause:
            retval = _equalSortGroupClause(a, b);
            break;
        case T_WindowClause:
            retval = _equalWindowClause(a, b);
            break;
        case T_RowMarkClause:
            retval = _equalRowMarkClause(a, b);
            break;
        case T_WithClause:
            retval = _equalWithClause(a, b);
            break;
        case T_CommonTableExpr:
            retval = _equalCommonTableExpr(a, b);
            break;
        case T_PrivGrantee:
            retval = _equalPrivGrantee(a, b);
            break;
        case T_FuncWithArgs:
            retval = _equalFuncWithArgs(a, b);
            break;
        case T_AccessPriv:
            retval = _equalAccessPriv(a, b);
            break;
        case T_XmlSerialize:
            retval = _equalXmlSerialize(a, b);
            break;

        default:
            elog(ERROR, "unrecognized node type: %d",
                 (int) nodeTag(a));
            retval = false;     /* keep compiler quiet */
            break;
    }

    return retval;
}

char* nodeToString ( const void *  obj  ) 
void* stringToNode ( char *  str  ) 

Definition at line 38 of file read.c.

References nodeRead(), NULL, and pg_strtok_ptr.

Referenced by AddRelationNewConstraints(), build_column_default(), ExecRelCheck(), fetch_function_defaults(), func_get_detail(), generateClonedIndexStmt(), get_relation_constraints(), get_typdefault(), GetDomainConstraints(), make_ruledef(), make_viewdef(), MergeAttributes(), MergeWithExistingConstraint(), pg_get_constraintdef_worker(), pg_get_expr_worker(), pg_get_indexdef_worker(), pg_get_triggerdef_worker(), print_function_arguments(), ProcedureCreate(), RelationBuildRuleLock(), RelationGetIndexExpressions(), RelationGetIndexPredicate(), transformTableLikeClause(), TriggerEnabled(), TypeCreate(), validateCheckConstraint(), and validateDomainConstraint().

{
    char       *save_strtok;
    void       *retval;

    /*
     * We save and restore the pre-existing state of pg_strtok. This makes the
     * world safe for re-entrant invocation of stringToNode, without incurring
     * a lot of notational overhead by having to pass the next-character
     * pointer around through all the readfuncs.c code.
     */
    save_strtok = pg_strtok_ptr;

    pg_strtok_ptr = str;        /* point pg_strtok at the string to read */

    retval = nodeRead(NULL, 0); /* do the reading */

    pg_strtok_ptr = save_strtok;

    return retval;
}


Variable Documentation

PGDLLIMPORT Node* newNodeMacroHolder

Definition at line 31 of file nodes.c.