26 #ifndef _OBJECT_REPRESENTATION_H_ 27 #define _OBJECT_REPRESENTATION_H_ 37 #include <netinet/in.h> 53 #define OR_VALUE_ALIGNED_SIZE(value) \ 54 (or_db_value_size (value) + MAX_ALIGNMENT) 58 #define OR_CHECK_ASSIGN_OVERFLOW(dest, src) \ 59 (((src) > 0 && (dest) < 0) || ((src) < 0 && (dest) > 0)) 60 #define OR_CHECK_ADD_OVERFLOW(a, b, c) \ 61 (((a) > 0 && (b) > 0 && (c) < 0) \ 62 || ((a) < 0 && (b) < 0 && (c) >= 0)) 63 #define OR_CHECK_UNS_ADD_OVERFLOW(a, b, c) \ 64 (c) < (a) || (c) < (b) 65 #define OR_CHECK_SUB_UNDERFLOW(a, b, c) \ 66 (((a) < (b) && (c) > 0) \ 67 || ((a) > (b) && (c) < 0)) 68 #define OR_CHECK_UNS_SUB_UNDERFLOW(a, b, c) \ 70 #define OR_CHECK_MULT_OVERFLOW(a, b, c) \ 71 (((b) == 0) ? ((c) != 0) : ((c) / (b) != (a))) 72 #define OR_CHECK_SHORT_DIV_OVERFLOW(a, b) \ 73 ((a) == DB_INT16_MIN && (b) == -1) 74 #define OR_CHECK_INT_DIV_OVERFLOW(a, b) \ 75 ((a) == DB_INT32_MIN && (b) == -1) 76 #define OR_CHECK_BIGINT_DIV_OVERFLOW(a, b) \ 77 ((a) == DB_BIGINT_MIN && (b) == -1) 79 #define OR_CHECK_SHORT_OVERFLOW(i) ((i) > DB_INT16_MAX || (i) < DB_INT16_MIN) 80 #define OR_CHECK_INT_OVERFLOW(i) ((i) > DB_INT32_MAX || (i) < DB_INT32_MIN) 81 #define OR_CHECK_BIGINT_OVERFLOW(i) ((i) > DB_BIGINT_MAX || (i) < DB_BIGINT_MIN) 82 #define OR_CHECK_USHRT_OVERFLOW(i) ((i) > (int) DB_UINT16_MAX || (i) < 0) 83 #define OR_CHECK_UINT_OVERFLOW(i) ((i) > DB_UINT32_MAX || (i) < 0) 85 #define OR_CHECK_FLOAT_OVERFLOW(i) ((i) > FLT_MAX || (-(i)) > FLT_MAX) 86 #define OR_CHECK_DOUBLE_OVERFLOW(i) ((i) > DBL_MAX || (-(i)) > DBL_MAX) 90 #define OR_GET_BYTE(ptr) \ 91 (*(unsigned char *) ((char *) (ptr))) 92 #define OR_GET_SHORT(ptr) \ 93 ((short) ntohs (*(short *) ((char *) (ptr)))) 94 #define OR_GET_INT(ptr) \ 95 ((int) ntohl (*(int *) ((char *) (ptr)))) 96 #define OR_GET_FLOAT(ptr, value) \ 97 (*(value) = ntohf (*(UINT32 *) (ptr))) 98 #define OR_GET_DOUBLE(ptr, value) \ 99 (*(value) = ntohd (*(UINT64 *) (ptr))) 100 #define OR_GET_STRING(ptr) \ 101 ((char *) ((char *) (ptr))) 103 #define OR_PUT_BYTE(ptr, val) \ 104 (*((unsigned char *) (ptr)) = (unsigned char) (val)) 105 #define OR_PUT_SHORT(ptr, val) \ 106 (*(short *) ((char *) (ptr)) = htons ((short) (val))) 107 #define OR_PUT_INT(ptr, val) \ 108 (*(int *) ((char *) (ptr)) = htonl ((int) (val))) 114 memcpy (ptr, &ui,
sizeof (ui));
122 memcpy (ptr, &ui,
sizeof (ui));
125 #define OR_GET_BIG_VAR_OFFSET(ptr) OR_GET_INT (ptr) 126 #define OR_PUT_BIG_VAR_OFFSET(ptr, val) OR_PUT_INT (ptr, val) 128 #define OR_PUT_OFFSET(ptr, val) \ 129 OR_PUT_OFFSET_INTERNAL(ptr, val, BIG_VAR_OFFSET_SIZE) 131 #define OR_PUT_OFFSET_INTERNAL(ptr, val, offset_size) \ 133 if (offset_size == OR_BYTE_SIZE) \ 135 OR_PUT_BYTE(ptr, val); \ 137 else if (offset_size == OR_SHORT_SIZE) \ 139 OR_PUT_SHORT(ptr, val); \ 141 else if (offset_size == OR_INT_SIZE) \ 143 OR_PUT_INT(ptr, val); \ 147 #define OR_GET_OFFSET(ptr) \ 148 OR_GET_OFFSET_INTERNAL (ptr, BIG_VAR_OFFSET_SIZE) 150 #define OR_GET_OFFSET_INTERNAL(ptr, offset_size) \ 151 (offset_size == OR_BYTE_SIZE) \ 152 ? OR_GET_BYTE (ptr) \ 153 : ((offset_size == OR_SHORT_SIZE) \ 154 ? OR_GET_SHORT (ptr) : OR_GET_INT (ptr)) 156 #define OR_MOVE_MONETARY(src, dst) \ 158 OR_MOVE_DOUBLE (src, dst); \ 159 ((DB_MONETARY *) dst)->type = ((DB_MONETARY *) src)->type; \ 162 #if OR_BYTE_ORDER == OR_LITTLE_ENDIAN 165 ((((unsigned long long) (x) & (0x00000000000000FFULL)) << 56) \ 166 | (((unsigned long long) (x) & (0xFF00000000000000ULL)) >> 56) \ 167 | (((unsigned long long) (x) & (0x000000000000FF00ULL)) << 40) \ 168 | (((unsigned long long) (x) & (0x00FF000000000000ULL)) >> 40) \ 169 | (((unsigned long long) (x) & (0x0000000000FF0000ULL)) << 24) \ 170 | (((unsigned long long) (x) & (0x0000FF0000000000ULL)) >> 24) \ 171 | (((unsigned long long) (x) & (0x00000000FF000000ULL)) << 8) \ 172 | (((unsigned long long) (x) & (0x000000FF00000000ULL)) >> 8)) 175 #define swap64(x) (x) 179 #define OR_PTR_SIZE 4 180 #define OR_PUT_PTR(ptr, val) OR_PUT_INT ((ptr), (val)) 181 #define OR_GET_PTR(ptr) OR_GET_INT ((ptr)) 183 #define OR_PTR_SIZE 8 184 #define OR_PUT_PTR(ptr, val) (*(UINTPTR *) ((char *) (ptr)) = swap64 ((UINTPTR) val)) 185 #define OR_GET_PTR(ptr) ((UINTPTR) swap64 (*(UINTPTR *) ((char *) (ptr)))) 188 #define OR_INT64_SIZE 8 192 #define OR_PUT_BIGINT(ptr, val) OR_PUT_INT64 (ptr, val) 193 #define OR_GET_BIGINT(ptr, val) OR_GET_INT64 (ptr, val) 195 #define OR_GET_INT64(ptr, val) \ 197 INT64 packed_value; \ 198 memcpy (&packed_value, ptr, OR_INT64_SIZE); \ 199 *((INT64*) (val)) = ((INT64) swap64 (packed_value)); \ 202 #define OR_PUT_INT64(ptr, val) \ 204 INT64 packed_value; \ 205 packed_value = ((INT64) swap64 (*(INT64*) val)); \ 206 memcpy (ptr, &packed_value, OR_INT64_SIZE);\ 209 #define OR_GET_TIME(ptr, value) \ 210 *((DB_TIME *) (value)) = OR_GET_INT (ptr) 212 #define OR_PUT_TIME(ptr, value) \ 213 OR_PUT_INT (ptr, *((DB_TIME *) (value))) 215 #define OR_GET_UTIME(ptr, value) \ 216 *((DB_UTIME *) (value)) = OR_GET_INT (ptr) 218 #define OR_PUT_UTIME(ptr, value) \ 219 OR_PUT_INT (ptr, *((DB_UTIME *) (value))) 221 #define OR_GET_TIMESTAMPTZ(ptr, ts_tz) \ 223 (ts_tz)->timestamp = OR_GET_INT ((char *) (ptr)); \ 224 (ts_tz)->tz_id = OR_GET_INT (((char *) (ptr)) + OR_TIMESTAMPTZ_TZID); \ 227 #define OR_PUT_TIMESTAMPTZ(ptr, ts_tz) \ 229 OR_PUT_INT (((char *) ptr), (ts_tz)->timestamp); \ 230 OR_PUT_INT (((char *) ptr) + OR_TIMESTAMPTZ_TZID, (ts_tz)->tz_id); \ 233 #define OR_GET_DATE(ptr, value) \ 234 *((DB_DATE *) (value)) = OR_GET_INT (ptr) 236 #define OR_PUT_DATE(ptr, value) \ 237 OR_PUT_INT (ptr, *((DB_DATE *) (value))) 239 #define OR_GET_DATETIME(ptr, datetime) \ 241 (datetime)->date = OR_GET_INT (((char *) (ptr)) + OR_DATETIME_DATE); \ 242 (datetime)->time = OR_GET_INT (((char *) (ptr)) + OR_DATETIME_TIME); \ 245 #define OR_PUT_DATETIME(ptr, datetime) \ 247 OR_PUT_INT (((char *)ptr) + OR_DATETIME_DATE, (datetime)->date); \ 248 OR_PUT_INT (((char *)ptr) + OR_DATETIME_TIME, (datetime)->time); \ 251 #define OR_GET_DATETIMETZ(ptr, datetimetz) \ 253 OR_GET_DATETIME ((char *) ptr, \ 254 &((DB_DATETIMETZ *) datetimetz)->datetime); \ 255 (datetimetz)->tz_id = OR_GET_INT (((char *) (ptr)) + OR_DATETIMETZ_TZID); \ 258 #define OR_PUT_DATETIMETZ(ptr, datetimetz) \ 260 OR_PUT_DATETIME (((char *) ptr), \ 261 &((DB_DATETIMETZ *) datetimetz)->datetime); \ 262 OR_PUT_INT (((char *) ptr) + OR_DATETIMETZ_TZID, (datetimetz)->tz_id); \ 265 #define OR_GET_MONETARY(ptr, value) \ 268 (value)->type = (DB_CURRENCY) OR_GET_INT (((char *) (ptr)) + OR_MONETARY_TYPE); \ 269 memcpy ((char *) (&pack_value), ((char *) (ptr)) + OR_MONETARY_AMOUNT, OR_DOUBLE_SIZE); \ 270 OR_GET_DOUBLE (&pack_value, &(value)->amount); \ 273 #define OR_GET_CURRENCY_TYPE(ptr) \ 274 (DB_CURRENCY) OR_GET_INT (((char *) (ptr)) + OR_MONETARY_TYPE) 276 #define OR_PUT_MONETARY(ptr, value) \ 278 char pack_value[OR_DOUBLE_SIZE]; \ 279 OR_PUT_INT (((char *) (ptr)) + OR_MONETARY_TYPE, (int) (value)->type); \ 280 OR_PUT_DOUBLE (pack_value, (value)->amount); \ 281 memcpy (((char *) (ptr)) + OR_MONETARY_AMOUNT, pack_value, OR_DOUBLE_SIZE); \ 285 #define OR_GET_SHA1(ptr, value) \ 290 ((SHA1Hash *) (value))->h[i] = (INT32) OR_GET_INT (ptr + i * OR_INT_SIZE); \ 293 #define OR_PUT_SHA1(ptr, value) \ 298 OR_PUT_INT (ptr + i * OR_INT_SIZE, ((SHA1Hash *) (value))->h[i]); \ 304 #define OR_GET_OID(ptr, oid) \ 306 (oid)->pageid = OR_GET_INT (((char *) (ptr)) + OR_OID_PAGEID); \ 307 (oid)->slotid = OR_GET_SHORT (((char *) (ptr)) + OR_OID_SLOTID); \ 308 (oid)->volid = OR_GET_SHORT (((char *) (ptr)) + OR_OID_VOLID); \ 311 #define OR_PUT_OID(ptr, oid) \ 313 OR_PUT_INT (((char *) (ptr)) + OR_OID_PAGEID, (oid)->pageid); \ 314 OR_PUT_SHORT (((char *) (ptr)) + OR_OID_SLOTID, (oid)->slotid); \ 315 OR_PUT_SHORT (((char *) (ptr)) + OR_OID_VOLID, (oid)->volid); \ 318 #define OR_GET_VPID(ptr, vpid) \ 320 (vpid)->pageid = OR_GET_INT (((char *) (ptr)) + OR_VPID_PAGEID); \ 321 (vpid)->volid = OR_GET_SHORT (((char *) (ptr)) + OR_VPID_VOLID); \ 324 #define OR_PUT_VPID(ptr, vpid) \ 326 OR_PUT_INT (((char *) (ptr)) + OR_VPID_PAGEID, (vpid)->pageid); \ 327 OR_PUT_SHORT (((char *) (ptr)) + OR_VPID_VOLID, (vpid)->volid); \ 329 #define OR_PUT_VPID_ALIGNED(ptr, vpid) \ 331 OR_PUT_INT (((char *) (ptr)) + OR_VPID_PAGEID, (vpid)->pageid); \ 332 OR_PUT_SHORT (((char *) (ptr)) + OR_VPID_VOLID, (vpid)->volid); \ 333 OR_PUT_SHORT (((char *) (ptr)) + OR_VPID_SIZE, 0); \ 336 #define OR_PUT_NULL_OID(ptr) \ 338 OR_PUT_INT (((char *) (ptr)) + OR_OID_PAGEID, NULL_PAGEID); \ 339 OR_PUT_SHORT (((char *) (ptr)) + OR_OID_SLOTID, 0); \ 340 OR_PUT_SHORT (((char *) (ptr)) + OR_OID_VOLID, 0); \ 343 #define OR_GET_HFID(ptr, hfid) \ 345 (hfid)->hpgid = OR_GET_INT (((char *) (ptr)) + OR_HFID_PAGEID); \ 346 (hfid)->vfid.fileid = OR_GET_INT (((char *) (ptr)) + OR_HFID_VFID_FILEID); \ 347 (hfid)->vfid.volid = OR_GET_INT (((char *) (ptr)) + OR_HFID_VFID_VOLID); \ 350 #define OR_PUT_HFID(ptr, hfid) \ 352 OR_PUT_INT (((char *) (ptr)) + OR_HFID_PAGEID, (hfid)->hpgid); \ 353 OR_PUT_INT (((char *) (ptr)) + OR_HFID_VFID_FILEID, (hfid)->vfid.fileid); \ 354 OR_PUT_INT (((char *) (ptr)) + OR_HFID_VFID_VOLID, (hfid)->vfid.volid); \ 357 #define OR_PUT_NULL_HFID(ptr) \ 359 OR_PUT_INT (((char *) (ptr)) + OR_HFID_PAGEID, -1); \ 360 OR_PUT_INT (((char *) (ptr)) + OR_HFID_VFID_FILEID, -1); \ 361 OR_PUT_INT (((char *) (ptr)) + OR_HFID_VFID_VOLID, -1); \ 364 #define OR_GET_BTID(ptr, btid) \ 366 (btid)->root_pageid = OR_GET_INT (((char *) (ptr)) + OR_BTID_PAGEID); \ 367 (btid)->vfid.fileid = OR_GET_INT (((char *) (ptr)) + OR_BTID_VFID_FILEID); \ 368 (btid)->vfid.volid = OR_GET_SHORT (((char *) (ptr)) + OR_BTID_VFID_VOLID); \ 371 #define OR_PUT_BTID(ptr, btid) \ 373 OR_PUT_INT (((char *) (ptr)) + OR_BTID_PAGEID, (btid)->root_pageid); \ 374 OR_PUT_INT (((char *) (ptr)) + OR_BTID_VFID_FILEID, (btid)->vfid.fileid); \ 375 OR_PUT_SHORT (((char *) (ptr)) + OR_BTID_VFID_VOLID, (btid)->vfid.volid); \ 378 #define OR_PUT_NULL_BTID(ptr) \ 380 OR_PUT_INT (((char *) (ptr)) + OR_BTID_PAGEID, NULL_PAGEID); \ 381 OR_PUT_INT (((char *) (ptr)) + OR_BTID_VFID_FILEID, NULL_FILEID); \ 382 OR_PUT_SHORT (((char *) (ptr)) + OR_BTID_VFID_VOLID, NULL_VOLID); \ 385 #define OR_GET_EHID(ptr, ehid) \ 387 (ehid)->vfid.volid = OR_GET_INT (((char *) (ptr)) + OR_EHID_VOLID); \ 388 (ehid)->vfid.fileid = OR_GET_INT (((char *) (ptr)) + OR_EHID_FILEID); \ 389 (ehid)->pageid = OR_GET_INT (((char *) (ptr)) + OR_EHID_PAGEID); \ 392 #define OR_PUT_EHID(ptr, ehid) \ 394 OR_PUT_INT (((char *) (ptr)) + OR_EHID_VOLID, (ehid)->vfid.volid); \ 395 OR_PUT_INT (((char *) (ptr)) + OR_EHID_FILEID, (ehid)->vfid.fileid); \ 396 OR_PUT_INT (((char *) (ptr)) + OR_EHID_PAGEID, (ehid)->pageid); \ 399 #define OR_GET_LOG_LSA(ptr, lsa) \ 402 OR_GET_INT64 (((char *) (ptr)) + OR_LOG_LSA_PAGEID, &value); \ 403 (lsa)->pageid = value; \ 404 (lsa)->offset = OR_GET_SHORT (((char *) (ptr)) + OR_LOG_LSA_OFFSET); \ 407 #define OR_PUT_LOG_LSA(ptr, lsa) \ 409 INT64 pageid = (lsa)->pageid; \ 410 OR_PUT_INT64 (((char *) (ptr)) + OR_LOG_LSA_PAGEID, &pageid); \ 411 OR_PUT_SHORT (((char *) (ptr)) + OR_LOG_LSA_OFFSET, (lsa)->offset); \ 414 #define OR_PUT_NULL_LOG_LSA(ptr) \ 417 OR_PUT_INT64 (((char *) (ptr)) + OR_LOG_LSA_PAGEID, &pageid); \ 418 OR_PUT_SHORT (((char *) (ptr)) + OR_LOG_LSA_OFFSET, -1); \ 426 #define OR_VAR_TABLE_SIZE(vars) \ 427 (OR_VAR_TABLE_SIZE_INTERNAL (vars, BIG_VAR_OFFSET_SIZE)) 429 #define OR_VAR_TABLE_SIZE_INTERNAL(vars, offset_size) \ 430 (((vars) == 0) ? 0 : DB_ALIGN ((offset_size * ((vars) + 1)), INT_ALIGNMENT)) 432 #define OR_VAR_TABLE_ELEMENT_PTR(table, index, offset_size) \ 433 ((offset_size == OR_BYTE_SIZE) \ 434 ? (&((char *) (table))[(index)]) \ 435 : ((offset_size == OR_SHORT_SIZE) \ 436 ? ((char *) (&((short *) (table))[(index)])) \ 437 : ((char *) (&((int *) (table))[(index)])))) 439 #define OR_VAR_TABLE_ELEMENT_OFFSET_INTERNAL(table, index, offset_size) \ 440 ((offset_size == OR_BYTE_SIZE) \ 441 ? (OR_GET_BYTE (OR_VAR_TABLE_ELEMENT_PTR (table, index, offset_size))) \ 442 : ((offset_size == OR_SHORT_SIZE) \ 443 ? (OR_GET_SHORT (OR_VAR_TABLE_ELEMENT_PTR (table, index, offset_size))) \ 444 : (OR_GET_INT (OR_VAR_TABLE_ELEMENT_PTR (table, index, offset_size))))) 446 #define OR_VAR_TABLE_ELEMENT_LENGTH_INTERNAL(table, index, offset_size) \ 447 (OR_VAR_TABLE_ELEMENT_OFFSET_INTERNAL (table, (index) + 1, offset_size) \ 448 - OR_VAR_TABLE_ELEMENT_OFFSET_INTERNAL (table, (index), offset_size)) 452 #define OR_FIXED_ATTRIBUTES_OFFSET(ptr, nvars) \ 453 (OR_FIXED_ATTRIBUTES_OFFSET_INTERNAL (ptr, nvars, BIG_VAR_OFFSET_SIZE)) 455 #define OR_FIXED_ATTRIBUTES_OFFSET_INTERNAL(ptr, nvars, offset_size) \ 456 (OR_HEADER_SIZE (ptr) + OR_VAR_TABLE_SIZE_INTERNAL (nvars, offset_size)) 460 #define OR_HEADER_SIZE(ptr) (or_header_size ((char *) (ptr))) 466 #define OR_REP_OFFSET 0 467 #define OR_MVCC_REP_SIZE 4 469 #define OR_MVCC_FLAG_OFFSET OR_REP_OFFSET 470 #define OR_MVCC_FLAG_SIZE OR_MVCC_REP_SIZE 472 #define OR_CHN_OFFSET (OR_REP_OFFSET + OR_MVCC_REP_SIZE) 473 #define OR_CHN_SIZE 4 475 #define OR_MVCC_INSERT_ID_OFFSET (OR_CHN_OFFSET + OR_CHN_SIZE) 476 #define OR_MVCC_INSERT_ID_SIZE 8 478 #define OR_MVCC_DELETE_ID_OFFSET(mvcc_flags) \ 479 (OR_MVCC_INSERT_ID_OFFSET + (((mvcc_flags) & OR_MVCC_FLAG_VALID_INSID) ? OR_MVCC_INSERT_ID_SIZE : 0)) 480 #define OR_MVCC_DELETE_ID_SIZE 8 482 #define OR_MVCC_PREV_VERSION_LSA_OFFSET(mvcc_flags) \ 483 (OR_MVCC_DELETE_ID_OFFSET(mvcc_flags) + (((mvcc_flags) & OR_MVCC_FLAG_VALID_DELID) ? OR_MVCC_DELETE_ID_SIZE : 0)) 484 #define OR_MVCC_PREV_VERSION_LSA_SIZE 8 487 #define OR_MVCCID_SIZE OR_BIGINT_SIZE 488 #define OR_PUT_MVCCID OR_PUT_BIGINT 489 #define OR_GET_MVCCID OR_GET_BIGINT 497 #define OR_BOUND_BIT_FLAG 0x80000000 499 #define BIG_VAR_OFFSET_SIZE OR_INT_SIZE 503 #define OR_GET_REPID(ptr) \ 504 ((OR_GET_INT ((ptr) + OR_REP_OFFSET)) & ~OR_BOUND_BIT_FLAG & ~OR_OFFSET_SIZE_FLAG) 506 #define OR_GET_BOUND_BIT_FLAG(ptr) \ 507 ((OR_GET_INT ((ptr) + OR_REP_OFFSET)) & OR_BOUND_BIT_FLAG) 509 #define OR_GET_OFFSET_SIZE(ptr) \ 510 ((((OR_GET_INT (((char *) (ptr)) + OR_REP_OFFSET)) & OR_OFFSET_SIZE_FLAG) == OR_OFFSET_SIZE_1BYTE) \ 512 : ((((OR_GET_INT (((char *) (ptr)) + OR_REP_OFFSET)) & OR_OFFSET_SIZE_FLAG) == OR_OFFSET_SIZE_2BYTE) \ 513 ? OR_SHORT_SIZE : OR_INT_SIZE)) 515 #define OR_SET_VAR_OFFSET_SIZE(val, offset_size) \ 516 (((offset_size) == OR_BYTE_SIZE) \ 517 ? ((val) |= OR_OFFSET_SIZE_1BYTE) \ 518 : (((offset_size) == OR_SHORT_SIZE) \ 519 ? ((val) |= OR_OFFSET_SIZE_2BYTE) \ 520 : ((val) |= OR_OFFSET_SIZE_4BYTE))) 523 #define OR_GET_MVCC_INSERT_ID(ptr, mvcc_flags, valp) \ 524 ((((mvcc_flags) & OR_MVCC_FLAG_VALID_INSID) == 0) \ 525 ? MVCCID_ALL_VISIBLE \ 526 : (OR_GET_BIGINT (((char *) (ptr)) + OR_MVCC_INSERT_ID_OFFSET, (valp)))) 528 #define OR_GET_MVCC_DELETE_ID(ptr, mvcc_flags, valp) \ 529 ((((mvcc_flags) & OR_MVCC_FLAG_VALID_DELID) == 0) \ 531 : (OR_GET_BIGINT (((char *) (ptr)) + OR_MVCC_DELETE_ID_OFFSET(mvcc_flags), (valp)))) 533 #define OR_GET_MVCC_REPID(ptr) \ 534 ((OR_GET_INT(((char *) (ptr)) + OR_REP_OFFSET)) \ 535 & OR_MVCC_REPID_MASK) 537 #define OR_GET_MVCC_CHN(ptr) (OR_GET_INT ((char *) (ptr) + OR_CHN_OFFSET)) 539 #define OR_GET_MVCC_FLAG(ptr) \ 540 (((OR_GET_INT (((char *) (ptr)) + OR_REP_OFFSET)) \ 541 >> OR_MVCC_FLAG_SHIFT_BITS) & OR_MVCC_FLAG_MASK) 543 #define OR_GET_MVCC_REPID_AND_FLAG(ptr) \ 544 (OR_GET_INT (((char *) (ptr)) + OR_REP_OFFSET)) 548 #define OR_GET_OBJECT_VAR_TABLE(obj) \ 549 ((short *) (((char *) (obj)) + OR_HEADER_SIZE ((char *) (obj)))) 551 #define OR_VAR_ELEMENT_PTR(obj, index) \ 552 (OR_VAR_TABLE_ELEMENT_PTR (OR_GET_OBJECT_VAR_TABLE (obj), index, OR_GET_OFFSET_SIZE (obj))) 554 #define OR_VAR_OFFSET(obj, index) \ 555 (OR_HEADER_SIZE (obj) \ 556 + OR_VAR_TABLE_ELEMENT_OFFSET_INTERNAL (OR_GET_OBJECT_VAR_TABLE (obj), \ 557 index, OR_GET_OFFSET_SIZE (obj))) 559 #define OR_VAR_IS_NULL(obj, index) \ 560 ((OR_VAR_TABLE_ELEMENT_LENGTH_INTERNAL (OR_GET_OBJECT_VAR_TABLE (obj), \ 561 index, OR_GET_OFFSET_SIZE (obj))) ? 0 : 1) 563 #define OR_VAR_LENGTH(length, obj, index, n_variables) \ 565 int _this_offset, _next_offset, _temp_offset, _nth_var; \ 566 _this_offset = OR_VAR_OFFSET(obj, index); \ 567 _next_offset = OR_VAR_OFFSET(obj, index + 1); \ 568 if ((length = _next_offset - _this_offset) != 0) \ 571 for (_nth_var = 0; _nth_var <= n_variables; _nth_var++) \ 573 _temp_offset = OR_VAR_OFFSET(obj, _nth_var); \ 574 if (_temp_offset > _this_offset ) \ 576 if (_next_offset == 0) \ 578 _next_offset = _temp_offset; \ 580 else if (_temp_offset < _next_offset) \ 582 _next_offset = _temp_offset; \ 586 length = _next_offset - _this_offset; \ 595 #define OR_BOUND_BIT_WORDS(count) (((count) + 31) >> 5) 596 #define OR_BOUND_BIT_BYTES(count) ((((count) + 31) >> 5) * 4) 598 #define OR_BOUND_BIT_MASK(element) (1 << ((int) (element) & 7)) 600 #define OR_GET_BOUND_BIT_BYTE(bitptr, element) \ 601 ((char *) (bitptr) + ((int) (element) >> 3)) 603 #define OR_GET_BOUND_BIT(bitptr, element) \ 604 ((*OR_GET_BOUND_BIT_BYTE ((bitptr), (element))) & OR_BOUND_BIT_MASK ((element))) 606 #define OR_GET_BOUND_BITS(obj, nvars, fsize) \ 607 (char *) (((char *) (obj)) \ 608 + OR_HEADER_SIZE ((char *) (obj)) \ 609 + OR_VAR_TABLE_SIZE_INTERNAL ((nvars), OR_GET_OFFSET_SIZE (obj)) + (fsize)) 613 #define OR_FIXED_ATT_IS_BOUND(obj, nvars, fsize, position) \ 614 (!OR_GET_BOUND_BIT_FLAG (obj) || OR_GET_BOUND_BIT (OR_GET_BOUND_BITS (obj, nvars, fsize), position)) 616 #define OR_FIXED_ATT_IS_UNBOUND(obj, nvars, fsize, position) \ 617 (OR_GET_BOUND_BIT_FLAG (obj) && !OR_GET_BOUND_BIT (OR_GET_BOUND_BITS (obj, nvars, fsize), position)) 619 #define OR_ENABLE_BOUND_BIT(bitptr, element) \ 620 *OR_GET_BOUND_BIT_BYTE (bitptr, element) = *OR_GET_BOUND_BIT_BYTE (bitptr, element) | OR_BOUND_BIT_MASK (element) 622 #define OR_CLEAR_BOUND_BIT(bitptr, element) \ 623 *OR_GET_BOUND_BIT_BYTE (bitptr, element) = *OR_GET_BOUND_BIT_BYTE (bitptr, element) & ~OR_BOUND_BIT_MASK (element) 627 #define OR_SET_HEADER_SIZE 8 628 #define OR_SET_SIZE_OFFSET 4 630 #define OR_SET_DOMAIN_SIZE_OFFSET 8 634 #define OR_SET_TYPE_MASK 0xFF 635 #define OR_SET_ETYPE_MASK 0xFF00 636 #define OR_SET_ETYPE_SHIFT 8 637 #define OR_SET_BOUND_BIT 0x10000 638 #define OR_SET_VARIABLE_BIT 0x20000 639 #define OR_SET_DOMAIN_BIT 0x40000 640 #define OR_SET_TAG_BIT 0x80000 641 #define OR_SET_COMMON_SUB_BIT 0x100000 643 #define OR_SET_TYPE(setptr) \ 644 (DB_TYPE) ((OR_GET_INT ((char *) (setptr))) & OR_SET_TYPE_MASK) 646 #define OR_SET_ELEMENT_TYPE(setptr) \ 647 (DB_TYPE) ((OR_GET_INT ((char *) (setptr)) & OR_SET_ETYPE_MASK) >> OR_SET_ETYPE_SHIFT) 649 #define OR_SET_HAS_BOUND_BITS(setptr) \ 650 (OR_GET_INT ((char *) (setptr)) & OR_SET_BOUND_BIT) 652 #define OR_SET_HAS_OFFSET_TABLE(setptr) \ 653 (OR_GET_INT ((char *) (setptr)) & OR_SET_VARIABLE_BIT) 655 #define OR_SET_HAS_DOMAIN(setptr) \ 656 (OR_GET_INT ((char *) (setptr)) & OR_SET_DOMAIN_BIT) 658 #define OR_SET_HAS_ELEMENT_TAGS(setptr) \ 659 (OR_GET_INT ((char *) (setptr)) & OR_SET_TAG_BIT) 661 #define OR_SET_ELEMENT_COUNT(setptr) \ 662 ((OR_GET_INT ((char *) (setptr) + OR_SET_SIZE_OFFSET))) 664 #define OR_SET_DOMAIN_SIZE(setptr) \ 665 ((OR_GET_INT ((char *) (setptr) + OR_SET_DOMAIN_SIZE_OFFSET))) 671 #define OR_GET_SET_VAR_TABLE(setptr) \ 672 ((int *) ((char *) (setptr) + OR_SET_HEADER_SIZE)) 674 #define OR_SET_ELEMENT_OFFSET(setptr, element) \ 675 (OR_VAR_TABLE_ELEMENT_OFFSET_INTERNAL (OR_GET_SET_VAR_TABLE (setptr), element, BIG_VAR_OFFSET_SIZE)) 685 #define OR_GET_SET_BOUND_BITS(setptr) \ 686 (int *) ((char *) (setptr) + OR_SET_HEADER_SIZE) 690 #define OR_MULTI_BOUND_BIT_BYTES(count) (((count) + 7) >> 3) 692 #define OR_MULTI_BOUND_BIT_MASK(element) (1 << ((int) (element) & 7)) 694 #define OR_MULTI_GET_BOUND_BIT_BYTE(bitptr, element) \ 695 ((char *)(bitptr) + ((int)(element) >> 3)) 697 #define OR_MULTI_GET_BOUND_BIT(bitptr, element) \ 698 ((*OR_MULTI_GET_BOUND_BIT_BYTE(bitptr, element)) & OR_MULTI_BOUND_BIT_MASK(element)) 700 #define OR_MULTI_GET_BOUND_BITS(bitptr, fsize) \ 701 (char *) (((char *) (bitptr)) + fsize) 703 #define OR_MULTI_ATT_IS_BOUND(bitptr, element) \ 704 OR_MULTI_GET_BOUND_BIT(bitptr, element) 705 #define OR_MULTI_ATT_IS_UNBOUND(bitptr, element) \ 706 (!OR_MULTI_GET_BOUND_BIT (bitptr, element)) 708 #define OR_MULTI_ENABLE_BOUND_BIT(bitptr, element) \ 709 *OR_MULTI_GET_BOUND_BIT_BYTE (bitptr, element) = (*OR_MULTI_GET_BOUND_BIT_BYTE (bitptr, element) \ 710 | OR_MULTI_BOUND_BIT_MASK (element)) 712 #define OR_MULTI_CLEAR_BOUND_BIT(bitptr, element) \ 713 *OR_MULTI_GET_BOUND_BIT_BYTE (bitptr, element) = (*OR_MULTI_GET_BOUND_BIT_BYTE (bitptr, element) \ 714 & ~OR_MULTI_BOUND_BIT_MASK (element)) 723 #define OR_SUB_HEADER_SIZE OR_OID_SIZE + OR_INT_SIZE + OR_INT_SIZE 732 #define OR_SUB_DOMAIN_SIZE OR_INT_SIZE 735 #define OR_VARIABLE_HEADER_SIZE 4 737 #define OR_GET_VARIABLE_TYPE(ptr) (OR_GET_INT ((int *) (ptr))) 969 #define OR_BINARY_MAX_LENGTH 65535 970 #define OR_BINARY_LENGTH_MASK 0xFFFF 971 #define OR_BINARY_PAD_SHIFT 16 1004 #if defined (__cplusplus) 1015 #define OR_TYPE_SIZE(type) or_Type_sizes[(int)(type)] 1030 #if __WORDSIZE == 32 1032 #define OR_ALIGNED_BUF(size) \ 1036 char buf[(size) + MAX_ALIGNMENT]; \ 1039 #define OR_ALIGNED_BUF_START(abuf) (PTR_ALIGN (abuf.buf, MAX_ALIGNMENT)) 1040 #define OR_ALIGNED_BUF_SIZE(abuf) (sizeof (abuf.buf) - MAX_ALIGNMENT) 1044 #define OR_ALIGNED_BUF(size) \ 1051 #define OR_ALIGNED_BUF_START(abuf) (abuf.buf) 1052 #define OR_ALIGNED_BUF_SIZE(abuf) (sizeof (abuf.buf)) 1056 #define OR_INFINITE_POINTER ((void *) (~((UINTPTR) 0UL))) 1071 #define OR_BUF_INIT(buf, data, size) \ 1073 (buf).buffer = (buf).ptr = (data); \ 1074 (buf).endptr = ((size) <= 0 || (size) == DB_INT32_MAX) \ 1075 ? (char *) OR_INFINITE_POINTER : (data) + (size); \ 1076 (buf).error_abort = 0; \ 1077 (buf).fixups = NULL; \ 1080 #define OR_BUF_INIT2(buf, data, size) \ 1082 (buf).buffer = (buf).ptr = (data); \ 1083 (buf).endptr = ((size) <= 0 || (size) == DB_INT32_MAX) \ 1084 ? (char *) OR_INFINITE_POINTER : (data) + (size); \ 1085 (buf).error_abort = 1; \ 1086 (buf).fixups = NULL; \ 1090 #define OR_PACK_DOMAIN_OBJECT_TO_OID(p, d, o, n) \ 1091 or_pack_domain ((p), \ 1092 TP_DOMAIN_TYPE (d) == DB_TYPE_OBJECT ? &tp_Oid_domain : (d), \ 1095 #define ASSERT_ALIGN(ptr, alignment) (assert (PTR_ALIGN (ptr, alignment) == ptr)) 1097 #if defined __cplusplus 1107 #if defined __cplusplus 1117 int variable_offset_size);
1123 #if defined(ENABLE_UNUSED_FUNCTION) 1124 extern int or_get_bound_bit (
char *bound_bits,
int element);
1125 extern void or_put_bound_bit (
char *bound_bits,
int element,
int bound);
1130 #if defined(ENABLE_UNUSED_FUNCTION) 1131 extern char *or_pack_bigint (
char *ptr,
DB_BIGINT number);
1136 #if defined(ENABLE_UNUSED_FUNCTION) 1137 extern char *or_pack_time (
char *ptr,
DB_TIME time);
1138 extern char *or_pack_date (
char *ptr,
DB_DATE date);
1139 extern char *or_pack_monetary (
char *ptr,
DB_MONETARY * money);
1140 extern char *or_pack_utime (
char *ptr,
DB_UTIME utime);
1144 extern char *
or_pack_stream (
char *ptr,
const char *stream,
size_t len);
1163 #if defined(ENABLE_UNUSED_FUNCTION) 1164 extern char *or_pack_elo (
char *ptr,
void *elo);
1165 extern char *or_pack_string_array (
char *buffer,
int count,
const char **string_array);
1166 extern char *or_pack_db_value_array (
char *buffer,
int count,
DB_VALUE * val);
1167 extern char *or_pack_int_array (
char *buffer,
int count,
int *int_array);
1177 #if defined(ENABLE_UNUSED_FUNCTION) 1178 extern char *or_unpack_bigint (
char *ptr,
DB_BIGINT * number);
1186 #if defined(ENABLE_UNUSED_FUNCTION) 1187 extern char *or_unpack_time (
char *ptr,
DB_TIME * time);
1188 extern char *or_unpack_date (
char *ptr,
DB_DATE * date);
1189 extern char *or_unpack_monetary (
char *ptr,
DB_MONETARY * money);
1190 extern char *or_unpack_utime (
char *ptr,
DB_UTIME * utime);
1210 #if defined(ENABLE_UNUSED_FUNCTION) 1211 extern char *or_unpack_string_array (
char *buffer,
char ***string_array,
int *cnt);
1212 extern char *or_unpack_db_value_array (
char *buffer,
DB_VALUE ** val,
int *
count);
1213 extern char *or_unpack_elo (
char *ptr,
void **elo_ptr);
1215 extern char *
or_pack_ptr (
char *ptr, UINTPTR ptrval);
1225 #if defined(ENABLE_UNUSED_FUNCTION) 1226 extern int or_align_length (
int length);
1241 #if defined(ENABLE_UNUSED_FUNCTION) 1242 extern int or_elo_length (
void *elo_ptr);
1243 extern int or_packed_string_array_length (
int count,
const char **string_array);
1244 extern int or_packed_db_value_array_length (
int count,
DB_VALUE * val);
1247 extern void or_encode (
char *buffer,
const char *source,
int size);
1248 extern void or_decode (
const char *buffer,
char *dest,
int size);
1273 #if defined(ENABLE_UNUSED_FUNCTION) 1317 #if defined(ENABLE_UNUSED_FUNCTION) 1318 extern int or_length_string (
char *
string);
1319 extern int or_length_binary (
DB_BINARY * binary);
1326 #if defined(ENABLE_UNUSED_FUNCTION) 1327 extern char *or_get_varchar (
OR_BUF * buf,
int *length_ptr);
1328 extern char *or_get_varbit (
OR_BUF * buf,
int *length_ptr);
1347 int *offset_table,
int *element_tags,
int *element_size);
1350 int element_tags,
int common_sub_header);
1353 int *offset_table,
int *element_tags,
int *common_sub_header);
1366 int include_domain_classoids);
1369 int include_domain_classoids);
1402 #if defined (__cplusplus) 1410 #define OR_MINIMUM_STRING_LENGTH_FOR_COMPRESSION 255 1412 #define OR_IS_STRING_LENGTH_COMPRESSABLE(str_length) \ 1413 ((str_length) >= OR_MINIMUM_STRING_LENGTH_FOR_COMPRESSION && (str_length) <= LZ4_MAX_INPUT_SIZE) 1453 int compressed_length = 0, decompressed_length = 0,
rc =
NO_ERROR, net_charlen = 0;
1454 int size_prefix = 0;
1460 assert (size_prefix == 0);
1469 compressed_length =
OR_GET_INT ((
char *) &net_charlen);
1474 *compressed_size = compressed_length;
1480 decompressed_length =
OR_GET_INT ((
char *) &net_charlen);
1485 *decompressed_size = decompressed_length;
1490 *compressed_size = 0;
1491 *decompressed_size = size_prefix;
char * or_unpack_var_table(char *ptr, int nvars, OR_VARINFO *vars)
char * or_unpack_set(char *ptr, setobj **set, struct tp_domain *domain)
char * or_unpack_hfid_array(char *ptr, int n, HFID **hfids)
char * or_unpack_oid(char *ptr, OID *oid)
char * or_pack_btid(char *buf, const BTID *btid)
void OR_PUT_FLOAT(char *ptr, float val)
int or_get_enumeration(OR_BUF *buf, DB_ENUMERATION *e)
int or_rep_id(RECDES *record)
char * or_pack_bool_array(char *ptr, const bool *bools, int size)
int or_get_mvccid(OR_BUF *buf, MVCCID *mvccid)
int or_get_varbit_length(OR_BUF *buf, int *intval)
STATIC_INLINE int or_get_varchar_compression_lengths(OR_BUF *buf, int *compressed_size, int *decompressed_size) __attribute__((ALWAYS_INLINE))
float or_get_float(OR_BUF *buf, int *error)
int or_put_float(OR_BUF *buf, float num)
char * or_unpack_string(char *ptr, char **string)
int or_packed_value_size(const DB_VALUE *value, int collapse_null, int include_domain, int include_domain_classoids)
int or_put_oid(OR_BUF *buf, const OID *oid)
void or_abort(OR_BUF *buf)
int or_mvcc_set_repid_and_flags(OR_BUF *buf, int mvcc_flag, int repid, int bound_bit, int variable_offset_size)
char * or_pack_ehid(char *buf, EHID *btid)
int or_listid_length(void *listid)
int or_packed_varchar_length(int charlen)
int or_get_json_schema(OR_BUF *buf, REFPTR(char, schema))
int or_put_domain(OR_BUF *buf, struct tp_domain *domain, int include_classoids, int is_null)
char * or_pack_errcode(char *ptr, int error)
char * or_pack_recdes(char *buf, RECDES *recdes)
char * or_unpack_unbound_listid(char *ptr, void **listid_ptr)
int or_put_time(OR_BUF *buf, DB_TIME *timeval)
UINT64 htond(double from)
double or_get_double(OR_BUF *buf, int *error)
int or_get_datetimetz(OR_BUF *buf, DB_DATETIMETZ *datetimetz)
char * or_unpack_string_alloc(char *ptr, char **string)
char * or_pack_db_value(char *buffer, DB_VALUE *var)
int classobj_get_prop(DB_SEQ *properties, const char *name, DB_VALUE *pvalue)
int or_put_datetimetz(OR_BUF *buf, DB_DATETIMETZ *datetimetz)
char * or_pack_string(char *ptr, const char *string)
char * or_pack_value(char *buf, DB_VALUE *value)
int or_get_oid(OR_BUF *buf, OID *oid)
int or_packed_recdesc_length(int length)
int or_put_varbit(OR_BUF *buf, const char *string, int bitlen)
void OR_PUT_DOUBLE(char *ptr, double val)
char * or_unpack_ehid(char *buf, EHID *btid)
char * or_unpack_set_node(char *ptr, void *set_node_ptr)
int or_skip_varchar_remainder(OR_BUF *buf, int charlen, int align)
char * or_unpack_spacedb(char *ptr, SPACEDB_ALL *all, SPACEDB_ONEVOL **vols, SPACEDB_FILES *files)
int or_packed_enumeration_size(const DB_ENUMERATION *e)
int or_varchar_length(int charlen)
void or_packed_set_info(DB_TYPE set_type, struct tp_domain *domain, int include_domain, int *bound_bits, int *offset_table, int *element_tags, int *element_size)
char * or_unpack_string_nocopy(char *ptr, char **string)
int or_put_value(OR_BUF *buf, DB_VALUE *value, int collapse_null, int include_domain, int include_domain_classoids)
int or_skip_varbit(OR_BUF *buf, int align)
char * or_pack_oid(char *ptr, const OID *oid)
char * or_unpack_recdes(char *buf, RECDES **recdes)
int or_packed_domain_size(struct tp_domain *domain, int include_classoids)
int or_put_date(OR_BUF *buf, DB_DATE *date)
int or_get_monetary(OR_BUF *buf, DB_MONETARY *monetary)
char * or_unpack_log_lsa(char *ptr, struct log_lsa *lsa)
char * or_unpack_int_array(char *ptr, int n, int **number_array)
int or_packed_bool_array_length(const bool *bools, int size)
char * or_unpack_errcode(char *ptr, int *error)
int or_get_align(OR_BUF *buf, int align)
char * or_pack_short(char *ptr, short number)
char * or_pack_mvccid(char *ptr, const MVCCID mvccid)
int or_set_node_length(void *set_node_ptr)
int or_skip_set_header(OR_BUF *buf)
int or_get_varchar_length(OR_BUF *buf, int *intval)
int or_put_utime(OR_BUF *buf, DB_UTIME *timeval)
int or_packed_stream_length(size_t len)
int or_put_mvccid(OR_BUF *buf, MVCCID mvccid)
char * or_pack_int64(char *ptr, INT64 number)
char * or_pack_double(char *ptr, double number)
int or_get_utime(OR_BUF *buf, DB_UTIME *timeval)
int or_put_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_put_timestamptz(OR_BUF *buf, DB_TIMESTAMPTZ *ts_tz)
char * or_pack_float(char *ptr, float number)
int classobj_decompose_property_oid(const char *buffer, int *volid, int *fileid, int *pageid)
void classobj_initialize_default_expr(DB_DEFAULT_EXPR *default_expr)
char * or_pack_hfid(const char *ptr, const HFID *hfid)
void or_decode(const char *buffer, char *dest, int size)
char * or_pack_stream(char *ptr, const char *stream, size_t len)
STATIC_INLINE int or_get_string_size_byte(OR_BUF *buf, int *error) __attribute__((ALWAYS_INLINE))
int or_packed_string_length(const char *string, int *strlen)
char * or_unpack_btid(char *buf, BTID *btid)
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_mvcc_get_repid_and_flags(OR_BUF *buf, int *error)
int or_get_short(OR_BUF *buf, int *error)
int or_put_json_validator(OR_BUF *buf, JSON_VALIDATOR *validator)
int or_chn(RECDES *record)
char * or_pack_spacedb(char *ptr, const SPACEDB_ALL *all, const SPACEDB_ONEVOL *vols, const SPACEDB_FILES *files)
int or_disk_set_size(OR_BUF *buf, struct tp_domain *domain, DB_TYPE *set_type)
char * or_unpack_hfid(char *ptr, HFID *hfid)
char * or_unpack_lock(char *ptr, LOCK *lock)
int or_put_int(OR_BUF *buf, int num)
char * or_pack_sha1(char *ptr, const SHA1Hash *sha1)
int or_db_value_size(DB_VALUE *var)
DB_BIGINT or_get_bigint(OR_BUF *buf, int *error)
int or_put_string_aligned(OR_BUF *buf, char *string)
int or_get_datetime(OR_BUF *buf, DB_DATETIME *datetime)
char * or_pack_string_with_null_padding(char *ptr, const char *stream, size_t len)
int or_put_bigint(OR_BUF *buf, DB_BIGINT num)
int or_varbit_length(int bitlen)
int or_put_byte(OR_BUF *buf, int num)
int or_overflow(OR_BUF *buf)
int or_align(OR_BUF *buf, int alignment)
int or_put_short(OR_BUF *buf, int num)
int or_put_offset(OR_BUF *buf, int num)
int db_string_put_cs_and_collation(DB_VALUE *value, const int codeset, const int collation_id)
int or_get_align64(OR_BUF *buf)
int or_replace_chn(RECDES *record, int chn)
int or_header_size(char *ptr)
int or_put_offset_internal(OR_BUF *buf, int num, int offset_size)
char * or_unpack_sha1(char *ptr, SHA1Hash *sha1)
char * or_pack_set_header(char *buf, DB_TYPE stype, DB_TYPE etype, int bound_bits, int size)
char * or_unpack_float(char *ptr, float *number)
int or_method_sig_list_length(void *method_sig_list_ptr)
char * or_unpack_int(char *ptr, int *number)
void or_init(OR_BUF *buf, char *data, int length)
int or_get_timestamptz(OR_BUF *buf, DB_TIMESTAMPTZ *ts_tz)
char * or_unpack_longint(char *ptr, int *number)
char * or_unpack_int64(char *ptr, INT64 *number)
int or_set_rep_id(RECDES *record, int repid)
int count(int &result, const cub_regex_object ®, const std::string &src, const int position, const INTL_CODESET codeset)
int or_packed_spacedb_size(const SPACEDB_ALL *all, const SPACEDB_ONEVOL *vols, const SPACEDB_FILES *files)
char * or_unpack_mem_value(char *buf, DB_VALUE *value)
setobj * or_get_set(OR_BUF *buf, struct tp_domain *domain)
char * or_pack_mem_value(char *ptr, DB_VALUE *value, int *packed_len_except_alignment)
char * or_unpack_listid(char *ptr, void *listid_ptr)
int or_put_enumeration(OR_BUF *buf, const DB_ENUMERATION *e)
char * or_unpack_bool_array(char *ptr, bool **bools)
int or_get_offset_internal(OR_BUF *buf, int *error, int offset_size)
int or_packed_set_length(setobj *set, int include_domain)
int or_put_varchar(OR_BUF *buf, char *string, int charlen)
static void error(const char *msg)
int or_put_datetime(OR_BUF *buf, DB_DATETIME *datetimeval)
char * or_pack_int(char *ptr, int number)
int or_skip_varbit_remainder(OR_BUF *buf, int bitlen, int align)
int or_seek(OR_BUF *buf, int psn)
int or_put_monetary(OR_BUF *buf, DB_MONETARY *monetary)
char * or_class_name(RECDES *record)
char * or_unpack_setref(char *ptr, DB_SET **ref)
char * or_pack_listid(char *ptr, void *listid)
char * or_pack_method_sig_list(char *ptr, void *method_sig_list)
int valcnv_convert_value_to_string(DB_VALUE *value)
#define OR_MINIMUM_STRING_LENGTH_FOR_COMPRESSION
char * or_unpack_set_header(char *buf, DB_TYPE *stype, DB_TYPE *etype, int *bound_bits, int *size)
char * or_unpack_mvccid(char *ptr, MVCCID *mvccid)
char * or_pack_oid_array(char *ptr, int n, const OID *oids)
int or_underflow(OR_BUF *buf)
char * or_pack_lock(char *ptr, LOCK lock)
char * or_unpack_ptr(char *ptr, UINTPTR *ptrval)
int or_packed_varbit_length(int bitlen)
char * or_pack_string_with_length(char *ptr, const char *string, int length)
int or_get_offset(OR_BUF *buf, int *error)
int db_enum_put_cs_and_collation(DB_VALUE *value, const int codeset, const int collation_id)
char * or_pack_domain(char *ptr, struct tp_domain *domain, int include_classoids, int is_null)
int or_put_align32(OR_BUF *buf)
char * or_unpack_method_sig_list(char *ptr, void **method_sig_list_ptr)
OR_VARINFO * or_get_var_table(OR_BUF *buf, int nvars, char *(*allocator)(int))
int or_packed_put_varbit(OR_BUF *buf, const char *string, int bitlen)
int or_get_align32(OR_BUF *buf)
OR_VARINFO * or_get_var_table_internal(OR_BUF *buf, int nvars, char *(*allocator)(int), int offset_size)
int or_get_date(OR_BUF *buf, DB_DATE *date)
char * or_unpack_value(const char *buf, DB_VALUE *value)
char * or_pack_ptr(char *ptr, UINTPTR ptrval)
int or_packed_put_varchar(OR_BUF *buf, char *string, int charlen)
int or_put_data(OR_BUF *buf, const char *data, int length)
int or_put_json_schema(OR_BUF *buf, const char *schema)
int or_get_data(OR_BUF *buf, char *data, int length)
char * or_pack_log_lsa(const char *ptr, const struct log_lsa *lsa)
void or_encode(char *buffer, const char *source, int size)
int or_put_double(OR_BUF *buf, double num)
int or_get_byte(OR_BUF *buf, int *error)
char * or_unpack_oid_array(char *ptr, int n, OID **oids)
int or_put_sub_domain(OR_BUF *buf)
char * or_unpack_stream(char *ptr, char *stream, size_t len)
struct db_object * handle
char * or_unpack_double(char *ptr, double *number)
int or_get_int(OR_BUF *buf, int *error)
int or_get_value(OR_BUF *buf, DB_VALUE *value, struct tp_domain *domain, int expected, bool copy)
int or_set_element_offset(char *setptr, int element)
char * or_unpack_short(char *ptr, short *number)
int or_put_string_aligned_with_length(OR_BUF *buf, const char *str)
char * or_pack_set_node(char *ptr, void *set_node)
int or_pad(OR_BUF *buf, int length)
char * or_unpack_domain(char *ptr, struct tp_domain **domain_ptr, int *is_null)
void or_put_set(OR_BUF *buf, setobj *set, int include_domain)
char * or_unpack_db_value(char *buffer, DB_VALUE *val)
int or_advance(OR_BUF *buf, int offset)
struct tp_domain * or_get_domain(OR_BUF *buf, struct tp_domain *dom, int *is_null)
int or_get_json_validator(OR_BUF *buf, REFPTR(JSON_VALIDATOR, validator))
int or_skip_varchar(OR_BUF *buf, int align)