42 #define DATA_INIT(data, type) memset(data, 0, sizeof(DB_DATA)) 43 #define OR_ARRAY_EXTENT 10 50 #define OR_VAR_TABLE_ELEMENT_OFFSET(table, index) \ 51 OR_VAR_TABLE_ELEMENT_OFFSET_INTERNAL(table, index, \ 54 #define OR_VAR_TABLE_ELEMENT_LENGTH(table, index) \ 55 OR_VAR_TABLE_ELEMENT_LENGTH_INTERNAL(table, index, \ 68 #define HEAP_MOVE_INSIDE_RECORD(rec, dest_offset, src_offset) \ 71 assert ((rec) != NULL && (dest_offset) >= 0 && (src_offset) >= 0); \ 72 assert (((rec)->length - (src_offset)) >= 0); \ 73 assert (((rec)->area_size <= 0) || ((rec)->area_size >= (rec)->length)); \ 74 assert (((rec)->area_size <= 0) \ 75 || (((rec)->length + ((dest_offset) - (src_offset))) \ 76 <= (rec)->area_size)); \ 77 if ((dest_offset) != (src_offset)) \ 79 memmove ((rec)->data + (dest_offset), (rec)->data + (src_offset), \ 80 (rec)->length - (src_offset)); \ 81 (rec)->length = (rec)->length + ((dest_offset) - (src_offset)); \ 87 OID ** class_oids,
HFID ** hfids,
int *num_classes,
int *max_classes,
88 int *partition_local_index);
103 const char *cons_name);
124 #if defined (ENABLE_UNUSED_FUNCTION) 133 orc_class_rep_dir (
RECDES * record,
OID * rep_dir_p)
175 DISK_ATTR *att, *att_fixed, *att_variable;
177 int i, j, k, n_attributes, n_btstats;
202 rep->
id = or_rep->
id;
207 rep->repr_reserved_1 = 0;
215 for (i = 0; i < n_attributes; i++, or_att++)
250 att_fixed = rep->
fixed;
254 for (i = 0; i < n_attributes; i++, or_att++)
273 att->
id = or_att->
id;
294 for (j = 0, bt_statsp = att->
bt_stats; j < n_btstats; j++, bt_statsp++)
298 bt_statsp->
leafs = 0;
299 bt_statsp->
pages = 0;
321 bt_statsp->reserved[k] = 0;
345 if (root_header ==
NULL)
377 bt_statsp->
pkeys = (
int *) malloc (bt_statsp->
pkeys_size * sizeof (
int));
389 bt_statsp->
pkeys[k] = 0;
431 for (i = 0; i < rep->
n_fixed; i++)
499 if (class_info_p ==
NULL)
549 int max, insert,
i, newsize, nsubs;
570 for (i = 0; i < max && !
OID_ISNULL (&array[i]); i++)
581 if (array ==
NULL || (insert + nsubs + 1) >
max)
583 newsize = insert + nsubs + 10;
586 array = (
OID *) malloc (newsize *
sizeof (
OID));
590 array = (
OID *) realloc (array, newsize *
sizeof (
OID));
599 for (i = max; i < newsize; i++)
614 for (i = 0; i < nsubs; i++)
651 int nsupers = 0,
i = 0;
652 char *superset =
NULL;
674 oid_array = (
OID *) malloc (nsupers *
sizeof (
OID));
676 if (oid_array ==
NULL)
687 for (
i = 0;
i < nsupers;
i++)
694 *array_size = nsupers;
695 *array_ptr = oid_array;
762 #if defined (ENABLE_UNUSED_FUNCTION) 771 or_class_statistics (
RECDES * record,
OID * oid)
798 or_class_subclasses (
RECDES * record,
int *array_size,
OID ** array_ptr)
803 int max, insert,
i, newsize, nsubs;
824 for (i = 0; i < max && !
OID_ISNULL (&array[i]); i++)
835 if ((insert + nsubs + 1) >
max)
837 newsize = insert + nsubs + 10;
839 buf_size = newsize *
sizeof (
OID);
842 array = (
OID *) malloc (buf_size);
846 array = (
OID *) realloc (array, buf_size);
855 for (i = max; i < newsize; i++)
869 for (i = 0; i < nsubs; i++)
910 HFID ** hfids,
int *num_classes,
int *max_classes,
int *partition_local_index)
915 int i, nsubs, found, newsize;
936 or_index = &(or_rep->
indexes[0]);
937 for (i = 0; i < or_rep->
n_indexes && !found; i++, or_index++)
951 *partition_local_index = 1;
979 for (i = 0; i < nsubs; i++)
983 (thread_p, source_class, &sub_class, btid, class_oids, hfids, num_classes, max_classes,
1001 for (i = 0; i < *num_classes; i++)
1003 if (*class_oids !=
NULL &&
OID_EQ (class_, &((*class_oids)[i])))
1010 if ((*num_classes + 1) > *max_classes)
1014 if (*class_oids ==
NULL)
1016 *class_oids = (
OID *) malloc (newsize *
sizeof (
OID));
1020 *class_oids = (
OID *) realloc (*class_oids, newsize *
sizeof (
OID));
1023 if (*class_oids ==
NULL)
1031 *hfids = (
HFID *) malloc (newsize *
sizeof (
HFID));
1035 *hfids = (
HFID *) realloc (*hfids, newsize *
sizeof (
HFID));
1044 *max_classes = newsize;
1047 if (*class_oids ==
NULL || *hfids ==
NULL)
1052 COPY_OID (&((*class_oids)[*num_classes]), class_);
1053 (*hfids)[*num_classes] = hfid;
1103 HFID ** hfids,
int *num_classes,
int *partition_local_index)
1105 int n_attributes, n_fixed, n_variable,
i;
1106 int id, found, max_classes;
1107 char *attr_name, *start, *ptr, *attset, *diskatt =
NULL;
1115 if (partition_local_index !=
NULL)
1117 *partition_local_index = 0;
1121 start = record->
data;
1129 n_attributes = n_fixed + n_variable;
1135 for (i = 0, found = 0; i < n_attributes && !found; i++)
1155 if (diskatt ==
NULL)
1164 &max_classes, partition_local_index) !=
NO_ERROR))
1197 char *dstart, *fixed;
1200 domain = last =
NULL;
1204 for (i = 0; i < n_domains; i++)
1261 or_init (&buf, dstart + offset, 0);
1277 or_init (&buf, dstart + offset, 0);
1290 while (domain !=
NULL)
1381 length -= (int) (vptr - ptr);
1383 if (is_null || length == 0)
1431 length -= (int) (vptr - ptr);
1433 if (is_null || length == 0)
1471 const char *prop_name;
1476 if (properties !=
NULL && name !=
NULL && pvalue !=
NULL)
1479 for (i = 0; i < max && !found && error ==
NO_ERROR; i += 2)
1491 if (strcmp (name, prop_name) == 0)
1529 int pageid, slotid, volid, fileid;
1590 int pageid, slotid, volid, fileid;
1597 for (i = 0; i < size; i++)
1715 for (i = 0; i < num_attrs; i++)
1739 const char *buffer =
NULL;
1789 if (filter_predicate ==
NULL)
1807 filter_predicate->
pred_stream = (
char *) malloc (buffer_len *
sizeof (
char));
1815 memcpy (filter_predicate->
pred_stream, buffer, buffer_len);
1821 if (filter_predicate)
1868 const char *cons_name)
1872 int att_id, att_cnt;
1888 att_cnt = (seq_size - 3) / 2;
1897 index->
asc_desc = (
int *) malloc (
sizeof (
int) * att_cnt);
1923 for (i = 0; i < att_cnt; i++)
1934 for (j = 0, att = rep->
attributes, ptr =
NULL; j < rep->n_attributes && ptr ==
NULL; j++, att++)
1936 if (att->
id == att_id)
2079 sizeof (
int) * att_cnt);
2082 for (i = 0; i < att_cnt; i++)
2121 for (i = 0, att = rep->
attributes; i < rep->n_attributes && ptr ==
NULL; i++, att++)
2123 if (att->
id == att_id)
2196 int i, seq_size, args;
2197 int volid, fileid, pageid;
2203 seq_size =
set_size (constraint_seq);
2227 id.vfid.volid = (
VOLID) volid;
2228 id.root_pageid = (
PAGEID) pageid;
2229 id.vfid.fileid = (
FILEID) fileid;
2285 if (property_vars[i].
seq)
2288 n_btids += property_vars[
i].
length;
2310 if (property_vars[i].
seq)
2315 const char *cons_name =
NULL;
2362 char *start, *ptr, *attset, *diskatt, *original_val_ptr, *dptr, *properties_val_ptr, *current_val_ptr;
2363 int i, start_offset, offset, original_val_len, n_fixed, n_variable, properties_val_len, current_val_len;
2364 int n_shared_attrs, n_class_attrs;
2366 DB_VALUE properties_val, def_expr_op, def_expr, def_expr_type, def_expr_format;
2367 const char *def_expr_format_str =
NULL;
2377 start = record->
data;
2442 start_offset = offset = 0;
2444 for (i = 0, att = rep->
attributes; i < rep->n_attributes; i++, att++)
2460 or_init (&buf, properties_val_ptr, properties_val_len);
2531 if (current_val_len > 0)
2540 if (original_val_len > 0)
2551 if (properties_val_len > 0)
2618 #if !defined (NDEBUG) 2654 for (i = 0, att = rep->
shared_attrs; i < rep->n_shared_attrs; i++, att++)
2716 if (current_val_len > 0)
2740 for (i = 0, att = rep->
class_attrs; i < rep->n_class_attrs; i++, att++)
2794 if (current_val_len > 0)
2892 char *repset, *disk_rep, *attset, *repatt, *dptr;
2893 int rep_count,
i, n_fixed, n_variable, offset, start,
id;
2917 for (i = 0; i < rep_count; i++)
2938 if (disk_rep ==
NULL)
2992 for (i = 0, att = rep->
attributes; i < rep->n_attributes; i++, att++)
3096 char *repset =
NULL, *disk_rep, *attset, *repatt, *dptr, *fixed =
NULL;
3097 int old_rep_count = 0,
i, j, offset, start, n_variable, n_fixed;
3114 if (rep_arr ==
NULL)
3121 memset (rep_arr, 0x0,
sizeof (
OR_CLASSREP *) * (old_rep_count + 1));
3125 if (rep_arr[0] ==
NULL)
3131 for (
i = 0;
i < old_rep_count && repset !=
NULL;
i++)
3134 if (rep_arr[
i + 1] ==
NULL)
3139 rep = rep_arr[
i + 1];
3190 for (j = 0, att = rep->
attributes; j < rep->n_attributes; j++, att++)
3280 *count = old_rep_count + 1;
3285 for (
i = 0;
i < old_rep_count + 1;
i++)
3323 if (current == repid)
3359 if (current == repid)
3410 char *partition_ptr =
NULL, *ptr =
NULL;
3419 *has_partition_info = 0;
3452 partition_info->
rep_id = *repr_id;
3453 *has_partition_info = 1;
3474 int i, j, len, info_len, num;
3475 char *subset, *comment =
NULL;
3476 DB_SET *info, *props, *setref;
3480 info = props = setref =
NULL;
3496 for (i = 0; i < num && found ==
false; i += 2)
3498 const char *prop_name =
NULL;
3506 if (prop_name ==
NULL)
3529 for (j = 0; j < len; j += 2)
3565 comment =
strdup (cvalue_string);
3583 #if defined (ENABLE_UNUSED_FUNCTION) 3617 for (i = 0, att = rep->
attributes; i < rep->n_attributes; i++, att++)
3649 for (i = 0, att = rep->
shared_attrs; i < rep->n_shared_attrs; i++, att++)
3681 for (i = 0, att = rep->
class_attrs; i < rep->n_class_attrs; i++, att++)
3703 for (i = 0, index = rep->
indexes; i < rep->n_indexes; i++, index++)
3742 for (fk = index->
fk; fk; fk = fk_next)
3784 int n_fixed, n_variable, n_shared, n_class;
3786 int type_attr,
i,
id;
3788 char *start, *ptr, *attset, *diskatt =
NULL;
3790 start = record->
data;
3801 for (type_attr = 0, found =
false; type_attr < 3 && found ==
false; type_attr++)
3812 n_attrs = n_fixed + n_variable;
3814 else if (type_attr == 1)
3837 for (i = 0, found =
false; i < n_attrs && found ==
false; i++)
3855 return found ? diskatt :
NULL;
3874 char *diskatt, *attr =
NULL;
3875 int offset = 0, offset_next = 0;
3876 unsigned char len = 0;
3878 int compressed_length = 0, decompressed_length = 0,
rc =
NO_ERROR;
3880 assert (*alloced_string == 0);
3885 if (diskatt !=
NULL)
3892 attr = diskatt + offset;
3911 len = *((
unsigned char *) attr);
3914 if (offset == offset_next)
3919 else if (len < 0xFFU)
3939 if (*
string ==
NULL)
3944 *alloced_string = 1;
3951 *alloced_string = 0;
4061 if (fi_info ==
NULL)
4134 unsigned int new_bits = 0;
4135 int offset_size = 0;
4137 bool is_bound_bit =
false;
4149 is_bound_bit =
true;
4195 int repid_and_flag_bits;
4254 int mvcc_old_flag = 0;
4255 int repid_and_flag_bits = 0;
4256 int old_mvcc_size = 0, new_mvcc_size = 0;
4266 if (old_mvcc_size != new_mvcc_size)
4269 if (record->
area_size < (record->
length + new_mvcc_size - old_mvcc_size))
4347 variable_offset_size);
4397 int lsa_offset = -1;
4445 int repid_and_flag = 0;
#define OR_SET_VAR_OFFSET_SIZE(val, offset_size)
OR_ATTRIBUTE * shared_attrs
int tp_domain_disk_size(TP_DOMAIN *domain)
static int or_get_default_value(OR_ATTRIBUTE *attr, char *ptr, int length)
int set_get_element_nocopy(DB_COLLECTION *set, int index, DB_VALUE *value)
int or_get_enumeration(OR_BUF *buf, DB_ENUMERATION *e)
int or_rep_id(RECDES *record)
DB_COLLECTION * db_get_set(const DB_VALUE *value)
static int or_cl_get_prop_nocopy(DB_SEQ *properties, const char *name, DB_VALUE *pvalue)
#define BTREE_STATS_RESERVED_NUM
STATIC_INLINE int or_get_varchar_compression_lengths(OR_BUF *buf, int *compressed_size, int *decompressed_size) __attribute__((ALWAYS_INLINE))
static void or_install_btids(OR_CLASSREP *rep, DB_SEQ *props)
OR_FUNCTION_INDEX * func_index_info
void or_class_tde_algorithm(RECDES *record, TDE_ALGORITHM *tde_algo)
int or_mvcc_set_repid_and_flags(OR_BUF *buf, int mvcc_flag, int repid, int bound_bit, int variable_offset_size)
void set_free(DB_COLLECTION *set)
int db_get_int(const DB_VALUE *value)
int or_replace_rep_id(RECDES *record, int repid)
#define OR_VAR_TABLE_ELEMENT_LENGTH(table, index)
BTREE_ROOT_HEADER * btree_get_root_header(THREAD_ENTRY *thread_p, PAGE_PTR page_ptr)
#define OR_SET_ELEMENT_COUNT(setptr)
OR_ATTRIBUTE * class_attrs
int pr_get_compressed_data_from_buffer(struct or_buf *buf, char *data, int compressed_size, int expected_decompressed_size)
#define OR_MVCC_REPID_MASK
struct tp_domain * setdomain
#define SM_FILTER_INDEX_ID
#define HEAP_MOVE_INSIDE_RECORD(rec, dest_offset, src_offset)
int classobj_get_prop(DB_SEQ *properties, const char *name, DB_VALUE *pvalue)
#define OR_BUF_INIT(buf, data, size)
#define ER_CT_UNKNOWN_REPRID
void orc_free_diskrep(DISK_REPR *rep)
#define OR_MVCC_FLAG_VALID_INSID
int btree_glean_root_header_info(THREAD_ENTRY *thread_p, BTREE_ROOT_HEADER *root_header, BTID_INT *btid)
unsigned int ci_time_stamp
int or_mvcc_get_header(RECDES *record, MVCC_REC_HEADER *mvcc_header)
#define OR_GET_BOUND_BIT_FLAG(ptr)
static void or_install_btids_foreign_key_ref(DB_SEQ *fk_container, OR_INDEX *index)
int heap_scancache_quick_start_root_hfid(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
#define OR_MVCC_FLAG_VALID_DELID
#define OID_SET_NULL(oidp)
OR_CLASSREP * or_classrep_load_indexes(OR_CLASSREP *rep, RECDES *record)
#define OR_ATT_BTID_PREALLOC
#define OR_MVCC_FLAG_SHIFT_BITS
#define OR_FIXED_ATTRIBUTES_OFFSET(ptr, nvars)
void or_free_classrep(OR_CLASSREP *rep)
int or_mvcc_add_header(RECDES *record, MVCC_REC_HEADER *mvcc_rec_header, int bound_bit, int variable_offset_size)
static void or_get_att_index(char *ptr, BTID *btid)
#define BTID_IS_EQUAL(b1, b2)
int * attrs_prefix_length
int set_size(DB_COLLECTION *set)
void or_class_hfid(RECDES *record, HFID *hfid)
#define SM_PROPERTY_NUM_INDEX_FAMILY
int heap_scancache_end(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
#define OR_VAR_OFFSET(obj, index)
#define COPY_OID(dest_oid_ptr, src_oid_ptr)
OR_CLASSREP * or_get_classrep_noindex(RECDES *record, int repid)
int mvcc_header_size_lookup[8]
static int or_install_btids_filter_pred(DB_SEQ *pred_seq, OR_INDEX *index)
#define MVCCID_ALL_VISIBLE
#define pgbuf_unfix_and_init(thread_p, pgptr)
#define OR_VAR_IS_NULL(obj, index)
or_auto_increment auto_increment
DB_DEFAULT_EXPR_TYPE default_expr_type
#define OR_VAR_TABLE_SIZE(vars)
void or_class_rep_dir(RECDES *record, OID *rep_dir_p)
static INLINE int or_mvcc_set_chn(OR_BUF *buf, MVCC_REC_HEADER *mvcc_rec_header) __attribute__((ALWAYS_INLINE))
DB_DEFAULT_EXPR_TYPE on_update_expr
static INLINE int or_mvcc_set_insid(OR_BUF *buf, MVCC_REC_HEADER *mvcc_rec_header) __attribute__((ALWAYS_INLINE))
#define RECDES_INITIALIZER
static OR_CLASSREP * or_get_old_representation(RECDES *record, int repid, int do_indexes)
int or_get_unique_hierarchy(THREAD_ENTRY *thread_p, RECDES *record, int attrid, BTID *btid, OID **class_oids, HFID **hfids, int *num_classes, int *partition_local_index)
int classobj_decompose_property_oid(const char *buffer, int *volid, int *fileid, int *pageid)
TP_DOMAIN * tp_domain_resolve_default(DB_TYPE type)
void classobj_initialize_default_expr(DB_DEFAULT_EXPR *default_expr)
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
int or_mvcc_set_log_lsa_to_record(RECDES *record, LOG_LSA *lsa)
#define OR_MVCC_FLAG_VALID_PREV_VERSION
static TP_DOMAIN * or_get_domain_internal(char *ptr)
const char * or_get_constraint_comment(RECDES *record, const char *constraint_name)
BTID btid_pack[OR_ATT_BTID_PREALLOC]
#define OR_MVCC_FLAG_MASK
bool pgbuf_check_page_ptype(THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PAGE_TYPE ptype)
#define ASSERT_ALIGN(ptr, alignment)
unsigned is_autoincrement
OR_DEFAULT_VALUE default_value
std::atomic< or_aligned_oid > serial_obj
int or_mvcc_get_repid_and_flags(OR_BUF *buf, int *error)
#define OR_SET_HEADER_SIZE
#define ER_OUT_OF_VIRTUAL_MEMORY
int or_get_attrcomment(RECDES *record, int attrid, char **string, int *alloced_string)
DB_TYPE db_value_type(const DB_VALUE *value)
int orc_superclasses_from_record(RECDES *record, int *array_size, OID **array_ptr)
#define DOM_GET_ENUMERATION(dom)
int tp_domain_size(const TP_DOMAIN *domain)
#define OR_GET_OID(ptr, oid)
DB_SEQ * db_seq_copy(DB_SEQ *source)
int or_put_int(OR_BUF *buf, int num)
#define BTREE_STATS_PKEYS_NUM
static int or_install_btids_attribute(OR_CLASSREP *rep, int att_id, BTID *id)
int or_mvcc_set_header(RECDES *record, MVCC_REC_HEADER *mvcc_rec_header)
#define OR_HEADER_SIZE(ptr)
int or_put_bigint(OR_BUF *buf, DB_BIGINT num)
int or_overflow(OR_BUF *buf)
static INLINE MVCCID or_mvcc_get_insid(OR_BUF *buf, int mvcc_flags, int *error) __attribute__((ALWAYS_INLINE))
OR_PREDICATE * filter_predicate
void orc_free_class_info(CLS_INFO *info)
#define OID_EQ(oidp1, oidp2)
#define OR_MVCC_PREV_VERSION_LSA_SIZE
DISK_REPR * orc_diskrep_from_record(THREAD_ENTRY *thread_p, RECDES *record)
#define TP_DOMAIN_TYPE(dom)
unsigned has_partition_info
static TP_DOMAIN * or_get_domain_and_cache(char *ptr)
struct disk_attribute * variable
static void or_install_btids_function_info(DB_SEQ *fi_seq, OR_INDEX *index)
OR_CLASSREP ** or_get_all_representation(RECDES *record, bool do_indexes, int *count)
#define DB_ATT_ALIGN(offset)
int or_class_get_partition_info(RECDES *record, OR_PARTITION *partition_info, REPR_ID *repr_id, int *has_partition_info)
#define SM_PROPERTY_UNIQUE
#define OR_GET_BIGINT(ptr, val)
#define BTID_SET_NULL(btid)
TP_DOMAIN * tp_domain_cache(TP_DOMAIN *transient)
#define pgbuf_fix(thread_p, vpid, fetch_mode, requestmode, condition)
int db_set_free(DB_SET *set)
static void or_install_btids_class(OR_CLASSREP *rep, BTID *id, DB_SEQ *constraint_seq, int seq_size, BTREE_TYPE type, const char *cons_name)
#define db_private_free(thrd, ptr)
void or_init(OR_BUF *buf, char *data, int length)
#define db_private_alloc(thrd, size)
struct disk_attribute * fixed
#define BIG_VAR_OFFSET_SIZE
static INLINE int or_mvcc_get_prev_version_lsa(OR_BUF *buf, int mvcc_flags, LOG_LSA *prev_version_lsa) __attribute__((ALWAYS_INLINE))
int count(int &result, const cub_regex_object ®, const std::string &src, const int position, const INTL_CODESET codeset)
int pr_clear_value(DB_VALUE *value)
#define OR_SET_ELEMENT_OFFSET(setptr, element)
#define OR_MVCC_MIN_HEADER_SIZE
static INLINE MVCCID or_mvcc_get_delid(OR_BUF *buf, int mvcc_flags, int *error) __attribute__((ALWAYS_INLINE))
static void or_install_btids_prefix_length(DB_SEQ *prefix_seq, OR_INDEX *index, int num_attrs)
OR_CLASSREP * or_get_classrep(RECDES *record, int repid)
DB_ENUMERATION enumeration
static const char * or_find_diskattr(RECDES *record, int attr_id)
#define TP_IS_CHAR_TYPE(typeid)
static void error(const char *msg)
#define VPID_ISNULL(vpid_ptr)
static int or_get_hierarchy_helper(THREAD_ENTRY *thread_p, OID *source_class, OID *class_, BTID *btid, OID **class_oids, HFID **hfids, int *num_classes, int *max_classes, int *partition_local_index)
static int or_get_current_default_value(OR_ATTRIBUTE *attr, char *ptr, int length)
#define HFID_IS_NULL(hfid)
bool db_value_is_null(const DB_VALUE *value)
static void or_install_btids_constraint(OR_CLASSREP *rep, DB_SEQ *constraint_seq, BTREE_TYPE type, const char *cons_name)
char * or_unpack_setref(char *ptr, DB_SET **ref)
#define SM_PROPERTY_INDEX
const char * default_expr_format
#define SM_PROPERTY_PRIMARY_KEY
static INLINE int or_mvcc_get_chn(OR_BUF *buf, int *error) __attribute__((ALWAYS_INLINE))
int or_underflow(OR_BUF *buf)
static OR_CLASSREP * or_get_current_representation(RECDES *record, int do_indexes)
#define free_and_init(ptr)
int or_get_attrname(RECDES *record, int attrid, char **string, int *alloced_string)
#define OR_GET_MVCC_FLAG(ptr)
void LSA_SET_NULL(log_lsa *lsa_ptr)
int orc_subclasses_from_record(RECDES *record, int *array_size, OID **array_ptr)
JSON_VALIDATOR * json_validator
int db_get_string_size(const DB_VALUE *value)
static void or_mvcc_set_flag(RECDES *record, char flags)
static INLINE int or_mvcc_set_delid(OR_BUF *buf, MVCC_REC_HEADER *mvcc_rec_header) __attribute__((ALWAYS_INLINE))
#define OR_GET_MVCC_REPID_AND_FLAG(ptr)
OR_DEFAULT_VALUE current_default_value
#define DB_VALUE_TYPE(value)
int db_make_null(DB_VALUE *value)
#define SM_FUNCTION_INDEX_ID
#define SM_PROPERTY_FOREIGN_KEY
#define DB_IS_NULL(value)
#define OR_GET_OFFSET_SIZE(ptr)
static INLINE int or_mvcc_set_prev_version_lsa(OR_BUF *buf, MVCC_REC_HEADER *mvcc_rec_header) __attribute__((ALWAYS_INLINE))
static char or_mvcc_get_flag(RECDES *record)
static int or_get_attr_string(RECDES *record, int attr_id, int attr_index, char **string, int *alloced_string)
char * strdup(const char *str)
CLS_INFO * orc_class_info_from_record(RECDES *record)
OR_INDEX_STATUS index_status
struct db_object * class_mop
#define OR_BOUND_BIT_FLAG
#define SM_PREFIX_INDEX_ID
#define SM_PROPERTY_REVERSE_INDEX
int or_get_value(OR_BUF *buf, DB_VALUE *value, struct tp_domain *domain, int expected, bool copy)
static void or_install_btids_foreign_key(const char *fkname, DB_SEQ *fk_seq, OR_INDEX *index)
OR_ATTRIBUTE * attributes
char * or_unpack_domain(char *ptr, struct tp_domain **domain_ptr, int *is_null)
#define DOM_SET_ENUM(dom, elems, cnt)
#define SM_PROPERTY_REVERSE_UNIQUE
TP_DOMAIN * tp_domain_new(DB_TYPE type)
DB_DEFAULT_EXPR default_expr
void tp_domain_free(TP_DOMAIN *dom)
DB_CONST_C_CHAR db_get_string(const DB_VALUE *value)
int or_get_json_validator(OR_BUF *buf, REFPTR(JSON_VALIDATOR, validator))
#define OR_VAR_TABLE_ELEMENT_OFFSET(table, index)
#define ER_SM_INVALID_PROPERTY
SCAN_CODE heap_get_class_record(THREAD_ENTRY *thread_p, const OID *class_oid, RECDES *recdes_p, HEAP_SCANCACHE *scan_cache, int ispeeking)