CUBRID Engine  latest
dbtype_function.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  * dbtype_function.h - Holds declarations for API functions.
21  */
22 
23 #ifndef _NO_INLINE_DBTYPE_FUNCTION_
24 #define _NO_INLINE_DBTYPE_FUNCTION_
25 
26 #include <stdio.h>
27 
28 #include "db_set_function.h"
29 #include "dbtype_def.h"
30 
31 #define DB_CURRENCY_DEFAULT db_get_currency_default()
32 
33 // for backward compatibility
34 #define db_collection db_set
35 
36 #define db_make_utime db_make_timestamp
37 
38 #define DB_MAKE_NULL(value) db_make_null(value)
39 
40 #define DB_VALUE_CLONE_AS_NULL(src_value, dest_value) \
41  do { \
42  if ((db_value_domain_init(dest_value, \
43  db_value_domain_type(src_value), \
44  db_value_precision(src_value), \
45  db_value_scale(src_value))) \
46  == NO_ERROR) \
47  (void)db_value_put_null(dest_value); \
48  } while (0)
49 
50 #define DB_MAKE_INTEGER(value, num) db_make_int(value, num)
51 
52 #define DB_MAKE_INT DB_MAKE_INTEGER
53 
54 #define DB_MAKE_BIGINT(value, num) db_make_bigint(value, num)
55 
56 #define DB_MAKE_BIGINTEGER DB_MAKE_BIGINT
57 
58 #define DB_MAKE_FLOAT(value, num) db_make_float(value, num)
59 
60 #define DB_MAKE_DOUBLE(value, num) db_make_double(value, num)
61 
62 #define DB_MAKE_OBJECT(value, obj) db_make_object(value, obj)
63 
64 #define DB_MAKE_OBJ DB_MAKE_OBJECT
65 
66 #define DB_MAKE_SET(value, set) db_make_set(value, set)
67 
68 #define DB_MAKE_MULTISET(value, set) db_make_multiset(value, set)
69 
70 /* obsolete */
71 #define DB_MAKE_MULTI_SET DB_MAKE_MULTISET
72 
73 #define DB_MAKE_SEQUENCE(value, set) db_make_sequence(value, set)
74 
75 #define DB_MAKE_LIST DB_MAKE_SEQUENCE
76 
77 /* obsolete */
78 #define DB_MAKE_SEQ DB_MAKE_SEQUENCE
79 
80 /* new preferred interface */
81  /* todo: This following macro had in its previous version another call to
82  * db_value_domain_init(). Now it has been removed but it needs to be
83  * checked if its still correct!!!.
84  */
85 #define DB_MAKE_OID(value, oid) \
86  (((oid) == NULL) ? ((value)->domain.general_info.is_null = 1, NO_ERROR) : \
87  db_make_oid((value), (oid)))
88 
89 #define DB_GET_OID(value) (db_get_oid(value))
90 #define DB_MAKE_COLLECTION(value, col) db_make_collection(value, col)
91 
92 #define DB_MAKE_MIDXKEY(value, midxkey) db_make_midxkey(value, midxkey)
93 
94 #define DB_MAKE_ELO(value, type, elo) db_make_elo(value, type, elo)
95 
96 #define DB_MAKE_TIME(value, hour, minute, second) \
97  db_make_time(value, hour, minute, second)
98 
99 #define DB_MAKE_ENCODED_TIME(value, time_value) \
100  db_value_put_encoded_time(value, time_value)
101 
102 #define DB_MAKE_DATE(value, month, day, year) \
103  db_make_date(value, month, day, year)
104 
105 #define DB_MAKE_ENCODED_DATE(value, date_value) \
106  db_value_put_encoded_date(value, date_value)
107 
108 #define DB_MAKE_TIMESTAMP(value, timeval) \
109  db_make_timestamp(value, timeval)
110 
111 #define DB_MAKE_UTIME DB_MAKE_TIMESTAMP
112 
113 #define DB_MAKE_TIMESTAMPTZ(value, ts_tz) \
114  db_make_timestamptz(value, ts_tz)
115 
116 #define DB_MAKE_TIMESTAMPLTZ(value, timeval) \
117  db_make_timestampltz(value, timeval)
118 
119 #define DB_MAKE_MONETARY_AMOUNT(value, amount) \
120  db_make_monetary(value, DB_CURRENCY_DEFAULT, amount)
121 
122 #define DB_MAKE_DATETIME(value, datetime_value) \
123  db_make_datetime(value, datetime_value)
124 
125 #define DB_MAKE_DATETIMETZ(value, datetimetz_value) \
126  db_make_datetimetz(value, datetimetz_value)
127 
128 #define DB_MAKE_DATETIMELTZ(value, datetime_value) \
129  db_make_datetimeltz(value, datetime_value)
130 
131 #define DB_MAKE_MONETARY DB_MAKE_MONETARY_AMOUNT
132 
133 #define DB_MAKE_MONETARY_TYPE_AMOUNT(value, type, amount) \
134  db_make_monetary(value, type, amount)
135 
136 #define DB_MAKE_POINTER(value, ptr) db_make_pointer(value, ptr)
137 
138 #define DB_MAKE_ERROR(value, errcode) db_make_error(value, errcode)
139 
140 #define DB_MAKE_METHOD_ERROR(value, errcode, errmsg) \
141  db_make_method_error(value, errcode, errmsg)
142 
143 #define DB_MAKE_SMALLINT(value, num) db_make_short(value, num)
144 
145 #define DB_MAKE_SHORT DB_MAKE_SMALLINT
146 
147 #define DB_MAKE_NUMERIC(value, num, precision, scale) \
148  db_make_numeric(value, num, precision, scale)
149 
150 #define DB_MAKE_BIT(value, bit_length, bit_str, bit_str_bit_size) \
151  db_make_bit(value, bit_length, bit_str, bit_str_bit_size)
152 
153 #define DB_MAKE_VARBIT(value, max_bit_length, bit_str, bit_str_bit_size) \
154  db_make_varbit(value, max_bit_length, bit_str, bit_str_bit_size)
155 
156 #define DB_MAKE_CHAR(value, char_length, str, char_str_byte_size, codeset, collation) \
157  db_make_char(value, char_length, str, char_str_byte_size, codeset, collation)
158 
159 #define DB_MAKE_VARCHAR(value, max_char_length, str, char_str_byte_size, codeset, collation) \
160  db_make_varchar(value, max_char_length, str, char_str_byte_size, codeset, collation)
161 
162 #define DB_MAKE_STRING(value, str) db_make_string(value, str)
163 
164 #define DB_MAKE_NCHAR(value, nchar_length, str, nchar_str_byte_size, codeset, collation) \
165  db_make_nchar(value, nchar_length, str, nchar_str_byte_size, codeset, collation)
166 
167 #define DB_MAKE_VARNCHAR(value, max_nchar_length, str, nchar_str_byte_size, codeset, collation) \
168  db_make_varnchar(value, max_nchar_length, str, nchar_str_byte_size, codeset, collation)
169 
170 #define DB_MAKE_ENUMERATION(value, index, str, size, codeset, collation) \
171  db_make_enumeration(value, index, str, size, codeset, collation)
172 
173 #define DB_MAKE_RESULTSET(value, handle) db_make_resultset(value, handle)
174 
175 #define db_get_collection db_get_set
176 #define db_get_utime db_get_timestamp
177 
178 #define DB_IS_NULL(value) db_value_is_null(value)
179 
180 #define DB_VALUE_DOMAIN_TYPE(value) db_value_domain_type(value)
181 
182 /* New preferred interface for DB_GET macros. */
183 #define DB_GET_INT(v) db_get_int(v)
184 #define DB_GET_SHORT(v) db_get_short(v)
185 #define DB_GET_BIGINT(v) db_get_bigint(v)
186 #define DB_GET_FLOAT(v) db_get_float(v)
187 #define DB_GET_STRING(v) db_get_string(v)
188 #define DB_GET_STRING_LENGTH(v) db_get_string_length(v)
189 #define DB_GET_DOUBLE(v) db_get_double(v)
190 #define DB_GET_OBJECT(v) db_get_object(v)
191 #define DB_GET_SET(v) db_get_set(v)
192 #define DB_GET_MIDXKEY(v) db_get_midxkey(v)
193 #define DB_GET_POINTER(v) db_get_pointer(v)
194 #define DB_GET_TIME(v) db_get_time(v)
195 #define DB_GET_TIMESTAMP(v) db_get_timestamp(v)
196 #define DB_GET_TIMESTAMPTZ(v) db_get_timestamptz(v)
197 #define DB_GET_DATETIME(v) db_get_datetime(v)
198 #define DB_GET_DATETIMETZ(v) db_get_datetimetz(v)
199 #define DB_GET_DATE(v) db_get_date(v)
200 #define DB_GET_MONETARY(v) db_get_monetary(v)
201 #define DB_GET_ERROR(v) db_get_error(v)
202 #define DB_GET_ELO(v) db_get_elo(v)
203 #define DB_GET_NUMERIC(v) db_get_numeric(v)
204 #define DB_GET_BIT(v, l) db_get_bit(v, l)
205 #define DB_GET_CHAR(v, l) db_get_char(v, l)
206 #define DB_GET_NCHAR(v, l) db_get_nchar(v, l)
207 #define DB_GET_STRING_SIZE(v) db_get_string_size(v)
208 #define DB_GET_ENUM_SHORT(v) db_get_enum_short(v)
209 #define DB_GET_ENUM_STRING(v) db_get_enum_string(v)
210 #define DB_GET_ENUM_STRING_SIZE(v) db_get_enum_string_size(v)
211 #define DB_GET_METHOD_ERROR_MSG() db_get_method_error_msg()
212 #define DB_GET_RESULTSET(v) db_get_resultset(v)
213 #define DB_GET_STRING_CODESET(v) ((INTL_CODESET) db_get_string_codeset(v))
214 #define DB_GET_STRING_COLLATION(v) db_get_string_collation(v)
215 #define DB_GET_ENUM_CODESET(v) db_get_enum_codeset(v)
216 #define DB_GET_ENUM_COLLATION(v) db_get_enum_collation(v)
217 #define DB_VALUE_TYPE(value) db_value_type(value)
218 #define DB_VALUE_PRECISION(value) db_value_precision(value)
219 #define DB_VALUE_SCALE(value) db_value_scale(value)
220 
221 #define DB_GET_INTEGER(value) db_get_int(value)
222 #define DB_GET_BIGINTEGER DB_GET_BIGINT
223 #define DB_GET_OBJ DB_GET_OBJECT
224 #define DB_GET_MULTISET(value) db_get_set(value)
225 #define DB_GET_LIST(value) db_get_set(value)
226 #define DB_GET_SEQUENCE DB_GET_LIST
227 #define DB_GET_COLLECTION(value) db_get_set(value)
228 #define DB_GET_UTIME DB_GET_TIMESTAMP
229 #define DB_GET_SMALLINT(value) db_get_short(value)
230 
231 #define DB_GET_COMPRESSED_SIZE(value) db_get_compressed_size(value)
232 
233 #define DB_GET_JSON_DOCUMENT(value) db_get_json_document(value)
234 
235 #define DB_GET_SEQ DB_GET_SEQUENCE
236 
237 #define DB_SET_COMPRESSED_STRING(value, compressed_string, compressed_size, compressed_need_clear) \
238  db_set_compressed_string(value, compressed_string, compressed_size, compressed_need_clear)
239 
240 #define DB_TRIED_COMPRESSION(value) (DB_GET_COMPRESSED_SIZE(value) != DB_NOT_YET_COMPRESSED)
241 
242 #ifdef __cplusplus
243 extern "C"
244 {
245 #endif
246  /********************************************************/
247  /* From db_date.h */
248 
249  extern int db_date_encode (DB_DATE * date, int month, int day, int year);
250  extern int db_time_encode (DB_TIME * timeval, int hour, int minute, int second);
251  extern void db_date_decode (const DB_DATE * date, int *monthp, int *dayp, int *yearp);
252  extern void db_time_decode (DB_TIME * timeval, int *hourp, int *minutep, int *secondp);
253  /********************************************************/
254 
255  extern DB_VALUE *db_value_create (void);
256  extern DB_VALUE *db_value_copy (DB_VALUE * value);
257  extern int db_value_clone (DB_VALUE * src, DB_VALUE * dest);
258  extern int db_value_clear (DB_VALUE * value);
259  extern int db_value_free (DB_VALUE * value);
260  extern int db_value_clear_array (DB_VALUE_ARRAY * value_array);
261  extern void db_value_print (const DB_VALUE * value);
262  extern void db_value_fprint (FILE * fp, const DB_VALUE * value);
263  extern int db_value_coerce (const DB_VALUE * src, DB_VALUE * dest, const DB_DOMAIN * desired_domain);
264 
265  extern int db_value_equal (const DB_VALUE * value1, const DB_VALUE * value2);
266  extern int db_value_compare (const DB_VALUE * value1, const DB_VALUE * value2);
267  extern int db_value_domain_init (DB_VALUE * value, DB_TYPE type, const int precision, const int scale);
268  extern int db_value_domain_min (DB_VALUE * value, DB_TYPE type, const int precision, const int scale,
269  const int codeset, const int collation_id, const DB_ENUMERATION * enumeration);
270  extern int db_value_domain_max (DB_VALUE * value, DB_TYPE type, const int precision, const int scale,
271  const int codeset, const int collation_id, const DB_ENUMERATION * enumeration);
272  extern int db_value_domain_default (DB_VALUE * value, const DB_TYPE type, const int precision, const int scale,
273  const int codeset, const int collation_id, DB_ENUMERATION * enumeration);
274  extern int db_value_domain_zero (DB_VALUE * value, const DB_TYPE type, const int precision, const int scale);
275  extern int db_string_truncate (DB_VALUE * value, const int max_precision);
276  extern DB_TYPE db_value_domain_type (const DB_VALUE * value);
277  extern int db_value_put_null (DB_VALUE * value);
278  extern int db_value_put (DB_VALUE * value, const DB_TYPE_C c_type, void *input, const int input_length);
279  extern bool db_value_type_is_collection (const DB_VALUE * value);
280  extern bool db_value_is_null (const DB_VALUE * value);
281  extern int db_value_get (DB_VALUE * value, const DB_TYPE_C type, void *buf, const int buflen, int *transferlen,
282  int *outputlen);
283  extern DB_CURRENCY db_value_get_monetary_currency (const DB_VALUE * value);
284  extern double db_value_get_monetary_amount_as_double (const DB_VALUE * value);
285  extern int db_value_put_monetary_currency (DB_VALUE * value, const DB_CURRENCY type);
286  extern int db_value_put_monetary_amount_as_double (DB_VALUE * value, const double amount);
287  extern int db_value_alter_type (DB_VALUE * value, DB_TYPE type);
288 
289  extern int db_value_put_encoded_time (DB_VALUE * value, const DB_TIME * time_value);
290  extern int db_value_put_encoded_date (DB_VALUE * value, const DB_DATE * date_value);
291 
292  extern DB_CURRENCY db_get_currency_default (void);
293 
294  extern DB_DOMAIN *db_type_to_db_domain (DB_TYPE type);
295  extern const char *db_default_expression_string (DB_DEFAULT_EXPR_TYPE default_expr_type);
296 
297  extern int db_get_deep_copy_of_json (const DB_JSON * src, DB_JSON * dst);
298  extern int db_init_db_json_pointers (DB_JSON * val);
299  extern int db_convert_json_into_scalar (const DB_VALUE * src, DB_VALUE * dest);
300  extern bool db_is_json_value_type (DB_TYPE type);
301  extern bool db_is_json_doc_type (DB_TYPE type);
302 
303  extern int db_get_int (const DB_VALUE * value);
304  extern DB_C_SHORT db_get_short (const DB_VALUE * value);
305  extern DB_BIGINT db_get_bigint (const DB_VALUE * value);
306  extern DB_CONST_C_CHAR db_get_string (const DB_VALUE * value);
307  extern DB_C_FLOAT db_get_float (const DB_VALUE * value);
308  extern DB_C_DOUBLE db_get_double (const DB_VALUE * value);
309  extern DB_OBJECT *db_get_object (const DB_VALUE * value);
310  extern DB_COLLECTION *db_get_set (const DB_VALUE * value);
311  extern DB_MIDXKEY *db_get_midxkey (const DB_VALUE * value);
312  extern DB_C_POINTER db_get_pointer (const DB_VALUE * value);
313  extern DB_TIME *db_get_time (const DB_VALUE * value);
314  extern DB_TIMESTAMP *db_get_timestamp (const DB_VALUE * value);
315  extern DB_TIMESTAMPTZ *db_get_timestamptz (const DB_VALUE * value);
316  extern DB_DATETIME *db_get_datetime (const DB_VALUE * value);
317  extern DB_DATETIMETZ *db_get_datetimetz (const DB_VALUE * value);
318  extern DB_DATE *db_get_date (const DB_VALUE * value);
319  extern DB_MONETARY *db_get_monetary (const DB_VALUE * value);
320  extern int db_get_error (const DB_VALUE * value);
321  extern DB_ELO *db_get_elo (const DB_VALUE * value);
322  extern DB_C_NUMERIC db_get_numeric (const DB_VALUE * value);
323  extern DB_CONST_C_BIT db_get_bit (const DB_VALUE * value, int *length);
324  extern DB_CONST_C_CHAR db_get_char (const DB_VALUE * value, int *length);
325  extern DB_CONST_C_NCHAR db_get_nchar (const DB_VALUE * value, int *length);
326  extern int db_get_string_size (const DB_VALUE * value);
327  extern unsigned short db_get_enum_short (const DB_VALUE * value);
328  extern DB_CONST_C_CHAR db_get_enum_string (const DB_VALUE * value);
329  extern int db_get_enum_string_size (const DB_VALUE * value);
330  extern DB_C_CHAR db_get_method_error_msg (void);
331  extern DB_RESULTSET db_get_resultset (const DB_VALUE * value);
332  extern int db_get_string_codeset (const DB_VALUE * value);
333  extern int db_get_string_collation (const DB_VALUE * value);
334  extern int db_get_enum_codeset (const DB_VALUE * value);
335  extern int db_get_enum_collation (const DB_VALUE * value);
336  extern OID *db_get_oid (const DB_VALUE * value);
337  extern DB_TYPE db_value_type (const DB_VALUE * value);
338  extern int db_value_precision (const DB_VALUE * value);
339  extern int db_value_scale (const DB_VALUE * value);
340  extern JSON_DOC *db_get_json_document (const DB_VALUE * value);
341 
342  extern int db_make_null (DB_VALUE * value);
343  extern int db_make_int (DB_VALUE * value, const int num);
344  extern int db_make_float (DB_VALUE * value, const DB_C_FLOAT num);
345  extern int db_make_double (DB_VALUE * value, const DB_C_DOUBLE num);
346  extern int db_make_object (DB_VALUE * value, DB_C_OBJECT * obj);
347  extern int db_make_midxkey (DB_VALUE * value, DB_MIDXKEY * midxkey);
348  extern int db_make_timestamp (DB_VALUE * value, const DB_C_TIMESTAMP timeval);
349  extern int db_make_timestampltz (DB_VALUE * value, const DB_C_TIMESTAMP ts_val);
350  extern int db_make_timestamptz (DB_VALUE * value, const DB_C_TIMESTAMPTZ * ts_tz_val);
351  extern int db_make_datetime (DB_VALUE * value, const DB_DATETIME * datetime);
352  extern int db_make_datetimeltz (DB_VALUE * value, const DB_DATETIME * datetime);
353  extern int db_make_datetimetz (DB_VALUE * value, const DB_DATETIMETZ * datetimetz);
354  extern int db_make_monetary (DB_VALUE * value, const DB_CURRENCY type, const double amount);
355  extern int db_make_pointer (DB_VALUE * value, DB_C_POINTER ptr);
356  extern int db_make_error (DB_VALUE * value, const int errcode);
357  extern int db_make_method_error (DB_VALUE * value, const int errcode, const char *errmsg);
358  extern int db_make_short (DB_VALUE * value, const DB_C_SHORT num);
359  extern int db_make_bigint (DB_VALUE * value, const DB_BIGINT num);
360  extern int db_make_numeric (DB_VALUE * value, const DB_C_NUMERIC num, const int precision, const int scale);
361  extern int db_make_bit (DB_VALUE * value, const int bit_length, DB_CONST_C_BIT bit_str, const int bit_str_bit_size);
362  extern int db_make_varbit (DB_VALUE * value, const int max_bit_length, DB_CONST_C_BIT bit_str,
363  const int bit_str_bit_size);
364  extern int db_make_char (DB_VALUE * value, const int char_length, DB_CONST_C_CHAR str, const int char_str_byte_size,
365  const int codeset, const int collation_id);
366  extern int db_make_varchar (DB_VALUE * value, const int max_char_length, DB_CONST_C_CHAR str,
367  const int char_str_byte_size, const int codeset, const int collation_id);
368  extern int db_make_nchar (DB_VALUE * value, const int nchar_length, DB_CONST_C_NCHAR str,
369  const int nchar_str_byte_size, const int codeset, const int collation_id);
370  extern int db_make_varnchar (DB_VALUE * value, const int max_nchar_length, DB_CONST_C_NCHAR str,
371  const int nchar_str_byte_size, const int codeset, const int collation_id);
372  extern int db_make_enumeration (DB_VALUE * value, unsigned short index, DB_CONST_C_CHAR str, int size,
373  unsigned char codeset, const int collation_id);
374  extern int db_make_resultset (DB_VALUE * value, const DB_RESULTSET handle);
375 
376  extern int db_make_string (DB_VALUE * value, DB_CONST_C_CHAR str);
377  extern int db_make_string_copy (DB_VALUE * value, DB_CONST_C_CHAR str);
378 
379  extern int db_make_oid (DB_VALUE * value, const OID * oid);
380 
381  extern int db_make_set (DB_VALUE * value, DB_C_SET * set);
382  extern int db_make_multiset (DB_VALUE * value, DB_C_SET * set);
383  extern int db_make_sequence (DB_VALUE * value, DB_C_SET * set);
384  extern int db_make_collection (DB_VALUE * value, DB_C_SET * set);
385 
386  extern int db_make_elo (DB_VALUE * value, DB_TYPE type, const DB_ELO * elo);
387 
388  extern int db_make_time (DB_VALUE * value, const int hour, const int minute, const int second);
389  extern int db_make_date (DB_VALUE * value, const int month, const int day, const int year);
390 
391  extern int db_get_compressed_size (DB_VALUE * value);
392  extern void db_set_compressed_string (DB_VALUE * value, char *compressed_string,
393  int compressed_size, bool compressed_need_clear);
394 
395  extern int db_make_json (DB_VALUE * value, JSON_DOC * json_document, bool need_clear);
396 
397 #ifdef __cplusplus
398 }
399 #endif /* C++ */
400 
401 #endif /* _NO_INLINE_DBTYPE_FUNCTION_ */
DB_TIMESTAMP DB_C_TIMESTAMP
Definition: dbtype_def.h:1211
DB_C_FLOAT db_get_float(const DB_VALUE *value)
DB_CURRENCY db_value_get_monetary_currency(const DB_VALUE *value)
Definition: db_macro.c:1492
bool db_is_json_doc_type(DB_TYPE type)
Definition: db_macro.c:5066
void * handle
int db_make_json(DB_VALUE *value, JSON_DOC *json_document, bool need_clear)
int db_make_datetime(DB_VALUE *value, const DB_DATETIME *datetime)
const char * db_default_expression_string(DB_DEFAULT_EXPR_TYPE default_expr_type)
Definition: db_macro.c:4947
DB_COLLECTION * db_get_set(const DB_VALUE *value)
int db_value_scale(const DB_VALUE *value)
int db_value_clear_array(DB_VALUE_ARRAY *value_array)
Definition: db_macro.c:1633
DB_MIDXKEY * db_get_midxkey(const DB_VALUE *value)
int db_date_encode(DB_DATE *date, int month, int day, int year)
Definition: db_date.c:275
DB_VALUE * db_value_copy(DB_VALUE *value)
Definition: db_macro.c:1537
DB_CONST_C_BIT db_get_bit(const DB_VALUE *value, int *length)
DB_CONST_C_NCHAR db_get_nchar(const DB_VALUE *value, int *length)
JSON_DOC * db_get_json_document(const DB_VALUE *value)
int db_make_bigint(DB_VALUE *value, const DB_BIGINT num)
int db_get_int(const DB_VALUE *value)
DB_TYPE
Definition: dbtype_def.h:670
DB_CURRENCY db_get_currency_default(void)
Definition: db_macro.c:1870
void db_time_decode(DB_TIME *timeval, int *hourp, int *minutep, int *secondp)
Definition: db_date.c:432
DB_C_DOUBLE db_get_double(const DB_VALUE *value)
int db_make_varchar(DB_VALUE *value, const int max_char_length, DB_CONST_C_CHAR str, const int char_str_byte_size, const int codeset, const int collation_id)
int db_get_string_collation(const DB_VALUE *value)
DB_DOMAIN * db_type_to_db_domain(DB_TYPE type)
Definition: db_macro.c:1710
int db_init_db_json_pointers(DB_JSON *val)
Definition: db_macro.c:2042
int db_make_numeric(DB_VALUE *value, const DB_C_NUMERIC num, const int precision, const int scale)
int db_get_enum_codeset(const DB_VALUE *value)
int db_get_enum_string_size(const DB_VALUE *value)
int db_make_object(DB_VALUE *value, DB_C_OBJECT *obj)
int db_make_pointer(DB_VALUE *value, DB_C_POINTER ptr)
DB_C_NUMERIC db_get_numeric(const DB_VALUE *value)
double DB_C_DOUBLE
Definition: dbtype_def.h:1153
int db_make_date(DB_VALUE *value, const int month, const int day, const int year)
DB_DATETIMETZ * db_get_datetimetz(const DB_VALUE *value)
DB_CONST_C_CHAR db_get_char(const DB_VALUE *value, int *length)
int db_make_datetimeltz(DB_VALUE *value, const DB_DATETIME *datetime)
int db_make_sequence(DB_VALUE *value, DB_C_SET *set)
int db_string_truncate(DB_VALUE *value, const int max_precision)
Definition: db_macro.c:962
int db_value_domain_min(DB_VALUE *value, DB_TYPE type, const int precision, const int scale, const int codeset, const int collation_id, const DB_ENUMERATION *enumeration)
Definition: db_macro.c:413
int db_value_clear(DB_VALUE *value)
Definition: db_macro.c:1588
bool db_value_type_is_collection(const DB_VALUE *value)
Definition: db_macro.c:1144
int db_make_elo(DB_VALUE *value, DB_TYPE type, const DB_ELO *elo)
void db_value_print(const DB_VALUE *value)
Definition: db_macro.c:1663
DB_ELO * db_get_elo(const DB_VALUE *value)
short DB_C_SHORT
Definition: dbtype_def.h:1150
DB_TIMESTAMPTZ * db_get_timestamptz(const DB_VALUE *value)
int db_make_short(DB_VALUE *value, const DB_C_SHORT num)
int db_make_string(DB_VALUE *value, DB_CONST_C_CHAR str)
DB_MONETARY * db_get_monetary(const DB_VALUE *value)
DB_RESULTSET db_get_resultset(const DB_VALUE *value)
DB_CURRENCY
Definition: dbtype_def.h:799
unsigned int DB_TIMESTAMP
Definition: dbtype_def.h:759
int db_value_put_monetary_currency(DB_VALUE *value, const DB_CURRENCY type)
Definition: db_macro.c:1409
const char * DB_CONST_C_NCHAR
Definition: dbtype_def.h:1157
int db_value_domain_default(DB_VALUE *value, const DB_TYPE type, const int precision, const int scale, const int codeset, const int collation_id, DB_ENUMERATION *enumeration)
Definition: db_macro.c:756
Definition: db_set.h:35
int db_make_enumeration(DB_VALUE *value, unsigned short index, DB_CONST_C_CHAR str, int size, unsigned char codeset, const int collation_id)
int db_make_monetary(DB_VALUE *value, const DB_CURRENCY type, const double amount)
static int input()
Definition: cnvlex.c:1661
const char * DB_CONST_C_BIT
Definition: dbtype_def.h:1159
DB_TYPE db_value_domain_type(const DB_VALUE *value)
void db_date_decode(const DB_DATE *date, int *monthp, int *dayp, int *yearp)
Definition: db_date.c:338
int db_make_set(DB_VALUE *value, DB_C_SET *set)
int db_make_multiset(DB_VALUE *value, DB_C_SET *set)
int db_value_put_null(DB_VALUE *value)
Definition: db_macro.c:122
DB_TYPE_C
Definition: dbtype_def.h:1116
DB_TYPE db_value_type(const DB_VALUE *value)
int db_get_deep_copy_of_json(const DB_JSON *src, DB_JSON *dst)
Definition: db_macro.c:2022
int db_value_put(DB_VALUE *value, const DB_TYPE_C c_type, void *input, const int input_length)
Definition: db_macro.c:1256
DB_OBJECT * db_get_object(const DB_VALUE *value)
int db_make_timestamptz(DB_VALUE *value, const DB_C_TIMESTAMPTZ *ts_tz_val)
double db_value_get_monetary_amount_as_double(const DB_VALUE *value)
Definition: db_macro.c:1505
int DB_RESULTSET
Definition: dbtype_def.h:1017
unsigned short db_get_enum_short(const DB_VALUE *value)
int db_value_clone(DB_VALUE *src, DB_VALUE *dest)
Definition: db_macro.c:1564
unsigned char * DB_C_NUMERIC
Definition: dbtype_def.h:1214
DB_VALUE * db_value_create(void)
Definition: db_macro.c:1517
int db_value_put_monetary_amount_as_double(DB_VALUE *value, const double amount)
Definition: db_macro.c:1470
int db_value_alter_type(DB_VALUE *value, DB_TYPE type)
Definition: db_macro.c:1225
int db_value_domain_zero(DB_VALUE *value, const DB_TYPE type, const int precision, const int scale)
Definition: db_macro.c:903
DB_BIGINT db_get_bigint(const DB_VALUE *value)
void db_set_compressed_string(DB_VALUE *value, char *compressed_string, int compressed_size, bool compressed_need_clear)
int db_make_time(DB_VALUE *value, const int hour, const int minute, const int second)
DB_C_CHAR db_get_method_error_msg(void)
int db_make_datetimetz(DB_VALUE *value, const DB_DATETIMETZ *datetimetz)
int64_t DB_BIGINT
Definition: dbtype_def.h:751
DB_CONST_C_CHAR db_get_enum_string(const DB_VALUE *value)
int db_make_float(DB_VALUE *value, const DB_C_FLOAT num)
int db_make_midxkey(DB_VALUE *value, DB_MIDXKEY *midxkey)
bool db_value_is_null(const DB_VALUE *value)
int db_value_domain_max(DB_VALUE *value, DB_TYPE type, const int precision, const int scale, const int codeset, const int collation_id, const DB_ENUMERATION *enumeration)
Definition: db_macro.c:581
OID * db_get_oid(const DB_VALUE *value)
int db_value_put_encoded_date(DB_VALUE *value, const DB_DATE *date_value)
Definition: db_macro.c:1383
unsigned int DB_TIME
Definition: dbtype_def.h:754
int db_make_varbit(DB_VALUE *value, const int max_bit_length, DB_CONST_C_BIT bit_str, const int bit_str_bit_size)
unsigned int DB_DATE
Definition: dbtype_def.h:771
int db_make_error(DB_VALUE *value, const int errcode)
int db_make_collection(DB_VALUE *value, DB_C_SET *set)
void * DB_C_POINTER
Definition: dbtype_def.h:1215
int db_make_timestampltz(DB_VALUE *value, const DB_C_TIMESTAMP ts_val)
DB_DATE * db_get_date(const DB_VALUE *value)
int db_value_precision(const DB_VALUE *value)
float DB_C_FLOAT
Definition: dbtype_def.h:1152
int db_convert_json_into_scalar(const DB_VALUE *src, DB_VALUE *dest)
Definition: db_macro.c:4981
int db_make_string_copy(DB_VALUE *value, DB_CONST_C_CHAR str)
int db_make_method_error(DB_VALUE *value, const int errcode, const char *errmsg)
char * DB_C_CHAR
Definition: dbtype_def.h:1154
int db_get_compressed_size(DB_VALUE *value)
int db_value_put_encoded_time(DB_VALUE *value, const DB_TIME *time_value)
Definition: db_macro.c:1357
DB_TIMESTAMP * db_get_timestamp(const DB_VALUE *value)
int db_get_string_size(const DB_VALUE *value)
DB_C_SHORT db_get_short(const DB_VALUE *value)
int db_make_varnchar(DB_VALUE *value, const int max_nchar_length, DB_CONST_C_NCHAR str, const int nchar_str_byte_size, const int codeset, const int collation_id)
int db_value_get(DB_VALUE *value, const DB_TYPE_C type, void *buf, const int buflen, int *transferlen, int *outputlen)
Definition: db_macro.c:2077
int db_get_enum_collation(const DB_VALUE *value)
int db_make_resultset(DB_VALUE *value, const DB_RESULTSET handle)
int db_make_null(DB_VALUE *value)
int db_make_double(DB_VALUE *value, const DB_C_DOUBLE num)
int db_get_error(const DB_VALUE *value)
DB_DATETIME * db_get_datetime(const DB_VALUE *value)
int db_value_domain_init(DB_VALUE *value, DB_TYPE type, const int precision, const int scale)
Definition: db_macro.c:153
int db_make_timestamp(DB_VALUE *value, const DB_C_TIMESTAMP timeval)
int db_make_int(DB_VALUE *value, const int num)
int db_value_coerce(const DB_VALUE *src, DB_VALUE *dest, const DB_DOMAIN *desired_domain)
Definition: db_macro.c:1779
int db_make_oid(DB_VALUE *value, const OID *oid)
int db_make_char(DB_VALUE *value, const int char_length, DB_CONST_C_CHAR str, const int char_str_byte_size, const int codeset, const int collation_id)
int db_value_compare(const DB_VALUE *value1, const DB_VALUE *value2)
Definition: db_macro.c:1855
DB_TIME * db_get_time(const DB_VALUE *value)
int db_value_equal(const DB_VALUE *value1, const DB_VALUE *value2)
Definition: db_macro.c:1803
DB_C_POINTER db_get_pointer(const DB_VALUE *value)
const char * DB_CONST_C_CHAR
Definition: dbtype_def.h:1155
void db_value_fprint(FILE *fp, const DB_VALUE *value)
Definition: db_macro.c:1681
int db_time_encode(DB_TIME *timeval, int hour, int minute, int second)
Definition: db_date.c:370
int db_value_free(DB_VALUE *value)
Definition: db_macro.c:1610
int db_make_bit(DB_VALUE *value, const int bit_length, DB_CONST_C_BIT bit_str, const int bit_str_bit_size)
int db_get_string_codeset(const DB_VALUE *value)
DB_CONST_C_CHAR db_get_string(const DB_VALUE *value)
DB_DEFAULT_EXPR_TYPE
Definition: dbtype_def.h:1181
int db_make_nchar(DB_VALUE *value, const int nchar_length, DB_CONST_C_NCHAR str, const int nchar_str_byte_size, const int codeset, const int collation_id)
bool db_is_json_value_type(DB_TYPE type)
Definition: db_macro.c:5043