sig
type physical_annotation = {
has_nested_snap : bool;
has_side_effect : bool;
has_delta_update : bool;
path_annotation : Alg_path_struct.path_annotation;
mutable materialize_tuple_stream : bool;
}
type eval_code_unit =
Execution_context.algebra_context ->
unit -> Physical_value.physical_value
type eval_code_unary =
Execution_context.algebra_context ->
Physical_value.physical_value -> Physical_value.physical_value
type eval_code_binary =
Execution_context.algebra_context ->
Physical_value.physical_value ->
Physical_value.physical_value -> Physical_value.physical_value
type eval_code_many =
Execution_context.algebra_context ->
Physical_value.physical_value array -> Physical_value.physical_value
type alg_eval_code =
AOECUnit of Algebra_type.eval_code_unit
| AOECUnary of Algebra_type.eval_code_unary
| AOECBinary of Algebra_type.eval_code_binary
| AOECMany of Algebra_type.eval_code_many
type eval_fun =
Execution_context.algebra_context ->
Algebra_type.algop_expr -> Physical_value.physical_value
and tail_entry_code =
Physical_value.physical_value array -> Algebra_type.algop_expr
and tail_exit_code =
Physical_value.physical_value -> Physical_value.physical_value
and alg_eval_code_dep =
NoDep of (Algebra_type.eval_fun -> Algebra_type.alg_eval_code) *
(Algebra_type.tail_entry_code * Algebra_type.tail_exit_code) option
| SomeDep of (Algebra_type.eval_fun -> Algebra_type.alg_eval_code) *
(Algebra_type.tail_entry_code * Algebra_type.tail_exit_code) option
and algop_sub_exprs =
(Algebra_type.alg_eval_code_dep, Algebra_type.physical_annotation)
Xquery_algebra_ast.aalgop_sub_exprs
and algop_expr =
(Algebra_type.alg_eval_code_dep, Algebra_type.physical_annotation)
Xquery_algebra_ast.aalgop_expr
type eval_code_unit_prolog =
Execution_context.algebra_context ->
unit -> Execution_context.algebra_context
type eval_code_unary_prolog =
Execution_context.algebra_context ->
Physical_value.physical_value -> Execution_context.algebra_context
type eval_code_binary_prolog =
Execution_context.algebra_context ->
Physical_value.physical_value ->
Physical_value.physical_value -> Execution_context.algebra_context
type eval_code_many_prolog =
Execution_context.algebra_context ->
Physical_value.physical_value array ->
Execution_context.algebra_context
type alg_eval_code_prolog =
PAOECUnit of Algebra_type.eval_code_unit_prolog
| PAOECUnary of Algebra_type.eval_code_unary_prolog
| PAOECBinary of Algebra_type.eval_code_binary_prolog
| PAOECMany of Algebra_type.eval_code_many_prolog
type alg_eval_code_dep_prolog =
PNoDep of Algebra_type.alg_eval_code_prolog
| PSomeDep of
(Algebra_type.eval_fun -> Algebra_type.alg_eval_code_prolog)
type eval_fun_prolog =
Execution_context.algebra_context ->
Algebra_type.algop_expr -> Execution_context.algebra_context
type algop_decl =
(Algebra_type.alg_eval_code_dep, Algebra_type.physical_annotation,
Algebra_type.alg_eval_code_dep_prolog)
Xquery_algebra_ast.aalgop_decl
type algop_prolog =
(Algebra_type.alg_eval_code_dep, Algebra_type.physical_annotation,
Algebra_type.alg_eval_code_dep_prolog)
Xquery_algebra_ast.aalgop_prolog
type algop_xmodule =
(Algebra_type.alg_eval_code_dep, Algebra_type.physical_annotation,
Algebra_type.alg_eval_code_dep_prolog)
Xquery_algebra_ast.aalgop_xmodule
type algop_function_body =
(Algebra_type.alg_eval_code_dep, Algebra_type.physical_annotation)
Xquery_algebra_ast.aalgop_expr
type alg_compile_context =
(Algebra_type.alg_eval_code_dep, Algebra_type.physical_annotation)
Compile_context.compile_context
type item_cursor_nary_to_item_cursor_code =
Execution_context.algebra_context ->
Physical_value.item Cursor.cursor array ->
Physical_value.item Cursor.cursor
type item_list_nary_to_item_list_code =
Execution_context.algebra_context ->
Physical_value.item list array -> Physical_value.item list
end