/* $Header: /private/postgres/src/lib/H/planner/RCS/indxpath.h,v 1.8 1991/11/15 16:22:34 hong Exp $ */

extern LispValue find_index_paths ARGS((Rel rel, LispValue indices, LispValue clauseinfo_list, LispValue joininfo_list, LispValue sortkeys));

extern void match_index_orclauses ARGS((Rel rel, Rel index, LispValue indexkey, LispValue xclass, LispValue clauseinfo_list));

extern LispValue match_index_orclause ARGS((Rel rel, Rel index, LispValue indexkey, LispValue xclass, LispValue or_clauses, LispValue other_matching_indices));

extern LispValue group_clauses_by_indexkey ARGS((Rel rel, Rel index, LispValue indexkeys, LispValue classes, LispValue clauseinfo_list, bool join));

extern CInfo match_clause_to_indexkey ARGS((Rel rel, Rel index, LispValue indexkey, LispValue xclass, CInfo clauseInfo, bool join));

extern LispValue indexable_joinclauses ARGS((Rel rel, Rel index, LispValue joininfo_list));

extern LispValue index_innerjoin ARGS((Rel rel, LispValue clausegroup_list, Rel index));

extern LispValue create_index_paths ARGS((Rel rel, Rel index, LispValue clausegroup_list, bool join));

extern bool function_index_operand ARGS((LispValue funcOpnd, Rel rel, Rel index));

extern bool SingleAttributeIndex ARGS((Rel index));
