This file is indexed.

/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