/usr/lib/ocaml/galax/optimization_judge.mli is in libgalax-ocaml-dev 1.1-12.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | (***********************************************************************)
(* *)
(* GALAX *)
(* XQuery Engine *)
(* *)
(* Copyright 2001-2007. *)
(* Distributed only by permission. *)
(* *)
(***********************************************************************)
(* $Id: optimization_judge.mli,v 1.12 2007/02/01 22:08:51 simeon Exp $ *)
(* Module: Optimization_judge
Description:
This module contains judgments used during algebraic
optimization.
*)
open Compile_context
open Xquery_common_ast
open Logical_algebra_types
(****************)
(* Independence *)
(****************)
(* NOTE: Those judgments are used to decide whether turning a
MapConcat into a Product is possible. *)
val map_tuple_independent : logical_algop_expr -> logical_algop_expr -> bool
val natural_tuple_independent : logical_algop_expr -> logical_algop_expr -> bool
(****************)
(* Side effects *)
(****************)
(* NOTE: Those judgments are used to decide whether some rewritings
are safe wrt. to side-effects. *)
val has_non_trivial_snap : logical_compile_context -> logical_algop_expr -> bool
val has_trivial_snap : logical_compile_context -> logical_algop_expr -> bool
val has_side_effect : logical_compile_context -> logical_algop_expr -> bool
val side_effect_free : logical_compile_context -> logical_algop_expr -> bool
val contains_update : logical_algop_expr -> bool
val subexpr_has_side_effect : logical_compile_context -> logical_algop_sub_exprs -> bool
val has_dependent_side_effect : logical_compile_context -> logical_algop_expr -> bool
(* conservative test that two expressions commute, modulo the order of the values in the result *)
val commute_logical : logical_compile_context -> logical_algop_expr -> logical_algop_expr -> bool
val commute_logical_with_array : logical_compile_context -> logical_algop_expr -> logical_algop_expr array -> bool
(**********)
(* Typing *)
(**********)
(* NOTE: Those judgments are used as a poor-man's form of static
typing for the algebra, to decide simple cardinality properties. *)
val is_singleton_tuple : logical_compile_context -> logical_algop_expr -> bool
(******************)
(* Document order *)
(******************)
(* NOTE: Those judgments are used as a poor-man's form of DDO
analysis, to decide whether document order operations can be
removed. *)
val ord_dup_matters :logical_algop_expr -> logical_algop_expr -> bool
(********************)
(* HACK Name checks *)
(********************)
(* NOTE: Yeck. - Jerome. May 31, 2006 *)
val is_seq_field : crname -> bool
|