module Code_util_join: sig .. end
type join_kind = 
| | 
NestedLoopJoin | 
| | 
HashJoin | 
| | 
SortJoin | 
val get_join_kind : Algebra_type.algop_expr -> join_kind
val build_sort_cond : Code_selection_context.code_selection_function ->
       Code_selection_context.code_selection_context ->
       Algebra_type.algop_expr -> Code_util_predicates.predicate_functions
val build_hash_cond : Code_selection_context.code_selection_function ->
       Code_selection_context.code_selection_context ->
       Algebra_type.algop_expr -> Code_util_predicates.predicate_functions
type outer_kind = 
type null_functions = bool * (unit -> unit) * (unit -> unit) * Physical_value.dom_value array 
val get_null_functions : Code_selection_context.code_selection_context ->
       outer_kind ->
       Xquery_common_ast.crname array -> null_functions
val select_physical_op : outer_kind ->
       Algebra_type.algop_expr -> Xquery_physical_algebra_ast.physop_expr_name