53 #if !defined (SERVER_MODE) 63 #if defined (SUPPRESS_STRLEN_WARNING) 64 #define strlen(s1) ((int) strlen(s1)) 67 #if !defined(SERVER_MODE) 71 #define MR_CMP(d1, d2) \ 72 ((d1) < (d2) ? DB_LT : (d1) > (d2) ? DB_GT : DB_EQ) 74 #define MR_CMP_RETURN_CODE(c) \ 75 ((c) < 0 ? DB_LT : (c) > 0 ? DB_GT : DB_EQ) 82 #if !defined (SERVER_MODE) 83 #define MR_OID_SIZE sizeof(WS_MEMOID) 88 #define VALUE_AREA_COUNT 1024 107 #if defined (SERVER_MODE) 108 #define PR_INHIBIT_OID_PROMOTION_DEFAULT 1 110 #define PR_INHIBIT_OID_PROMOTION_DEFAULT 0 118 #define OR_NUMERIC_SIZE(precision) DB_NUMERIC_BUF_SIZE 119 #define MR_NUMERIC_SIZE(precision) DB_NUMERIC_BUF_SIZE 121 #define STR_SIZE(prec, codeset) \ 122 (((codeset) == INTL_CODESET_RAW_BITS) ? ((prec+7)/8) : \ 123 INTL_CODESET_MULT (codeset) * (prec)) 126 #define BITS_IN_BYTE 8 127 #define BITS_TO_BYTES(bit_cnt) (((bit_cnt) + 7) / 8) 130 #define DO_CONVERSION_TO_SRVR_STR(codeset) false 131 #define DO_CONVERSION_TO_SQLTEXT(codeset) false 133 #define DB_DOMAIN_INIT_CHAR(value, precision) \ 135 (value)->domain.general_info.type = DB_TYPE_CHAR; \ 136 (value)->domain.general_info.is_null = 1; \ 137 (value)->domain.char_info.length = \ 138 (precision) == DB_DEFAULT_PRECISION ? \ 139 TP_FLOATING_PRECISION_VALUE : (precision); \ 140 (value)->need_clear = false; \ 141 (value)->data.ch.info.codeset = LANG_SYS_CODESET; \ 142 (value)->domain.char_info.collation_id = LANG_SYS_COLLATION; \ 146 #define IS_FLOATING_PRECISION(prec) \ 147 ((prec) == TP_FLOATING_PRECISION_VALUE) 151 initmem_function_type initmem_f_arg, initval_function_type initval_f_arg,
152 setmem_function_type setmem_f_arg, getmem_function_type getmem_f_arg,
153 setval_function_type setval_f_arg, data_lengthmem_function_type data_lengthmem_f_arg,
154 data_lengthval_function_type data_lengthval_f_arg, data_writemem_function_type data_writemem_f_arg,
155 data_readmem_function_type data_readmem_f_arg, data_writeval_function_type data_writeval_f_arg,
156 data_readval_function_type data_readval_f_arg, index_lengthmem_function_type index_lengthmem_f_arg,
157 index_lengthval_function_type index_lengthval_f_arg,
158 index_writeval_function_type index_writeval_f_arg, index_readval_function_type index_readval_f_arg,
159 index_cmpdisk_function_type index_cmpdisk_f_arg, freemem_function_type freemem_f_arg,
160 data_cmpdisk_function_type data_cmpdisk_f_arg, cmpval_function_type cmpval_f_arg)
227 char *copy_buf,
int copy_buf_len);
231 char *copy_buf,
int copy_buf_len);
235 char *copy_buf,
int copy_buf_len,
int align);
237 int total_order,
int *start_colp);
239 int total_order,
int *start_colp);
241 int total_order,
int *start_colp,
int collation);
242 #if defined (ENABLE_UNUSED_FUNCTION) 243 static int mr_cmpval_string2 (
DB_VALUE * value1,
DB_VALUE * value2,
int length,
int do_coercion,
int total_order,
260 char *copy_buf,
int copy_buf_len);
262 char *copy_buf,
int copy_buf_len,
int align);
266 char *copy_buf,
int copy_buf_len);
268 int total_order,
int *start_colp);
270 int total_order,
int *start_colp);
272 int *start_colp,
int collation);
274 int total_order,
int *start_colp,
int align);
275 #if defined (ENABLE_UNUSED_FUNCTION) 276 static int mr_cmpval_char2 (
DB_VALUE * value1,
DB_VALUE * value2,
int length,
int do_coercion,
int total_order,
293 char *copy_buf,
int copy_buf_len);
295 char *copy_buf,
int copy_buf_len,
int align);
299 char *copy_buf,
int copy_buf_len);
301 int total_order,
int *start_colp);
303 int total_order,
int *start_colp);
305 int total_order,
int *start_colp,
int align);
307 int *start_colp,
int collation);
308 #if defined (ENABLE_UNUSED_FUNCTION) 309 static int mr_cmpval_nchar2 (
DB_VALUE * value1,
DB_VALUE * value2,
int length,
int do_coercion,
int total_order,
325 char *copy_buf,
int copy_buf_len);
329 char *copy_buf,
int copy_buf_len);
333 char *copy_buf,
int copy_buf_len,
int align);
335 int total_order,
int *start_colp);
337 int total_order,
int *start_colp);
339 int total_order,
int *start_colp,
int collation);
340 #if defined (ENABLE_UNUSED_FUNCTION) 341 static int mr_cmpval_varnchar2 (
DB_VALUE * value1,
DB_VALUE * value2,
int length,
int do_coercion,
int total_order,
357 char *copy_buf,
int copy_buf_len);
359 char *copy_buf,
int copy_buf_len,
int align);
364 char *copy_buf,
int copy_buf_len);
366 int total_order,
int *start_colp);
368 int total_order,
int *start_colp);
370 int total_order,
int *start_colp,
int align);
372 int *start_colp,
int collation);
374 int total_order,
int *start_colp);
388 char *copy_buf,
int copy_buf_len);
392 char *copy_buf,
int copy_buf_len);
396 char *copy_buf,
int copy_buf_len,
int align);
398 int total_order,
int *start_colp);
400 int total_order,
int *start_colp);
402 int *start_colp,
int collation);
404 int total_order,
int *start_colp);
415 char *copy_buf,
int copy_buf_len);
417 int total_order,
int *start_colp);
419 int *start_colp,
int collation);
432 char *copy_buf,
int copy_buf_len);
434 int total_order,
int *start_colp);
436 int total_order,
int *start_colp);
438 int *start_colp,
int collation);
448 char *copy_buf,
int copy_buf_len);
451 char *copy_buf,
int copy_buf_len);
453 int total_order,
int *start_colp);
455 int total_order,
int *start_colp);
457 int *start_colp,
int collation);
467 char *copy_buf,
int copy_buf_len);
470 char *copy_buf,
int copy_buf_len);
472 int total_order,
int *start_colp);
474 int total_order,
int *start_colp);
476 int *start_colp,
int collation);
486 char *copy_buf,
int copy_buf_len);
489 char *copy_buf,
int copy_buf_len);
491 int total_order,
int *start_colp);
493 int total_order,
int *start_colp);
495 int *start_colp,
int collation);
505 char *copy_buf,
int copy_buf_len);
508 char *copy_buf,
int copy_buf_len);
510 int total_order,
int *start_colp);
512 int total_order,
int *start_colp);
514 int *start_colp,
int collation);
524 char *copy_buf,
int copy_buf_len);
527 char *copy_buf,
int copy_buf_len);
529 int total_order,
int *start_colp);
531 int total_order,
int *start_colp);
533 int *start_colp,
int collation);
547 char *copy_buf,
int copy_buf_len);
549 char *copy_buf,
int copy_buf_len);
552 char *copy_buf,
int copy_buf_len);
554 char *copy_buf,
int copy_buf_len);
556 int total_order,
int *start_colp);
558 int total_order,
int *start_colp);
560 int *start_colp,
int collation);
571 char *copy_buf,
int copy_buf_len);
574 char *copy_buf,
int copy_buf_len);
576 int do_coercion,
int total_order,
int *start_colp);
578 int total_order,
int *start_colp);
580 int total_order,
int *start_colp,
int collation);
594 char *copy_buf,
int copy_buf_len);
596 char *copy_buf,
int copy_buf_len);
599 char *copy_buf,
int copy_buf_len);
601 char *copy_buf,
int copy_buf_len);
603 int total_order,
int *start_colp);
605 int total_order,
int *start_colp);
607 int total_order,
int *start_colp,
int collation);
618 char *copy_buf,
int copy_buf_len);
621 char *copy_buf,
int copy_buf_len);
623 int total_order,
int *start_colp);
625 int total_order,
int *start_colp);
627 int total_order,
int *start_colp,
int collation);
638 char *copy_buf,
int copy_buf_len);
641 char *copy_buf,
int copy_buf_len);
643 int total_order,
int *start_colp);
645 int total_order,
int *start_colp);
647 int *start_colp,
int collation);
657 char *copy_buf,
int copy_buf_len);
660 char *copy_buf,
int copy_buf_len);
662 int total_order,
int *start_colp);
664 int total_order,
int *start_colp);
666 int *start_colp,
int collation);
678 char *copy_buf,
int copy_buf_len);
681 char *copy_buf,
int copy_buf_len);
683 int total_order,
int *start_colp);
685 int total_order,
int *start_colp);
687 int *start_colp,
int collation);
704 char *copy_buf,
int copy_buf_len,
DB_TYPE type);
707 int total_order,
int *start_colp);
709 int *start_colp,
int collation);
715 char *copy_buf,
int copy_buf_len);
721 char *copy_buf,
int copy_buf_len);
728 char *copy_buf,
int copy_buf_len);
730 int total_order,
int *start_colp);
732 int total_order,
int *start_colp,
int collation);
746 int total_order,
int *start_colp);
748 int *start_colp,
int collation);
762 int total_order,
int *start_colp);
764 int *start_colp,
int collation);
776 char *copy_buf,
int copy_buf_len);
778 int total_order,
int *start_colp);
780 int *start_colp,
int collation);
793 char *copy_buf,
int copy_buf_len);
795 int total_order,
int *start_colp);
797 int total_order,
int *start_colp);
799 int *start_colp,
int collation);
815 int total_order,
int *start_colp);
817 int *start_colp,
int collation);
825 int total_order,
int *start_colp);
827 int total_order,
int *start_colp,
int collation);
837 char *copy_buf,
int copy_buf_len);
839 char *copy_buf,
int copy_buf_len);
841 int do_coercion,
int total_order);
843 int total_order,
int *start_colp);
845 int total_order,
int *start_colp);
847 int total_order,
int *start_colp,
int collation);
851 char *copy_buf,
int copy_buf_len);
853 int total_order,
int *start_colp);
855 int *start_colp,
int collation);
868 char *copy_buf,
int copy_buf_len);
872 char *copy_buf,
int copy_buf_len);
874 int total_order,
int *start_colp);
876 int total_order,
int *start_colp);
878 int total_order,
int *start_colp,
int collation);
888 char *copy_buf,
int copy_buf_len);
890 int total_order,
int *start_colp);
892 int total_order,
int *start_colp,
int collation);
896 int *prev_indexp,
char **prev_ptrp);
905 bool copy,
char *copy_buf,
int copy_buf_len);
907 char *copy_buf,
int copy_buf_len);
910 int total_order,
int *start_colp);
912 int total_order,
int *start_colp,
int collation);
914 int do_coercion,
int total_order,
int *start_colp);
917 char *copy_buf,
int copy_buf_len);
935 char *copy_buf,
int copy_buf_len);
937 int total_order,
int *start_colp);
939 int *start_colp,
int collation);
1001 "smallint",
DB_TYPE_SHORT, 0,
sizeof (short),
sizeof (
short), 2,
1051 "float",
DB_TYPE_FLOAT, 0,
sizeof (float),
sizeof (
float), 4,
1076 "double",
DB_TYPE_DOUBLE, 0,
sizeof (double),
sizeof (
double), 4,
1461 "*substructure*",
DB_TYPE_SUB, 1,
sizeof (
void *), 0, 8,
1718 "enum",
DB_TYPE_ENUMERATION, 0,
sizeof (
unsigned short),
sizeof (
unsigned short),
sizeof (
unsigned short),
1834 if (Value_area ==
NULL)
1850 if (Value_area !=
NULL)
1914 char *midxkey_buf =
NULL;
1915 const char *char_medium_buf =
NULL;
1944 if (need_clear ==
false)
1988 if (midxkey_buf !=
NULL)
2009 if (char_medium_buf !=
NULL)
2014 char *temp =
CONST_CAST (
char *, char_medium_buf);
2028 if (compressed_str !=
NULL)
2042 if (compressed_str !=
NULL)
2095 for (
DB_VALUE &dbval : value_vector)
2140 (void)
area_free (Value_area, (
void *) value);
2174 else if (src != dest)
2185 type->
setval (dest, src,
true);
2595 short *mem = (
short *) memptr;
2917 *(
float *) mem = 0.0;
3448 return MR_CMP (*t1, *t2);
3679 return MR_CMP (utm1, utm2);
3692 return MR_CMP (ts1, ts2);
3703 return MR_CMP (*ts1, *ts2);
3871 return MR_CMP (utm1, utm2);
3886 return MR_CMP (ts1, ts2);
3900 #if defined (SA_MODE) 3901 if (tz_Compare_timestamptz_tz_id ==
true && ts_tz1->
tz_id != ts_tz2->
tz_id)
4470 #if defined (SA_MODE) 4471 if (tz_Compare_datetimetz_tz_id ==
true && dt_tz1->
tz_id != dt_tz2->
tz_id)
4880 return MR_CMP (*d1, *d2);
4929 #if !defined (SERVER_MODE) 4947 #if !defined (SERVER_MODE) 4970 #if !defined (SERVER_MODE) 5013 #if !defined (SERVER_MODE) 5050 #if !defined (SERVER_MODE) 5120 #if !defined (SERVER_MODE) 5134 #if !defined (SERVER_MODE) 5163 #if !defined (SERVER_MODE) 5216 printf (
"mr_writemem_object: called on the server !\n");
5225 #if !defined (SERVER_MODE) 5239 printf (
"mr_readmem_object: called on the server !\n");
5254 #if !defined (SERVER_MODE) 5260 #if !defined (SERVER_MODE) 5348 #if !defined (SERVER_MODE) 5432 #if defined (SERVER_MODE) 5629 #if !defined (SERVER_MODE) 5694 *((
DB_ELO **) memptr) = elo;
5717 elo = *((
DB_ELO **) memptr);
5825 else if (memptr !=
NULL)
5871 elo = *((
DB_ELO **) memptr);
5901 int locator_len, meta_data_len;
5920 if (locator_len > 0)
5943 if (meta_data_len > 0)
6010 *((
DB_ELO **) memptr) = elo;
6025 int copy_buf_len,
DB_TYPE type)
6094 elo = *((
DB_ELO **) memptr);
6125 return MR_CMP ((UINTPTR) elo1, (UINTPTR) elo2);
6294 void **mem = (
void **) memptr;
6309 void **mem = (
void **) memptr;
6325 void **mem = (
void **) memptr;
6374 void **mem = (
void **) memptr;
6414 return MR_CMP ((UINTPTR) p1, (UINTPTR) p2);
6426 int *mem = (
int *) memptr;
6441 int *mem = (
int *) memptr;
6457 int *mem = (
int *) memptr;
6506 int *mem = (
int *) memptr;
6570 OID *mem = (
OID *) memptr;
6588 OID *mem = (
OID *) memptr;
6615 OID *mem = (
OID *) memptr;
6644 OID *mem = (
OID *) memptr;
6652 OID *mem = (
OID *) memptr;
7032 #if !defined (SERVER_MODE) 7040 size =
sizeof (
DB_SET *);
7057 #if !defined (SERVER_MODE) 7061 #if !defined (SERVER_MODE) 7089 #if !defined (SERVER_MODE) 7123 #if !defined (SERVER_MODE) 7128 if (((ptrdiff_t) (buf->
endptr - buf->
ptr)) < (ptrdiff_t) size)
7131 #if !defined (SERVER_MODE) 7141 #if !defined (SERVER_MODE) 7295 int num_elements, has_domain, bound_bits, offset_tbl, el_tags;
7301 or_get_set_header (buf, &set_type, &num_elements, &has_domain, &bound_bits, &offset_tbl, &el_tags,
7554 if (src_idx ==
NULL)
7559 if (src_idx->
size < 0)
7578 dst_idx.
buf = src_idx->
buf;
7594 memcpy (dst_idx.
buf, src_idx->
buf, dst_idx.
size);
7615 if (midxkey ==
NULL)
7672 if (copy_buf && copy_buf_len >= size)
7703 if (new_ != copy_buf)
7711 value->
need_clear = (new_ != copy_buf) ?
true :
false;
7725 OR_BUF buf_val1, buf_val2;
7726 bool comparable =
true;
7765 if (!comparable || error ==
true)
7776 int *start_colp,
int *result_size1,
int *result_size2,
int *diff_column,
bool * dom_is_desc,
7777 bool * next_dom_is_desc)
7781 int adv_size1, adv_size2;
7784 char *bitptr1, *bitptr2;
7788 assert (total_order == 1);
7789 if (total_order == 0)
7826 #if !defined(NDEBUG) 7847 mem1 = bitptr1 = mul1->
buf;
7848 mem2 = bitptr2 = mul2->
buf;
7860 if (num_index_term > 0)
7862 last = num_index_term;
7869 for (i = 0; start_colp && i < *start_colp; i++, dom1 = dom1->
next, dom2 = dom2->
next)
7892 for (c =
DB_EQ; i < last; i++, dom1 = dom1->next, dom2 = dom2->
next)
7905 c = dom1->type->index_cmpdisk (mem1, mem2, dom1, do_coercion, total_order,
NULL);
8034 if (start_colp !=
NULL)
8043 if (result_size1 !=
NULL)
8053 *result_size1 = size1 + adv_size1;
8055 if (result_size2 !=
NULL)
8065 *result_size2 = size2 + adv_size2;
8070 *dom_is_desc = *next_dom_is_desc =
false;
8076 *dom_is_desc =
true;
8079 if (dom1->next && dom1->next->is_desc)
8081 *next_dom_is_desc =
true;
8095 int dummy_diff_column;
8096 bool dummy_dom_is_desc, dummy_next_dom_is_desc;
8101 if (midxkey1 ==
NULL || midxkey2 ==
NULL)
8107 if (midxkey1 == midxkey2)
8124 NULL,
NULL, &dummy_diff_column, &dummy_dom_is_desc,
8125 &dummy_next_dom_is_desc);
8150 int dummy_diff_column;
8151 bool dummy_dom_is_desc =
false, dummy_next_dom_is_desc;
8177 midxkey1.
buf = (
char *) mem1;
8178 midxkey2.
buf = (
char *) mem2;
8181 for (cmp_dom = domain->
setdomain; cmp_dom; cmp_dom = cmp_dom->
next)
8186 midxkey1.
size = midxkey2.
size = -1;
8191 &dummy_diff_column, &dummy_dom_is_desc, &dummy_next_dom_is_desc);
8208 int idx_ncols = 0,
i, adv_size;
8212 buf = (
char *) memptr;
8221 #if !defined (NDEBUG) 8234 assert (dom_ncols == idx_ncols);
8244 for (
i = 0, dom = domain->
setdomain; i < idx_ncols; i++, dom = dom->next)
8386 int src_precision, src_scale, byte_size;
8401 if (src_num ==
NULL || src_precision != domain->
precision || src_scale != domain->
scale)
8410 memcpy (num, src_num, byte_size);
8507 int src_precision, src_scale;
8532 error =
db_make_numeric (dest, src_numeric, src_precision, src_scale);
8576 int precision, disk_size;
8582 if (numeric !=
NULL)
8586 rc =
or_put_data (buf, (
char *) numeric, disk_size);
8664 or_init (&buf, (
char *) mem1, 0);
8671 or_init (&buf, (
char *) mem2, 0);
8737 type = tp_Type_id_map[(int)
id];
8829 int is_variable = 0;
8866 type = tp_Type_id_map[
i];
9016 for (dom = domains, i = 0; dom; dom = dom->
next, i++)
9039 int idx_ncols = 0,
i;
9063 bitptr = midxkey->
buf;
9113 int i, offset_postfix, offset_prefix;
9126 midx_result.
size = offset_prefix + (midx_postfix->
size - offset_postfix);
9131 memcpy (midx_result.
buf, midx_prefix->
buf, offset_prefix);
9133 #if !defined(NDEBUG) 9134 for (i = 0; i < n_prefix; i++)
9140 for (i = n_prefix; i < midx_result.
ncolumns; i++)
9152 memcpy (midx_result.
buf + offset_prefix, midx_postfix->
buf + offset_postfix, midx_postfix->
size - offset_postfix);
9173 int i, start, offset;
9180 memmove (midx_key->
buf + start, midx_key->
buf + offset, midx_key->
size - offset);
9182 for (i = 0; i < prefix; i++)
9187 midx_key->
size = midx_key->
size - offset + start;
9202 int diff_column, ret;
9203 bool dom_is_desc =
false, next_dom_is_desc =
false;
9214 ret =
pr_midxkey_compare (midx_lf_key, midx_uf_key, 0, 1, -1,
NULL,
NULL,
NULL, &diff_column, &dom_is_desc,
9241 int idx_ncols = 0,
i;
9264 #if !defined (NDEBUG) 9278 assert (dom_ncols == idx_ncols);
9283 bitptr = midxkey->
buf;
9297 if (prev_indexp && prev_ptrp)
9303 if (j <= 0 || j > index || offset <= 0)
9310 or_init (buf, *prev_ptrp, midxkey->
size - offset);
9315 domain = domain->
next;
9345 error = domain->type->index_readval (buf, value, domain, -1, copy,
NULL, 0);
9352 if (prev_indexp && prev_ptrp)
9354 *prev_indexp = index + 1;
9355 *prev_ptrp = buf->
ptr;
9390 int size1, size2, diff_column;
9391 int result_size = 0;
9395 bool dom_is_desc =
false, next_dom_is_desc =
false;
9411 c =
pr_midxkey_compare (midxkey1, midxkey2, 0, 1, -1,
NULL, &size1, &size2, &diff_column, &dom_is_desc,
9424 if (size1 == midxkey1->
size || size2 == midxkey2->
size 9434 assert (size2 < midxkey2->size);
9436 if (!next_dom_is_desc)
9438 result_buf = midxkey2->
buf;
9439 result_size = size2;
9443 result_buf = midxkey1->
buf;
9444 result_size = size1;
9448 if (result_midxkey.
buf ==
NULL)
9455 (void) memcpy (result_midxkey.
buf, result_buf, result_size);
9456 result_midxkey.
size = result_size;
9459 for (i = diff_column + 1; i < result_midxkey.
ncolumns; i++)
9470 #if !defined(NDEBUG) 9472 c =
pr_midxkey_compare (midxkey1, &result_midxkey, 0, 1, -1,
NULL, &size1, &size2, &diff_column, &dom_is_desc,
9482 c =
pr_midxkey_compare (&result_midxkey, midxkey2, 0, 1, -1,
NULL, &size1, &size2, &diff_column, &dom_is_desc,
9512 prev_indexp, prev_ptrp);
9526 unsigned char *bits;
9530 bits = (
unsigned char *) bufptr;
9532 for (i = 0; i < nbytes; i++)
9534 bits[
i] = (
unsigned char) 0;
9557 int bitmap_size = 0;
9564 if (midxkey ==
NULL)
9573 total_size = midxkey->
size;
9578 total_size = bitmap_size;
9586 if (new_IDXbuf ==
NULL)
9591 or_init (&buf, new_IDXbuf, -1);
9592 bound_bits = buf.
ptr;
9606 for (i = 0, dom = dbvals_domain_list; i < num_dbvals; i++, dom = dom->
next)
9614 dom->type->index_writeval (&buf, &dbvals[i]);
9622 if (midxkey->
size > 0)
9764 unsigned short short_val;
9765 const char *str_val;
9766 int enum_count, str_val_size, idx;
9783 if (short_val > enum_count)
9802 if (str_val_tmp ==
NULL)
9807 str_val_tmp[str_val_size] = 0;
9808 str_val = str_val_tmp;
9816 else if (str_val ==
NULL)
9822 for (idx = 0; idx < enum_count; idx++)
9971 *(
char **) mem =
NULL;
9985 char *cur, *new_, **mem;
9986 int src_precision, src_length, new_length;
9989 mem = (
char **) memptr;
10011 if (src_length < 0)
10013 src_length =
strlen (src);
10018 new_length = src_length +
sizeof (int) + 1;
10033 *(
int *) new_ = src_length;
10034 cur = new_ +
sizeof (int);
10036 memcpy (cur, src, src_length);
10038 cur[src_length] =
'\0';
10051 char **mem, *cur, *new_;
10054 mem = (
char **) memptr;
10065 mem_length = *(
int *) cur;
10066 cur +=
sizeof (int);
10091 memcpy (new_, cur, mem_length);
10092 new_[mem_length] =
'\0';
10124 else if (memptr !=
NULL)
10126 mem = (
char **) memptr;
10130 len = *(
int *) cur;
10152 int rc =
NO_ERROR, compressed_length = 0, decompressed_length = 0, length = 0;
10163 or_init (&buf, (
char *) memptr, -1);
10167 if (compressed_length > 0)
10169 charlen = compressed_length;
10173 charlen = decompressed_length;
10193 mem = (
char **) memptr;
10197 len = *(
int *) cur;
10198 cur +=
sizeof (int);
10216 char **mem, *cur, *new_;
10218 int mem_length, pad;
10231 if (memptr ==
NULL)
10240 mem = (
char **) memptr;
10251 int compressed_size;
10270 mem_length = len +
sizeof (int) + 1;
10280 *(
int *) new_ = len;
10281 cur = new_ +
sizeof (int);
10298 pad = size - (int) (buf->
ptr - start);
10313 if (memptr !=
NULL)
10315 cur = *(
char **) memptr;
10332 int src_precision, src_length;
10333 const char *src_str;
10334 char *new_, *new_compressed_buf;
10360 if (src_length < 0)
10362 src_length =
strlen (src_str);
10386 memcpy (new_, src_str, src_length);
10387 new_[src_length] =
'\0';
10401 if (new_compressed_buf ==
NULL)
10469 bool is_temporary_data =
false;
10472 int compressed_size = 0;
10505 if (compressed_size > 0)
10508 is_temporary_data =
true;
10520 is_temporary_data =
true;
10532 if (is_temporary_data ==
true)
10548 int src_length, compressed_size;
10549 const char *str, *compressed_string;
10551 const char *string;
10557 if (src_length < 0)
10559 src_length =
strlen (str);
10585 if (compressed_string ==
NULL)
10594 assert (compressed_size > 0);
10595 string = compressed_string;
10603 size = compressed_size;
10613 int copy_buf_len,
int align)
10615 int pad, precision;
10619 int compressed_size = 0, expected_decompressed_size = 0;
10620 char *decompressed_string =
NULL, *
string =
NULL, *compressed_string =
NULL;
10621 int decompressed_size = 0;
10622 bool compressed_need_clear =
false;
10640 if (domain !=
NULL)
10669 if (compressed_size > 0)
10671 str_length = compressed_size;
10674 if (
string ==
NULL)
10677 expected_decompressed_size *
sizeof (
char));
10689 string[expected_decompressed_size] =
'\0';
10695 if (compressed_string ==
NULL)
10698 (compressed_size + 1) *
sizeof (
char));
10703 memcpy (compressed_string, start, compressed_size);
10704 compressed_string[compressed_size] =
'\0';
10710 assert (compressed_size == 0);
10712 str_length = expected_decompressed_size;
10744 if (compressed_size <= 0)
10746 assert (compressed_size == 0);
10747 str_length = expected_decompressed_size;
10751 str_length = compressed_size;
10754 if (copy_buf && copy_buf_len >= str_length + 1)
10798 if (new_ != copy_buf)
10806 if (compressed_size > 0)
10809 assert (expected_decompressed_size > 0);
10811 decompressed_size = 0;
10815 if (decompressed_string ==
NULL)
10818 (
size_t) expected_decompressed_size *
sizeof (
char));
10824 decompressed_size =
10825 LZ4_decompress_safe (new_, decompressed_string, compressed_size, expected_decompressed_size);
10826 if (decompressed_size < 0)
10832 assert (decompressed_size == expected_decompressed_size);
10835 if (compressed_string ==
NULL)
10838 (
size_t) (compressed_size + 1) *
sizeof (
char));
10843 memcpy (compressed_string, new_, compressed_size);
10844 compressed_string[compressed_size] =
'\0';
10845 compressed_need_clear =
true;
10847 if (new_ != copy_buf)
10852 new_ = decompressed_string;
10853 str_length = expected_decompressed_size;
10856 new_[str_length] =
'\0';
10865 value->
need_clear = (new_ != copy_buf) ?
true :
false;
10867 if (compressed_string ==
NULL)
10870 compressed_need_clear =
false;
10885 pad = size - (int) (buf->
ptr - start);
10896 if (new_ !=
NULL && new_ != copy_buf && rc !=
NO_ERROR)
10927 int str_length1, str1_compressed_length = 0, str1_decompressed_length = 0;
10928 int str_length2, str2_compressed_length = 0, str2_decompressed_length = 0;
10931 char *string1 =
NULL, *string2 =
NULL;
10932 bool alloced_string1 =
false, alloced_string2 =
false;
10940 str1 = (
char *) mem1;
10941 str2 = (
char *) mem2;
10946 if (!ignore_trailing_space)
10976 if (string1 ==
NULL)
10983 alloced_string1 =
true;
10991 str_length1 = str1_decompressed_length;
10992 string1[str_length1] =
'\0';
11019 if (string2 ==
NULL)
11026 alloced_string2 =
true;
11034 str_length2 = str2_decompressed_length;
11035 string2[str_length2] =
'\0';
11051 QSTR_COMPARE (domain->
collation_id, (
unsigned char *) string1, str_length1, (
unsigned char *) string2, str_length2,
11056 if (string1 !=
NULL && alloced_string1 ==
true)
11061 if (string2 !=
NULL && alloced_string2 ==
true)
11069 if (string1 !=
NULL && alloced_string1 ==
true)
11074 if (string2 !=
NULL && alloced_string2 ==
true)
11133 size1 =
strlen ((
char *) string1);
11138 size2 =
strlen ((
char *) string2);
11141 if (collation == -1)
11147 if (!ignore_trailing_space)
11153 for (i = size1; i > 1; i--)
11155 if (string1[i - 1] != 0x20)
11165 for (i = size2; i > 1; i--)
11167 if (string2[i - 1] != 0x20)
11178 strc =
QSTR_COMPARE (collation, string1, size1, string2, size2, ti);
11184 #if defined (ENABLE_UNUSED_FUNCTION) 11186 mr_cmpval_string2 (
DB_VALUE * value1,
DB_VALUE * value2,
int length,
int do_coercion,
int total_order,
int *start_colp)
11189 int len1, len2, string_size;
11194 if (string1 ==
NULL || string2 ==
NULL)
11200 len1 = MIN (string_size, length);
11202 len2 = MIN (string_size, length);
11212 "character varying",
DB_TYPE_STRING, 1,
sizeof (
const char *), 0, 1,
11243 #if !defined(NDEBUG) 11249 memset (memptr, 0, mem_length);
11274 int src_precision, src_length, mem_length, pad;
11294 if (src_length < 0)
11296 src_length =
strlen (src);
11305 if (mem_length < src_length)
11317 mem = (
char *) memptr;
11318 memcpy (mem, src, src_length);
11324 pad = mem_length - src_length;
11329 for (i = src_length; i < mem_length; i++)
11353 if (mem_length == 0)
11360 new_ = (
char *) mem;
11370 memcpy (new_, (
char *) mem, mem_length);
11372 new_[mem_length] =
'\0';
11436 int mem_length, padding;
11460 if (size != -1 && mem_length > size)
11475 padding = size - mem_length;
11499 int src_precision, src_length;
11501 const char *src_string;
11511 if (src_precision == 0)
11521 if (src_string !=
NULL)
11531 if (src_length < 0)
11533 src_length =
strlen (src_string);
11545 memcpy (new_, src_string, src_length);
11546 new_[src_length] =
'\0';
11569 int packed_length, src_precision;
11591 if (packed_length < 0)
11593 packed_length =
strlen (src);
11608 return packed_length;
11630 int src_precision, src_length, packed_length, pad;
11646 if (src_length < 0)
11648 src_length =
strlen (src);
11653 if (packed_length < src_length)
11665 pad = packed_length - src_length;
11669 for (i = src_length; i < packed_length; i++)
11689 if (packed_length < 0)
11691 packed_length =
strlen (src);
11729 int copy_buf_len,
int align)
11731 int mem_length, padding;
11732 int str_length, precision;
11770 if (copy_buf && copy_buf_len >= mem_length + 1)
11794 if (new_ != copy_buf)
11800 new_[mem_length] =
'\0';
11803 value->
need_clear = (new_ != copy_buf) ?
true :
false;
11815 if (disk_size != -1 && mem_length > disk_size)
11830 else if (disk_size == 0)
11837 if (str_length == 0)
11839 str_length = mem_length;
11848 if (copy_buf && copy_buf_len >= mem_length + 1)
11871 int actual_size = 0;
11875 if (new_ != copy_buf)
11882 if (actual_size == 0)
11884 actual_size = mem_length;
11886 new_[actual_size] =
'\0';
11889 value->
need_clear = (new_ != copy_buf) ?
true :
false;
11900 if (disk_size != -1)
11902 padding = disk_size - mem_length;
11934 int mem_length1, mem_length2, strc;
11965 if (!ignore_trailing_space)
11981 int strc, size1, size2;
12021 if (collation == -1)
12035 if (do_coercion == 2)
12044 else if (do_coercion == 3)
12048 else if (!ignore_trailing_space &&
12056 for (i = size1; i > 1; i--)
12058 if (string1[i - 1] != 0x20)
12068 for (i = size2; i > 1; i--)
12070 if (string2[i - 1] != 0x20)
12087 #if defined (ENABLE_UNUSED_FUNCTION) 12089 mr_cmpval_char2 (
DB_VALUE * value1,
DB_VALUE * value2,
int length,
int do_coercion,
int total_order,
int *start_colp)
12092 int len1, len2, string_size;
12097 if (string1 ==
NULL || string2 ==
NULL)
12103 len1 = MIN (string_size, length);
12105 len2 = MIN (string_size, length);
12146 #if !defined(NDEBUG) 12152 memset (memptr, 0, mem_length);
12176 int src_precision, src_length, mem_length, pad;
12194 if (src_length < 0)
12196 src_length =
strlen (src);
12207 if (mem_length < src_length)
12219 mem = (
char *) memptr;
12220 memcpy (mem, src, src_length);
12226 pad = mem_length - src_length;
12231 for (i = src_length; i < mem_length; i++)
12259 if (mem_length == 0)
12266 new_ = (
char *) mem;
12276 memcpy (new_, (
char *) mem, mem_length);
12278 new_[mem_length] =
'\0';
12341 int mem_length, padding;
12363 if (size != -1 && mem_length > size)
12378 padding = size - mem_length;
12402 int src_precision, src_length;
12404 const char *src_string;
12421 if (src_string !=
NULL)
12431 if (src_length < 0)
12433 src_length =
strlen (src_string);
12445 memcpy (new_, src_string, src_length);
12446 new_[src_length] =
'\0';
12467 int packed_length, src_precision;
12480 packed_length =
STR_SIZE (src_precision, src_codeset);
12487 if (packed_length < 0)
12489 packed_length =
strlen (src);
12492 #if !defined (SERVER_MODE) 12507 intl_convert_charset ((
unsigned char *) src, char_count, src_codeset, (
unsigned char *) converted_string,
12510 if (converted_string)
12512 intl_char_size ((
unsigned char *) converted_string, (char_count - unconverted), src_codeset,
12531 return packed_length;
12553 int src_precision, src_size, packed_size, pad;
12558 char *converted_string =
NULL;
12573 src_size =
strlen (src);
12576 #if !defined (SERVER_MODE) 12583 (void)
intl_convert_charset ((
unsigned char *) src, char_count, src_codeset, (
unsigned char *) converted_string,
12586 src = converted_string;
12587 src_precision = src_precision - unconverted;
12588 intl_char_size ((
unsigned char *) converted_string, (char_count - unconverted), src_codeset, &src_size);
12591 intl_pad_char (src_codeset, (
unsigned char *) pad_char, &pad_charsize);
12605 packed_size =
STR_SIZE (src_precision, src_codeset);
12607 if (packed_size < src_size)
12620 pad = packed_size - src_size;
12624 for (i = src_size; i < packed_size; i += pad_charsize)
12627 if (i + 1 < packed_size && pad_charsize == 2)
12668 if (converted_string)
12692 int copy_buf_len,
int align)
12694 int mem_length, padding;
12732 if (copy_buf && copy_buf_len >= mem_length + 1)
12759 if (new_ != copy_buf)
12765 new_[mem_length] =
'\0';
12768 value->
need_clear = (new_ != copy_buf) ?
true :
false;
12776 if (disk_size != -1 && mem_length > disk_size)
12797 if (str_length == 0)
12799 str_length = mem_length;
12808 if (copy_buf && copy_buf_len >= mem_length + 1)
12832 int actual_size = 0;
12837 if (new_ != copy_buf)
12845 if (actual_size == 0)
12847 actual_size = mem_length;
12849 new_[actual_size] =
'\0';
12852 value->
need_clear = (new_ != copy_buf) ?
true :
false;
12860 if (disk_size != -1)
12862 padding = disk_size - mem_length;
12872 #if !defined (SERVER_MODE) 12877 const char *temp_string =
db_get_nchar (value, &char_count);
12879 if (char_count > 0)
12913 int *start_colp,
int align)
12916 int mem_length1, mem_length2, strc;
12953 int strc, size1, size2;
12969 if (collation == -1)
12983 if (do_coercion == 2)
12992 else if (do_coercion == 3)
12996 else if (!ignore_trailing_space &&
13004 for (i = size1; i > 1; i--)
13006 if (string1[i - 1] != 0x20)
13016 for (i = size2; i > 1; i--)
13018 if (string2[i - 1] != 0x20)
13035 #if defined (ENABLE_UNUSED_FUNCTION) 13037 mr_cmpval_nchar2 (
DB_VALUE * value1,
DB_VALUE * value2,
int length,
int do_coercion,
int total_order,
int *start_colp)
13040 int len1, len2, string_size;
13045 if (string1 ==
NULL || string2 ==
NULL)
13051 len1 = MIN (string_size, length);
13053 len2 = MIN (string_size, length);
13095 *(
char **) mem =
NULL;
13109 char *cur, *new_, **mem;
13110 int src_precision, src_length, new_length;
13113 mem = (
char **) memptr;
13135 if (src_length < 0)
13137 src_length =
strlen (src);
13145 new_length = src_length +
sizeof (int) + 1;
13160 *(
int *) new_ = src_length;
13161 cur = new_ +
sizeof (int);
13163 memcpy (cur, src, src_length);
13165 cur[src_length] =
'\0';
13178 char **mem, *cur, *new_;
13181 mem = (
char **) memptr;
13192 mem_length = *(
int *) cur;
13193 cur +=
sizeof (int);
13218 memcpy (new_, cur, mem_length);
13219 new_[mem_length] =
'\0';
13251 else if (memptr !=
NULL)
13253 mem = (
char **) memptr;
13257 len = *(
int *) cur;
13286 mem = (
char **) memptr;
13290 len = *(
int *) cur;
13291 cur +=
sizeof (int);
13316 if (memptr !=
NULL)
13318 cur = *(
char **) memptr;
13337 int src_precision, src_length;
13339 const char *src_str;
13355 if (src_length < 0)
13357 src_length =
strlen (src_str);
13377 memcpy (new_, src_str, src_length);
13378 new_[src_length] =
'\0';
13392 if (new_compressed_buf ==
NULL)
13461 bool is_temporary_data =
false;
13462 int compressed_size = 0;
13464 #if !defined (SERVER_MODE) 13474 src_size =
strlen (str);
13486 if (compressed_size > 0)
13490 is_temporary_data =
true;
13502 is_temporary_data =
true;
13505 #if !defined (SERVER_MODE) 13518 intl_convert_charset ((
unsigned char *) str, char_count, src_codeset, (
unsigned char *) converted_string,
13521 if (converted_string)
13523 intl_char_size ((
unsigned char *) converted_string, (char_count - unconverted), src_codeset, &len);
13538 if (is_temporary_data ==
true)
13549 int src_size,
size, compressed_size;
13551 const char *str, *string;
13552 char *compressed_string;
13560 src_size =
strlen (str);
13564 #if !defined (SERVER_MODE) 13572 (
unsigned char *) converted_string,
lang_charset (), &unconverted);
13574 if (converted_string)
13576 intl_char_size ((
unsigned char *) converted_string, (char_count - unconverted), src_codeset, &src_size);
13613 if (compressed_string ==
NULL)
13620 assert (compressed_size > 0);
13621 string = compressed_string;
13629 size = compressed_size;
13640 int copy_buf_len,
int align)
13642 int pad, precision;
13643 #if !defined (SERVER_MODE) 13646 char *new_ =
NULL, *start =
NULL, *
string =
NULL, *compressed_string =
NULL;
13647 int str_length, expected_decompressed_size = 0, compressed_size = 0;
13648 char *decompressed_string =
NULL;
13650 bool compressed_need_clear =
false;
13668 if (domain !=
NULL)
13671 #if !defined (SERVER_MODE) 13678 #if !defined (SERVER_MODE) 13707 if (compressed_size > 0)
13709 str_length = compressed_size;
13711 if (
string ==
NULL)
13714 expected_decompressed_size *
sizeof (
char));
13728 string[expected_decompressed_size] =
'\0';
13734 if (compressed_string ==
NULL)
13737 (compressed_size + 1) *
sizeof (
char));
13742 memcpy (compressed_string, start, compressed_size);
13743 compressed_string[compressed_size] =
'\0';
13744 compressed_need_clear =
true;
13749 str_length = expected_decompressed_size;
13784 if (compressed_size <= 0)
13786 assert (compressed_size == 0);
13787 str_length = expected_decompressed_size;
13791 str_length = compressed_size;
13794 if (copy_buf && copy_buf_len >= str_length + 1)
13837 if (new_ != copy_buf)
13844 if (compressed_size > 0)
13847 int decompressed_size = 0;
13849 assert (expected_decompressed_size > 0);
13854 if (decompressed_string ==
NULL)
13857 (
size_t) expected_decompressed_size *
sizeof (
char));
13863 decompressed_size =
13864 LZ4_decompress_safe (new_, decompressed_string, compressed_size, expected_decompressed_size);
13865 if (decompressed_size < 0)
13872 assert (decompressed_size == expected_decompressed_size);
13878 if (compressed_string ==
NULL)
13881 (
size_t) (compressed_size + 1) *
sizeof (
char));
13886 memcpy (compressed_string, new_, compressed_size);
13887 compressed_string[compressed_size] =
'\0';
13888 compressed_need_clear =
true;
13890 if (new_ != copy_buf)
13895 new_ = decompressed_string;
13896 str_length = expected_decompressed_size;
13905 new_[str_length] =
'\0';
13908 value->
need_clear = (new_ != copy_buf) ?
true :
false;
13910 if (compressed_string ==
NULL)
13913 compressed_need_clear =
false;
13928 pad = size - (int) (buf->
ptr - start);
13938 #if !defined (SERVER_MODE) 13943 const char *temp_string =
db_get_nchar (value, &char_count);
13945 if (char_count > 0)
13948 (void)
intl_convert_charset ((
unsigned char *) temp_string, char_count, codeset, (
unsigned char *) new_,
13970 if (new_ !=
NULL && new_ != copy_buf && rc !=
NO_ERROR)
13996 int str_length1, str1_compressed_length = 0, str1_decompressed_length = 0;
13997 int str_length2, str2_compressed_length = 0, str2_decompressed_length = 0;
13999 char *string1 =
NULL, *string2 =
NULL;
14000 bool alloced_string1 =
false, alloced_string2 =
false;
14006 str1 = (
char *) mem1;
14007 str2 = (
char *) mem2;
14036 if (string1 ==
NULL)
14042 alloced_string1 =
true;
14050 str_length1 = str1_decompressed_length;
14051 string1[str_length1] =
'\0';
14076 if (string2 ==
NULL)
14083 alloced_string2 =
true;
14091 str_length2 = str2_decompressed_length;
14092 string2[str_length2] =
'\0';
14111 if (string1 !=
NULL && alloced_string1 ==
true)
14116 if (string2 !=
NULL && alloced_string2 ==
true)
14124 if (string1 !=
NULL && alloced_string1 ==
true)
14129 if (string2 !=
NULL && alloced_string2 ==
true)
14142 int strc, size1, size2;
14158 if (collation == -1)
14169 size1 =
strlen ((
char *) string1);
14174 size2 =
strlen ((
char *) string2);
14177 if (!ignore_trailing_space)
14183 for (i = size1; i > 1; i--)
14185 if (string1[i - 1] != 0x20)
14195 for (i = size2; i > 1; i--)
14197 if (string2[i - 1] != 0x20)
14214 #if defined (ENABLE_UNUSED_FUNCTION) 14216 mr_cmpval_varnchar2 (
DB_VALUE * value1,
DB_VALUE * value2,
int length,
int do_coercion,
int total_order,
14220 int len1, len2, string_size;
14225 if (string1 ==
NULL || string2 ==
NULL)
14231 len1 = MIN (string_size, length);
14233 len2 = MIN (string_size, length);
14243 "national character varying",
DB_TYPE_VARNCHAR, 1,
sizeof (
const char *), 0, 1,
14274 #if !defined(NDEBUG) 14281 memset (memptr, 0, mem_length);
14305 int src_precision, src_length, mem_length, pad;
14331 if (mem_length < src_length)
14343 mem = (
char *) memptr;
14344 memcpy (mem, src, src_length);
14347 pad = mem_length - src_length;
14352 for (i = src_length; i < mem_length; i++)
14373 new_ = (
char *) mem;
14383 memcpy (new_, (
char *) mem, mem_length);
14424 int mem_length, padding;
14444 if (size != -1 && mem_length > size)
14459 padding = size - mem_length;
14483 int src_precision, src_length, src_number_of_bits = 0;
14485 const char *src_string =
NULL;
14495 src_string =
db_get_bit (src, &src_number_of_bits);
14502 if (src_string !=
NULL)
14506 db_make_bit (dest, src_precision, src_string, src_number_of_bits);
14520 memcpy (new_, src_string, src_length);
14521 db_make_bit (dest, src_precision, new_, src_number_of_bits);
14562 int packed_length, src_precision;
14596 return packed_length;
14618 int src_precision, src_length, packed_length, pad;
14636 if (packed_length < src_length)
14647 pad = packed_length - src_length;
14652 for (i = src_length; i < packed_length; i++)
14707 int copy_buf_len,
int align)
14709 int mem_length, padding;
14742 if (copy_buf && copy_buf_len >= mem_length + 1)
14769 if (new_ != copy_buf)
14776 new_[mem_length] =
'\0';
14778 value->
need_clear = (new_ != copy_buf) ?
true :
false;
14787 if (disk_size != -1 && mem_length > disk_size)
14811 if (copy_buf && copy_buf_len >= mem_length + 1)
14838 if (new_ != copy_buf)
14845 new_[mem_length] =
'\0';
14847 value->
need_clear = (new_ != copy_buf) ?
true :
false;
14857 if (disk_size != -1)
14859 padding = disk_size - mem_length;
14892 int bit_length1, mem_length1, bit_length2, mem_length2, bitc;
14917 bitc =
bit_compare ((
unsigned char *) mem1, mem_length1, (
unsigned char *) mem2, mem_length2);
14932 if (string1 ==
NULL || string2 ==
NULL)
14947 int len1, len2, string_size;
14953 if (string1 ==
NULL || string2 ==
NULL)
14959 len1 = MIN (string_size, length);
14961 len2 = MIN (string_size, length);
14963 bitc =
bit_compare (string1, len1, string2, len2);
15002 *(
char **) mem =
NULL;
15016 char *cur, *new_, **mem;
15017 int src_precision, src_length, src_length_bits, new_length;
15020 mem = (
char **) memptr;
15043 new_length = src_length +
sizeof (int);
15058 *(
int *) new_ = src_length_bits;
15059 cur = new_ +
sizeof (int);
15061 memcpy (cur, src, src_length);
15073 int mem_bit_length;
15074 char **mem, *cur, *new_;
15077 mem = (
char **) memptr;
15088 mem_bit_length = *(
int *) cur;
15089 cur +=
sizeof (int);
15133 else if (memptr !=
NULL)
15135 mem = (
char **) memptr;
15139 len = *(
int *) cur;
15154 or_init (&buf, (
char *) memptr, -1);
15167 mem = (
char **) memptr;
15171 bitlen = *(
int *) cur;
15172 cur +=
sizeof (int);
15189 char **mem, *cur, *new_;
15191 int mem_length, pad;
15201 if (memptr ==
NULL)
15210 mem = (
char **) memptr;
15244 *(
int *) new_ = bit_len;
15245 cur = new_ +
sizeof (int);
15259 pad = size - (int) (buf->
ptr - start);
15274 if (memptr !=
NULL)
15276 cur = *(
char **) memptr;
15295 int src_precision, src_length, src_bit_length;
15297 const char *src_str;
15318 error =
db_make_varbit (dest, src_precision, src_str, src_bit_length);
15331 memcpy (new_, src_str, src_length);
15382 int bit_length, len;
15405 int src_bit_length;
15438 int copy_buf_len,
int align)
15440 int pad, precision;
15441 int str_bit_length, str_length;
15442 char *new_, *start =
NULL;
15459 if (domain !=
NULL)
15508 if (copy_buf && copy_buf_len >= str_length + 1)
15544 if (new_ != copy_buf)
15551 new_[str_length] =
'\0';
15553 value->
need_clear = (new_ != copy_buf) ?
true :
false;
15565 pad = size - (int) (buf->
ptr - start);
15591 int bit_length1, bit_length2;
15592 int mem_length1, mem_length2, bitc;
15598 or_init (&buf1, (
char *) mem1, 0);
15603 or_init (&buf2, (
char *) mem2, 0);
15608 bitc =
varbit_compare ((
unsigned char *) buf1.
ptr, mem_length1, (
unsigned char *) buf2.
ptr, mem_length2);
15624 if (string1 ==
NULL || string2 ==
NULL)
15639 int len1, len2, string_size;
15645 if (string1 ==
NULL || string2 ==
NULL)
15651 len1 = MIN (string_size, length);
15653 len2 = MIN (string_size, length);
15691 *(
unsigned short *) mem = 0;
15719 unsigned short short_val = 0;
15721 short_val = *(
short *) mem;
15729 const char *str =
NULL;
15730 bool need_clear =
false;
15742 if (str_tmp ==
NULL)
15769 unsigned short *mem = (
unsigned short *) memptr;
15784 *(
unsigned short *) mem = (
unsigned short)
or_get_short (buf, &rc);
15802 char *copy_buf,
int copy_buf_len)
15804 bool need_clear =
false;
15806 const char *str =
NULL;
15830 char *str_tmp =
NULL;
15831 if (copy_buf && copy_buf_len >= str_size + 1)
15834 str_tmp = copy_buf;
15835 need_clear =
false;
15840 if (str_tmp ==
NULL)
15848 str_tmp[str_size] = 0;
15921 unsigned short s1, s2;
15925 COPYMEM (
unsigned short, &s1, mem1);
15926 COPYMEM (
unsigned short, &s2, mem2);
15935 unsigned short s1, s2;
15949 unsigned short s1, s2;
15972 if (compressed_size > 0)
15974 int decompressed_size = 0;
15978 decompressed_size = LZ4_decompress_safe (buf->
ptr, data, compressed_size, expected_decompressed_size);
15979 if (decompressed_size < 0)
15985 assert (decompressed_size == expected_decompressed_size);
15987 data[decompressed_size] =
'\0';
15994 rc =
or_get_data (buf, data, expected_decompressed_size);
15995 data[expected_decompressed_size] =
'\0';
16012 char *compressed_string =
NULL;
16013 int compressed_length = 0;
16015 int length = 0, compress_buffer_size;
16024 compress_buffer_size = LZ4_compressBound (str_length);
16025 compressed_string = (
char *) malloc (compress_buffer_size);
16026 if (compressed_string ==
NULL)
16033 compressed_length = LZ4_compress_default (
string, compressed_string, str_length, compress_buffer_size);
16034 if (compressed_length <= 0)
16045 assert (compressed_length <= compress_buffer_size);
16047 if (compressed_length < str_length - 8)
16050 length = compressed_length;
16055 length = str_length;
16060 if (compressed_string !=
NULL)
16085 const char *
string =
NULL, *str =
NULL;
16086 char *compressed_string =
NULL;
16087 int rc =
NO_ERROR, str_length = 0, length = 0;
16088 int compression_length = 0, compress_buffer_size;
16089 bool compressed =
false;
16090 int save_error_abort = 0;
16105 length = str_length;
16106 compression_length = 0;
16108 goto after_compression;
16113 compress_buffer_size = LZ4_compressBound (str_length);
16114 compressed_string = (
char *) malloc (compress_buffer_size);
16115 if (compressed_string ==
NULL)
16122 compression_length = LZ4_compress_default (
string, compressed_string, str_length, compress_buffer_size);
16123 if (compression_length <= 0)
16135 assert (compression_length <= compress_buffer_size);
16137 if (compression_length < str_length - 8)
16140 length = (int) compression_length;
16142 str = compressed_string;
16147 length = str_length;
16148 compression_length = 0;
16191 if (compressed_string !=
NULL)
16217 int decompressed_length,
int align)
16219 int storage_length = 0;
16223 && (compressed_length <= 0 || decompressed_length <= LZ4_MAX_INPUT_SIZE));
16233 OR_PUT_INT (&storage_length, compressed_length);
16241 OR_PUT_INT (&storage_length, decompressed_length);
16249 if (compressed_length > 0)
16251 storage_length = compressed_length;
16255 storage_length = decompressed_length;
16259 rc =
or_put_data (buf, compressed_string, storage_length);
16342 int *compressed_length)
16344 int compressed_length_local = 0;
16346 assert (
string !=
NULL && compressed_string !=
NULL && compressed_length !=
NULL && str_length >= 0
16347 && compress_buffer_size >= 0);
16351 *compressed_length = 0;
16357 *compressed_length = -1;
16362 compressed_length_local = LZ4_compress_default (
string, compressed_string, str_length, compress_buffer_size);
16363 if (compressed_length_local <= 0)
16370 assert (compressed_length_local <= compress_buffer_size);
16372 if (compressed_length_local >= str_length - 8)
16376 *compressed_length = -1;
16381 *compressed_length = compressed_length_local;
16447 const char *string;
16448 char *compressed_string;
16450 int src_size = 0, compressed_size, compressed_length;
16483 compressed_size = LZ4_compressBound (src_size);
16485 if (compressed_string ==
NULL)
16499 if (compressed_length > 0)
16513 if (compressed_string !=
NULL)
16601 const char *json_schema =
NULL;
16650 len = tp_Json.
size;
16654 if (memptr !=
NULL)
16797 return tp_Json.
size;
16825 if ((ptrdiff_t) estimated_length > ((ptrdiff_t) (buf->
endptr - buf->
ptr)))
16850 char *json_raw =
NULL;
16876 char *first, *second;
16877 OR_BUF first_buf, second_buf;
16884 first = (
char *) mem1;
16885 second = (
char *) mem2;
16887 or_init (&first_buf, first, 0);
16888 or_init (&second_buf, second, 0);
16907 res =
mr_cmpval_json (&json1, &json2, do_coercion, total_order, 0, 0);
16927 DB_JSON_TYPE type1 = DB_JSON_UNKNOWN;
16928 DB_JSON_TYPE type2 = DB_JSON_UNKNOWN;
16929 DB_VALUE scalar_value1, scalar_value2;
16931 bool is_value1_null =
true, is_value2_null =
true;
16940 if (is_value1_null || is_value2_null)
16947 if (is_value1_null && is_value2_null)
16956 assert (type1 != DB_JSON_UNKNOWN && type2 != DB_JSON_UNKNOWN);
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_string(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_initval_time(DB_VALUE *value, int precision, int scale)
static int pr_midxkey_get_element_internal(const DB_MIDXKEY *midxkey, int index, DB_VALUE *value, bool copy, int *prev_indexp, char **prev_ptrp)
char * or_unpack_set(char *ptr, setobj **set, struct tp_domain *domain)
static int mr_setmem_set(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
static void mr_initval_midxkey(DB_VALUE *value, int precision, int scale)
#define OR_GET_DATE(ptr, value)
MIN_MAX_COLUMN_INFO min_max_val
DB_C_FLOAT db_get_float(const DB_VALUE *value)
initmem_function_type f_initmem
#define ER_IO_LZ4_DECOMPRESS_FAIL
struct db_domain_info::char_info char_info
DB_VALUE_COMPARE_RESULT set_compare_order(DB_COLLECTION *set1, DB_COLLECTION *set2, int do_coercion, int total_order)
static void mr_initval_bigint(DB_VALUE *value, int precision, int scale)
index_readval_function_type f_index_readval
static int mr_setmem_ptr(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
struct db_datetime DB_DATETIME
static void mr_data_writemem_enumeration(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
int bit_compare(const unsigned char *string1, int size1, const unsigned char *string2, int size2)
#define DB_GET_STRING_PRECISION(v)
static int mr_getmem_datetimeltz(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static void mr_initmem_bigint(void *mem, TP_DOMAIN *domain)
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)
static int mr_index_writeval_varbit(OR_BUF *buf, DB_VALUE *value)
static int mr_setval_multiset(DB_VALUE *dest, const DB_VALUE *src, bool copy)
#define OR_MULTI_ENABLE_BOUND_BIT(bitptr, element)
#define WS_IS_DELETED(mop)
static int mr_data_lengthmem_set(void *memptr, TP_DOMAIN *domain, int disk)
PR_TYPE * tp_Type_midxkey
static int mr_index_readval_numeric(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_writeval_nchar_internal(OR_BUF *buf, DB_VALUE *value, int align)
DB_VALUE_COMPARE_RESULT(* data_cmpdisk_function_type)(void *memptr1, void *memptr2, tp_domain *domain, int do_coercion, int total_order, int *start_colp)
static void mr_initmem_null(void *mem, TP_DOMAIN *domain)
static int mr_index_writeval_bit(OR_BUF *buf, DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_bit(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_data_lengthmem_varbit(void *memptr, TP_DOMAIN *domain, int disk)
#define DB_GET_ENUM_ELEM_STRING(elem)
static DB_VALUE_COMPARE_RESULT mr_cmpval_float(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
int pr_data_compress_string(const char *string, int str_length, char *compressed_string, int compress_buffer_size, int *compressed_length)
static void mr_data_writemem_json(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
#define OR_MULTI_ATT_IS_BOUND(bitptr, element)
int pr_Enable_string_compression
static int mr_data_writeval_null(OR_BUF *buf, DB_VALUE *value)
static void mr_freemem_set(void *memptr)
DB_COLLECTION * db_get_set(const DB_VALUE *value)
int db_value_scale(const DB_VALUE *value)
static int mr_setval_enumeration_internal(DB_VALUE *value, TP_DOMAIN *domain, unsigned short index, int size, bool copy, char *copy_buf, int copy_buf_len)
char buf[DB_SMALL_CHAR_BUF_SIZE]
static int mr_data_readval_oid(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
#define LANG_SYS_COLLATION
static int mr_setval_vobj(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static void mr_initval_money(DB_VALUE *value, int precision, int scale)
int pr_data_writeval_disk_size(DB_VALUE *value)
static void mr_data_writemem_char(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
static void mr_initmem_sub(void *mem, TP_DOMAIN *domain)
int pr_do_db_value_string_compression(DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_cmpval_short(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static int mr_getmem_varbit(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
int or_get_varbit_length(OR_BUF *buf, int *intval)
static int mr_data_readval_varnchar(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_setmem_short(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
DB_MIDXKEY * db_get_midxkey(const DB_VALUE *value)
static int mr_data_readval_string(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_index_readval_nchar(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int disk_size, bool copy, char *copy_buf, int copy_buf_len)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_elo(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
STATIC_INLINE int or_get_varchar_compression_lengths(OR_BUF *buf, int *compressed_size, int *decompressed_size) __attribute__((ALWAYS_INLINE))
static int mr_getmem_error(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
PR_TYPE * tp_Type_id_map[]
static void mr_initval_varbit(DB_VALUE *value, int precision, int scale)
float or_get_float(OR_BUF *buf, int *error)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_datetimetz(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static DB_VALUE_COMPARE_RESULT mr_cmpval_sequence(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static void mr_freemem_bit(void *memptr)
static int mr_data_writeval_time(OR_BUF *buf, DB_VALUE *value)
static int mr_setval_nchar(DB_VALUE *dest, const DB_VALUE *src, bool copy)
DB_VALUE_COMPARE_RESULT tp_value_compare(const DB_VALUE *value1, const DB_VALUE *value2, int allow_coercion, int total_order)
static int mr_data_lengthval_json(DB_VALUE *value, int disk)
int or_put_float(OR_BUF *buf, float num)
static int mr_readval_bit_internal(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int disk_size, bool copy, char *copy_buf, int copy_buf_len, int align)
static int mr_index_lengthval_numeric(DB_VALUE *value)
static int mr_data_lengthmem_ptr(void *memptr, TP_DOMAIN *domain, int disk)
int index_readval(struct or_buf *buf, DB_VALUE *value, const tp_domain *domain, int size, bool copy, char *copy_buf, int copy_buf_len) const
#define OR_MULTI_ATT_IS_UNBOUND(bitptr, element)
static int mr_getmem_enumeration(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static DB_VALUE_COMPARE_RESULT mr_cmpval_bigint(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
DB_VALUE * pr_make_value(void)
#define ER_IO_LZ4_COMPRESS_FAIL
int or_put_oid(OR_BUF *buf, const OID *oid)
void or_abort(OR_BUF *buf)
const char * fileio_get_zip_level_string(FILEIO_ZIP_LEVEL zip_level)
static DB_VALUE_COMPARE_RESULT mr_cmpval_numeric(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static int mr_setmem_char(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
static void mr_data_readmem_date(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
static int mr_data_writeval_variable(OR_BUF *buf, DB_VALUE *value)
MOP ws_mop(const OID *oid, MOP class_mop)
int data_writeval(struct or_buf *buf, const DB_VALUE *value) const
static void mr_data_readmem_datetime(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
unsigned int db_on_server
static void mr_freemem_char(void *memptr)
static int mr_index_readval_varnchar(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
DB_OBJECT * db_real_instance(DB_OBJECT *obj)
void area_destroy(AREA *area)
static int mr_data_readval_datetimetz(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static void mr_initval_multiset(DB_VALUE *value, int precision, int scale)
static void mr_initval_timestamptz(DB_VALUE *value, int precision, int scale)
static void mr_data_writemem_oid(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_varbit(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
int or_packed_varchar_length(int charlen)
DB_CONST_C_BIT db_get_bit(const DB_VALUE *value, int *length)
static DB_VALUE_COMPARE_RESULT mr_cmpval_nchar(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
#define TP_IS_SET_TYPE(typenum)
static DB_VALUE_COMPARE_RESULT mr_cmpval_varbit(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
#define ER_TF_BUFFER_OVERFLOW
DB_CONST_C_NCHAR db_get_nchar(const DB_VALUE *value, int *length)
JSON_DOC * db_get_json_document(const DB_VALUE *value)
static int mr_getmem_time(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
int get_index_size_of_value(const DB_VALUE *value) const
void set_free(DB_COLLECTION *set)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_nchar(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
const char * fileio_get_zip_method_string(FILEIO_ZIP_METHOD zip_method)
static void mr_initval_varnchar(DB_VALUE *value, int precision, int scale)
static int mr_writeval_varnchar_internal(OR_BUF *buf, DB_VALUE *value, int align)
static void mr_data_writemem_utime(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
PR_TYPE * tp_Type_substructure
data_cmpdisk_function_type get_data_cmpdisk_function() const
static int mr_index_writeval_short(OR_BUF *buf, DB_VALUE *value)
static int mr_writeval_bit_internal(OR_BUF *buf, DB_VALUE *value, int align)
static int mr_getmem_set(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
int db_make_bigint(DB_VALUE *value, const DB_BIGINT num)
int db_get_int(const DB_VALUE *value)
static int mr_index_readval_string(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_index_readval_oid(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_enumeration(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
int or_put_time(OR_BUF *buf, DB_TIME *timeval)
static DB_VALUE_COMPARE_RESULT mr_cmpval_resultset(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
DB_C_DOUBLE db_get_double(const DB_VALUE *value)
static void mr_initmem_nchar(void *memptr, TP_DOMAIN *domain)
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)
double or_get_double(OR_BUF *buf, int *error)
static void mr_data_writemem_object(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
int or_get_datetimetz(OR_BUF *buf, DB_DATETIMETZ *datetimetz)
static void mr_freemem_varbit(void *memptr)
freemem_function_type f_freemem
static void mr_initmem_double(void *mem, TP_DOMAIN *domain)
int pr_get_compressed_data_from_buffer(struct or_buf *buf, char *data, int compressed_size, int expected_decompressed_size)
static void mr_initval_null(DB_VALUE *value, int precision, int scale)
#define DB_GET_COMPRESSED_STRING(v)
int db_get_string_collation(const DB_VALUE *value)
int pr_midxkey_unique_prefix(const DB_VALUE *db_midxkey1, const DB_VALUE *db_midxkey2, DB_VALUE *db_result)
DB_COLLECTION * set_copy(DB_COLLECTION *set)
static DB_VALUE_COMPARE_RESULT mr_cmpval_object(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static DB_VALUE_COMPARE_RESULT mr_cmpval_vobj(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
struct db_monetary DB_MONETARY
int pr_midxkey_common_prefix(DB_VALUE *key1, DB_VALUE *key2)
static int mr_index_writeval_numeric(OR_BUF *buf, DB_VALUE *value)
struct tp_domain * setdomain
static void mr_data_writemem_float(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
char * db_json_get_json_body_from_document(const JSON_DOC &doc)
static int getmem_elo_with_type(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy, DB_TYPE type)
static DB_VALUE_COMPARE_RESULT mr_cmpval_varbit2(DB_VALUE *value1, DB_VALUE *value2, int length, int do_coercion, int total_order, int *start_colp)
cmpval_function_type get_cmpval_function() const
static void mr_data_writemem_varbit(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
static int mr_data_readval_blob(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_short(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
#define OR_BUF_INIT(buf, data, size)
data_writemem_function_type f_data_writemem
static int mr_data_writeval_datetimetz(OR_BUF *buf, DB_VALUE *value)
int or_put_datetimetz(OR_BUF *buf, DB_DATETIMETZ *datetimetz)
static int mr_setval_ptr(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static void mr_initmem_ptr(void *memptr, TP_DOMAIN *domain)
DB_VALUE_COMPARE_RESULT tp_value_compare_with_error(const DB_VALUE *value1, const DB_VALUE *value2, int do_coercion, int total_order, bool *can_compare)
#define OR_IS_STRING_LENGTH_COMPRESSABLE(str_length)
index_cmpdisk_function_type f_index_cmpdisk
static DB_VALUE_COMPARE_RESULT mr_cmpval_varnchar(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
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)
static int mr_setval_int(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_index_lengthmem_string(void *memptr, TP_DOMAIN *domain)
int or_get_oid(OR_BUF *buf, OID *oid)
int db_get_enum_string_size(const DB_VALUE *value)
int pr_is_variable_type(DB_TYPE id)
#define STR_SIZE(prec, codeset)
static int mr_data_readval_datetimeltz(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
#define assert_release(e)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_char(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
int or_put_varbit(OR_BUF *buf, const char *string, int bitlen)
int db_make_object(DB_VALUE *value, DB_C_OBJECT *obj)
static DB_VALUE_COMPARE_RESULT mr_cmpval_time(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static int mr_getmem_varnchar(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
int varbit_compare(const unsigned char *string1, int size1, const unsigned char *string2, int size2)
int db_make_pointer(DB_VALUE *value, DB_C_POINTER ptr)
DB_C_NUMERIC db_get_numeric(const DB_VALUE *value)
PR_TYPE * tp_Type_variable
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_string(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_data_lengthval_elo(DB_VALUE *value, int disk)
DB_COLLECTION * setobj_get_reference(COL *set)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_bit(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
int or_skip_varchar_remainder(OR_BUF *buf, int charlen, int align)
JSON_DOC * db_json_get_copy_of_doc(const JSON_DOC *doc)
static void mr_data_readmem_utime(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
static int mr_data_readval_timestamptz(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
int pr_midxkey_init_boundbits(char *bufptr, int n_atts)
static int mr_data_readval_set(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
int numeric_db_value_compare(const DB_VALUE *dbv1, const DB_VALUE *dbv2, DB_VALUE *answer)
static int mr_setval_double(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_index_readval_double(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_setval_date(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_data_writeval_short(OR_BUF *buf, DB_VALUE *value)
static void mr_initmem_oid(void *memptr, TP_DOMAIN *domain)
bool db_json_doc_is_uncomparable(const JSON_DOC *doc)
static DB_VALUE_COMPARE_RESULT mr_cmpdisk_char_internal(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp, int align)
static int mr_data_readval_bit(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int disk_size, bool copy, char *copy_buf, int copy_buf_len)
static void mr_data_writemem_date(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
static int mr_getmem_bigint(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static void mr_initval_error(DB_VALUE *value, int precision, int scale)
static int mr_index_writeval_time(OR_BUF *buf, DB_VALUE *value)
#define OID_SET_NULL(oidp)
DB_DATETIMETZ * db_get_datetimetz(const DB_VALUE *value)
int db_make_datetimeltz(DB_VALUE *value, const DB_DATETIME *datetime)
static void mr_null_oid(OID *oid)
DB_VALUE_COMPARE_RESULT(* cmpval_function_type)(DB_VALUE *value, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static int mr_data_writeval_string(OR_BUF *buf, DB_VALUE *value)
static int mr_index_writeval_float(OR_BUF *buf, DB_VALUE *value)
int db_make_sequence(DB_VALUE *value, DB_C_SET *set)
static int mr_data_writeval_nchar(OR_BUF *buf, DB_VALUE *value)
void vid_get_keys(MOP mop, DB_VALUE *value)
int or_varchar_length(int charlen)
static DB_VALUE_COMPARE_RESULT mr_cmpval_enumeration(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
int vid_object_to_vobj(const DB_OBJECT *obj, DB_VALUE *vobj)
static int mr_data_lengthval_object(DB_VALUE *value, int disk)
static void mr_initval_datetime(DB_VALUE *value, int precision, int scale)
void set_cmpval_function(cmpval_function_type cmpval_arg)
static int mr_data_readval_double(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_index_readval_datetime(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_lengthval_string_internal(DB_VALUE *value, int disk, int align)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_time(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_initval_date(DB_VALUE *value, int precision, int scale)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_float(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_data_writemem_double(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
int or_skip_varbit(OR_BUF *buf, int align)
static void mr_initval_resultset(DB_VALUE *value, int precision, int scale)
static int mr_data_lengthval_numeric(DB_VALUE *value, int disk)
static void mr_freemem_nchar(void *memptr)
DB_VALUE_COMPARE_RESULT set_seq_compare(DB_COLLECTION *set1, DB_COLLECTION *set2, int do_coercion, int total_order)
#define OR_MULTI_BOUND_BIT_BYTES(count)
static void mr_initmem_json(void *mem, TP_DOMAIN *domain)
static void mr_data_readmem_sub(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
const block_allocator PRIVATE_BLOCK_ALLOCATOR
static int mr_data_lengthval_set(DB_VALUE *value, int disk)
static int mr_getmem_object(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_data_lengthmem_midxkey(void *memptr, TP_DOMAIN *domain, int disk)
static int mr_getmem_datetimetz(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_index_readval_char(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int disk_size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_setval_datetimeltz(DB_VALUE *dest, const DB_VALUE *src, bool copy)
#define DB_VALUE_PRECISION(value)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_varnchar(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_data_readval_nchar(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int disk_size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_index_writeval_bigint(OR_BUF *buf, DB_VALUE *value)
static int mr_getmem_char(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_index_lengthval_char(DB_VALUE *value)
static int mr_index_lengthval_midxkey(DB_VALUE *value)
#define OR_GET_UTIME(ptr, value)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_object(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_initval_clob(DB_VALUE *value, int precision, int scale)
int or_put_date(OR_BUF *buf, DB_DATE *date)
int or_get_monetary(OR_BUF *buf, DB_MONETARY *monetary)
static void mr_freemem_elo(void *memptr)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_sequence(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_index_readval_float(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_data_writeval_varnchar(OR_BUF *buf, DB_VALUE *value)
static void mr_data_readmem_enumeration(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
#define DB_DOMAIN_INIT_CHAR(value, precision)
static void mr_data_writemem_string(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_float(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_data_writeval_error(OR_BUF *buf, DB_VALUE *value)
static int mr_data_lengthval_error(DB_VALUE *value, int disk)
int db_make_elo(DB_VALUE *value, DB_TYPE type, const DB_ELO *elo)
static int mr_getmem_sub(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_timestamptz(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_data_readval_vobj(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
AREA * area_create(const char *name, size_t element_size, size_t alloc_count)
static int mr_setval_float(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_setval_error(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_data_lengthmem_error(void *memptr, TP_DOMAIN *domain, int disk)
data_readval_function_type f_data_readval
static int mr_index_readval_bit(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int disk_size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_data_readval_date(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_data_readval_json(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
#define DB_VALUE_SCALE(value)
DB_ELO * db_get_elo(const DB_VALUE *value)
static void mr_data_writemem_timestamptz(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
PR_TYPE * tp_Type_Datetimetz
static int mr_getmem_null(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_data_readval_error(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static void mr_data_readmem_int(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
static int mr_data_readval_ptr(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_index_lengthmem_midxkey(void *memptr, TP_DOMAIN *domain)
PR_TYPE * tp_Type_varnchar
static int mr_index_writeval_object(OR_BUF *buf, DB_VALUE *value)
int or_put_utime(OR_BUF *buf, DB_UTIME *timeval)
static int mr_data_readval_utime(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_data_writeval_midxkey(OR_BUF *buf, DB_VALUE *value)
int db_init_db_json_pointers(DB_JSON *val)
static int mr_readval_string_internal(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len, int align)
static int mr_data_readval_midxkey(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_setval_bigint(DB_VALUE *dest, const DB_VALUE *src, bool copy)
#define REINTERPRET_CAST(dest_type, expr)
DB_TIMESTAMPTZ * db_get_timestamptz(const DB_VALUE *value)
int db_make_short(DB_VALUE *value, const DB_C_SHORT num)
static int mr_data_writeval_object(OR_BUF *buf, DB_VALUE *value)
PR_TYPE * tp_Type_pointer
void set_data_cmpdisk_function(data_cmpdisk_function_type data_cmpdisk_arg)
int pr_free_ext_value(DB_VALUE *value)
static void mr_initval_json(DB_VALUE *value, int precision, int scale)
static void peekmem_elo(OR_BUF *buf, DB_ELO *elo)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_error(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_index_readval_bigint(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_getmem_blob(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_index_writeval_datetime(OR_BUF *buf, DB_VALUE *value)
static int mr_setmem_time(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
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)
bool pr_is_set_type(DB_TYPE type)
INTL_CODESET lang_charset(void)
static int mr_data_readval_enumeration(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_index_readval_varbit(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_data_readval_timestampltz(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_setval_datetime(DB_VALUE *dest, const DB_VALUE *src, bool copy)
int or_get_utime(OR_BUF *buf, DB_UTIME *timeval)
int pr_index_writeval_disk_size(DB_VALUE *value)
unsigned int DB_TIMESTAMP
static int mr_data_writeval_enumeration(OR_BUF *buf, DB_VALUE *value)
PR_TYPE * pr_type_from_id(DB_TYPE id)
#define DB_MAX_VARBIT_PRECISION
int or_put_timestamptz(OR_BUF *buf, DB_TIMESTAMPTZ *ts_tz)
static int mr_getmem_timestamptz(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_index_writeval_nchar(OR_BUF *buf, DB_VALUE *value)
static int mr_data_lengthmem_bit(void *memptr, TP_DOMAIN *domain, int disk)
int pr_free_value(DB_VALUE *value)
#define ER_MR_NULL_DOMAIN
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
static int mr_index_writeval_date(OR_BUF *buf, DB_VALUE *value)
static void mr_data_writemem_bigint(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
std::size_t db_json_serialize_length(const JSON_DOC &doc)
enum db_elo_type DB_ELO_TYPE
int pr_mem_size(const PR_TYPE *type)
static int mr_setmem_oid(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
int db_value_put_encoded_time(DB_VALUE *value, const DB_TIME *time)
int db_make_enumeration(DB_VALUE *value, unsigned short index, DB_CONST_C_CHAR str, int size, unsigned char codeset, const int collation_id)
static int mr_setmem_elo(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
#define DB_MAX_VARCHAR_PRECISION
int tp_domain_match(const TP_DOMAIN *dom1, const TP_DOMAIN *dom2, TP_MATCH exact)
int pr_midxkey_add_elements(DB_VALUE *keyval, DB_VALUE *dbvals, int num_dbvals, struct tp_domain *dbvals_domain_list)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_sub(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_datetime(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_data_lengthmem_string(void *memptr, TP_DOMAIN *domain, int disk)
static int mr_index_lengthval_object(DB_VALUE *value)
PR_TYPE * tp_Type_numeric
static int mr_data_readval_variable(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static DB_VALUE_COMPARE_RESULT mr_cmpval_money(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
int set_get_setobj(DB_COLLECTION *ref, COL **setptr, int for_write)
int db_make_monetary(DB_VALUE *value, const DB_CURRENCY type, const double amount)
getmem_function_type f_getmem
static int mr_data_readval_datetime(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_data_readval_bigint(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
int or_packed_string_length(const char *string, int *strlen)
static void mr_initmem_resultset(void *mem, TP_DOMAIN *domain)
void pr_clear_value_vector(std::vector< DB_VALUE > &value_vector)
#define OR_ENABLE_BOUND_BIT(bitptr, element)
data_cmpdisk_function_type f_data_cmpdisk
static int mr_setmem_numeric(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
static int mr_index_readval_object(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static void mr_data_readmem_short(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
setval_function_type f_setval
int db_make_set(DB_VALUE *value, DB_C_SET *set)
static int mr_setval_bit(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_getmem_float(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
char * db_private_strdup(THREAD_ENTRY *thrd, const char *s)
int db_make_multiset(DB_VALUE *value, DB_C_SET *set)
static int mr_setval_timestampltz(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static void mr_data_readmem_timestamptz(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
void intl_pad_char(const INTL_CODESET codeset, unsigned char *pad_char, int *pad_size)
static int mr_data_readval_null(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static DB_VALUE_COMPARE_RESULT mr_cmpval_int(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static void mr_initmem_date(void *mem, TP_DOMAIN *domain)
int or_get_set_header(OR_BUF *buf, DB_TYPE *set_type, int *size, int *domain, int *bound_bits, int *offset_table, int *element_tags, int *common_sub_header)
int or_get_time(OR_BUF *buf, DB_TIME *timeval)
int or_get_short(OR_BUF *buf, int *error)
int ws_pin(MOP mop, int pin)
static void mr_data_writemem_sub(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
static void mr_initmem_varnchar(void *mem, TP_DOMAIN *domain)
static int mr_setval_json(DB_VALUE *dest, const DB_VALUE *src, bool copy)
int pr_get_size_and_write_string_to_buffer(struct or_buf *buf, char *val_p, DB_VALUE *value, int *val_size, int align)
#define OR_MULTI_CLEAR_BOUND_BIT(bitptr, element)
static void mr_initmem_char(void *memptr, TP_DOMAIN *domain)
#define ER_MR_TEMP_OID_WITHOUT_MOP
#define ER_OUT_OF_VIRTUAL_MEMORY
#define DB_ENUM_OVERFLOW_VAL
static int mr_data_writeval_elo(OR_BUF *buf, DB_VALUE *value)
int pr_get_compression_length(const char *string, int str_length)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_char(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
int or_disk_set_size(OR_BUF *buf, struct tp_domain *domain, DB_TYPE *set_type)
static int mr_data_writeval_numeric(OR_BUF *buf, DB_VALUE *value)
static int mr_writeval_string_internal(OR_BUF *buf, DB_VALUE *value, int align)
static int mr_index_writeval_enumeration(OR_BUF *buf, DB_VALUE *value)
enum special_column_type MIN_MAX_COLUMN_TYPE
static int mr_data_writeval_set(OR_BUF *buf, DB_VALUE *value)
static int mr_setmem_varbit(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
static int mr_data_readval_char(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int disk_size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_index_readval_int(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_money(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
#define OR_GET_OID(ptr, oid)
static int setval_elo_with_type(DB_VALUE *dest, const DB_VALUE *src, bool copy, DB_TYPE type)
static int mr_data_readval_short(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_getmem_money(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
need_clear_type need_clear
int or_put_int(OR_BUF *buf, int num)
static void mr_initval_datetimetz(DB_VALUE *value, int precision, int scale)
DB_BIGINT or_get_bigint(OR_BUF *buf, int *error)
#define OR_GET_DATETIME(ptr, datetime)
#define DB_VALUE_DOMAIN_TYPE(value)
static int mr_setmem_object(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
static int mr_data_lengthval_sub(DB_VALUE *value, int disk)
static void mr_initmem_numeric(void *memptr, TP_DOMAIN *domain)
int or_put_string_aligned(OR_BUF *buf, char *string)
int or_get_datetime(OR_BUF *buf, DB_DATETIME *datetime)
static void mr_initval_utime(DB_VALUE *value, int precision, int scale)
static int mr_lengthval_varnchar_internal(DB_VALUE *value, int disk, int align)
#define IS_FLOATING_PRECISION(prec)
static void mr_initval_int(DB_VALUE *value, int precision, int scale)
#define DOM_GET_ENUM_ELEM(dom, idx)
int db_convert_json_into_scalar(const DB_VALUE *src, DB_VALUE *dest)
#define DB_UNCOMPRESSABLE
static int mr_data_writeval_money(OR_BUF *buf, DB_VALUE *value)
static int mr_getmem_nchar(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static DB_VALUE_COMPARE_RESULT mr_cmpval_oid(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
#define TP_DOMAIN_COLLATION(dom)
static int mr_index_readval_utime(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
#define QSTR_CHAR_COMPARE(id, string1, size1, string2, size2, ti)
int or_varbit_length(int bitlen)
int or_put_bigint(OR_BUF *buf, DB_BIGINT num)
int or_put_byte(OR_BUF *buf, int num)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_vobj(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
#define DOM_GET_ENUM_ELEMS_COUNT(dom)
static int mr_data_readval_money(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
int pr_midxkey_get_element_offset(const DB_MIDXKEY *midxkey, int index)
static int mr_index_lengthmem_char(void *memptr, TP_DOMAIN *domain)
static int mr_index_lengthmem_nchar(void *memptr, TP_DOMAIN *domain)
static int mr_getmem_datetime(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_index_readval_short(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
data_lengthval_function_type f_data_lengthval
static int mr_setmem_nchar(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
int or_overflow(OR_BUF *buf)
static void mr_initval_timestampltz(DB_VALUE *value, int precision, int scale)
int or_put_short(OR_BUF *buf, int num)
static void mr_data_readmem_json(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
PR_TYPE * tp_Type_enumeration
#define db_get_json_schema(v)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_oid(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static DB_VALUE_COMPARE_RESULT mr_cmpval_datetimetz(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
void db_json_delete_doc(JSON_DOC *&doc)
static int mr_setval_varnchar(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_numeric(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
DB_OBJECT * db_get_object(const DB_VALUE *value)
static int mr_data_writeval_double(OR_BUF *buf, DB_VALUE *value)
static void mr_freemem_string(void *memptr)
static void mr_initval_object(DB_VALUE *value, int precision, int scale)
int db_make_timestamptz(DB_VALUE *value, const DB_C_TIMESTAMPTZ *ts_tz_val)
static int mr_setval_varbit(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static void mr_initval_short(DB_VALUE *value, int precision, int scale)
static int mr_index_lengthval_string(DB_VALUE *value)
int pr_midxkey_add_prefix(DB_VALUE *result, DB_VALUE *prefix, DB_VALUE *postfix, int n_prefix)
#define TP_DOMAIN_TYPE(dom)
PR_TYPE * tp_Type_datetimeltz
static DB_VALUE_COMPARE_RESULT mr_cmpval_date(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
#define DO_CONVERSION_TO_SRVR_STR(codeset)
static void cleanup(int signo)
static void mr_data_readmem_error(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
static int mr_index_readval_date(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static DB_VALUE_COMPARE_RESULT pr_midxkey_compare_element(char *mem1, char *mem2, TP_DOMAIN *dom1, TP_DOMAIN *dom2, int do_coercion, int total_order)
static void mr_initmem_datetime(void *memptr, TP_DOMAIN *domain)
DB_VALUE * pr_copy_value(DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_cmpval_string(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static void mr_data_readmem_varnchar(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
static int mr_data_readval_numeric(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static void mr_data_readmem_null(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
unsigned short db_get_enum_short(const DB_VALUE *value)
int tp_valid_indextype(DB_TYPE type)
data_lengthmem_function_type f_data_lengthmem
unsigned char * DB_C_NUMERIC
static void mr_initmem_timestamptz(void *mem, TP_DOMAIN *domain)
#define COPYMEM(type, dst, src)
static int mr_data_readval_float(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_getmem_date(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_data_writeval_sub(OR_BUF *buf, DB_VALUE *value)
static int mr_index_writeval_timestamptz(OR_BUF *buf, DB_VALUE *value)
static int mr_data_lengthmem_sub(void *mem, TP_DOMAIN *domain, int disk)
static DB_VALUE_COMPARE_RESULT mr_cmpval_char(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
DB_OBJECT * db_get_class(MOP obj)
const char * pr_type_name(DB_TYPE id)
static void mr_initmem_bit(void *memptr, TP_DOMAIN *domain)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_varnchar(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_getmem_resultset(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_data_readval_time(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_data_readval_clob(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_setval_variable(DB_VALUE *dest, const DB_VALUE *src, bool copy)
bool db_value_is_corrupted(const DB_VALUE *value)
static int mr_data_readval_resultset(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
struct db_timestamptz DB_TIMESTAMPTZ
static void mr_initval_sub(DB_VALUE *value, int precision, int scale)
#define OR_GET_BIGINT(ptr, val)
void setobj_free(COL *col)
static int mr_getmem_utime(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int pr_midxkey_get_vals_size(TP_DOMAIN *domains, DB_VALUE *dbvals, int total)
DB_VALUE * pr_make_ext_value(void)
#define OR_GET_FLOAT(ptr, value)
static void mr_initval_float(DB_VALUE *value, int precision, int scale)
#define DO_CONVERSION_TO_SQLTEXT(codeset)
#define db_private_free_and_init(thrd, ptr)
int db_value_put_encoded_date(DB_VALUE *value, const DB_DATE *date)
void PRIM_SET_NULL(DB_VALUE *value)
static int mr_setmem_int(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
static int mr_readval_char_internal(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int disk_size, bool copy, char *copy_buf, int copy_buf_len, int align)
static int mr_index_readval_timestamptz(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_setmem_money(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
unsigned char is_max_string
static int mr_data_writeval_json(OR_BUF *buf, DB_VALUE *value)
static int mr_index_readval_timestampltz(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
PR_TYPE * tp_Type_Timestamptz
#define db_private_free(thrd, ptr)
static int mr_data_lengthval_string(DB_VALUE *value, int disk)
void or_init(OR_BUF *buf, char *data, int length)
int or_get_timestamptz(OR_BUF *buf, DB_TIMESTAMPTZ *ts_tz)
#define db_private_alloc(thrd, size)
static void mr_initmem_datetimetz(void *memptr, TP_DOMAIN *domain)
int intl_char_size(const unsigned char *src, int length_in_chars, INTL_CODESET src_codeset, int *byte_count)
#define CONST_CAST(dest_type, expr)
static void mr_data_readmem_elo(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
PR_TYPE * tp_Type_datetime
static void mr_data_writemem_time(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
static int pr_write_uncompressed_string_to_buffer(OR_BUF *buf, const char *string, int size, int align)
int db_json_serialize(const JSON_DOC &doc, or_buf &buffer)
int pr_midxkey_get_element_nocopy(const DB_MIDXKEY *midxkey, int index, DB_VALUE *value, int *prev_indexp, char **prev_ptrp)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_datetimetz(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
need_clear_type need_clear
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_int(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_initmem_time(void *mem, TP_DOMAIN *domain)
static int mr_index_lengthmem_numeric(void *mem, TP_DOMAIN *domain)
int nchar_compare(const unsigned char *string1, int size1, const unsigned char *string2, int size2, INTL_CODESET codeset)
static int mr_setval_time(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_data_writeval_ptr(OR_BUF *buf, DB_VALUE *value)
static int mr_index_readval_money(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
int pr_clear_value(DB_VALUE *value)
#define PR_INHIBIT_OID_PROMOTION_DEFAULT
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)
DB_JSON_TYPE db_json_get_type(const JSON_DOC *doc)
static void mr_initmem_money(void *memptr, TP_DOMAIN *domain)
static DB_VALUE_COMPARE_RESULT mr_cmpval_elo(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
int db_get_deep_copy_of_json(const DB_JSON *src, DB_JSON *dst)
static DB_VALUE_COMPARE_RESULT mr_cmpdisk_bit_internal(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp, int align)
static void mr_data_readmem_set(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
static int mr_setmem_resultset(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
static void mr_initmem_set(void *memptr, TP_DOMAIN *domain)
setobj * or_get_set(OR_BUF *buf, struct tp_domain *domain)
static int mr_setmem_error(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
int db_is_updatable_object(DB_OBJECT *obj)
static int mr_data_readval_object(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
int varnchar_compare(const unsigned char *string1, int size1, const unsigned char *string2, int size2, INTL_CODESET codeset)
static void mr_data_readmem_resultset(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
int db_make_datetimetz(DB_VALUE *value, const DB_DATETIMETZ *datetimetz)
static void mr_data_writemem_set(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
static int mr_getmem_oid(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
struct db_domain_info::general_info general_info
PR_TYPE * tp_Type_sequence
static int mr_index_readval_time(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
PR_TYPE * tp_Type_integer
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_nchar(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
index_lengthmem_function_type f_index_lengthmem
static int mr_data_writeval_utime(OR_BUF *buf, DB_VALUE *value)
int or_packed_set_length(setobj *set, int include_domain)
static void mr_data_writemem_nchar(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
int db_json_deserialize(OR_BUF *buf, JSON_DOC *&doc)
DB_CONST_C_CHAR db_get_enum_string(const DB_VALUE *value)
static int mr_data_lengthval_varnchar(DB_VALUE *value, int disk)
#define OR_GET_TIME(ptr, value)
int or_put_varchar(OR_BUF *buf, char *string, int charlen)
static void error(const char *msg)
static DB_VALUE_COMPARE_RESULT mr_cmpval_midxkey(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static int mr_setmem_json(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
static int mr_readval_varbit_internal(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len, int align)
static void mr_data_readmem_oid(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
int db_make_float(DB_VALUE *value, const DB_C_FLOAT num)
static DB_VALUE_COMPARE_RESULT mr_cmpval_datetime(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
int or_put_datetime(OR_BUF *buf, DB_DATETIME *datetimeval)
static void mr_initval_set(DB_VALUE *value, int precision, int scale)
static int mr_setval_set(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_index_readval_datetimetz(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
int or_skip_varbit_remainder(OR_BUF *buf, int bitlen, int align)
#define DB_DEFAULT_PRECISION
static int mr_index_lengthval_varbit(DB_VALUE *value)
#define PRIM_TEMPORARY_DISK_SIZE
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_money(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_data_writemem_ptr(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
#define DB_GET_ENUM_ELEM_STRING_SIZE(elem)
int pr_Inhibit_oid_promotion
int get_mem_size_of_value(const DB_VALUE *value) const
static int mr_data_readval_sub(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_index_writeval_midxkey(OR_BUF *buf, DB_VALUE *value)
int db_make_midxkey(DB_VALUE *value, DB_MIDXKEY *midxkey)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_time(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_short(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_data_writemem_varnchar(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
int or_put_monetary(OR_BUF *buf, DB_MONETARY *monetary)
static void mr_initmem_utime(void *mem, TP_DOMAIN *domain)
static int readval_elo_with_type(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len, DB_TYPE type)
PR_TYPE * pr_find_type(const char *name)
static void mr_freemem_varnchar(void *memptr)
DB_VALUE_COMPARE_RESULT setvobj_compare(COL *set1, COL *set2, int do_coercion, int total_order)
index_lengthval_function_type f_index_lengthval
int get_index_size_of_mem(const void *memptr, const tp_domain *domain) const
unsigned char compressed_need_clear
static void mr_data_readmem_money(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
static int mr_setval_string(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static void clean_up(void)
void db_sprint_value(const db_value *value, string_buffer &sb)
static int mr_setval_clob(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_getmem_bit(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_setval_enumeration(DB_VALUE *dest, const DB_VALUE *src, bool copy)
int pr_clone_value(const DB_VALUE *src, DB_VALUE *dest)
static void mr_initmem_elo(void *memptr, TP_DOMAIN *domain)
static void mr_initval_oid(DB_VALUE *value, int precision, int scale)
OID * db_get_oid(const DB_VALUE *value)
static int mr_setval_elo(DB_VALUE *dest, const DB_VALUE *src, bool copy)
#define OR_MINIMUM_STRING_LENGTH_FOR_COMPRESSION
static int mr_data_readval_elo(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static void mr_initmem_string(void *mem, TP_DOMAIN *domain)
static int mr_index_writeval_string(OR_BUF *buf, DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_cmpval_bit2(DB_VALUE *value1, DB_VALUE *value2, int length, int do_coercion, int total_order, int *start_colp)
index_writeval_function_type f_index_writeval
static int mr_setval_set_internal(DB_VALUE *dest, const DB_VALUE *src, bool copy, DB_TYPE set_type)
static void mr_initmem_float(void *mem, TP_DOMAIN *domain)
int db_make_varbit(DB_VALUE *value, const int max_bit_length, DB_CONST_C_BIT bit_str, const int bit_str_bit_size)
static void mr_initval_datetimeltz(DB_VALUE *value, int precision, int scale)
int pr_is_string_type(DB_TYPE type)
static int mr_data_lengthmem_varnchar(void *memptr, TP_DOMAIN *domain, int disk)
data_readmem_function_type f_data_readmem
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_json(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_initval_blob(DB_VALUE *value, int precision, int scale)
static int mr_index_writeval_utime(OR_BUF *buf, DB_VALUE *value)
int pr_is_prefix_key_type(DB_TYPE type)
int db_make_error(DB_VALUE *value, const int errcode)
static int mr_index_readval_midxkey(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static void mr_freemem_json(void *memptr)
static int mr_setval_null(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_index_lengthmem_bit(void *memptr, TP_DOMAIN *domain)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_datetime(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_oid(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_data_readmem_char(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
#define free_and_init(ptr)
static int mr_index_lengthval_varnchar(DB_VALUE *value)
static int pr_write_compressed_string_to_buffer(OR_BUF *buf, const char *compressed_string, int compressed_length, int decompressed_length, int alignment)
setmem_function_type f_setmem
int db_make_timestampltz(DB_VALUE *value, const DB_C_TIMESTAMP ts_val)
static DB_VALUE_COMPARE_RESULT mr_cmpval_variable(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
DB_DATE * db_get_date(const DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_date(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_initval_vobj(DB_VALUE *value, int precision, int scale)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_ptr(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
int oid_compare(const void *a, const void *b)
int or_packed_varbit_length(int bitlen)
void elo_free_structure(DB_ELO *elo)
static void mr_data_readmem_bigint(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
int pr_midxkey_remove_prefix(DB_VALUE *key, int prefix)
static int mr_data_lengthval_midxkey(DB_VALUE *value, int disk)
static int mr_setval_money(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_data_writeval_bigint(OR_BUF *buf, DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_enumeration(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
DB_VALUE_COMPARE_RESULT setobj_compare_order(COL *set1, COL *set2, int do_coercion, int total_order)
static int mr_setmem_enumeration(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
int db_value_precision(const DB_VALUE *value)
static int mr_data_lengthval_char(DB_VALUE *value, int disk)
int setobj_release(COL *set)
initval_function_type f_initval
#define QSTR_NCHAR_COMPARE(id, string1, size1, string2, size2, codeset, ti)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_variable(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_data_writemem_bit(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
#define OR_MOVE_DOUBLE(src, dst)
#define DB_NOT_YET_COMPRESSED
static void mr_data_writemem_datetime(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
int or_put_align32(OR_BUF *buf)
#define QSTR_IS_VARIABLE_LENGTH(s)
static int mr_writeval_varbit_internal(OR_BUF *buf, DB_VALUE *value, int align)
DB_COLLECTION * set_make_reference(void)
enum intl_codeset INTL_CODESET
static int mr_setmem_bit(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
static int mr_data_writeval_timestamptz(OR_BUF *buf, DB_VALUE *value)
int or_packed_put_varbit(OR_BUF *buf, const char *string, int bitlen)
static int mr_data_lengthmem_nchar(void *memptr, TP_DOMAIN *domain, int disk)
static int mr_setval_utime(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static DB_VALUE_COMPARE_RESULT mr_cmpdisk_nchar_internal(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp, int align)
void * area_alloc(AREA *area)
static int mr_getmem_multiset(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_data_lengthmem_elo(void *memptr, TP_DOMAIN *domain, int disk)
static void mr_data_writemem_int(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
bool prm_get_bool_value(PARAM_ID prm_id)
#define OR_TIMESTAMPTZ_SIZE
int db_get_compressed_size(DB_VALUE *value)
static int mr_getmem_elo(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
#define QSTR_IS_ANY_CHAR_OR_BIT(s)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_bigint(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_setval_oid(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_getmem_clob(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
int or_get_align32(OR_BUF *buf)
static int mr_data_lengthmem_char(void *memptr, TP_DOMAIN *domain, int disk)
int intl_mbs_casecmp(const char *mbs1, const char *mbs2)
#define OR_PUT_INT(ptr, val)
DB_TIMESTAMP * db_get_timestamp(const DB_VALUE *value)
int pr_clear_compressed_string(DB_VALUE *value)
int db_get_string_size(const DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_midxkey(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
DB_C_SHORT db_get_short(const DB_VALUE *value)
static int mr_getmem_timestampltz(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
#define MR_CMP_RETURN_CODE(c)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_utime(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_index_writeval_datetimetz(OR_BUF *buf, DB_VALUE *value)
int or_get_date(OR_BUF *buf, DB_DATE *date)
PR_TYPE * tp_Type_resultset
#define OR_GET_DOUBLE(ptr, value)
static int mr_getmem_double(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_setval_numeric(DB_VALUE *dest, const DB_VALUE *src, bool copy)
PR_TYPE * tp_Type_monetary
int pr_value_mem_size(const DB_VALUE *value)
static int mr_index_readval_datetimeltz(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_data_writeval_char(OR_BUF *buf, DB_VALUE *value)
static int mr_index_readval_enumeration(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
int area_free(AREA *area, void *ptr)
#define OR_DATETIMETZ_SIZE
static void mr_initval_enumeration(DB_VALUE *value, int precision, int scale)
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 or_packed_put_varchar(OR_BUF *buf, char *string, int charlen)
int or_put_data(OR_BUF *buf, const char *data, int length)
static void mr_data_writemem_error(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
#define TP_FLOATING_PRECISION_VALUE
static DB_VALUE_COMPARE_RESULT mr_cmpval_sub(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static DB_VALUE_COMPARE_RESULT mr_cmpval_utime(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static DB_VALUE_COMPARE_RESULT mr_cmpval_error(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static int mr_setmem_float(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
static void mr_initval_variable(DB_VALUE *value, int precision, int scale)
static void mr_initmem_varbit(void *mem, TP_DOMAIN *domain)
#define DB_VALUE_TYPE(value)
static int mr_setval_midxkey(DB_VALUE *dest, const DB_VALUE *src, bool copy)
#define DB_CURRENCY_DEFAULT
static void mr_data_writemem_money(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
int db_get_enum_collation(const DB_VALUE *value)
#define MR_NUMERIC_SIZE(precision)
static void mr_initmem_enumeration(void *mem, TP_DOMAIN *domain)
int db_make_resultset(DB_VALUE *value, const DB_RESULTSET handle)
static int mr_setmem_datetime(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
static int mr_data_lengthval_bit(DB_VALUE *value, int disk)
static int mr_index_lengthmem_varnchar(void *memptr, TP_DOMAIN *domain)
int db_make_null(DB_VALUE *value)
static int mr_setmem_null(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
char * pr_valstring(const DB_VALUE *val)
static int mr_setval_sub(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static void mr_data_readmem_numeric(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
static int mr_getmem_json(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_getmem_ptr(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
PR_TYPE * tp_Type_multiset
static int mr_data_readval_varbit(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
#define DB_IS_NULL(value)
static void mr_initval_ptr(DB_VALUE *value, int precision, int scale)
#define ER_OBJ_DOMAIN_CONFLICT
static void mr_initval_char(DB_VALUE *value, int precision, int scale)
static int mr_writeval_char_internal(OR_BUF *buf, DB_VALUE *value, int align)
static int mr_index_writeval_double(OR_BUF *buf, DB_VALUE *value)
int db_make_double(DB_VALUE *value, const DB_C_DOUBLE num)
static int mr_index_writeval_varnchar(OR_BUF *buf, DB_VALUE *value)
int or_get_data(OR_BUF *buf, char *data, int length)
static int mr_getmem_numeric(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_data_writeval_oid(OR_BUF *buf, DB_VALUE *value)
static int mr_index_writeval_money(OR_BUF *buf, DB_VALUE *value)
static int mr_setval_object(DB_VALUE *dest, const DB_VALUE *src, bool copy)
int db_get_error(const DB_VALUE *value)
TP_DOMAIN tp_Sequence_domain
DB_DATETIME * db_get_datetime(const DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_set(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
#define OR_GET_MONETARY(ptr, value)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_bigint(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
data_writeval_function_type f_data_writeval
#define DB_MAX_VARNCHAR_PRECISION
static DB_VALUE_COMPARE_RESULT mr_cmpval_set(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static void mr_data_writemem_short(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
static int mr_data_lengthval_varbit(DB_VALUE *value, int disk)
static int mr_setval_timestamptz(DB_VALUE *dest, const DB_VALUE *src, bool copy)
DB_TYPE set_get_type(DB_COLLECTION *set)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_double(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_initmem_short(void *mem, TP_DOMAIN *domain)
static int mr_readval_nchar_internal(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int disk_size, bool copy, char *copy_buf, int copy_buf_len, int align)
static void mr_initval_string(DB_VALUE *value, int precision, int scale)
int db_value_clear(DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_date(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
int setval(DB_VALUE *dest, const DB_VALUE *src, bool copy) const
int db_make_int(DB_VALUE *value, const int num)
int or_put_double(OR_BUF *buf, double num)
int db_get_string_length(const DB_VALUE *value)
static int mr_index_lengthval_nchar(DB_VALUE *value)
static void mr_initval_numeric(DB_VALUE *value, int precision, int scale)
static int mr_readval_varnchar_internal(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len, int align)
static void mr_initval_elo(DB_VALUE *value, int precision, int scale)
static int mr_data_lengthval_nchar(DB_VALUE *value, int disk)
static void mr_data_writemem_resultset(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
void pr_data_writeval(struct or_buf *buf, DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_resultset(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
int intl_convert_charset(const unsigned char *src, int length_in_chars, INTL_CODESET src_codeset, unsigned char *dest, INTL_CODESET dest_codeset, int *unconverted)
int db_make_oid(DB_VALUE *value, const OID *oid)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_null(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_index_lengthmem_varbit(void *memptr, TP_DOMAIN *domain)
static int mr_setmem_varnchar(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
cmpval_function_type f_cmpval
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)
static void mr_initval_sequence(DB_VALUE *value, int precision, int scale)
static void mr_data_readmem_nchar(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
#define BITS_TO_BYTES(bit_cnt)
static void mr_initmem_int(void *mem, TP_DOMAIN *domain)
static int mr_data_writeval_date(OR_BUF *buf, DB_VALUE *value)
static int mr_setval_sequence(DB_VALUE *dest, const DB_VALUE *src, bool copy)
#define TP_DOMAIN_CODESET(dom)
static DB_VALUE_COMPARE_RESULT mr_cmpval_ptr(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static int mr_data_lengthval_ptr(DB_VALUE *value, int disk)
static int mr_setval_datetimetz(DB_VALUE *dest, const DB_VALUE *src, bool copy)
int or_get_int(OR_BUF *buf, int *error)
static int mr_getmem_sequence(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_setval_resultset(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_numeric(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
DB_TIME * db_get_time(const DB_VALUE *value)
static int mr_setmem_string(void *memptr, TP_DOMAIN *domain, DB_VALUE *value)
int elo_copy_structure(const DB_ELO *elo, DB_ELO *dest)
static void mr_data_readmem_time(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
static void mr_initval_bit(DB_VALUE *value, int precision, int scale)
static int mr_getmem_int(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static void mr_data_readmem_double(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
#define DB_GET_ENUM_ELEM_CODESET(elem)
static int mr_data_writeval_resultset(OR_BUF *buf, DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_object(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static DB_VALUE_COMPARE_RESULT mr_cmpval_double(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static int mr_index_writeval_oid(OR_BUF *buf, DB_VALUE *value)
static void mr_initval_double(DB_VALUE *value, int precision, int scale)
static DB_VALUE_COMPARE_RESULT mr_cmpval_bit(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
DB_C_POINTER db_get_pointer(const DB_VALUE *value)
static int mr_index_writeval_int(OR_BUF *buf, DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_int(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
#define OR_NUMERIC_SIZE(precision)
DB_VALUE_COMPARE_RESULT vobj_compare(DB_COLLECTION *set1, DB_COLLECTION *set2, int do_coercion, int total_order)
#define DB_TRIED_COMPRESSION(value)
static int mr_data_writeval_int(OR_BUF *buf, DB_VALUE *value)
static int mr_setmem_datetimetz(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
static void mr_initmem_error(void *memptr, TP_DOMAIN *domain)
static int mr_data_lengthval_variable(DB_VALUE *value, int disk)
static void mr_data_readmem_string(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_timestamptz(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_data_readmem_varbit(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
void or_put_set(OR_BUF *buf, setobj *set, int include_domain)
int db_make_bit(DB_VALUE *value, const int bit_length, DB_CONST_C_BIT bit_str, const int bit_str_bit_size)
static int mr_data_writeval_datetime(OR_BUF *buf, DB_VALUE *value)
int db_get_string_codeset(const DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_cmpval_timestamptz(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static void mr_initmem_object(void *mem, TP_DOMAIN *domain)
static int mr_setval_short(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_data_writeval_float(OR_BUF *buf, DB_VALUE *value)
static int mr_index_writeval_char(OR_BUF *buf, DB_VALUE *value)
static int mr_data_writeval_varbit(OR_BUF *buf, DB_VALUE *value)
static int mr_setmem_double(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
static void mr_data_writemem_datetimetz(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
static DB_VALUE_COMPARE_RESULT mr_index_cmpdisk_midxkey(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
DB_CONST_C_CHAR db_get_string(const DB_VALUE *value)
static int mr_setval_blob(DB_VALUE *dest, const DB_VALUE *src, bool copy)
static int mr_setval_char(DB_VALUE *dest, const DB_VALUE *src, bool copy)
int or_advance(OR_BUF *buf, int offset)
static void mr_initval_nchar(DB_VALUE *value, int precision, int scale)
struct db_datetimetz DB_DATETIMETZ
static void mr_data_readmem_bit(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
static void mr_data_writemem_elo(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
struct db_char::@54 medium
static int mr_getmem_string(void *memptr, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
static int mr_lengthval_varbit_internal(DB_VALUE *value, int disk, int align)
static int mr_data_readval_int(OR_BUF *buf, DB_VALUE *value, TP_DOMAIN *domain, int size, bool copy, char *copy_buf, int copy_buf_len)
static int mr_data_lengthmem_numeric(void *mem, TP_DOMAIN *domain, int disk)
#define QSTR_COMPARE(id, string1, size1, string2, size2, ti)
#define OR_GET_SHORT(ptr)
DB_VALUE_COMPARE_RESULT pr_midxkey_compare(DB_MIDXKEY *mul1, DB_MIDXKEY *mul2, int do_coercion, int total_order, int num_index_term, int *start_colp, int *result_size1, int *result_size2, int *diff_column, bool *dom_is_desc, bool *next_dom_is_desc)
static void mr_data_readmem_float(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)
int pr_complete_enum_value(DB_VALUE *value, struct tp_domain *domain)
static void mr_data_writemem_numeric(OR_BUF *buf, void *mem, TP_DOMAIN *domain)
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)
static int mr_index_lengthval_bit(DB_VALUE *value)
static int mr_setmem_date(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
int get_disk_size_of_value(const DB_VALUE *value) const
static int mr_data_writeval_bit(OR_BUF *buf, DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_cmpval_json(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
#define DB_GET_ENUM_ELEM_SHORT(elem)
int db_value_domain_init(DB_VALUE *value, const DB_TYPE type, const int precision, const int scale)
static int mr_setmem_utime(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
#define TP_DOMAIN_COLLATION_FLAG(dom)
static DB_VALUE_COMPARE_RESULT mr_cmpval_null(DB_VALUE *value1, DB_VALUE *value2, int do_coercion, int total_order, int *start_colp, int collation)
static int mr_setmem_bigint(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_varbit(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static int mr_getmem_short(void *mem, TP_DOMAIN *domain, DB_VALUE *value, bool copy)
int or_skip_varchar(OR_BUF *buf, int align)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_double(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
int db_value_alter_type(DB_VALUE *value, const DB_TYPE type)
static int mr_data_lengthmem_json(void *memptr, TP_DOMAIN *domain, int disk)
static int mr_setmem_timestamptz(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
static int mr_setmem_sub(void *mem, TP_DOMAIN *domain, DB_VALUE *value)
static DB_VALUE_COMPARE_RESULT mr_data_cmpdisk_utime(void *mem1, void *mem2, TP_DOMAIN *domain, int do_coercion, int total_order, int *start_colp)
static void mr_data_writemem_null(OR_BUF *buf, void *memptr, TP_DOMAIN *domain)
int pr_midxkey_element_disk_size(char *mem, DB_DOMAIN *domain)
static void mr_data_readmem_ptr(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
static void mr_data_readmem_object(OR_BUF *buf, void *memptr, TP_DOMAIN *domain, int size)
static void mr_data_readmem_datetimetz(OR_BUF *buf, void *mem, TP_DOMAIN *domain, int size)