CUBRID Engine  latest
arithmetic.h
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 /*
21  * arithmetic.h: interface for arithmetic functions
22  */
23 
24 #ifndef _ARITHMETIC_H_
25 #define _ARITHMETIC_H_
26 
27 #ident "$Id$"
28 
29 #include "dbtype_def.h"
30 #include "object_domain.h"
31 #include <vector>
32 #include <string>
33 
34 #define PI ((double) (3.14159265358979323846264338))
35 
36 extern int db_floor_dbval (DB_VALUE * result, DB_VALUE * value);
37 extern int db_ceil_dbval (DB_VALUE * result, DB_VALUE * value);
38 extern int db_sign_dbval (DB_VALUE * result, DB_VALUE * value);
39 extern int db_abs_dbval (DB_VALUE * result, DB_VALUE * value);
40 extern int db_exp_dbval (DB_VALUE * result, DB_VALUE * value);
41 extern int db_sqrt_dbval (DB_VALUE * result, DB_VALUE * value);
42 extern int db_power_dbval (DB_VALUE * result, DB_VALUE * value1, DB_VALUE * value2);
43 extern int db_mod_dbval (DB_VALUE * result, DB_VALUE * value1, DB_VALUE * value2);
44 extern int db_round_dbval (DB_VALUE * result, DB_VALUE * value1, DB_VALUE * value2);
45 extern int db_log_dbval (DB_VALUE * result, DB_VALUE * value1, DB_VALUE * value2);
46 extern int db_trunc_dbval (DB_VALUE * result, DB_VALUE * value1, DB_VALUE * value2);
47 extern int db_random_dbval (DB_VALUE * result);
48 extern int db_drandom_dbval (DB_VALUE * result);
49 extern int db_bit_count_dbval (DB_VALUE * result, DB_VALUE * value);
50 extern int db_cos_dbval (DB_VALUE * result, DB_VALUE * value);
51 extern int db_sin_dbval (DB_VALUE * result, DB_VALUE * value);
52 extern int db_tan_dbval (DB_VALUE * result, DB_VALUE * value);
53 extern int db_cot_dbval (DB_VALUE * result, DB_VALUE * value);
54 extern int db_acos_dbval (DB_VALUE * result, DB_VALUE * value);
55 extern int db_asin_dbval (DB_VALUE * result, DB_VALUE * value);
56 extern int db_atan_dbval (DB_VALUE * result, DB_VALUE * value1);
57 extern int db_atan2_dbval (DB_VALUE * result, DB_VALUE * value, DB_VALUE * value2);
58 extern int db_degrees_dbval (DB_VALUE * result, DB_VALUE * value);
59 extern int db_radians_dbval (DB_VALUE * result, DB_VALUE * value);
60 extern int db_log_generic_dbval (DB_VALUE * result, DB_VALUE * value, long b);
61 extern int db_typeof_dbval (DB_VALUE * result, DB_VALUE * value);
62 extern int db_width_bucket (DB_VALUE * result, const DB_VALUE * value1, const DB_VALUE * value2,
63  const DB_VALUE * value3, const DB_VALUE * value4);
64 /* temporarily put db_sleep here. A better choice is introduce a new file system_opfunc.c
65  * But currently, there is just one such functions.
66  */
67 extern int db_sleep (DB_VALUE * result, DB_VALUE * value);
68 extern int db_crc32_dbval (DB_VALUE * result, DB_VALUE * value);
69 extern int db_least_or_greatest (DB_VALUE * arg1, DB_VALUE * arg2, DB_VALUE * result, bool least);
70 
71 // json functions
72 extern int db_accumulate_json_arrayagg (const DB_VALUE * json_db_val, DB_VALUE * json_res);
73 extern int db_accumulate_json_objectagg (const DB_VALUE * json_key, const DB_VALUE * json_db_val, DB_VALUE * json_res);
74 extern int db_evaluate_json_array (DB_VALUE * result, DB_VALUE * const *arg, int const num_args);
75 extern int db_evaluate_json_array_append (DB_VALUE * result, DB_VALUE * const *arg, int const num_args);
76 extern int db_evaluate_json_array_insert (DB_VALUE * result, DB_VALUE * const *arg, int const num_args);
77 extern int db_evaluate_json_contains (DB_VALUE * result, DB_VALUE * const *arg, int const num_args);
78 extern int db_evaluate_json_contains_path (DB_VALUE * result, DB_VALUE * const *arg, const int num_args);
79 extern int db_evaluate_json_depth (DB_VALUE * result, DB_VALUE * const *args, int num_args);
80 extern int db_evaluate_json_extract (DB_VALUE * result, DB_VALUE * const *args, int num_args);
81 extern int db_evaluate_json_get_all_paths (DB_VALUE * result, DB_VALUE * const *arg, int const num_args);
82 extern int db_evaluate_json_insert (DB_VALUE * result, DB_VALUE * const *arg, const int num_args);
83 extern int db_evaluate_json_keys (DB_VALUE * result, DB_VALUE * const *arg, const int num_args);
84 extern int db_evaluate_json_length (DB_VALUE * result, DB_VALUE * const *args, int num_args);
85 extern int db_evaluate_json_merge_preserve (DB_VALUE * result, DB_VALUE * const *arg, int const num_args);
86 extern int db_evaluate_json_merge_patch (DB_VALUE * result, DB_VALUE * const *arg, int const num_args);
87 extern int db_evaluate_json_object (DB_VALUE * result, DB_VALUE * const *arg, int const num_args);
88 extern int db_evaluate_json_pretty (DB_VALUE * result, DB_VALUE * const *args, int num_args);
89 extern int db_evaluate_json_quote (DB_VALUE * result, DB_VALUE * const *args, int num_args);
90 extern int db_evaluate_json_remove (DB_VALUE * result, DB_VALUE * const *arg, int const num_args);
91 extern int db_evaluate_json_replace (DB_VALUE * result, DB_VALUE * const *arg, const int num_args);
92 extern int db_evaluate_json_search (DB_VALUE * result, DB_VALUE * const *args, const int num_args);
93 extern int db_evaluate_json_set (DB_VALUE * result, DB_VALUE * const *arg, const int num_args);
94 extern int db_evaluate_json_type_dbval (DB_VALUE * result, DB_VALUE * const *args, int num_args);
95 extern int db_evaluate_json_unquote (DB_VALUE * result, DB_VALUE * const *args, int num_args);
96 extern int db_evaluate_json_valid (DB_VALUE * result, DB_VALUE * const *args, int num_args);
97 
98 #endif /* _ARITHMETIC_H_ */
int db_evaluate_json_quote(DB_VALUE *result, DB_VALUE *const *args, int num_args)
Definition: arithmetic.c:5294
int db_bit_count_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:4178
int db_accumulate_json_objectagg(const DB_VALUE *json_key, const DB_VALUE *json_db_val, DB_VALUE *json_res)
Definition: arithmetic.c:5437
int db_typeof_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:4302
int db_evaluate_json_insert(DB_VALUE *result, DB_VALUE *const *arg, const int num_args)
Definition: arithmetic.c:5653
int db_abs_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:565
int db_width_bucket(DB_VALUE *result, const DB_VALUE *value1, const DB_VALUE *value2, const DB_VALUE *value3, const DB_VALUE *value4)
Definition: arithmetic.c:4598
int db_crc32_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:5020
int db_random_dbval(DB_VALUE *result)
Definition: arithmetic.c:3659
int db_sin_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:3769
int db_asin_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:3921
int db_ceil_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:254
int db_acos_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:3872
int db_log_generic_dbval(DB_VALUE *result, DB_VALUE *value, long b)
Definition: arithmetic.c:4118
int db_power_dbval(DB_VALUE *result, DB_VALUE *value1, DB_VALUE *value2)
Definition: arithmetic.c:836
int db_evaluate_json_search(DB_VALUE *result, DB_VALUE *const *args, const int num_args)
Definition: arithmetic.c:6268
int db_cot_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:3833
int db_log_dbval(DB_VALUE *result, DB_VALUE *value1, DB_VALUE *value2)
Definition: arithmetic.c:2603
int db_evaluate_json_object(DB_VALUE *result, DB_VALUE *const *arg, int const num_args)
Definition: arithmetic.c:5569
int db_atan2_dbval(DB_VALUE *result, DB_VALUE *value, DB_VALUE *value2)
Definition: arithmetic.c:4006
int db_round_dbval(DB_VALUE *result, DB_VALUE *value1, DB_VALUE *value2)
Definition: arithmetic.c:2315
int db_sign_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:429
int db_evaluate_json_type_dbval(DB_VALUE *result, DB_VALUE *const *args, int num_args)
Definition: arithmetic.c:5145
int db_evaluate_json_merge_preserve(DB_VALUE *result, DB_VALUE *const *arg, int const num_args)
Definition: arithmetic.c:6163
int db_evaluate_json_unquote(DB_VALUE *result, DB_VALUE *const *args, int num_args)
Definition: arithmetic.c:5305
int db_evaluate_json_array_insert(DB_VALUE *result, DB_VALUE *const *arg, int const num_args)
Definition: arithmetic.c:6032
int db_evaluate_json_depth(DB_VALUE *result, DB_VALUE *const *args, int num_args)
Definition: arithmetic.c:5269
int db_evaluate_json_array(DB_VALUE *result, DB_VALUE *const *arg, int const num_args)
Definition: arithmetic.c:5626
int db_accumulate_json_arrayagg(const DB_VALUE *json_db_val, DB_VALUE *json_res)
Definition: arithmetic.c:5383
int db_drandom_dbval(DB_VALUE *result)
Definition: arithmetic.c:3672
int db_evaluate_json_array_append(DB_VALUE *result, DB_VALUE *const *arg, int const num_args)
Definition: arithmetic.c:5964
int db_evaluate_json_replace(DB_VALUE *result, DB_VALUE *const *arg, const int num_args)
Definition: arithmetic.c:5721
int db_radians_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:4086
int db_evaluate_json_valid(DB_VALUE *result, DB_VALUE *const *args, int num_args)
Definition: arithmetic.c:5178
int db_evaluate_json_contains(DB_VALUE *result, DB_VALUE *const *arg, int const num_args)
Definition: arithmetic.c:5069
int db_tan_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:3801
int db_floor_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:87
int db_exp_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:659
int db_least_or_greatest(DB_VALUE *arg1, DB_VALUE *arg2, DB_VALUE *result, bool least)
Definition: arithmetic.c:6454
int db_evaluate_json_length(DB_VALUE *result, DB_VALUE *const *args, int num_args)
Definition: arithmetic.c:5212
int db_evaluate_json_pretty(DB_VALUE *result, DB_VALUE *const *args, int num_args)
Definition: arithmetic.c:5345
int db_trunc_dbval(DB_VALUE *result, DB_VALUE *value1, DB_VALUE *value2)
Definition: arithmetic.c:3311
int db_sqrt_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:731
int db_evaluate_json_keys(DB_VALUE *result, DB_VALUE *const *arg, const int num_args)
Definition: arithmetic.c:5855
int db_mod_dbval(DB_VALUE *result, DB_VALUE *value1, DB_VALUE *value2)
Definition: arithmetic.c:1928
int db_evaluate_json_remove(DB_VALUE *result, DB_VALUE *const *arg, int const num_args)
Definition: arithmetic.c:5912
int db_atan_dbval(DB_VALUE *result, DB_VALUE *value1)
Definition: arithmetic.c:3970
int db_evaluate_json_get_all_paths(DB_VALUE *result, DB_VALUE *const *arg, int const num_args)
Definition: arithmetic.c:6419
int db_sleep(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:4976
int db_cos_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:3737
int db_evaluate_json_set(DB_VALUE *result, DB_VALUE *const *arg, const int num_args)
Definition: arithmetic.c:5788
int db_evaluate_json_contains_path(DB_VALUE *result, DB_VALUE *const *arg, const int num_args)
Definition: arithmetic.c:6100
int db_evaluate_json_merge_patch(DB_VALUE *result, DB_VALUE *const *arg, int const num_args)
Definition: arithmetic.c:6215
int db_evaluate_json_extract(DB_VALUE *result, DB_VALUE *const *args, int num_args)
Definition: arithmetic.c:5511
int db_degrees_dbval(DB_VALUE *result, DB_VALUE *value)
Definition: arithmetic.c:4054