/* ---------------------------------------------------------------- 
 * 	node file generated from /usr/local/src/postgres/src/backend/nodes/relation.h
 * 
 * 	this file has been generated by the Gen_accessors.sh
 * 	and Gen_creator.sh scripts as part of the initial node
 * 	generation process.
 * ---------------------------------------------------------------- 
 */
 
#ifdef NO_NODE_CHECKING
#define NODEAssertArg(x)
#else
#define NODEAssertArg(x)	AssertArg(x)
#endif NO_NODE_CHECKING
 
extern void PrintRel();
extern void PrintSortKey();
extern void PrintPath();
extern void PrintIndexPath();
extern void PrintJoinPath();
extern void PrintMergePath();
extern void PrintHashPath();
extern void PrintOrderKey();
extern void PrintJoinKey();
extern void PrintMergeOrder();
extern void PrintCInfo();
extern void PrintJInfo();
extern void PrintHInfo();
extern void PrintJoinMethod();
# define get_relids(node) ((node)->relids)
# define set_relids(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->relids = (value);     }
# define get_indexed(node) ((node)->indexed)
# define set_indexed(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->indexed = (value);     }
# define get_pages(node) ((node)->pages)
# define set_pages(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->pages = (value);     }
# define get_tuples(node) ((node)->tuples)
# define set_tuples(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->tuples = (value);     }
# define get_size(node) ((node)->size)
# define set_size(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->size = (value);     }
# define get_width(node) ((node)->width)
# define set_width(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->width = (value);     }
# define get_targetlist(node) ((node)->targetlist)
# define set_targetlist(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->targetlist = (value);     }
# define get_pathlist(node) ((node)->pathlist)
# define set_pathlist(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->pathlist = (value);     }
# define get_unorderedpath(node) ((node)->unorderedpath)
# define set_unorderedpath(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->unorderedpath = (value);     }
# define get_cheapestpath(node) ((node)->cheapestpath)
# define set_cheapestpath(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->cheapestpath = (value);     }
# define get_pruneable(node) ((node)->pruneable)
# define set_pruneable(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->pruneable = (value);     }
# define get_classlist(node) ((node)->classlist)
# define set_classlist(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->classlist = (value);     }
# define get_indexkeys(node) ((node)->indexkeys)
# define set_indexkeys(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->indexkeys = (value);     }
# define get_indproc(node) ((node)->indproc)
# define set_indproc(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->indproc = (value);     }
# define get_indpred(node) ((node)->indpred)
# define set_indpred(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->indpred = (value);     }
# define get_ordering(node) ((node)->ordering)
# define set_ordering(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->ordering = (value);     }
# define get_clauseinfo(node) ((node)->clauseinfo)
# define set_clauseinfo(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->clauseinfo = (value);     }
# define get_joininfo(node) ((node)->joininfo)
# define set_joininfo(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->joininfo = (value);     }
# define get_innerjoin(node) ((node)->innerjoin)
# define set_innerjoin(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->innerjoin = (value);     }
# define get_superrels(node) ((node)->superrels)
# define set_superrels(node, value)     { 	NODEAssertArg(IsA(node,Rel)); 	(node)->superrels = (value);     }
extern Var get_expr ARGS(( TLE foo));
extern Resdom get_resdom ARGS(( TLE foo));
extern TLE get_entry ARGS(( TL foo));
extern List get_joinlist ARGS(( TL foo));
# define get_varkeys(node) ((node)->varkeys)
# define set_varkeys(node, value)     { 	NODEAssertArg(IsA(node,SortKey)); 	(node)->varkeys = (value);     }
# define get_sortkeys(node) ((node)->sortkeys)
# define set_sortkeys(node, value)     { 	NODEAssertArg(IsA(node,SortKey)); 	(node)->sortkeys = (value);     }
# define get_relid(node) ((node)->relid)
# define set_relid(node, value)     { 	NODEAssertArg(IsA(node,SortKey)); 	(node)->relid = (value);     }
# define get_sortorder(node) ((node)->sortorder)
# define set_sortorder(node, value)     { 	NODEAssertArg(IsA(node,SortKey)); 	(node)->sortorder = (value);     }
# define get_pathtype(node) ((node)->pathtype)
# define set_pathtype(node, value)     { 	NODEAssertArg(IsA(node,Path)); 	(node)->pathtype = (value);     }
# define get_parent(node) ((node)->parent)
# define set_parent(node, value)     { 	NODEAssertArg(IsA(node,Path)); 	(node)->parent = (value);     }
# define get_path_cost(node) ((node)->path_cost)
# define set_path_cost(node, value)     { 	NODEAssertArg(IsA(node,Path)); 	(node)->path_cost = (value);     }
# define get_p_ordering(node) ((node)->p_ordering)
# define set_p_ordering(node, value)     { 	NODEAssertArg(IsA(node,Path)); 	(node)->p_ordering = (value);     }
# define get_keys(node) ((node)->keys)
# define set_keys(node, value)     { 	NODEAssertArg(IsA(node,Path)); 	(node)->keys = (value);     }
# define get_pathsortkey(node) ((node)->pathsortkey)
# define set_pathsortkey(node, value)     { 	NODEAssertArg(IsA(node,Path)); 	(node)->pathsortkey = (value);     }
# define get_outerjoincost(node) ((node)->outerjoincost)
# define set_outerjoincost(node, value)     { 	NODEAssertArg(IsA(node,Path)); 	(node)->outerjoincost = (value);     }
# define get_joinid(node) ((node)->joinid)
# define set_joinid(node, value)     { 	NODEAssertArg(IsA(node,Path)); 	(node)->joinid = (value);     }
# define get_locclauseinfo(node) ((node)->locclauseinfo)
# define set_locclauseinfo(node, value)     { 	NODEAssertArg(IsA(node,Path)); 	(node)->locclauseinfo = (value);     }
# define get_indexid(node) ((node)->indexid)
# define set_indexid(node, value)     { 	NODEAssertArg(IsA(node,IndexPath)); 	(node)->indexid = (value);     }
# define get_indexqual(node) ((node)->indexqual)
# define set_indexqual(node, value)     { 	NODEAssertArg(IsA(node,IndexPath)); 	(node)->indexqual = (value);     }
# define get_pathclauseinfo(node) ((node)->pathclauseinfo)
# define set_pathclauseinfo(node, value)     { 	NODEAssertArg(IsA(node,JoinPath)); 	(node)->pathclauseinfo = (value);     }
# define get_outerjoinpath(node) ((node)->outerjoinpath)
# define set_outerjoinpath(node, value)     { 	NODEAssertArg(IsA(node,JoinPath)); 	(node)->outerjoinpath = (value);     }
# define get_innerjoinpath(node) ((node)->innerjoinpath)
# define set_innerjoinpath(node, value)     { 	NODEAssertArg(IsA(node,JoinPath)); 	(node)->innerjoinpath = (value);     }
# define get_path_mergeclauses(node) ((node)->path_mergeclauses)
# define set_path_mergeclauses(node, value)     { 	NODEAssertArg(IsA(node,MergePath)); 	(node)->path_mergeclauses = (value);     }
# define get_outersortkeys(node) ((node)->outersortkeys)
# define set_outersortkeys(node, value)     { 	NODEAssertArg(IsA(node,MergePath)); 	(node)->outersortkeys = (value);     }
# define get_innersortkeys(node) ((node)->innersortkeys)
# define set_innersortkeys(node, value)     { 	NODEAssertArg(IsA(node,MergePath)); 	(node)->innersortkeys = (value);     }
# define get_path_hashclauses(node) ((node)->path_hashclauses)
# define set_path_hashclauses(node, value)     { 	NODEAssertArg(IsA(node,HashPath)); 	(node)->path_hashclauses = (value);     }
# define get_outerhashkeys(node) ((node)->outerhashkeys)
# define set_outerhashkeys(node, value)     { 	NODEAssertArg(IsA(node,HashPath)); 	(node)->outerhashkeys = (value);     }
# define get_innerhashkeys(node) ((node)->innerhashkeys)
# define set_innerhashkeys(node, value)     { 	NODEAssertArg(IsA(node,HashPath)); 	(node)->innerhashkeys = (value);     }
# define get_attribute_number(node) ((node)->attribute_number)
# define set_attribute_number(node, value)     { 	NODEAssertArg(IsA(node,OrderKey)); 	(node)->attribute_number = (value);     }
# define get_array_index(node) ((node)->array_index)
# define set_array_index(node, value)     { 	NODEAssertArg(IsA(node,OrderKey)); 	(node)->array_index = (value);     }
# define get_outer(node) ((node)->outer)
# define set_outer(node, value)     { 	NODEAssertArg(IsA(node,JoinKey)); 	(node)->outer = (value);     }
# define get_inner(node) ((node)->inner)
# define set_inner(node, value)     { 	NODEAssertArg(IsA(node,JoinKey)); 	(node)->inner = (value);     }
# define get_join_operator(node) ((node)->join_operator)
# define set_join_operator(node, value)     { 	NODEAssertArg(IsA(node,MergeOrder)); 	(node)->join_operator = (value);     }
# define get_left_operator(node) ((node)->left_operator)
# define set_left_operator(node, value)     { 	NODEAssertArg(IsA(node,MergeOrder)); 	(node)->left_operator = (value);     }
# define get_right_operator(node) ((node)->right_operator)
# define set_right_operator(node, value)     { 	NODEAssertArg(IsA(node,MergeOrder)); 	(node)->right_operator = (value);     }
# define get_left_type(node) ((node)->left_type)
# define set_left_type(node, value)     { 	NODEAssertArg(IsA(node,MergeOrder)); 	(node)->left_type = (value);     }
# define get_right_type(node) ((node)->right_type)
# define set_right_type(node, value)     { 	NODEAssertArg(IsA(node,MergeOrder)); 	(node)->right_type = (value);     }
# define get_clause(node) ((node)->clause)
# define set_clause(node, value)     { 	NODEAssertArg(IsA(node,CInfo)); 	(node)->clause = (value);     }
# define get_selectivity(node) ((node)->selectivity)
# define set_selectivity(node, value)     { 	NODEAssertArg(IsA(node,CInfo)); 	(node)->selectivity = (value);     }
# define get_notclause(node) ((node)->notclause)
# define set_notclause(node, value)     { 	NODEAssertArg(IsA(node,CInfo)); 	(node)->notclause = (value);     }
# define get_indexids(node) ((node)->indexids)
# define set_indexids(node, value)     { 	NODEAssertArg(IsA(node,CInfo)); 	(node)->indexids = (value);     }
# define get_mergesortorder(node) ((node)->mergesortorder)
# define set_mergesortorder(node, value)     { 	NODEAssertArg(IsA(node,CInfo)); 	(node)->mergesortorder = (value);     }
# define get_hashjoinoperator(node) ((node)->hashjoinoperator)
# define set_hashjoinoperator(node, value)     { 	NODEAssertArg(IsA(node,CInfo)); 	(node)->hashjoinoperator = (value);     }
# define get_cinfojoinid(node) ((node)->cinfojoinid)
# define set_cinfojoinid(node, value)     { 	NODEAssertArg(IsA(node,CInfo)); 	(node)->cinfojoinid = (value);     }
# define get_jmkeys(node) ((node)->jmkeys)
# define set_jmkeys(node, value)     { 	NODEAssertArg(IsA(node,JoinMethod)); 	(node)->jmkeys = (value);     }
# define get_clauses(node) ((node)->clauses)
# define set_clauses(node, value)     { 	NODEAssertArg(IsA(node,JoinMethod)); 	(node)->clauses = (value);     }
# define get_hashop(node) ((node)->hashop)
# define set_hashop(node, value)     { 	NODEAssertArg(IsA(node,HInfo)); 	(node)->hashop = (value);     }
# define get_m_ordering(node) ((node)->m_ordering)
# define set_m_ordering(node, value)     { 	NODEAssertArg(IsA(node,MInfo)); 	(node)->m_ordering = (value);     }
# define get_otherrels(node) ((node)->otherrels)
# define set_otherrels(node, value)     { 	NODEAssertArg(IsA(node,JInfo)); 	(node)->otherrels = (value);     }
# define get_jinfoclauseinfo(node) ((node)->jinfoclauseinfo)
# define set_jinfoclauseinfo(node, value)     { 	NODEAssertArg(IsA(node,JInfo)); 	(node)->jinfoclauseinfo = (value);     }
# define get_mergesortable(node) ((node)->mergesortable)
# define set_mergesortable(node, value)     { 	NODEAssertArg(IsA(node,JInfo)); 	(node)->mergesortable = (value);     }
# define get_hashjoinable(node) ((node)->hashjoinable)
# define set_hashjoinable(node, value)     { 	NODEAssertArg(IsA(node,JInfo)); 	(node)->hashjoinable = (value);     }
# define get_inactive(node) ((node)->inactive)
# define set_inactive(node, value)     { 	NODEAssertArg(IsA(node,JInfo)); 	(node)->inactive = (value);     }
# define get_iterexpr(node) ((node)->iterexpr)
# define set_iterexpr(node, value)     { 	NODEAssertArg(IsA(node,Iter)); 	(node)->iterexpr = (value);     }
# define get_pathptr(node) ((node)->pathptr)
# define set_pathptr(node, value)     { 	NODEAssertArg(IsA(node,Stream)); 	(node)->pathptr = (value);     }
# define get_cinfo(node) ((node)->cinfo)
# define set_cinfo(node, value)     { 	NODEAssertArg(IsA(node,Stream)); 	(node)->cinfo = (value);     }
# define get_clausetype(node) ((node)->clausetype)
# define set_clausetype(node, value)     { 	NODEAssertArg(IsA(node,Stream)); 	(node)->clausetype = (value);     }
# define get_upstream(node) ((node)->upstream)
# define set_upstream(node, value)     { 	NODEAssertArg(IsA(node,Stream)); 	(node)->upstream = (value);     }
# define get_downstream(node) ((node)->downstream)
# define set_downstream(node, value)     { 	NODEAssertArg(IsA(node,Stream)); 	(node)->downstream = (value);     }
# define get_groupup(node) ((node)->groupup)
# define set_groupup(node, value)     { 	NODEAssertArg(IsA(node,Stream)); 	(node)->groupup = (value);     }
# define get_groupcost(node) ((node)->groupcost)
# define set_groupcost(node, value)     { 	NODEAssertArg(IsA(node,Stream)); 	(node)->groupcost = (value);     }
# define get_groupsel(node) ((node)->groupsel)
# define set_groupsel(node, value)     { 	NODEAssertArg(IsA(node,Stream)); 	(node)->groupsel = (value);     }
