/* ---------------------------------------------------------------- 
 * 	node file generated from /usr/uu/postgres/src/lib/H/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_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_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); }
