Skip to content

File object_domain.h

FileList > cubrid > src > object > object_domain.h

Go to the source code of this file

  • #include "config.h"
  • #include "dbtype_def.h"
  • #include <stdio.h>

Classes

Type Name
struct tp_alloc_context
struct tp_domain

Public Types

Type Name
typedef struct tp_alloc_context TP_ALLOC_CONTEXT
typedef struct tp_domain TP_DOMAIN
enum TP_DOMAIN_COLL_ACTION
typedef enum tp_domain_status TP_DOMAIN_STATUS
typedef enum tp_match TP_MATCH
enum tp_domain_status
enum tp_match

Public Attributes

Type Name
TP_DOMAIN tp_Bigint_domain
TP_DOMAIN tp_Bit_domain
TP_DOMAIN tp_Blob_domain
TP_DOMAIN tp_Char_domain
TP_DOMAIN tp_Clob_domain
TP_DOMAIN tp_Date_domain
TP_DOMAIN tp_Double_domain
TP_DOMAIN tp_Elo_domain
TP_DOMAIN tp_Enumeration_domain
TP_DOMAIN tp_Error_domain
TP_DOMAIN tp_Float_domain
TP_DOMAIN tp_Integer_domain
TP_DOMAIN tp_Json_domain
TP_DOMAIN tp_Midxkey_domain
TP_DOMAIN tp_Monetary_domain
TP_DOMAIN tp_Multiset_domain
TP_DOMAIN tp_Null_domain
TP_DOMAIN tp_Numeric_domain
TP_DOMAIN tp_Object_domain
TP_DOMAIN tp_Oid_domain
TP_DOMAIN tp_Pointer_domain
TP_DOMAIN tp_Sequence_domain
TP_DOMAIN tp_Set_domain
TP_DOMAIN tp_Short_domain
TP_DOMAIN tp_String_domain
TP_DOMAIN tp_Substructure_domain
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Utime_domain
TP_DOMAIN tp_VarBit_domain
TP_DOMAIN tp_Variable_domain
TP_DOMAIN tp_Vobj_domain

Public Functions

Type Name
void tp_apply_sys_charset (void)
void tp_area_init (void)
int tp_can_steal_string (const DB_VALUE * val, const DB_DOMAIN * desired_domain)
TP_DOMAIN_STATUS tp_check_value_size (TP_DOMAIN * domain, DB_VALUE * value)
TP_DOMAIN * tp_create_domain_resolve_value (DB_VALUE * val, TP_DOMAIN * domain)
int tp_domain_add (TP_DOMAIN ** dlist, TP_DOMAIN * domain)
int tp_domain_attach (TP_DOMAIN ** dlist, TP_DOMAIN * domain)
TP_DOMAIN * tp_domain_cache (TP_DOMAIN * domain)
TP_DOMAIN_STATUS tp_domain_check (const TP_DOMAIN * domain, const DB_VALUE * value, TP_MATCH exact_match)
void tp_domain_clear_enumeration (DB_ENUMERATION * enumeration)
int tp_domain_compatible (const TP_DOMAIN * dom1, const TP_DOMAIN * dom2)
TP_DOMAIN * tp_domain_construct (DB_TYPE domain_type, DB_OBJECT * class_obj, int precision, int scale, TP_DOMAIN * setdomain)
TP_DOMAIN * tp_domain_copy (const TP_DOMAIN * dom, bool check_cache)
int tp_domain_copy_enumeration (DB_ENUMERATION * dest, const DB_ENUMERATION * src)
int tp_domain_disk_size (TP_DOMAIN * domain)
int tp_domain_drop (TP_DOMAIN ** dlist, TP_DOMAIN * domain)
int tp_domain_filter_list (TP_DOMAIN * dlist, int * list_changes)
TP_DOMAIN * tp_domain_find_charbit (DB_TYPE type, int codeset, int collation_id, unsigned char collation_flag, int precision, bool is_desc)
TP_DOMAIN * tp_domain_find_enumeration (const DB_ENUMERATION * enumeration, bool is_desc)
TP_DOMAIN * tp_domain_find_noparam (DB_TYPE type, bool is_desc)
TP_DOMAIN * tp_domain_find_numeric (DB_TYPE type, int precision, int scale, bool is_desc)
TP_DOMAIN * tp_domain_find_object (DB_TYPE type, OID * class_oid, struct db_object * class_, bool is_desc)
TP_DOMAIN * tp_domain_find_set (DB_TYPE type, TP_DOMAIN * setdomain, bool is_desc)
void tp_domain_fprint (FILE * fp, TP_DOMAIN * domain)
void tp_domain_free (TP_DOMAIN * dom)
void tp_domain_init (TP_DOMAIN * domain, DB_TYPE type_id)
int tp_domain_match (const TP_DOMAIN * dom1, const TP_DOMAIN * dom2, TP_MATCH exact)
int tp_domain_match_ignore_order (const TP_DOMAIN * dom1, const TP_DOMAIN * dom2, TP_MATCH exact)
int tp_domain_memory_size (TP_DOMAIN * domain)
int tp_domain_name (const TP_DOMAIN * domain, char * buffer, int maxlen)
TP_DOMAIN * tp_domain_new (DB_TYPE type)
void tp_domain_print (TP_DOMAIN * domain)
bool tp_domain_references_objects (const TP_DOMAIN * dom)
TP_DOMAIN * tp_domain_resolve (DB_TYPE domain_type, DB_OBJECT * class_obj, int precision, int scale, TP_DOMAIN * setdomain, int collation)
TP_DOMAIN * tp_domain_resolve_default (DB_TYPE type)
TP_DOMAIN * tp_domain_resolve_default_w_coll (DB_TYPE type, int coll_id, TP_DOMAIN_COLL_ACTION coll_flag)
TP_DOMAIN * tp_domain_resolve_value (const DB_VALUE * val, TP_DOMAIN * dbuf)
TP_DOMAIN * tp_domain_select (const TP_DOMAIN * domain_list, const DB_VALUE * value, int allow_coercion, TP_MATCH exact_match)
int tp_domain_size (const TP_DOMAIN * domain)
int tp_domain_status_er_set (TP_DOMAIN_STATUS status, const char * file_name, const int line_no, const DB_VALUE * src, const TP_DOMAIN * domain)
void tp_dump_domain (TP_DOMAIN * domain)
int tp_enumeration_to_varchar (const DB_VALUE * src, DB_VALUE * result)
void tp_final (void)
int tp_get_fixed_precision (DB_TYPE domain_type)
TP_DOMAIN * tp_infer_common_domain (TP_DOMAIN * arg1, TP_DOMAIN * arg2)
int tp_init (void)
void tp_init_value_domain (TP_DOMAIN * domain, DB_VALUE * value)
int tp_more_general_type (const DB_TYPE type1, const DB_TYPE type2)
DB_VALUE_COMPARE_RESULT tp_set_compare (const DB_VALUE * value1, const DB_VALUE * value2, int allow_coercion, int total_order)
int tp_setdomain_size (const TP_DOMAIN * domain)
int tp_valid_indextype (DB_TYPE type)
TP_DOMAIN_STATUS tp_value_auto_cast (const DB_VALUE * src, DB_VALUE * dest, const TP_DOMAIN * desired_domain)
TP_DOMAIN_STATUS tp_value_auto_cast_with_precision_check (const DB_VALUE * src, DB_VALUE * dest, const TP_DOMAIN * desired_domain)
TP_DOMAIN_STATUS tp_value_cast (const DB_VALUE * src, DB_VALUE * dest, const TP_DOMAIN * desired_domain, bool implicit_coercion)
TP_DOMAIN_STATUS tp_value_cast_force (const DB_VALUE * src, DB_VALUE * dest, const TP_DOMAIN * desired_domain, bool implicit_coercion)
TP_DOMAIN_STATUS tp_value_cast_no_domain_select (const DB_VALUE * src, DB_VALUE * dest, const TP_DOMAIN * desired_domain, bool implicit_coercion)
TP_DOMAIN_STATUS tp_value_cast_preserve_domain (const DB_VALUE * src, DB_VALUE * dest, const TP_DOMAIN * desired_domain, bool implicit_coercion, bool preserve_domain)
TP_DOMAIN_STATUS tp_value_change_coll_and_codeset (DB_VALUE * src, DB_VALUE * dest, int coll_id, int codeset)
TP_DOMAIN_STATUS tp_value_coerce (const DB_VALUE * src, DB_VALUE * dest, const TP_DOMAIN * desired_domain)
int tp_value_coerce_strict (const DB_VALUE * src, DB_VALUE * dest, const TP_DOMAIN * desired_domain)
DB_VALUE_COMPARE_RESULT tp_value_compare (const DB_VALUE * value1, const DB_VALUE * value2, int allow_coercion, int total_order)
DB_VALUE_COMPARE_RESULT tp_value_compare_with_error (const DB_VALUE * value1, const DB_VALUE * value2, int allow_coercion, int total_order, bool * can_compare)
int tp_value_domain_name (const DB_VALUE * value, char * buffer, int maxlen)
int tp_value_equal (const DB_VALUE * value1, const DB_VALUE * value2, int allow_coercion)
int tp_value_str_auto_cast_to_number (DB_VALUE * src, DB_VALUE * dest, DB_TYPE * val_type)
int tp_value_string_to_double (const DB_VALUE * value, DB_VALUE * result)

Macros

Type Name
define DOM_GET_ENUMERATION (dom) ((dom)-&gt;enumeration)
define DOM_GET_ENUM_ELEM (dom, idx) ((dom)-&gt;enumeration.elements[idx - 1])
define DOM_GET_ENUM_ELEMENTS (dom) ((dom)-&gt;enumeration.elements)
define DOM_GET_ENUM_ELEMS_COUNT (dom) ((dom)-&gt;enumeration.count)
define DOM_SET_ENUM (dom, elems, cnt) /* multi line expression */
define DOM_SET_ENUM_ELEMENTS (dom, elems) ((dom)-&gt;enumeration.elements = ([**elems**](broker__monitor_8c.md#function-timeout)))
define DOM_SET_ENUM_ELEMS_COUNT (dom, cnt) ((dom)-&gt;enumeration.count = (cnt))
define TP_ALLOC (con, size) (\*([**con**](broker__monitor_8c.md#function-timeout))-&gt;alloc\_func)(size, ([**con**](broker__monitor_8c.md#function-timeout))-&gt;alloc\_args)
define TP_ARE_COMPARABLE_KEY_TYPES (key1_type, key2_type) /* multi line expression */
define TP_BIGINT_AS_CHAR_LENGTH 20
define TP_BIGINT_PRECISION 19
define TP_BIGINT_SCALE 0
define TP_DATETIMETZ_AS_CHAR_LENGTH 64
define TP_DATETIME_AS_CHAR_LENGTH 26
define TP_DATETIME_PRECISION 17
define TP_DATE_AS_CHAR_LENGTH 10
define TP_DATE_PRECISION 8
define TP_DOMAIN_CODESET (dom) (((dom) ? ([**INTL\_CODESET**](intl__support_8h.md#typedef-intl_codeset))(dom)-&gt;codeset : [**LANG\_SYS\_CODESET**](language__support_8h.md#define-lang_sys_codeset)))
define TP_DOMAIN_COLLATION (dom) ((dom) ? (dom)-&gt;collation\_id : [**LANG\_SYS\_COLLATION**](language__support_8h.md#define-lang_sys_collation))
define TP_DOMAIN_COLLATION_FLAG (dom) ((dom) ? (dom)-&gt;[**collation\_flag:**](broker__monitor_8c.md#function-timeout) TP\_DOMAIN\_COLL\_NORMAL)
define TP_DOMAIN_SELF_REF -1
define TP_DOMAIN_TYPE (dom) ((dom) ? (dom)-&gt;type-&gt;[**id**](thread__worker__pool__impl_8hpp.md#enum-id) : DB\_TYPE\_NULL)
define TP_DOUBLE_AS_CHAR_LENGTH /* multi line expression */
define TP_DOUBLE_BINARY_PRECISION [**TP\_DOUBLE\_MANTISA\_BINARY\_PRECISION**](object__domain_8h.md#define-tp_double_mantisa_binary_precision)
define TP_DOUBLE_DECIMAL_PRECISION [**TP\_DOUBLE\_MANTISA\_DECIMAL\_PRECISION**](object__domain_8h.md#define-tp_double_mantisa_decimal_precision)
define TP_DOUBLE_EXPONENT_BINARY_PRECISION 11
define TP_DOUBLE_EXPONENT_DECIMAL_PRECISION 3 /\* 3.311 \*/
define TP_DOUBLE_MANTISA_BINARY_PRECISION 53
define TP_DOUBLE_MANTISA_DECIMAL_PRECISION 16 /\* 15.955 \*/
define TP_FLOATING_PRECISION_VALUE -1
define TP_FLOAT_AS_CHAR_LENGTH /* multi line expression */
define TP_FLOAT_BINARY_PRECISION [**TP\_FLOAT\_MANTISA\_BINARY\_PRECISION**](object__domain_8h.md#define-tp_float_mantisa_binary_precision)
define TP_FLOAT_DECIMAL_PRECISION [**TP\_FLOAT\_MANTISA\_DECIMAL\_PRECISION**](object__domain_8h.md#define-tp_float_mantisa_decimal_precision)
define TP_FLOAT_EXPONENT_BINARY_PRECISION 8
define TP_FLOAT_EXPONENT_DECIMAL_PRECISION 2 /\* 2.408 \*/
define TP_FLOAT_MANTISA_BINARY_PRECISION 24
define TP_FLOAT_MANTISA_DECIMAL_PRECISION 7 /\* 7.225 \*/
define TP_FREE (con, mem) (\*([**con**](broker__monitor_8c.md#function-timeout))-&gt;free\_func)(mem, ([**con**](broker__monitor_8c.md#function-timeout))-&gt;free\_args)
define TP_INTEGER_AS_CHAR_LENGTH 11
define TP_INTEGER_PRECISION 10
define TP_IS_BIT_TYPE (typeid) ((([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_VARBIT) \|\| (([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_BIT))
define TP_IS_CHAR_BIT_TYPE (typeid) /* multi line expression */
define TP_IS_CHAR_TYPE (typeid) (([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_VARCHAR \|\| ([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_CHAR)
define TP_IS_DATE_OR_TIME_TYPE (typeid) ((([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_TIME) \|\| [**TP\_IS\_DATE\_TYPE**](object__domain_8h.md#define-tp_is_date_type)([**typeid**](broker__monitor_8c.md#function-timeout)))
define TP_IS_DATE_TYPE (typeid) /* multi line expression */
define TP_IS_DATE_WITH_TZ_TYPE (typeid) /* multi line expression */
define TP_IS_DISCRETE_NUMBER_TYPE (typeid) /* multi line expression */
define TP_IS_DOUBLE_ALIGN_TYPE (typeid) (([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_DOUBLE \|\| ([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_BIGINT)
define TP_IS_FIXED_LEN_CHAR_TYPE (typeid) (([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_CHAR)
define TP_IS_FLOATING_NUMBER_TYPE (typeid) /* multi line expression */
define TP_IS_LOB_TYPE (typeid) (([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_BLOB \|\| ([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_CLOB)
define TP_IS_NUMERIC_TYPE (typeid) /* multi line expression */
define TP_IS_SET_TYPE (typenum) /* multi line expression */
define TP_IS_STRING_TYPE (typeid) [**TP\_IS\_CHAR\_BIT\_TYPE**](object__domain_8h.md#define-tp_is_char_bit_type)(([**typeid**](broker__monitor_8c.md#function-timeout)))
define TP_IS_VAR_LEN_CHAR_TYPE (typeid) (([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_VARCHAR)
define TP_MONETARY_AS_CHAR_LENGTH [**TP\_DOUBLE\_AS\_CHAR\_LENGTH**](object__domain_8h.md#define-tp_double_as_char_length)
define TP_MONETARY_EXPONENT_PRECISION [**TP\_DOUBLE\_EXPONENT\_DECIMAL\_PRECISION**](object__domain_8h.md#define-tp_double_exponent_decimal_precision)
define TP_MONETARY_MANTISA_PRECISION [**TP\_DOUBLE\_MANTISA\_DECIMAL\_PRECISION**](object__domain_8h.md#define-tp_double_mantisa_decimal_precision)
define TP_MONETARY_PRECISION [**TP\_DOUBLE\_DECIMAL\_PRECISION**](object__domain_8h.md#define-tp_double_decimal_precision)
define TP_SMALLINT_AS_CHAR_LENGTH 6
define TP_SMALLINT_PRECISION 5
define TP_TIMESTAMPTZ_AS_CHAR_LENGTH 64
define TP_TIMESTAMP_AS_CHAR_LENGTH 22
define TP_TIMESTAMP_PRECISION 14
define TP_TIME_AS_CHAR_LENGTH 11
define TP_TIME_PRECISION 6
define TP_TYPE_HAS_COLLATION (typeid) ([**TP\_IS\_CHAR\_TYPE**](object__domain_8h.md#define-tp_is_char_type)([**typeid**](broker__monitor_8c.md#function-timeout)) \|\| ([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_ENUMERATION)
define TP_TYPE_NOT_SUPPORT_COVERING (typeid) (([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_TIMESTAMPTZ \|\| ([**typeid**](broker__monitor_8c.md#function-timeout)) == DB\_TYPE\_DATETIMETZ)

Public Types Documentation

typedef TP_ALLOC_CONTEXT

typedef struct tp_alloc_context TP_ALLOC_CONTEXT;

typedef TP_DOMAIN

typedef struct tp_domain TP_DOMAIN;

enum TP_DOMAIN_COLL_ACTION

enum TP_DOMAIN_COLL_ACTION {
    TP_DOMAIN_COLL_NORMAL = 0,
    TP_DOMAIN_COLL_ENFORCE = 1,
    TP_DOMAIN_COLL_LEAVE = 2
};

typedef TP_DOMAIN_STATUS

typedef enum tp_domain_status TP_DOMAIN_STATUS;

typedef TP_MATCH

typedef enum tp_match TP_MATCH;

enum tp_domain_status

enum tp_domain_status {
    DOMAIN_COMPATIBLE = 0,
    DOMAIN_INCOMPATIBLE,
    DOMAIN_OVERFLOW,
    DOMAIN_ERROR
};

enum tp_match

enum tp_match {
    TP_ANY_MATCH,
    TP_EXACT_MATCH,
    TP_STR_MATCH,
    TP_SET_MATCH
};

Public Attributes Documentation

variable tp_Bigint_domain

TP_DOMAIN tp_Bigint_domain;

variable tp_Bit_domain

TP_DOMAIN tp_Bit_domain;

variable tp_Blob_domain

TP_DOMAIN tp_Blob_domain;

variable tp_Char_domain

TP_DOMAIN tp_Char_domain;

variable tp_Clob_domain

TP_DOMAIN tp_Clob_domain;

variable tp_Date_domain

TP_DOMAIN tp_Date_domain;

variable tp_Double_domain

TP_DOMAIN tp_Double_domain;

variable tp_Elo_domain

TP_DOMAIN tp_Elo_domain;

variable tp_Enumeration_domain

TP_DOMAIN tp_Enumeration_domain;

variable tp_Error_domain

TP_DOMAIN tp_Error_domain;

variable tp_Float_domain

TP_DOMAIN tp_Float_domain;

variable tp_Integer_domain

TP_DOMAIN tp_Integer_domain;

variable tp_Json_domain

TP_DOMAIN tp_Json_domain;

variable tp_Midxkey_domain

TP_DOMAIN tp_Midxkey_domain;

variable tp_Monetary_domain

TP_DOMAIN tp_Monetary_domain;

variable tp_Multiset_domain

TP_DOMAIN tp_Multiset_domain;

variable tp_Null_domain

TP_DOMAIN tp_Null_domain;

variable tp_Numeric_domain

TP_DOMAIN tp_Numeric_domain;

variable tp_Object_domain

TP_DOMAIN tp_Object_domain;

variable tp_Oid_domain

TP_DOMAIN tp_Oid_domain;

variable tp_Pointer_domain

TP_DOMAIN tp_Pointer_domain;

variable tp_Sequence_domain

TP_DOMAIN tp_Sequence_domain;

variable tp_Set_domain

TP_DOMAIN tp_Set_domain;

variable tp_Short_domain

TP_DOMAIN tp_Short_domain;

variable tp_String_domain

TP_DOMAIN tp_String_domain;

variable tp_Substructure_domain

TP_DOMAIN tp_Substructure_domain;

variable tp_Time_domain

TP_DOMAIN tp_Time_domain;

variable tp_Utime_domain

TP_DOMAIN tp_Utime_domain;

variable tp_VarBit_domain

TP_DOMAIN tp_VarBit_domain;

variable tp_Variable_domain

TP_DOMAIN tp_Variable_domain;

variable tp_Vobj_domain

TP_DOMAIN tp_Vobj_domain;

Public Functions Documentation

function tp_apply_sys_charset

void tp_apply_sys_charset (
    void
) 

function tp_area_init

void tp_area_init (
    void
) 

function tp_can_steal_string

int tp_can_steal_string (
    const  DB_VALUE * val,
    const  DB_DOMAIN * desired_domain
) 

function tp_check_value_size

TP_DOMAIN_STATUS tp_check_value_size (
    TP_DOMAIN * domain,
    DB_VALUE * value
) 

function tp_create_domain_resolve_value

TP_DOMAIN * tp_create_domain_resolve_value (
    DB_VALUE * val,
    TP_DOMAIN * domain
) 

function tp_domain_add

int tp_domain_add (
    TP_DOMAIN ** dlist,
    TP_DOMAIN * domain
) 

function tp_domain_attach

int tp_domain_attach (
    TP_DOMAIN ** dlist,
    TP_DOMAIN * domain
) 

function tp_domain_cache

TP_DOMAIN * tp_domain_cache (
    TP_DOMAIN * domain
) 

function tp_domain_check

TP_DOMAIN_STATUS tp_domain_check (
    const  TP_DOMAIN * domain,
    const  DB_VALUE * value,
    TP_MATCH exact_match
) 

function tp_domain_clear_enumeration

void tp_domain_clear_enumeration (
    DB_ENUMERATION * enumeration
) 

function tp_domain_compatible

int tp_domain_compatible (
    const  TP_DOMAIN * dom1,
    const  TP_DOMAIN * dom2
) 

function tp_domain_construct

TP_DOMAIN * tp_domain_construct (
    DB_TYPE domain_type,
    DB_OBJECT * class_obj,
    int precision,
    int scale,
    TP_DOMAIN * setdomain
) 

function tp_domain_copy

TP_DOMAIN * tp_domain_copy (
    const  TP_DOMAIN * dom,
    bool check_cache
) 

function tp_domain_copy_enumeration

int tp_domain_copy_enumeration (
    DB_ENUMERATION * dest,
    const  DB_ENUMERATION * src
) 

function tp_domain_disk_size

int tp_domain_disk_size (
    TP_DOMAIN * domain
) 

function tp_domain_drop

int tp_domain_drop (
    TP_DOMAIN ** dlist,
    TP_DOMAIN * domain
) 

function tp_domain_filter_list

int tp_domain_filter_list (
    TP_DOMAIN * dlist,
    int * list_changes
) 

function tp_domain_find_charbit

TP_DOMAIN * tp_domain_find_charbit (
    DB_TYPE type,
    int codeset,
    int collation_id,
    unsigned  char collation_flag,
    int precision,
    bool is_desc
) 

function tp_domain_find_enumeration

TP_DOMAIN * tp_domain_find_enumeration (
    const  DB_ENUMERATION * enumeration,
    bool is_desc
) 

function tp_domain_find_noparam

TP_DOMAIN * tp_domain_find_noparam (
    DB_TYPE type,
    bool is_desc
) 

function tp_domain_find_numeric

TP_DOMAIN * tp_domain_find_numeric (
    DB_TYPE type,
    int precision,
    int scale,
    bool is_desc
) 

function tp_domain_find_object

TP_DOMAIN * tp_domain_find_object (
    DB_TYPE type,
    OID * class_oid,
    struct  db_object * class_,
    bool is_desc
) 

function tp_domain_find_set

TP_DOMAIN * tp_domain_find_set (
    DB_TYPE type,
    TP_DOMAIN * setdomain,
    bool is_desc
) 

function tp_domain_fprint

void tp_domain_fprint (
    FILE * fp,
    TP_DOMAIN * domain
) 

function tp_domain_free

void tp_domain_free (
    TP_DOMAIN * dom
) 

function tp_domain_init

void tp_domain_init (
    TP_DOMAIN * domain,
    DB_TYPE type_id
) 

function tp_domain_match

int tp_domain_match (
    const  TP_DOMAIN * dom1,
    const  TP_DOMAIN * dom2,
    TP_MATCH exact
) 

function tp_domain_match_ignore_order

int tp_domain_match_ignore_order (
    const  TP_DOMAIN * dom1,
    const  TP_DOMAIN * dom2,
    TP_MATCH exact
) 

function tp_domain_memory_size

int tp_domain_memory_size (
    TP_DOMAIN * domain
) 

function tp_domain_name

int tp_domain_name (
    const  TP_DOMAIN * domain,
    char * buffer,
    int maxlen
) 

function tp_domain_new

TP_DOMAIN * tp_domain_new (
    DB_TYPE type
) 

function tp_domain_print

void tp_domain_print (
    TP_DOMAIN * domain
) 

function tp_domain_references_objects

bool tp_domain_references_objects (
    const  TP_DOMAIN * dom
) 

function tp_domain_resolve

TP_DOMAIN * tp_domain_resolve (
    DB_TYPE domain_type,
    DB_OBJECT * class_obj,
    int precision,
    int scale,
    TP_DOMAIN * setdomain,
    int collation
) 

function tp_domain_resolve_default

TP_DOMAIN * tp_domain_resolve_default (
    DB_TYPE type
) 

function tp_domain_resolve_default_w_coll

TP_DOMAIN * tp_domain_resolve_default_w_coll (
    DB_TYPE type,
    int coll_id,
    TP_DOMAIN_COLL_ACTION coll_flag
) 

function tp_domain_resolve_value

TP_DOMAIN * tp_domain_resolve_value (
    const  DB_VALUE * val,
    TP_DOMAIN * dbuf
) 

function tp_domain_select

TP_DOMAIN * tp_domain_select (
    const  TP_DOMAIN * domain_list,
    const  DB_VALUE * value,
    int allow_coercion,
    TP_MATCH exact_match
) 

function tp_domain_size

int tp_domain_size (
    const  TP_DOMAIN * domain
) 

function tp_domain_status_er_set

int tp_domain_status_er_set (
    TP_DOMAIN_STATUS status,
    const  char * file_name,
    const  int line_no,
    const  DB_VALUE * src,
    const  TP_DOMAIN * domain
) 

function tp_dump_domain

void tp_dump_domain (
    TP_DOMAIN * domain
) 

function tp_enumeration_to_varchar

int tp_enumeration_to_varchar (
    const  DB_VALUE * src,
    DB_VALUE * result
) 

function tp_final

void tp_final (
    void
) 

function tp_get_fixed_precision

int tp_get_fixed_precision (
    DB_TYPE domain_type
) 

function tp_infer_common_domain

TP_DOMAIN * tp_infer_common_domain (
    TP_DOMAIN * arg1,
    TP_DOMAIN * arg2
) 

function tp_init

int tp_init (
    void
) 

function tp_init_value_domain

void tp_init_value_domain (
    TP_DOMAIN * domain,
    DB_VALUE * value
) 

function tp_more_general_type

int tp_more_general_type (
    const  DB_TYPE type1,
    const  DB_TYPE type2
) 

function tp_set_compare

DB_VALUE_COMPARE_RESULT tp_set_compare (
    const  DB_VALUE * value1,
    const  DB_VALUE * value2,
    int allow_coercion,
    int total_order
) 

function tp_setdomain_size

int tp_setdomain_size (
    const  TP_DOMAIN * domain
) 

function tp_valid_indextype

int tp_valid_indextype (
    DB_TYPE type
) 

function tp_value_auto_cast

TP_DOMAIN_STATUS tp_value_auto_cast (
    const  DB_VALUE * src,
    DB_VALUE * dest,
    const  TP_DOMAIN * desired_domain
) 

function tp_value_auto_cast_with_precision_check

TP_DOMAIN_STATUS tp_value_auto_cast_with_precision_check (
    const  DB_VALUE * src,
    DB_VALUE * dest,
    const  TP_DOMAIN * desired_domain
) 

function tp_value_cast

TP_DOMAIN_STATUS tp_value_cast (
    const  DB_VALUE * src,
    DB_VALUE * dest,
    const  TP_DOMAIN * desired_domain,
    bool implicit_coercion
) 

function tp_value_cast_force

TP_DOMAIN_STATUS tp_value_cast_force (
    const  DB_VALUE * src,
    DB_VALUE * dest,
    const  TP_DOMAIN * desired_domain,
    bool implicit_coercion
) 

function tp_value_cast_no_domain_select

TP_DOMAIN_STATUS tp_value_cast_no_domain_select (
    const  DB_VALUE * src,
    DB_VALUE * dest,
    const  TP_DOMAIN * desired_domain,
    bool implicit_coercion
) 

function tp_value_cast_preserve_domain

TP_DOMAIN_STATUS tp_value_cast_preserve_domain (
    const  DB_VALUE * src,
    DB_VALUE * dest,
    const  TP_DOMAIN * desired_domain,
    bool implicit_coercion,
    bool preserve_domain
) 

function tp_value_change_coll_and_codeset

TP_DOMAIN_STATUS tp_value_change_coll_and_codeset (
    DB_VALUE * src,
    DB_VALUE * dest,
    int coll_id,
    int codeset
) 

function tp_value_coerce

TP_DOMAIN_STATUS tp_value_coerce (
    const  DB_VALUE * src,
    DB_VALUE * dest,
    const  TP_DOMAIN * desired_domain
) 

function tp_value_coerce_strict

int tp_value_coerce_strict (
    const  DB_VALUE * src,
    DB_VALUE * dest,
    const  TP_DOMAIN * desired_domain
) 

function tp_value_compare

DB_VALUE_COMPARE_RESULT tp_value_compare (
    const  DB_VALUE * value1,
    const  DB_VALUE * value2,
    int allow_coercion,
    int total_order
) 

function tp_value_compare_with_error

DB_VALUE_COMPARE_RESULT tp_value_compare_with_error (
    const  DB_VALUE * value1,
    const  DB_VALUE * value2,
    int allow_coercion,
    int total_order,
    bool * can_compare
) 

function tp_value_domain_name

int tp_value_domain_name (
    const  DB_VALUE * value,
    char * buffer,
    int maxlen
) 

function tp_value_equal

int tp_value_equal (
    const  DB_VALUE * value1,
    const  DB_VALUE * value2,
    int allow_coercion
) 

function tp_value_str_auto_cast_to_number

int tp_value_str_auto_cast_to_number (
    DB_VALUE * src,
    DB_VALUE * dest,
    DB_TYPE * val_type
) 

function tp_value_string_to_double

int tp_value_string_to_double (
    const  DB_VALUE * value,
    DB_VALUE * result
) 

Macro Definition Documentation

define DOM_GET_ENUMERATION

#define DOM_GET_ENUMERATION (
    dom
) `((dom)->enumeration)`

define DOM_GET_ENUM_ELEM

#define DOM_GET_ENUM_ELEM (
    dom,
    idx
) `((dom)->enumeration.elements[idx - 1])`

define DOM_GET_ENUM_ELEMENTS

#define DOM_GET_ENUM_ELEMENTS (
    dom
) `((dom)->enumeration.elements)`

define DOM_GET_ENUM_ELEMS_COUNT

#define DOM_GET_ENUM_ELEMS_COUNT (
    dom
) `((dom)->enumeration.count)`

define DOM_SET_ENUM

#define DOM_SET_ENUM (
    dom,
    elems,
    cnt
) `/* multi line expression */`

define DOM_SET_ENUM_ELEMENTS

#define DOM_SET_ENUM_ELEMENTS (
    dom,
    elems
) `((dom)->enumeration.elements = ( elems ))`

define DOM_SET_ENUM_ELEMS_COUNT

#define DOM_SET_ENUM_ELEMS_COUNT (
    dom,
    cnt
) `((dom)->enumeration.count = (cnt))`

define TP_ALLOC

#define TP_ALLOC (
    con,
    size
) `(*( con )->alloc_func)(size, ( con )->alloc_args)`

define TP_ARE_COMPARABLE_KEY_TYPES

#define TP_ARE_COMPARABLE_KEY_TYPES (
    key1_type,
    key2_type
) `/* multi line expression */`

define TP_BIGINT_AS_CHAR_LENGTH

#define TP_BIGINT_AS_CHAR_LENGTH `20`

define TP_BIGINT_PRECISION

#define TP_BIGINT_PRECISION `19`

define TP_BIGINT_SCALE

#define TP_BIGINT_SCALE `0`

define TP_DATETIMETZ_AS_CHAR_LENGTH

#define TP_DATETIMETZ_AS_CHAR_LENGTH `64`

define TP_DATETIME_AS_CHAR_LENGTH

#define TP_DATETIME_AS_CHAR_LENGTH `26`

define TP_DATETIME_PRECISION

#define TP_DATETIME_PRECISION `17`

define TP_DATE_AS_CHAR_LENGTH

#define TP_DATE_AS_CHAR_LENGTH `10`

define TP_DATE_PRECISION

#define TP_DATE_PRECISION `8`

define TP_DOMAIN_CODESET

#define TP_DOMAIN_CODESET (
    dom
) `(((dom) ? ( INTL_CODESET )(dom)->codeset : LANG_SYS_CODESET ))`

define TP_DOMAIN_COLLATION

#define TP_DOMAIN_COLLATION (
    dom
) `((dom) ? (dom)->collation_id : LANG_SYS_COLLATION )`

define TP_DOMAIN_COLLATION_FLAG

#define TP_DOMAIN_COLLATION_FLAG (
    dom
) `((dom) ? (dom)-> collation_flag:  TP_DOMAIN_COLL_NORMAL )`

define TP_DOMAIN_SELF_REF

#define TP_DOMAIN_SELF_REF `-1`

define TP_DOMAIN_TYPE

#define TP_DOMAIN_TYPE (
    dom
) `((dom) ? (dom)->type-> id : DB_TYPE_NULL )`

define TP_DOUBLE_AS_CHAR_LENGTH

#define TP_DOUBLE_AS_CHAR_LENGTH `(4 + TP_DOUBLE_MANTISA_DECIMAL_PRECISION + \ TP_DOUBLE_EXPONENT_DECIMAL_PRECISION )`

define TP_DOUBLE_BINARY_PRECISION

#define TP_DOUBLE_BINARY_PRECISION `TP_DOUBLE_MANTISA_BINARY_PRECISION`

define TP_DOUBLE_DECIMAL_PRECISION

#define TP_DOUBLE_DECIMAL_PRECISION `TP_DOUBLE_MANTISA_DECIMAL_PRECISION`

define TP_DOUBLE_EXPONENT_BINARY_PRECISION

#define TP_DOUBLE_EXPONENT_BINARY_PRECISION `11`

define TP_DOUBLE_EXPONENT_DECIMAL_PRECISION

#define TP_DOUBLE_EXPONENT_DECIMAL_PRECISION `3 /* 3.311 */`

define TP_DOUBLE_MANTISA_BINARY_PRECISION

#define TP_DOUBLE_MANTISA_BINARY_PRECISION `53`

define TP_DOUBLE_MANTISA_DECIMAL_PRECISION

#define TP_DOUBLE_MANTISA_DECIMAL_PRECISION `16 /* 15.955 */`

define TP_FLOATING_PRECISION_VALUE

#define TP_FLOATING_PRECISION_VALUE `-1`

define TP_FLOAT_AS_CHAR_LENGTH

#define TP_FLOAT_AS_CHAR_LENGTH `(4 + TP_FLOAT_MANTISA_DECIMAL_PRECISION + \ TP_FLOAT_EXPONENT_DECIMAL_PRECISION )`

define TP_FLOAT_BINARY_PRECISION

#define TP_FLOAT_BINARY_PRECISION `TP_FLOAT_MANTISA_BINARY_PRECISION`

define TP_FLOAT_DECIMAL_PRECISION

#define TP_FLOAT_DECIMAL_PRECISION `TP_FLOAT_MANTISA_DECIMAL_PRECISION`

define TP_FLOAT_EXPONENT_BINARY_PRECISION

#define TP_FLOAT_EXPONENT_BINARY_PRECISION `8`

define TP_FLOAT_EXPONENT_DECIMAL_PRECISION

#define TP_FLOAT_EXPONENT_DECIMAL_PRECISION `2  /* 2.408 */`

define TP_FLOAT_MANTISA_BINARY_PRECISION

#define TP_FLOAT_MANTISA_BINARY_PRECISION `24`

define TP_FLOAT_MANTISA_DECIMAL_PRECISION

#define TP_FLOAT_MANTISA_DECIMAL_PRECISION `7   /* 7.225 */`

define TP_FREE

#define TP_FREE (
    con,
    mem
) `(*( con )->free_func)(mem, ( con )->free_args)`

define TP_INTEGER_AS_CHAR_LENGTH

#define TP_INTEGER_AS_CHAR_LENGTH `11`

define TP_INTEGER_PRECISION

#define TP_INTEGER_PRECISION `10`

define TP_IS_BIT_TYPE

#define TP_IS_BIT_TYPE (
    typeid
) `((( typeid ) == DB_TYPE_VARBIT ) || (( typeid ) == DB_TYPE_BIT ))`

define TP_IS_CHAR_BIT_TYPE

#define TP_IS_CHAR_BIT_TYPE (
    typeid
) `/* multi line expression */`

define TP_IS_CHAR_TYPE

#define TP_IS_CHAR_TYPE (
    typeid
) `(( typeid ) == DB_TYPE_VARCHAR || ( typeid ) == DB_TYPE_CHAR )`

define TP_IS_DATE_OR_TIME_TYPE

#define TP_IS_DATE_OR_TIME_TYPE (
    typeid
) `((( typeid ) == DB_TYPE_TIME ) || TP_IS_DATE_TYPE ( typeid ))`

define TP_IS_DATE_TYPE

#define TP_IS_DATE_TYPE (
    typeid
) `/* multi line expression */`

define TP_IS_DATE_WITH_TZ_TYPE

#define TP_IS_DATE_WITH_TZ_TYPE (
    typeid
) `/* multi line expression */`

define TP_IS_DISCRETE_NUMBER_TYPE

#define TP_IS_DISCRETE_NUMBER_TYPE (
    typeid
) `/* multi line expression */`

define TP_IS_DOUBLE_ALIGN_TYPE

#define TP_IS_DOUBLE_ALIGN_TYPE (
    typeid
) `(( typeid ) == DB_TYPE_DOUBLE || ( typeid ) == DB_TYPE_BIGINT )`

define TP_IS_FIXED_LEN_CHAR_TYPE

#define TP_IS_FIXED_LEN_CHAR_TYPE (
    typeid
) `(( typeid ) == DB_TYPE_CHAR )`

define TP_IS_FLOATING_NUMBER_TYPE

#define TP_IS_FLOATING_NUMBER_TYPE (
    typeid
) `/* multi line expression */`

define TP_IS_LOB_TYPE

#define TP_IS_LOB_TYPE (
    typeid
) `(( typeid ) == DB_TYPE_BLOB || ( typeid ) == DB_TYPE_CLOB )`

define TP_IS_NUMERIC_TYPE

#define TP_IS_NUMERIC_TYPE (
    typeid
) `/* multi line expression */`

define TP_IS_SET_TYPE

#define TP_IS_SET_TYPE (
    typenum
) `/* multi line expression */`

define TP_IS_STRING_TYPE

#define TP_IS_STRING_TYPE (
    typeid
) `TP_IS_CHAR_BIT_TYPE (( typeid ))`

define TP_IS_VAR_LEN_CHAR_TYPE

#define TP_IS_VAR_LEN_CHAR_TYPE (
    typeid
) `(( typeid ) == DB_TYPE_VARCHAR )`

define TP_MONETARY_AS_CHAR_LENGTH

#define TP_MONETARY_AS_CHAR_LENGTH `TP_DOUBLE_AS_CHAR_LENGTH`

define TP_MONETARY_EXPONENT_PRECISION

#define TP_MONETARY_EXPONENT_PRECISION `TP_DOUBLE_EXPONENT_DECIMAL_PRECISION`

define TP_MONETARY_MANTISA_PRECISION

#define TP_MONETARY_MANTISA_PRECISION `TP_DOUBLE_MANTISA_DECIMAL_PRECISION`

define TP_MONETARY_PRECISION

#define TP_MONETARY_PRECISION `TP_DOUBLE_DECIMAL_PRECISION`

define TP_SMALLINT_AS_CHAR_LENGTH

#define TP_SMALLINT_AS_CHAR_LENGTH `6`

define TP_SMALLINT_PRECISION

#define TP_SMALLINT_PRECISION `5`

define TP_TIMESTAMPTZ_AS_CHAR_LENGTH

#define TP_TIMESTAMPTZ_AS_CHAR_LENGTH `64`

define TP_TIMESTAMP_AS_CHAR_LENGTH

#define TP_TIMESTAMP_AS_CHAR_LENGTH `22`

define TP_TIMESTAMP_PRECISION

#define TP_TIMESTAMP_PRECISION `14`

define TP_TIME_AS_CHAR_LENGTH

#define TP_TIME_AS_CHAR_LENGTH `11`

define TP_TIME_PRECISION

#define TP_TIME_PRECISION `6`

define TP_TYPE_HAS_COLLATION

#define TP_TYPE_HAS_COLLATION (
    typeid
) `( TP_IS_CHAR_TYPE ( typeid ) || ( typeid ) == DB_TYPE_ENUMERATION )`

define TP_TYPE_NOT_SUPPORT_COVERING

#define TP_TYPE_NOT_SUPPORT_COVERING (
    typeid
) `(( typeid ) == DB_TYPE_TIMESTAMPTZ || ( typeid ) == DB_TYPE_DATETIMETZ )`


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