Skip to content

File object_primitive.h

FileList > cubrid > src > object > object_primitive.h

Go to the source code of this file

  • #include "dbtype_def.h"
  • #include "object_domain.h"
  • #include "porting_inline.hpp"
  • #include <cassert>
  • #include <cstdio>
  • #include <vector>

Classes

Type Name
struct pr_type

Public Types

Type Name
typedef struct pr_type * PRIM
typedef struct pr_type PR_TYPE

Public Attributes

Type Name
int pr_Enable_string_compression
int pr_Inhibit_oid_promotion
const PR_TYPE tp_Bigint
const PR_TYPE tp_Bit
const PR_TYPE tp_Blob
const PR_TYPE tp_Char
const PR_TYPE tp_Clob
const PR_TYPE tp_Date
const PR_TYPE tp_Datetime
const PR_TYPE tp_Datetimeltz
const PR_TYPE tp_Datetimetz
const PR_TYPE tp_Double
const PR_TYPE tp_Elo
const PR_TYPE tp_Enumeration
const PR_TYPE tp_Error
const PR_TYPE tp_Float
const PR_TYPE tp_Integer
const PR_TYPE tp_Json
const PR_TYPE tp_Midxkey
const PR_TYPE tp_Monetary
const PR_TYPE tp_Multiset
const PR_TYPE tp_Null
const PR_TYPE tp_Numeric
const PR_TYPE tp_Object
const PR_TYPE tp_Oid
const PR_TYPE tp_Pointer
const PR_TYPE tp_ResultSet
const PR_TYPE tp_Sequence
const PR_TYPE tp_Set
const PR_TYPE tp_Short
const PR_TYPE tp_String
const PR_TYPE tp_Substructure
const PR_TYPE tp_Time
const PR_TYPE tp_Timeltz
const PR_TYPE tp_Timestampltz
const PR_TYPE tp_Timestamptz
const PR_TYPE tp_Timetz
const PR_TYPE * tp_Type_bigint
const PR_TYPE * tp_Type_bit
const PR_TYPE * tp_Type_blob
const PR_TYPE * tp_Type_char
const PR_TYPE * tp_Type_clob
const PR_TYPE * tp_Type_date
const PR_TYPE * tp_Type_datetime
const PR_TYPE * tp_Type_double
const PR_TYPE * tp_Type_elo
const PR_TYPE * tp_Type_error
const PR_TYPE * tp_Type_float
const PR_TYPE * tp_Type_id_map
const PR_TYPE * tp_Type_integer
const PR_TYPE * tp_Type_json
const PR_TYPE * tp_Type_midxkey
const PR_TYPE * tp_Type_monetary
const PR_TYPE * tp_Type_multiset
const PR_TYPE * tp_Type_null
const PR_TYPE * tp_Type_numeric
const PR_TYPE * tp_Type_object
const PR_TYPE * tp_Type_oid
const PR_TYPE * tp_Type_pointer
const PR_TYPE * tp_Type_resultset
const PR_TYPE * tp_Type_sequence
const PR_TYPE * tp_Type_set
const PR_TYPE * tp_Type_short
const PR_TYPE * tp_Type_string
const PR_TYPE * tp_Type_substructure
const PR_TYPE * tp_Type_time
const PR_TYPE * tp_Type_utime
const PR_TYPE * tp_Type_varbit
const PR_TYPE * tp_Type_variable
const PR_TYPE * tp_Type_vobj
const PR_TYPE tp_Utime
const PR_TYPE tp_VarBit
const PR_TYPE tp_Variable
const PR_TYPE tp_Vobj

Public Functions

Type Name
void PRIM_SET_NULL (DB_VALUE * value)
void pr_area_final (void)
int pr_area_init (void)
int pr_clear_compressed_string (DB_VALUE * value)
int pr_clear_value (DB_VALUE * var)
void pr_clear_value_vector (std::vector< DB_VALUE > & value_vector)
int pr_clone_value (const DB_VALUE * src, DB_VALUE * dest)
int pr_complete_enum_value (DB_VALUE * value, struct tp_domain * domain)
DB_VALUE * pr_copy_value (DB_VALUE * var)
int pr_data_compress_string (const char * string, int str_length, char * compressed_string, int compress_buffer_size, int * compressed_length)
void pr_data_writeval (struct or_buf * buf, DB_VALUE * value)
int pr_data_writeval_disk_size (DB_VALUE * value)
int pr_do_db_value_string_compression (DB_VALUE * value)
const PR_TYPE * pr_find_type (const char * name)
int pr_free_ext_value (DB_VALUE * value)
int pr_free_value (DB_VALUE * var)
int pr_get_compressed_data_from_buffer (struct or_buf * buf, char * data, int compressed_size, int expected_decompressed_size)
int pr_get_compression_length (const char * string, int str_length)
int pr_get_size_and_write_string_to_buffer (struct or_buf * buf, char * val_p, DB_VALUE * value, int * val_size, int align)
int pr_index_writeval_disk_size (DB_VALUE * value)
int pr_is_variable_type (DB_TYPE type)
DB_VALUE * pr_make_ext_value (void)
DB_VALUE * pr_make_value (void)
int pr_mem_size (const PR_TYPE * type)
int pr_midxkey_add_elements (DB_VALUE * keyval, DB_VALUE * dbvals, int num_dbvals, struct tp_domain * dbvals_domain_list)
int pr_midxkey_add_elements_with_null (DB_VALUE * keyval, DB_VALUE * dbvals, int num_dbvals, struct tp_domain * dbvals_domain_list, int tail_null_cnt)
int pr_midxkey_add_prefix (DB_VALUE * result, DB_VALUE * prefix, DB_VALUE * postfix, int n_prefix)
int pr_midxkey_common_prefix (DB_VALUE * key1, DB_VALUE * key2)
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 * diff_column, bool * dom_is_desc, int * result_size)
int pr_midxkey_get_element_nocopy (const DB_MIDXKEY * midxkey, int index, DB_VALUE * value, int * prev_indexp, char ** prev_ptrp)
int pr_midxkey_get_element_offset (const DB_MIDXKEY * midxkey, int index)
int pr_midxkey_remove_prefix (DB_VALUE * key, int prefix)
int pr_midxkey_unique_prefix (const DB_VALUE * db_midxkey1, const DB_VALUE * db_midxkey2, DB_VALUE * db_result)
const PR_TYPE * pr_type_from_id (DB_TYPE id)
const char * pr_type_name (DB_TYPE id)
char * pr_valstring (const DB_VALUE * val)
int pr_value_mem_size (const DB_VALUE * value)

Public Static Functions

Type Name
int pr_is_prefix_key_type (DB_TYPE type)
bool pr_is_set_type (DB_TYPE type)
int pr_is_string_type (DB_TYPE type)
int pr_midxkey_element_disk_size (char * mem, DB_DOMAIN * domain)

Macros

Type Name
define PRIM_COMPRESSION_LENGTH_OFFSET 4
define PRIM_STRING_MAXIMUM_DISK_SIZE (length) ([**OR\_BYTE\_SIZE**](object__representation__constants_8h.md#define-or_byte_size) + [**OR\_INT\_SIZE**](object__representation__constants_8h.md#define-or_int_size) + [**OR\_INT\_SIZE**](object__representation__constants_8h.md#define-or_int_size) + (length) + [**MAX\_ALIGNMENT**](memory__alloc_8h.md#define-max_alignment))
define PRIM_TEMPORARY_DISK_SIZE 256

Public Types Documentation

typedef PRIM

typedef struct pr_type * PRIM;

typedef PR_TYPE

typedef struct pr_type PR_TYPE;

Public Attributes Documentation

variable pr_Enable_string_compression

int pr_Enable_string_compression;

variable pr_Inhibit_oid_promotion

int pr_Inhibit_oid_promotion;

variable tp_Bigint

const PR_TYPE tp_Bigint;

variable tp_Bit

const PR_TYPE tp_Bit;

variable tp_Blob

const PR_TYPE tp_Blob;

variable tp_Char

const PR_TYPE tp_Char;

variable tp_Clob

const PR_TYPE tp_Clob;

variable tp_Date

const PR_TYPE tp_Date;

variable tp_Datetime

const PR_TYPE tp_Datetime;

variable tp_Datetimeltz

const PR_TYPE tp_Datetimeltz;

variable tp_Datetimetz

const PR_TYPE tp_Datetimetz;

variable tp_Double

const PR_TYPE tp_Double;

variable tp_Elo

const PR_TYPE tp_Elo;

variable tp_Enumeration

const PR_TYPE tp_Enumeration;

variable tp_Error

const PR_TYPE tp_Error;

variable tp_Float

const PR_TYPE tp_Float;

variable tp_Integer

const PR_TYPE tp_Integer;

variable tp_Json

const PR_TYPE tp_Json;

variable tp_Midxkey

const PR_TYPE tp_Midxkey;

variable tp_Monetary

const PR_TYPE tp_Monetary;

variable tp_Multiset

const PR_TYPE tp_Multiset;

variable tp_Null

const PR_TYPE tp_Null;

variable tp_Numeric

const PR_TYPE tp_Numeric;

variable tp_Object

const PR_TYPE tp_Object;

variable tp_Oid

const PR_TYPE tp_Oid;

variable tp_Pointer

const PR_TYPE tp_Pointer;

variable tp_ResultSet

const PR_TYPE tp_ResultSet;

variable tp_Sequence

const PR_TYPE tp_Sequence;

variable tp_Set

const PR_TYPE tp_Set;

variable tp_Short

const PR_TYPE tp_Short;

variable tp_String

const PR_TYPE tp_String;

variable tp_Substructure

const PR_TYPE tp_Substructure;

variable tp_Time

const PR_TYPE tp_Time;

variable tp_Timeltz

const PR_TYPE tp_Timeltz;

variable tp_Timestampltz

const PR_TYPE tp_Timestampltz;

variable tp_Timestamptz

const PR_TYPE tp_Timestamptz;

variable tp_Timetz

const PR_TYPE tp_Timetz;

variable tp_Type_bigint

const PR_TYPE* tp_Type_bigint;

variable tp_Type_bit

const PR_TYPE* tp_Type_bit;

variable tp_Type_blob

const PR_TYPE* tp_Type_blob;

variable tp_Type_char

const PR_TYPE* tp_Type_char;

variable tp_Type_clob

const PR_TYPE* tp_Type_clob;

variable tp_Type_date

const PR_TYPE* tp_Type_date;

variable tp_Type_datetime

const PR_TYPE* tp_Type_datetime;

variable tp_Type_double

const PR_TYPE* tp_Type_double;

variable tp_Type_elo

const PR_TYPE* tp_Type_elo;

variable tp_Type_error

const PR_TYPE* tp_Type_error;

variable tp_Type_float

const PR_TYPE* tp_Type_float;

variable tp_Type_id_map

const PR_TYPE* tp_Type_id_map[];

variable tp_Type_integer

const PR_TYPE* tp_Type_integer;

variable tp_Type_json

const PR_TYPE* tp_Type_json;

variable tp_Type_midxkey

const PR_TYPE* tp_Type_midxkey;

variable tp_Type_monetary

const PR_TYPE* tp_Type_monetary;

variable tp_Type_multiset

const PR_TYPE* tp_Type_multiset;

variable tp_Type_null

const PR_TYPE* tp_Type_null;

variable tp_Type_numeric

const PR_TYPE* tp_Type_numeric;

variable tp_Type_object

const PR_TYPE* tp_Type_object;

variable tp_Type_oid

const PR_TYPE* tp_Type_oid;

variable tp_Type_pointer

const PR_TYPE* tp_Type_pointer;

variable tp_Type_resultset

const PR_TYPE* tp_Type_resultset;

variable tp_Type_sequence

const PR_TYPE* tp_Type_sequence;

variable tp_Type_set

const PR_TYPE* tp_Type_set;

variable tp_Type_short

const PR_TYPE* tp_Type_short;

variable tp_Type_string

const PR_TYPE* tp_Type_string;

variable tp_Type_substructure

const PR_TYPE* tp_Type_substructure;

variable tp_Type_time

const PR_TYPE* tp_Type_time;

variable tp_Type_utime

const PR_TYPE* tp_Type_utime;

variable tp_Type_varbit

const PR_TYPE* tp_Type_varbit;

variable tp_Type_variable

const PR_TYPE* tp_Type_variable;

variable tp_Type_vobj

const PR_TYPE* tp_Type_vobj;

variable tp_Utime

const PR_TYPE tp_Utime;

variable tp_VarBit

const PR_TYPE tp_VarBit;

variable tp_Variable

const PR_TYPE tp_Variable;

variable tp_Vobj

const PR_TYPE tp_Vobj;

Public Functions Documentation

function PRIM_SET_NULL

inline void PRIM_SET_NULL (
    DB_VALUE * value
) 

function pr_area_final

void pr_area_final (
    void
) 

function pr_area_init

int pr_area_init (
    void
) 

function pr_clear_compressed_string

int pr_clear_compressed_string (
    DB_VALUE * value
) 

function pr_clear_value

int pr_clear_value (
    DB_VALUE * var
) 

function pr_clear_value_vector

void pr_clear_value_vector (
    std::vector< DB_VALUE > & value_vector
) 

function pr_clone_value

int pr_clone_value (
    const  DB_VALUE * src,
    DB_VALUE * dest
) 

function pr_complete_enum_value

int pr_complete_enum_value (
    DB_VALUE * value,
    struct  tp_domain * domain
) 

function pr_copy_value

DB_VALUE * pr_copy_value (
    DB_VALUE * var
) 

function pr_data_compress_string

int pr_data_compress_string (
    const  char * string,
    int str_length,
    char * compressed_string,
    int compress_buffer_size,
    int * compressed_length
) 

function pr_data_writeval

void pr_data_writeval (
    struct  or_buf * buf,
    DB_VALUE * value
) 

function pr_data_writeval_disk_size

int pr_data_writeval_disk_size (
    DB_VALUE * value
) 

function pr_do_db_value_string_compression

int pr_do_db_value_string_compression (
    DB_VALUE * value
) 

function pr_find_type

const  PR_TYPE * pr_find_type (
    const  char * name
) 

function pr_free_ext_value

int pr_free_ext_value (
    DB_VALUE * value
) 

function pr_free_value

int pr_free_value (
    DB_VALUE * var
) 

function pr_get_compressed_data_from_buffer

int pr_get_compressed_data_from_buffer (
    struct  or_buf * buf,
    char * data,
    int compressed_size,
    int expected_decompressed_size
) 

function pr_get_compression_length

int pr_get_compression_length (
    const  char * string,
    int str_length
) 

function pr_get_size_and_write_string_to_buffer

int pr_get_size_and_write_string_to_buffer (
    struct  or_buf * buf,
    char * val_p,
    DB_VALUE * value,
    int * val_size,
    int align
) 

function pr_index_writeval_disk_size

int pr_index_writeval_disk_size (
    DB_VALUE * value
) 

function pr_is_variable_type

int pr_is_variable_type (
    DB_TYPE type
) 

function pr_make_ext_value

DB_VALUE * pr_make_ext_value (
    void
) 

function pr_make_value

DB_VALUE * pr_make_value (
    void
) 

function pr_mem_size

int pr_mem_size (
    const  PR_TYPE * type
) 

function pr_midxkey_add_elements

int pr_midxkey_add_elements (
    DB_VALUE * keyval,
    DB_VALUE * dbvals,
    int num_dbvals,
    struct  tp_domain * dbvals_domain_list
) 

function pr_midxkey_add_elements_with_null

int pr_midxkey_add_elements_with_null (
    DB_VALUE * keyval,
    DB_VALUE * dbvals,
    int num_dbvals,
    struct  tp_domain * dbvals_domain_list,
    int tail_null_cnt
) 

function pr_midxkey_add_prefix

int pr_midxkey_add_prefix (
    DB_VALUE * result,
    DB_VALUE * prefix,
    DB_VALUE * postfix,
    int n_prefix
) 

function pr_midxkey_common_prefix

int pr_midxkey_common_prefix (
    DB_VALUE * key1,
    DB_VALUE * key2
) 

function pr_midxkey_compare

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 * diff_column,
    bool * dom_is_desc,
    int * result_size
) 

function pr_midxkey_get_element_nocopy

int pr_midxkey_get_element_nocopy (
    const  DB_MIDXKEY * midxkey,
    int index,
    DB_VALUE * value,
    int * prev_indexp,
    char ** prev_ptrp
) 

function pr_midxkey_get_element_offset

int pr_midxkey_get_element_offset (
    const  DB_MIDXKEY * midxkey,
    int index
) 

function pr_midxkey_remove_prefix

int pr_midxkey_remove_prefix (
    DB_VALUE * key,
    int prefix
) 

function pr_midxkey_unique_prefix

int pr_midxkey_unique_prefix (
    const  DB_VALUE * db_midxkey1,
    const  DB_VALUE * db_midxkey2,
    DB_VALUE * db_result
) 

function pr_type_from_id

const  PR_TYPE * pr_type_from_id (
    DB_TYPE id
) 

function pr_type_name

const  char * pr_type_name (
    DB_TYPE id
) 

function pr_valstring

char * pr_valstring (
    const  DB_VALUE * val
) 

function pr_value_mem_size

int pr_value_mem_size (
    const  DB_VALUE * value
) 

Public Static Functions Documentation

function pr_is_prefix_key_type

static int pr_is_prefix_key_type (
    DB_TYPE type
) 

function pr_is_set_type

static bool pr_is_set_type (
    DB_TYPE type
) 

function pr_is_string_type

static int pr_is_string_type (
    DB_TYPE type
) 

function pr_midxkey_element_disk_size

static int pr_midxkey_element_disk_size (
    char * mem,
    DB_DOMAIN * domain
) 

Macro Definition Documentation

define PRIM_COMPRESSION_LENGTH_OFFSET

#define PRIM_COMPRESSION_LENGTH_OFFSET `4`

define PRIM_STRING_MAXIMUM_DISK_SIZE

#define PRIM_STRING_MAXIMUM_DISK_SIZE (
    length
) `( OR_BYTE_SIZE + OR_INT_SIZE + OR_INT_SIZE + (length) + MAX_ALIGNMENT )`

define PRIM_TEMPORARY_DISK_SIZE

#define PRIM_TEMPORARY_DISK_SIZE `256`


The documentation for this class was generated from the following file cubrid/src/object/object_primitive.h