svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.lib / org.gvsig.expressionevaluator.lib.api / src / main / java / org / gvsig / expressionevaluator / ExpressionBuilder.java @ 44790
History | View | Annotate | Download (16.4 KB)
1 | 44006 | jjdelcerro | package org.gvsig.expressionevaluator; |
---|---|---|---|
2 | 43020 | jjdelcerro | |
3 | 44750 | jjdelcerro | import java.util.Date; |
4 | 43020 | jjdelcerro | import java.util.List; |
5 | 44198 | jjdelcerro | import java.util.Map; |
6 | 44763 | jjdelcerro | import org.gvsig.expressionevaluator.spi.formatter.value.BaseFormatter; |
7 | 44198 | jjdelcerro | import org.gvsig.tools.util.PropertiesSupport; |
8 | import org.gvsig.tools.util.PropertiesSupportHelper; |
||
9 | 43020 | jjdelcerro | |
10 | public interface ExpressionBuilder { |
||
11 | |||
12 | 44198 | jjdelcerro | public static final String OPERATOR_NOT = "NOT"; |
13 | 44207 | jjdelcerro | public static final String OPERATOR_NEGATE = "NEGATE"; |
14 | 44198 | jjdelcerro | public static final String OPERATOR_IS = "IS"; |
15 | public static final String OPERATOR_AND = "AND"; |
||
16 | public static final String OPERATOR_OR = "OR"; |
||
17 | 44207 | jjdelcerro | public static final String OPERATOR_EQ = "="; |
18 | public static final String OPERATOR_NE = "<>"; |
||
19 | public static final String OPERATOR_GT = ">"; |
||
20 | public static final String OPERATOR_GE = ">="; |
||
21 | public static final String OPERATOR_LT = "<"; |
||
22 | public static final String OPERATOR_LE = "<="; |
||
23 | 44198 | jjdelcerro | public static final String OPERATOR_LIKE = "LIKE"; |
24 | public static final String OPERATOR_ILIKE = "ILIKE"; |
||
25 | 44207 | jjdelcerro | public static final String OPERATOR_ADD = "+"; |
26 | public static final String OPERATOR_SUBST = "-"; |
||
27 | public static final String OPERATOR_MULT = "*"; |
||
28 | public static final String OPERATOR_DIV = "/"; |
||
29 | public static final String OPERATOR_MOD = "%"; |
||
30 | public static final String OPERATOR_CONCAT = "||"; |
||
31 | public static final String OPERATOR_REGEXP = "~"; |
||
32 | public static final String OPERATOR_AND2 = "&&"; |
||
33 | 44198 | jjdelcerro | |
34 | public static final String FUNCTION_IIF = "IIF"; |
||
35 | public static final String FUNCTION_IFNULL = "IFNULL"; |
||
36 | |||
37 | public static final String FUNCTION_LEFT = "LEFT"; |
||
38 | public static final String FUNCTION_RIGHT = "RIGHT"; |
||
39 | public static final String FUNCTION_LOCATE = "LOCATE"; |
||
40 | public static final String FUNCTION_POSITION = "POSITION"; |
||
41 | public static final String FUNCTION_LPAD = "LPAD"; |
||
42 | public static final String FUNCTION_RPAD = "RPAD"; |
||
43 | public static final String FUNCTION_LTRIM = "LTRIM"; |
||
44 | public static final String FUNCTION_RTRIM = "RTRIM"; |
||
45 | public static final String FUNCTION_TRIM = "TRIM"; |
||
46 | public static final String FUNCTION_REPEAT = "REPEAT"; |
||
47 | public static final String FUNCTION_REPLACE = "REPLACE"; |
||
48 | public static final String FUNCTION_ASCII = "ASCII"; |
||
49 | public static final String FUNCTION_LENGHT = "LENGHT"; |
||
50 | public static final String FUNCTION_INSTR = "INSTR"; |
||
51 | public static final String FUNCTION_LOWER = "LOWER"; |
||
52 | public static final String FUNCTION_UPPER = "UPPER"; |
||
53 | public static final String FUNCTION_SPACE = "SPACE"; |
||
54 | public static final String FUNCTION_SUBSTRING = "SUBSTRING"; |
||
55 | 44644 | jjdelcerro | public static final String FUNCTION_ABS = "ABS"; |
56 | 44198 | jjdelcerro | public static final String FUNCTION_ACOS = "ACOS"; |
57 | public static final String FUNCTION_ASIN = "ASIN"; |
||
58 | public static final String FUNCTION_ATAN = "ATAN"; |
||
59 | public static final String FUNCTION_COS = "COS"; |
||
60 | public static final String FUNCTION_COSH = "COSH"; |
||
61 | public static final String FUNCTION_COT = "COT"; |
||
62 | public static final String FUNCTION_BITAND = "BITAND"; |
||
63 | public static final String FUNCTION_BITOR = "BITOR"; |
||
64 | public static final String FUNCTION_BITXOR = "BITXOR"; |
||
65 | public static final String FUNCTION_CEIL = "CEIL"; |
||
66 | public static final String FUNCTION_DEGREES = "DEGREES"; |
||
67 | public static final String FUNCTION_EXP = "EXP"; |
||
68 | public static final String FUNCTION_FLOOR = "FLOOR"; |
||
69 | public static final String FUNCTION_LOG = "LOG"; |
||
70 | public static final String FUNCTION_LOG10 = "LOG10"; |
||
71 | public static final String FUNCTION_PI = "PI"; |
||
72 | public static final String FUNCTION_POWER = "POWER"; |
||
73 | public static final String FUNCTION_RADIANS = "RADIANS"; |
||
74 | public static final String FUNCTION_RAND = "RAND"; |
||
75 | public static final String FUNCTION_ROUND = "ROUND"; |
||
76 | public static final String FUNCTION_SQRT = "SQRT"; |
||
77 | public static final String FUNCTION_SIGN = "SIGN"; |
||
78 | public static final String FUNCTION_SIN = "SIN"; |
||
79 | public static final String FUNCTION_SINH = "SINH"; |
||
80 | public static final String FUNCTION_TAN = "TAN"; |
||
81 | public static final String FUNCTION_TANH = "TANH"; |
||
82 | public static final String FUNCTION_ZERO = "ZERO"; |
||
83 | public static final String FUNCTION_CHR = "CHR"; |
||
84 | 44750 | jjdelcerro | |
85 | 44198 | jjdelcerro | public static final String FUNCTION_DATE = "DATE"; |
86 | 44750 | jjdelcerro | public static final String FUNCTION_TIME = "TIME"; |
87 | public static final String FUNCTION_TIMESTAMP = "TIMESTAMP"; |
||
88 | |||
89 | public static final String FUNCTION_TO_DATE = "TO_DATE"; |
||
90 | public static final String FUNCTION_TO_TIMESTAMP = "TO_TIMESTAMP"; |
||
91 | 44266 | jjdelcerro | public static final String FUNCTION_DATEDIFF = "DATEDIFF"; |
92 | public static final String FUNCTION_DATEADD = "DATEADD"; |
||
93 | 44750 | jjdelcerro | public static final String FUNCTION_CURRENT_TIMESTAMP = "CURRENT_TIMESTAMP"; |
94 | public static final String FUNCTION_CURRENT_TIME = "CURRENT_TIME"; |
||
95 | public static final String FUNCTION_CURRENT_DATE = "CURRENT_DATE"; |
||
96 | public static final String FUNCTION_EXTRACT = "EXTRACT"; |
||
97 | |||
98 | 44198 | jjdelcerro | public static final String FUNCTION_CAST = "CAST"; |
99 | public static final String FUNCTION_DECODE = "DECODE"; |
||
100 | public static final String FUNCTION_TODOUBLE = "TODOUBLE"; |
||
101 | public static final String FUNCTION_TOFLOAT = "TOFLOAT"; |
||
102 | public static final String FUNCTION_TOINTEGER = "TOINTEGER"; |
||
103 | public static final String FUNCTION_TOLONG = "TOLONG"; |
||
104 | public static final String FUNCTION_TOSTR = "TOSTR"; |
||
105 | |||
106 | 44206 | jjdelcerro | public static final String FUNCTION_INCR = "INCR"; |
107 | public static final String FUNCTION_DECR = "DECR"; |
||
108 | |||
109 | 44207 | jjdelcerro | public static final String FUNCTION_RANGE = "RANGE"; |
110 | 44269 | omartinez | public static final String FUNCTION_EVAL = "EVAL"; |
111 | 44262 | jjdelcerro | public static final String FUNCTION_LIST = "LIST"; |
112 | 44376 | jjdelcerro | public static final String FUNCTION_TUPLE = "TUPLE"; |
113 | 44207 | jjdelcerro | |
114 | 44748 | jjdelcerro | public static final String FUNCTION_GETATTR = "GETATTR"; |
115 | |||
116 | 44644 | jjdelcerro | public static final int PARAMETER_TYPE_CONSTANT = 0; |
117 | public static final int PARAMETER_TYPE_VARIABLE = 1; |
||
118 | 44198 | jjdelcerro | |
119 | 43020 | jjdelcerro | public interface VisitorFilter { |
120 | boolean accept(Visitable visitable);
|
||
121 | } |
||
122 | |||
123 | public interface Visitor { |
||
124 | public void visit(Visitable value); |
||
125 | } |
||
126 | |||
127 | public interface Visitable { |
||
128 | public void accept(Visitor visitor, VisitorFilter filter); |
||
129 | } |
||
130 | |||
131 | 44198 | jjdelcerro | public interface Value extends Visitable, PropertiesSupport { |
132 | public String toString(Formatter<Value> formatter); |
||
133 | 44376 | jjdelcerro | public void replace(Value target, Value replacement); |
134 | 43020 | jjdelcerro | } |
135 | |||
136 | public interface Group extends Value { |
||
137 | 44198 | jjdelcerro | public Value value();
|
138 | 43020 | jjdelcerro | } |
139 | |||
140 | public interface Constant extends Value { |
||
141 | 44198 | jjdelcerro | public Object value(); |
142 | 43020 | jjdelcerro | } |
143 | |||
144 | public interface Custom extends Value { |
||
145 | 44198 | jjdelcerro | public Object value(); |
146 | 43020 | jjdelcerro | public Custom add(Variable variable);
|
147 | public Custom add(Parameter parameter);
|
||
148 | } |
||
149 | |||
150 | public interface Variable extends Value, Comparable<Variable> { |
||
151 | 44198 | jjdelcerro | public String name(); |
152 | 43020 | jjdelcerro | } |
153 | |||
154 | public interface Parameter extends Value { |
||
155 | public Parameter as_constant();
|
||
156 | public Parameter as_variable();
|
||
157 | 43093 | jjdelcerro | public Parameter value(Object value); |
158 | public Parameter name(String value); |
||
159 | 44644 | jjdelcerro | public int type(); |
160 | 44198 | jjdelcerro | public String name(); |
161 | public Object value(); |
||
162 | 43020 | jjdelcerro | public boolean is_constant(); |
163 | public boolean is_variable(); |
||
164 | } |
||
165 | 43093 | jjdelcerro | |
166 | 44198 | jjdelcerro | public interface Function extends Value { |
167 | public String name(); |
||
168 | 44750 | jjdelcerro | public List<Value> parameters(); |
169 | 44198 | jjdelcerro | public Function parameter(Value parameter);
|
170 | 44769 | jjdelcerro | public Function format(String format); |
171 | 43093 | jjdelcerro | } |
172 | 43020 | jjdelcerro | |
173 | 44198 | jjdelcerro | public interface Method extends Value { |
174 | public String name(); |
||
175 | public Value instance();
|
||
176 | 44750 | jjdelcerro | public List<Value> parameters(); |
177 | 43020 | jjdelcerro | public Function parameter(Value parameter);
|
178 | } |
||
179 | |||
180 | public interface BinaryOperator extends Value { |
||
181 | 44198 | jjdelcerro | public String name(); |
182 | public Value left();
|
||
183 | public Value right();
|
||
184 | public BinaryOperator left(Value operand);
|
||
185 | public BinaryOperator right(Value operand);
|
||
186 | 43020 | jjdelcerro | } |
187 | 44198 | jjdelcerro | |
188 | public abstract class AbstractValue implements Value { |
||
189 | |||
190 | 44750 | jjdelcerro | protected final PropertiesSupport properties; |
191 | 44198 | jjdelcerro | |
192 | protected AbstractValue() {
|
||
193 | this.properties = new PropertiesSupportHelper(); |
||
194 | } |
||
195 | |||
196 | @Override
|
||
197 | public void accept(Visitor visitor, VisitorFilter filter) { |
||
198 | if (filter == null || filter.accept(this)) { |
||
199 | visitor.visit(this);
|
||
200 | } |
||
201 | } |
||
202 | |||
203 | @Override
|
||
204 | public Map<String, Object> getProperties() { |
||
205 | return this.properties.getProperties(); |
||
206 | } |
||
207 | |||
208 | @Override
|
||
209 | public Object getProperty(String name) { |
||
210 | return this.properties.getProperty(name); |
||
211 | } |
||
212 | |||
213 | @Override
|
||
214 | public void setProperty(String name, Object value) { |
||
215 | this.properties.setProperty(name, value);
|
||
216 | } |
||
217 | |||
218 | 44376 | jjdelcerro | @Override
|
219 | public void replace(Value target, Value replacement) { |
||
220 | // Do nothing
|
||
221 | } |
||
222 | 44198 | jjdelcerro | } |
223 | |||
224 | public class ClassVisitorFilter implements VisitorFilter { |
||
225 | |||
226 | private final Class classFilter; |
||
227 | |||
228 | public ClassVisitorFilter(Class classFilter) { |
||
229 | this.classFilter = classFilter;
|
||
230 | } |
||
231 | |||
232 | @Override
|
||
233 | public boolean accept(Visitable visitable) { |
||
234 | 44369 | jjdelcerro | if( classFilter==null ) { |
235 | return true; |
||
236 | } |
||
237 | 44198 | jjdelcerro | return classFilter.isInstance(visitable);
|
238 | } |
||
239 | |||
240 | } |
||
241 | |||
242 | public static final Formatter<Value> EMPTY_FORMATTER = new Formatter<Value>() { |
||
243 | @Override
|
||
244 | public boolean canApply(Value value) { |
||
245 | return false; |
||
246 | } |
||
247 | |||
248 | @Override
|
||
249 | public String format(Value value) { |
||
250 | return ""; |
||
251 | } |
||
252 | }; |
||
253 | |||
254 | 44769 | jjdelcerro | public Formatter<Value> formatter(); |
255 | 44763 | jjdelcerro | |
256 | 44198 | jjdelcerro | public String quote_for_identifiers(); |
257 | 43020 | jjdelcerro | |
258 | 44198 | jjdelcerro | public String quote_for_strings(); |
259 | |||
260 | 43020 | jjdelcerro | public void accept(Visitor visitor, VisitorFilter filter); |
261 | |||
262 | 44198 | jjdelcerro | public List<Variable> variables(); |
263 | 43020 | jjdelcerro | |
264 | 44198 | jjdelcerro | public List<String> variables_names(); |
265 | 43020 | jjdelcerro | |
266 | 44198 | jjdelcerro | public List<Parameter> parameters(); |
267 | 43020 | jjdelcerro | |
268 | 44198 | jjdelcerro | public List<String> parameters_names(); |
269 | |||
270 | 43020 | jjdelcerro | public String identifier(String name); |
271 | |||
272 | 44006 | jjdelcerro | public String bytearray_hex(byte[] data); |
273 | 43020 | jjdelcerro | |
274 | 44006 | jjdelcerro | public String bytearray_0x(byte[] data); |
275 | |||
276 | public String bytearray_x(byte[] data); |
||
277 | |||
278 | 43020 | jjdelcerro | public String string(String s); |
279 | |||
280 | 44198 | jjdelcerro | public Value value();
|
281 | |||
282 | public ExpressionBuilder value(Value value);
|
||
283 | 43020 | jjdelcerro | |
284 | 44198 | jjdelcerro | public Group group(Value group); |
285 | 43020 | jjdelcerro | |
286 | 44198 | jjdelcerro | public Constant bytearray(byte[] data); |
287 | 43020 | jjdelcerro | |
288 | public Variable variable(String name); |
||
289 | |||
290 | public Variable column(String name); // Alias for variable(name) |
||
291 | |||
292 | 43093 | jjdelcerro | public Parameter parameter(String name); |
293 | 43020 | jjdelcerro | |
294 | 43093 | jjdelcerro | public Parameter parameter();
|
295 | |||
296 | 43020 | jjdelcerro | public Constant constant(Object value); |
297 | |||
298 | 44790 | jjdelcerro | public Constant constant(Object value, int type); |
299 | |||
300 | public Constant constant(Object value, Class theClass); |
||
301 | |||
302 | 43020 | jjdelcerro | public Custom custom(Object value); |
303 | 44020 | jjdelcerro | |
304 | 44198 | jjdelcerro | public Method method(Value instance, String name, Value... values); |
305 | 43020 | jjdelcerro | |
306 | 44198 | jjdelcerro | public Function function(String name, Value... values); |
307 | |||
308 | public BinaryOperator binaryOperator(String name, Value leftOperand, Value rightOperand); |
||
309 | 43020 | jjdelcerro | |
310 | 44198 | jjdelcerro | public Value toValue(String expression); |
311 | 44644 | jjdelcerro | |
312 | public String repr(Object value); |
||
313 | 43020 | jjdelcerro | |
314 | 44198 | jjdelcerro | public String toString(Formatter<Value> formatter); |
315 | |||
316 | 43020 | jjdelcerro | public Function not(Value value);
|
317 | |||
318 | 44198 | jjdelcerro | public Function not_is_null(Value value);
|
319 | 43020 | jjdelcerro | |
320 | 44198 | jjdelcerro | public Function is_null(Value value);
|
321 | 43020 | jjdelcerro | |
322 | 44644 | jjdelcerro | |
323 | 43020 | jjdelcerro | public BinaryOperator and(Value op1, Value op2);
|
324 | |||
325 | 44274 | jjdelcerro | public BinaryOperator and(Expression op1, Expression op2); |
326 | |||
327 | public BinaryOperator and(Expression op1, Value op2); |
||
328 | |||
329 | 43020 | jjdelcerro | public BinaryOperator or(Value op1, Value op2);
|
330 | |||
331 | public BinaryOperator eq(Value op1, Value op2);
|
||
332 | |||
333 | public BinaryOperator ne(Value op1, Value op2);
|
||
334 | |||
335 | public BinaryOperator gt(Value op1, Value op2);
|
||
336 | |||
337 | public BinaryOperator ge(Value op1, Value op2);
|
||
338 | |||
339 | public BinaryOperator lt(Value op1, Value op2);
|
||
340 | |||
341 | public BinaryOperator le(Value op1, Value op2);
|
||
342 | |||
343 | public BinaryOperator like(Value op1, Value op2);
|
||
344 | |||
345 | public BinaryOperator ilike(Value op1, Value op2);
|
||
346 | |||
347 | public BinaryOperator add(Value op1, Value op2);
|
||
348 | |||
349 | public BinaryOperator subst(Value op1, Value op2);
|
||
350 | |||
351 | public BinaryOperator mult(Value op1, Value op2);
|
||
352 | |||
353 | public BinaryOperator div(Value op1, Value op2);
|
||
354 | |||
355 | public BinaryOperator concat(Value op1, Value op2);
|
||
356 | |||
357 | public ExpressionBuilder set(Value value);
|
||
358 | 44198 | jjdelcerro | |
359 | 43020 | jjdelcerro | public ExpressionBuilder and(Value value);
|
360 | |||
361 | public ExpressionBuilder or(Value value);
|
||
362 | |||
363 | 44038 | jjdelcerro | public Function iif(Value condition, Value iftrue, Value iffalse);
|
364 | |||
365 | public Function ifnull(Value value, Value iftrue, Value iffalse);
|
||
366 | |||
367 | 43020 | jjdelcerro | public ExpressionBuilder createExpressionBuilder();
|
368 | 44051 | omartinez | |
369 | public Function left(Value str, Value size);
|
||
370 | |||
371 | public Function right(Value str, Value len);
|
||
372 | |||
373 | public Function locate(Value search, Value str, Value start) ;
|
||
374 | |||
375 | public Function position(Value search, Value str);
|
||
376 | |||
377 | public Function lpad(Value str, Value len, Value padstr) ;
|
||
378 | |||
379 | public Function rpad(Value str, Value len, Value padstr);
|
||
380 | |||
381 | public Function ltrim(Value str);
|
||
382 | |||
383 | public Function rtrim(Value str);
|
||
384 | |||
385 | public Function trim(Value str);
|
||
386 | |||
387 | public Function repeat(Value str, Value size);
|
||
388 | |||
389 | public Function replace(Value str, Value search, Value replstr);
|
||
390 | |||
391 | public Function ascii(Value str);
|
||
392 | |||
393 | public Function lenght(Value str);
|
||
394 | |||
395 | public Function instr(Value str, Value search, Value start);
|
||
396 | |||
397 | public Function lower(Value str);
|
||
398 | |||
399 | public Function upper(Value str);
|
||
400 | |||
401 | public Function space(Value size);
|
||
402 | |||
403 | public Function substring(Value str, Value start, Value len);
|
||
404 | |||
405 | 44644 | jjdelcerro | public Function abs(Value num);
|
406 | |||
407 | 44051 | omartinez | public Function acos(Value num);
|
408 | |||
409 | public Function asin(Value num);
|
||
410 | |||
411 | public Function atan(Value num);
|
||
412 | |||
413 | public Function cos(Value num);
|
||
414 | |||
415 | public Function cosh(Value num);
|
||
416 | |||
417 | public Function cot(Value num);
|
||
418 | |||
419 | public Function bitand(Value num1, Value num2);
|
||
420 | |||
421 | public Function bitor(Value num1, Value num2);
|
||
422 | |||
423 | public Function bitxor(Value num1, Value num2);
|
||
424 | |||
425 | public Function ceil(Value num);
|
||
426 | |||
427 | public Function degrees(Value num);
|
||
428 | |||
429 | public Function exp(Value num);
|
||
430 | |||
431 | public Function floor(Value num);
|
||
432 | |||
433 | public Function log(Value num);
|
||
434 | |||
435 | public Function log10(Value num);
|
||
436 | |||
437 | 44644 | jjdelcerro | public Function pi();
|
438 | 44051 | omartinez | |
439 | public Function power(Value num);
|
||
440 | |||
441 | public Function radians(Value num);
|
||
442 | |||
443 | public Function rand(Value num);
|
||
444 | |||
445 | public Function round(Value num);
|
||
446 | |||
447 | public Function sqrt(Value num);
|
||
448 | |||
449 | public Function sign(Value num);
|
||
450 | |||
451 | public Function sin(Value num);
|
||
452 | |||
453 | public Function sinh(Value num);
|
||
454 | |||
455 | public Function tan(Value num);
|
||
456 | |||
457 | public Function tanh(Value num);
|
||
458 | |||
459 | public Function zero();
|
||
460 | 44054 | omartinez | |
461 | public Function chr(Value num);
|
||
462 | 44198 | jjdelcerro | |
463 | public Function decode(Value value, Value format);
|
||
464 | |||
465 | public Function cast(Value object, Value typeName);
|
||
466 | |||
467 | public Function toDouble(Value object);
|
||
468 | |||
469 | public Function toFloat(Value object);
|
||
470 | |||
471 | public Function toLong(Value object);
|
||
472 | |||
473 | public Function toInteger(Value object);
|
||
474 | |||
475 | public Function toStr(Value object);
|
||
476 | |||
477 | 44262 | jjdelcerro | public Function list();
|
478 | |||
479 | 44376 | jjdelcerro | public Function tuple();
|
480 | |||
481 | public Function tuple(Constant... values);
|
||
482 | |||
483 | 44750 | jjdelcerro | public Function getattr(String objectId, String attributeId); |
484 | 44748 | jjdelcerro | |
485 | 44259 | jjdelcerro | public boolean isEmpty(); |
486 | 44750 | jjdelcerro | |
487 | public Function date(Value date);
|
||
488 | |||
489 | public Function time(Value date);
|
||
490 | |||
491 | public Function timestamp(Value date);
|
||
492 | |||
493 | 44763 | jjdelcerro | public Function date(Date date); |
494 | |||
495 | public Function time(Date time); |
||
496 | |||
497 | public Function timestamp(Date timestamp); |
||
498 | |||
499 | public Function date(String date); |
||
500 | |||
501 | public Function time(String time); |
||
502 | |||
503 | public Function timestamp(String timestamp); |
||
504 | |||
505 | 44750 | jjdelcerro | public Function to_date(Value date, Value format);
|
506 | |||
507 | public Function to_timestamp(Value timestamp, Value format);
|
||
508 | |||
509 | public Function current_date();
|
||
510 | |||
511 | public Function current_time();
|
||
512 | |||
513 | public Function current_timestamp();
|
||
514 | |||
515 | public Function date_add(Value datefield, Value valueToAdd, Value date);
|
||
516 | |||
517 | public Function date_diff(Value datefield, Value valueToSubst, Value date);
|
||
518 | |||
519 | public Function extract(Value datefield, Value source);
|
||
520 | 43020 | jjdelcerro | } |