CUBRID Engine  latest
xasl_predicate.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2008 Search Solution Corporation
3  * Copyright 2016 CUBRID Corporation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 //
20 // xasl_predicate - XASL structures used for predicates
21 //
22 
23 #ifndef _XASL_PREDICATE_HPP_
24 #define _XASL_PREDICATE_HPP_
25 
26 #include "dbtype_def.h" // DB_TYPE
27 #include "string_regex.hpp"
28 
29 // forward definitions
30 class regu_variable_node;
31 
32 typedef enum
33 {
34  T_PRED = 1,
38 
39 typedef enum
40 {
41  B_AND = 1,
46 } BOOL_OP;
47 
48 typedef enum
49 {
55 
56 typedef enum
57 {
58  R_NONE = 0,
59  R_EQ = 1,
86 } REL_OP;
87 
88 typedef enum
89 {
90  F_ALL = 1,
92 } QL_FLAG;
93 
94 namespace cubxasl
95 {
96  // forward definitions
97  struct pred_expr;
98 
99  struct pred
100  {
104  };
105 
107  {
112  };
113 
115  {
121  };
122 
124  {
128  };
129 
131  {
135  mutable cub_regex_object *compiled_regex;
136  mutable char *compiled_pattern;
137  };
138 
139  struct eval_term
140  {
142  union
143  {
148  } et;
149  };
150 
151  struct pred_expr
152  {
153  union
154  {
158  } pe;
160 
161  void clear_xasl ();
162  };
163 } // namespace cubxasl
164 
165 // legacy aliases
173 
174 #endif // _XASL_PREDICATE_HPP_
pred_expr * lhs
QL_FLAG
DB_TYPE
Definition: dbtype_def.h:670
regu_variable_node * src
TYPE_EVAL_TERM et_type
regu_variable_node * elem
TYPE_EVAL_TERM
REL_OP
cub_regex_object * compiled_regex
regu_variable_node * lhs
comp_eval_term et_comp
TYPE_PRED_EXPR
regu_variable_node * rhs
regu_variable_node * src
regu_variable_node * elemset
TYPE_PRED_EXPR type
alsm_eval_term et_alsm
regu_variable_node * pattern
like_eval_term et_like
regu_variable_node * pattern
pred_expr * rhs
regu_variable_node * esc_char
rlike_eval_term et_rlike
regu_variable_node * case_sensitive
BOOL_OP