CUBRID Engine  latest
object_domain.h File Reference
#include "config.h"
#include "dbtype_def.h"
#include <stdio.h>
Include dependency graph for object_domain.h:

Go to the source code of this file.

Classes

struct  tp_domain
 
struct  tp_alloc_context
 

Macros

#define DOM_GET_ENUMERATION(dom)   ((dom)->enumeration)
 
#define DOM_GET_ENUM_ELEMENTS(dom)   ((dom)->enumeration.elements)
 
#define DOM_GET_ENUM_ELEMS_COUNT(dom)   ((dom)->enumeration.count)
 
#define DOM_GET_ENUM_ELEM(dom, idx)   ((dom)->enumeration.elements[idx - 1])
 
#define DOM_SET_ENUM_ELEMENTS(dom, elems)   ((dom)->enumeration.elements = (elems))
 
#define DOM_SET_ENUM_ELEMS_COUNT(dom, cnt)   ((dom)->enumeration.count = (cnt))
 
#define DOM_SET_ENUM(dom, elems, cnt)
 
#define TP_DOMAIN_SELF_REF   -1
 
#define TP_FLOATING_PRECISION_VALUE   -1
 
#define TP_ALLOC(con, size)   (*(con)->alloc_func)(size, (con)->alloc_args)
 
#define TP_FREE(con, mem)   (*(con)->free_func)(mem, (con)->free_args)
 
#define TP_IS_SET_TYPE(typenum)
 
#define TP_IS_BIT_TYPE(typeid)   (((typeid) == DB_TYPE_VARBIT) || ((typeid) == DB_TYPE_BIT))
 
#define TP_IS_CHAR_TYPE(typeid)
 
#define TP_IS_FIXED_LEN_CHAR_TYPE(typeid)   (((typeid) == DB_TYPE_CHAR) || ((typeid) == DB_TYPE_NCHAR))
 
#define TP_IS_VAR_LEN_CHAR_TYPE(typeid)   (((typeid) == DB_TYPE_VARCHAR) || ((typeid) == DB_TYPE_VARNCHAR))
 
#define TP_IS_CHAR_BIT_TYPE(typeid)
 
#define TP_IS_STRING_TYPE(typeid)   TP_IS_CHAR_BIT_TYPE((typeid))
 
#define TP_IS_NUMERIC_TYPE(typeid)
 
#define TP_IS_DOUBLE_ALIGN_TYPE(typeid)   ((typeid) == DB_TYPE_DOUBLE || (typeid) == DB_TYPE_BIGINT)
 
#define TP_IS_DATE_WITH_TZ_TYPE(typeid)
 
#define TP_IS_DATE_TYPE(typeid)
 
#define TP_IS_DATE_OR_TIME_TYPE(typeid)   (((typeid) == DB_TYPE_TIME) || TP_IS_DATE_TYPE(typeid))
 
#define TP_IS_FLOATING_NUMBER_TYPE(typeid)
 
#define TP_DOUBLE_MANTISA_BINARY_PRECISION   53
 
#define TP_DOUBLE_EXPONENT_BINARY_PRECISION   11
 
#define TP_DOUBLE_BINARY_PRECISION   TP_DOUBLE_MANTISA_BINARY_PRECISION
 
#define TP_DOUBLE_MANTISA_DECIMAL_PRECISION   16 /* 15.955 */
 
#define TP_DOUBLE_EXPONENT_DECIMAL_PRECISION   3 /* 3.311 */
 
#define TP_DOUBLE_DECIMAL_PRECISION   TP_DOUBLE_MANTISA_DECIMAL_PRECISION
 
#define TP_DOUBLE_AS_CHAR_LENGTH
 
#define TP_MONETARY_MANTISA_PRECISION   TP_DOUBLE_MANTISA_DECIMAL_PRECISION
 
#define TP_MONETARY_EXPONENT_PRECISION   TP_DOUBLE_EXPONENT_DECIMAL_PRECISION
 
#define TP_MONETARY_PRECISION   TP_DOUBLE_DECIMAL_PRECISION
 
#define TP_MONETARY_AS_CHAR_LENGTH   TP_DOUBLE_AS_CHAR_LENGTH
 
#define TP_FLOAT_MANTISA_BINARY_PRECISION   24
 
#define TP_FLOAT_EXPONENT_BINARY_PRECISION   8
 
#define TP_FLOAT_BINARY_PRECISION   TP_FLOAT_MANTISA_BINARY_PRECISION
 
#define TP_FLOAT_MANTISA_DECIMAL_PRECISION   7 /* 7.225 */
 
#define TP_FLOAT_EXPONENT_DECIMAL_PRECISION   2 /* 2.408 */
 
#define TP_FLOAT_DECIMAL_PRECISION   TP_FLOAT_MANTISA_DECIMAL_PRECISION
 
#define TP_FLOAT_AS_CHAR_LENGTH
 
#define TP_BIGINT_PRECISION   19
 
#define TP_BIGINT_SCALE   0
 
#define TP_BIGINT_AS_CHAR_LENGTH   20
 
#define TP_INTEGER_PRECISION   10
 
#define TP_INTEGER_AS_CHAR_LENGTH   11
 
#define TP_SMALLINT_PRECISION   5
 
#define TP_SMALLINT_AS_CHAR_LENGTH   6
 
#define TP_TIME_PRECISION   6
 
#define TP_TIME_AS_CHAR_LENGTH   11
 
#define TP_DATE_PRECISION   8
 
#define TP_DATE_AS_CHAR_LENGTH   10
 
#define TP_TIMESTAMP_PRECISION   14
 
#define TP_TIMESTAMP_AS_CHAR_LENGTH   22
 
#define TP_TIMESTAMPTZ_AS_CHAR_LENGTH   64
 
#define TP_DATETIME_PRECISION   17
 
#define TP_DATETIME_AS_CHAR_LENGTH   26
 
#define TP_DATETIMETZ_AS_CHAR_LENGTH   64
 
#define TP_ARE_COMPARABLE_KEY_TYPES(key1_type, key2_type)
 
#define TP_DOMAIN_TYPE(dom)   ((dom) ? (dom)->type->id : DB_TYPE_NULL)
 
#define TP_TYPE_HAS_COLLATION(typeid)   (TP_IS_CHAR_TYPE(typeid) || (typeid) == DB_TYPE_ENUMERATION)
 
#define TP_DOMAIN_CODESET(dom)   (((dom) ? (INTL_CODESET)(dom)->codeset : LANG_SYS_CODESET))
 
#define TP_DOMAIN_COLLATION(dom)   ((dom) ? (dom)->collation_id : LANG_SYS_COLLATION)
 
#define TP_DOMAIN_COLLATION_FLAG(dom)   ((dom) ? (dom)->collation_flag: TP_DOMAIN_COLL_NORMAL)
 
#define TP_TYPE_NOT_SUPPORT_COVERING(typeid)   ((typeid) == DB_TYPE_TIMESTAMPTZ || (typeid) == DB_TYPE_DATETIMETZ)
 

Typedefs

typedef struct tp_domain TP_DOMAIN
 
typedef struct tp_alloc_context TP_ALLOC_CONTEXT
 
typedef enum tp_domain_status TP_DOMAIN_STATUS
 
typedef enum tp_match TP_MATCH
 

Enumerations

enum  TP_DOMAIN_COLL_ACTION { TP_DOMAIN_COLL_NORMAL = 0, TP_DOMAIN_COLL_ENFORCE = 1, TP_DOMAIN_COLL_LEAVE = 2 }
 
enum  tp_domain_status { DOMAIN_COMPATIBLE = 0, DOMAIN_INCOMPATIBLE, DOMAIN_OVERFLOW, DOMAIN_ERROR }
 
enum  tp_match { TP_ANY_MATCH, TP_EXACT_MATCH, TP_STR_MATCH, TP_SET_MATCH }
 

Functions

void tp_area_init (void)
 
int tp_init (void)
 
void tp_apply_sys_charset (void)
 
void tp_final (void)
 
TP_DOMAINtp_domain_resolve (DB_TYPE domain_type, DB_OBJECT *class_obj, int precision, int scale, TP_DOMAIN *setdomain, int collation)
 
TP_DOMAINtp_domain_resolve_default (DB_TYPE type)
 
TP_DOMAINtp_domain_resolve_default_w_coll (DB_TYPE type, int coll_id, TP_DOMAIN_COLL_ACTION coll_flag)
 
void tp_domain_init (TP_DOMAIN *domain, DB_TYPE type_id)
 
void tp_domain_free (TP_DOMAIN *dom)
 
TP_DOMAINtp_domain_new (DB_TYPE type)
 
int tp_domain_copy_enumeration (DB_ENUMERATION *dest, const DB_ENUMERATION *src)
 
TP_DOMAINtp_domain_copy (const TP_DOMAIN *dom, bool check_cache)
 
TP_DOMAINtp_domain_construct (DB_TYPE domain_type, DB_OBJECT *class_obj, int precision, int scale, TP_DOMAIN *setdomain)
 
void tp_init_value_domain (TP_DOMAIN *domain, DB_VALUE *value)
 
TP_DOMAINtp_domain_cache (TP_DOMAIN *domain)
 
int tp_domain_add (TP_DOMAIN **dlist, TP_DOMAIN *domain)
 
int tp_domain_drop (TP_DOMAIN **dlist, TP_DOMAIN *domain)
 
int tp_domain_filter_list (TP_DOMAIN *dlist, int *list_changes)
 
int tp_domain_size (const TP_DOMAIN *domain)
 
int tp_setdomain_size (const TP_DOMAIN *domain)
 
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_compatible (const TP_DOMAIN *dom1, const TP_DOMAIN *dom2)
 
TP_DOMAINtp_domain_select (const TP_DOMAIN *domain_list, const DB_VALUE *value, int allow_coercion, TP_MATCH exact_match)
 
TP_DOMAINtp_domain_select_type (const TP_DOMAIN *domain_list, DB_TYPE type, DB_OBJECT *class_mop, int allow_coercion)
 
TP_DOMAIN_STATUS tp_domain_check (const TP_DOMAIN *domain, const DB_VALUE *value, TP_MATCH exact_match)
 
TP_DOMAINtp_domain_find_noparam (DB_TYPE type, bool is_desc)
 
TP_DOMAINtp_domain_find_numeric (DB_TYPE type, int precision, int scale, bool is_desc)
 
TP_DOMAINtp_domain_find_charbit (DB_TYPE type, int codeset, int collation_id, unsigned char collation_flag, int precision, bool is_desc)
 
TP_DOMAINtp_domain_find_object (DB_TYPE type, OID *class_oid, struct db_object *class_, bool is_desc)
 
TP_DOMAINtp_domain_find_set (DB_TYPE type, TP_DOMAIN *setdomain, bool is_desc)
 
TP_DOMAINtp_domain_find_enumeration (const DB_ENUMERATION *enumeration, bool is_desc)
 
TP_DOMAINtp_domain_resolve_value (const DB_VALUE *val, TP_DOMAIN *dbuf)
 
int tp_can_steal_string (const DB_VALUE *val, const DB_DOMAIN *desired_domain)
 
bool tp_domain_references_objects (const TP_DOMAIN *dom)
 
int tp_get_fixed_precision (DB_TYPE domain_type)
 
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)
 
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_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_cast_no_domain_select (const DB_VALUE *src, DB_VALUE *dest, const TP_DOMAIN *desired_domain, bool implicit_coercion)
 
TP_DOMAIN_STATUS tp_value_change_coll_and_codeset (DB_VALUE *src, DB_VALUE *dest, int coll_id, int codeset)
 
int tp_value_equal (const DB_VALUE *value1, const DB_VALUE *value2, int allow_coercion)
 
int tp_more_general_type (const DB_TYPE type1, const DB_TYPE type2)
 
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)
 
DB_VALUE_COMPARE_RESULT tp_set_compare (const DB_VALUE *value1, const DB_VALUE *value2, int allow_coercion, int total_order)
 
int tp_domain_name (const TP_DOMAIN *domain, char *buffer, int maxlen)
 
int tp_value_domain_name (const DB_VALUE *value, char *buffer, int maxlen)
 
int tp_domain_disk_size (TP_DOMAIN *domain)
 
int tp_domain_memory_size (TP_DOMAIN *domain)
 
TP_DOMAIN_STATUS tp_check_value_size (TP_DOMAIN *domain, DB_VALUE *value)
 
int tp_valid_indextype (DB_TYPE type)
 
int tp_domain_attach (TP_DOMAIN **dlist, TP_DOMAIN *domain)
 
TP_DOMAIN_STATUS tp_value_auto_cast (const DB_VALUE *src, DB_VALUE *dest, const TP_DOMAIN *desired_domain)
 
int tp_value_str_auto_cast_to_number (DB_VALUE *src, DB_VALUE *dest, DB_TYPE *val_type)
 
TP_DOMAINtp_infer_common_domain (TP_DOMAIN *arg1, TP_DOMAIN *arg2)
 
int tp_value_string_to_double (const DB_VALUE *value, DB_VALUE *result)
 
void tp_domain_clear_enumeration (DB_ENUMERATION *enumeration)
 
int tp_enumeration_to_varchar (const DB_VALUE *src, DB_VALUE *result)
 
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)
 

Variables

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

Macro Definition Documentation

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

Definition at line 40 of file object_domain.h.

Referenced by or_put_domain().

#define DOM_GET_ENUM_ELEMS_COUNT (   dom)    ((dom)->enumeration.count)
#define DOM_SET_ENUM (   dom,
  elems,
  cnt 
)
Value:
do{\
(dom)->enumeration.count = (cnt); \
(dom)->enumeration.elements = (elems); \
} while(0)

Definition at line 51 of file object_domain.h.

Referenced by or_get_domain_internal(), tp_domain_init(), and tp_init().

#define DOM_SET_ENUM_ELEMENTS (   dom,
  elems 
)    ((dom)->enumeration.elements = (elems))
#define DOM_SET_ENUM_ELEMS_COUNT (   dom,
  cnt 
)    ((dom)->enumeration.count = (cnt))
#define TP_ALLOC (   con,
  size 
)    (*(con)->alloc_func)(size, (con)->alloc_args)

Definition at line 136 of file object_domain.h.

#define TP_ARE_COMPARABLE_KEY_TYPES (   key1_type,
  key2_type 
)
Value:
(((key1_type) == (key2_type)) || \
(((key1_type) == DB_TYPE_CHAR || (key1_type) == DB_TYPE_VARCHAR) && \
((key2_type) == DB_TYPE_CHAR || (key2_type) == DB_TYPE_VARCHAR)) || \
(((key1_type) == DB_TYPE_NCHAR || (key1_type) == DB_TYPE_VARNCHAR) && \
((key2_type) == DB_TYPE_NCHAR || (key2_type) == DB_TYPE_VARNCHAR)) || \
(((key1_type) == DB_TYPE_BIT || (key1_type) == DB_TYPE_VARBIT) && \
((key2_type) == DB_TYPE_BIT || (key2_type) == DB_TYPE_VARBIT)) || \
(((key1_type) == DB_TYPE_OID || (key1_type) == DB_TYPE_OBJECT) && \
((key2_type) == DB_TYPE_OID || (key2_type) == DB_TYPE_OBJECT)))

Definition at line 356 of file object_domain.h.

Referenced by btree_compare_key(), btree_fix_root_for_delete(), btree_fix_root_for_insert(), and locator_update_index().

#define TP_BIGINT_AS_CHAR_LENGTH   20

Definition at line 327 of file object_domain.h.

Referenced by pt_character_length_for_node().

#define TP_BIGINT_PRECISION   19
#define TP_BIGINT_SCALE   0

Definition at line 326 of file object_domain.h.

#define TP_DATE_AS_CHAR_LENGTH   10

Definition at line 339 of file object_domain.h.

Referenced by build_att_type_change_map(), and pt_character_length_for_node().

#define TP_DATE_PRECISION   8

Definition at line 338 of file object_domain.h.

#define TP_DATETIME_AS_CHAR_LENGTH   26

Definition at line 346 of file object_domain.h.

Referenced by build_att_type_change_map(), and pt_character_length_for_node().

#define TP_DATETIME_PRECISION   17

Definition at line 345 of file object_domain.h.

#define TP_DATETIMETZ_AS_CHAR_LENGTH   64

Definition at line 347 of file object_domain.h.

Referenced by build_att_type_change_map(), and pt_character_length_for_node().

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

Definition at line 60 of file object_domain.h.

Referenced by pt_data_type_to_db_domain(), and tp_domain_construct().

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

Definition at line 367 of file object_domain.h.

Referenced by assign_set_value(), btree_build_nleafs(), btree_coerce_key(), btree_compare_key(), btree_construct_leafs(), btree_dump_root_header(), btree_find_min_or_max_key(), btree_generate_prefix_domain(), btree_get_prefix_separator(), btree_get_stats(), btree_get_unique_statistics(), btree_merge_node(), btree_node_is_compressed(), btree_prepare_bts(), build_att_coll_change_map(), build_att_type_change_map(), build_attr_change_map(), catalog_fetch_btree_statistics(), catalog_get_cardinality(), check_att_domain(), check_referenced_domain(), class_attr_info(), class_referenced_by_domain(), classobj_capture_representation(), classobj_find_cons_index2_col_type_list(), compare_domains(), compare_driver(), construct_index_key_domain(), copy_column_spec_to_sqlda(), cursor_has_first_hidden_oid(), cursor_prefetch_column_oids(), cursor_prefetch_first_hidden_oid(), db_add_time(), db_domain_set(), db_domain_type(), db_round_dbval(), db_str_to_date(), db_string_extract_dbval(), db_time_dbval(), db_to_number(), object_printer::describe_domain(), do_add_attribute_from_select_column(), do_alter_one_clause_with_template(), do_cast_host_variables_to_expected_domain(), do_evaluate_default_expr(), domain_to_disk(), emit_domain_def(), export_serial(), fetch_method(), fetch_peek_arith(), fetch_peek_dbval(), fn_collection(), get_attr_type(), get_domain_str(), get_object_value(), get_set_domain(), get_set_value(), heap_attrvalue_get_key(), heap_attrvalue_read(), heap_eval_function_index(), heap_object_upgrade_domain(), key_type_to_string(), ldr_act_add_attr(), ldr_act_class_attr(), ldr_bstr_elem(), ldr_collection_db_collection(), ldr_double_elem(), ldr_float_elem(), ldr_real_db_double(), ldr_real_db_float(), ldr_xstr_elem(), locator_update_index(), mr_data_cmpdisk_resultset(), mr_data_cmpdisk_sequence(), mr_data_cmpdisk_set(), mr_data_cmpdisk_vobj(), mr_data_readval_set(), mr_index_readval_midxkey(), mr_readval_bit_internal(), mr_readval_char_internal(), mr_readval_nchar_internal(), mr_readval_string_internal(), mr_readval_varbit_internal(), mr_readval_varnchar_internal(), numeric_coerce_string_to_num(), numeric_common_prec_scale(), numeric_db_value_add(), numeric_db_value_div(), numeric_db_value_sub(), obj_assign_value(), obj_get_value(), obt_apply_assignment(), oid_attr_info_set(), optimize_sets(), or_get_value(), or_packed_domain_size(), or_put_domain(), or_put_set(), orc_diskrep_from_record(), partition_prune_hash(), pr_midxkey_compare(), pr_midxkey_element_disk_size(), prepare_column_list_info_set(), pt_agg_orderby_to_sort_list(), pt_assignment_compatible(), pt_bind_names_post(), pt_check_const_fold_op_w_args(), pt_check_expr_collation(), pt_coerce_node_collation(), pt_domain_to_data_type(), pt_eval_expr_type(), pt_eval_method_call_type(), pt_evaluate_db_value_expr(), pt_find_attr_in_class_list(), pt_fold_const_expr(), pt_get_attr_data_type(), pt_get_collation_info(), pt_get_collation_info_for_collection_type(), pt_infer_common_type(), pt_make_regu_arith(), pt_make_regu_hostvar(), pt_make_regu_pred(), pt_print_host_var(), pt_resolve_default_value(), pt_resolve_method_type(), pt_set_host_variables(), pt_string_to_db_domain(), pt_to_outlist(), pt_to_sort_list(), pt_update_host_var_data_type(), pt_value_to_db(), pt_wrap_type_for_collation(), qdata_add_dbval(), qdata_add_sequence_to_dbval(), qdata_aggregate_interpolation(), qdata_aggregate_value_to_accumulator(), qdata_analytic_interpolation(), qdata_apply_interpolation_function_coercion(), qdata_bit_and_dbval(), qdata_bit_not_dbval(), qdata_bit_or_dbval(), qdata_bit_shift_dbval(), qdata_bit_xor_dbval(), qdata_concatenate_dbval(), qdata_convert_table_to_set(), qdata_divide_dbval(), qdata_divmod_dbval(), qdata_evaluate_analytic_func(), qdata_finalize_aggregate_list(), qdata_get_dbval_from_constant_regu_variable(), qdata_get_single_tuple_from_list_id(), qdata_group_concat_first_value(), qdata_group_concat_value(), qdata_interpolation_function_values(), qdata_list_dbs(), qdata_multiply_dbval(), qdata_strcat_dbval(), qdata_subtract_dbval(), qdata_update_agg_interpolation_func_value_and_domain(), qdump_print_domain_list(), qdump_print_tuple_value_position(), qexec_cmp_tpl_vals_merge(), qexec_compare_valptr_with_tuple(), qexec_end_one_iteration(), qexec_execute_insert(), qexec_initialize_analytic_state(), qexec_resolve_domains_for_aggregation(), qexec_resolve_domains_for_group_by(), qexec_resolve_domains_on_sort_list(), qexec_setup_topn_proc(), qexec_topn_cmpval(), qfile_compare_tuple_values(), qfile_print_list_cache_entry(), qfile_unify_types(), qfile_update_domains_on_type_list(), qo_check_coll_optimization(), qo_check_plan_index_for_multi_range_opt(), qo_check_type_index_covering(), qo_index_has_bit_attr(), qo_plan_compute_iscan_sort_list(), qo_plan_print_sort_spec_helper(), qo_rewrite_like_terms(), qo_seg_width(), REGU_VARIABLE_GET_TYPE(), resolve_class_domain(), resolve_domains_on_list_scan(), rm_api_get_info(), scan_dbvals_to_midxkey(), scan_get_next_iss_value(), scan_open_index_scan(), select_set_domain(), set_op(), setobj_create_with_domain(), smt_add_attribute_any(), smt_add_set_argument_domain(), smt_add_set_attribute_domain(), smt_change_attribute(), smt_delete_set_attribute_domain(), stats_client_unpack_statistics(), tp_can_steal_string(), tp_check_value_size(), tp_domain_add(), tp_domain_cache(), tp_domain_copy(), tp_domain_drop(), tp_domain_filter_list(), tp_domain_find_compatible(), tp_domain_match_internal(), tp_domain_references_objects(), tp_domain_resolve_value(), tp_domain_select(), tp_domain_select_type(), tp_domain_status_er_set(), tp_is_domain_cached(), tp_setdomain_size(), tp_swizzle_oid(), tp_value_cast_internal(), tp_value_coerce_strict(), tp_value_slam_domain(), cubxasl::json_table::column::trigger_on_error(), ux_get_generated_keys_client_insert(), ux_get_generated_keys_server_insert(), ux_get_parameter_info(), ux_make_out_rs(), vid_fetch_instance(), vt_api_init_domain(), and xstats_get_statistics_from_server().

#define TP_DOUBLE_AS_CHAR_LENGTH
Value:
#define TP_DOUBLE_MANTISA_DECIMAL_PRECISION
#define TP_DOUBLE_EXPONENT_DECIMAL_PRECISION

Definition at line 305 of file object_domain.h.

Referenced by numeric_internal_real_to_num(), pt_character_length_for_node(), and tp_dtoa().

#define TP_DOUBLE_BINARY_PRECISION   TP_DOUBLE_MANTISA_BINARY_PRECISION

Definition at line 297 of file object_domain.h.

#define TP_DOUBLE_DECIMAL_PRECISION   TP_DOUBLE_MANTISA_DECIMAL_PRECISION

Definition at line 301 of file object_domain.h.

#define TP_DOUBLE_EXPONENT_BINARY_PRECISION   11

Definition at line 296 of file object_domain.h.

#define TP_DOUBLE_EXPONENT_DECIMAL_PRECISION   3 /* 3.311 */

Definition at line 300 of file object_domain.h.

#define TP_DOUBLE_MANTISA_BINARY_PRECISION   53

Definition at line 295 of file object_domain.h.

#define TP_DOUBLE_MANTISA_DECIMAL_PRECISION   16 /* 15.955 */

Definition at line 299 of file object_domain.h.

Referenced by numeric_internal_real_to_num(), and tp_dtoa().

#define TP_FLOAT_AS_CHAR_LENGTH
Value:
#define TP_FLOAT_MANTISA_DECIMAL_PRECISION
#define TP_FLOAT_EXPONENT_DECIMAL_PRECISION

Definition at line 321 of file object_domain.h.

Referenced by pt_character_length_for_node(), and tp_ftoa().

#define TP_FLOAT_BINARY_PRECISION   TP_FLOAT_MANTISA_BINARY_PRECISION

Definition at line 316 of file object_domain.h.

#define TP_FLOAT_DECIMAL_PRECISION   TP_FLOAT_MANTISA_DECIMAL_PRECISION

Definition at line 320 of file object_domain.h.

#define TP_FLOAT_EXPONENT_BINARY_PRECISION   8

Definition at line 315 of file object_domain.h.

#define TP_FLOAT_EXPONENT_DECIMAL_PRECISION   2 /* 2.408 */

Definition at line 319 of file object_domain.h.

#define TP_FLOAT_MANTISA_BINARY_PRECISION   24

Definition at line 314 of file object_domain.h.

#define TP_FLOAT_MANTISA_DECIMAL_PRECISION   7 /* 7.225 */

Definition at line 318 of file object_domain.h.

Referenced by numeric_internal_real_to_num(), and tp_ftoa().

#define TP_FLOATING_PRECISION_VALUE   -1

Definition at line 119 of file object_domain.h.

Referenced by func_type::Node::apply_argument(), bfmt_value(), build_att_type_change_map(), coerce_binary_to_dbvalue(), coerce_char_to_dbvalue(), coerce_date_to_dbvalue(), coerce_datetime_to_dbvalue(), coerce_time_to_dbvalue(), coerce_timestamp_to_dbvalue(), db_bit_string_coerce(), db_char_string_coerce(), db_compress_like_pattern(), db_string_concatenate(), db_string_insert_substring(), db_string_lower(), db_string_quote(), db_string_replace(), db_string_substring_index(), db_string_upper(), db_time_dbval(), db_tz_offset(), db_value_alloc_and_copy(), db_value_domain_init(), object_printer::describe_domain(), emit_domain_def(), ldr_bstr_elem(), ldr_nstr_elem(), ldr_xstr_elem(), mr_index_readval_midxkey(), mr_readval_bit_internal(), mr_readval_char_internal(), mr_readval_nchar_internal(), mr_readval_string_internal(), mr_readval_varbit_internal(), mr_readval_varnchar_internal(), mr_setval_char(), or_packed_domain_size(), or_packed_enumeration_size(), or_put_domain(), or_put_enumeration(), pt_character_length_for_node(), pt_coerce_expression_argument(), pt_coerce_node_collation(), pt_coerce_range_expr_arguments(), pt_db_value_initialize(), pt_eval_expr_type(), pt_eval_function_type_old(), pt_fixup_column_type(), pt_print_attr_def(), pt_print_datatype(), pt_print_value(), pt_set_default_data_type(), pt_type_enum_to_db_domain(), pt_upd_domain_info(), put_string(), qdata_get_tuple_value_size_from_dbval(), qexec_setup_topn_proc(), qo_reduce_equality_terms(), qstr_coerce(), func_type::Node::set_return_type(), string_disk_size(), cubload::to_db_varbit_from_bin_str(), cubload::to_db_varbit_from_hex_str(), tp_can_steal_string(), tp_check_value_size(), tp_domain_disk_size(), tp_domain_match_internal(), tp_domain_memory_size(), tp_domain_resolve_value(), tp_infer_common_domain(), tp_is_domain_cached(), tp_value_cast_internal(), unpack_domain(), and unpack_domain_2().

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

Definition at line 139 of file object_domain.h.

#define TP_INTEGER_AS_CHAR_LENGTH   11

Definition at line 330 of file object_domain.h.

Referenced by pt_character_length_for_node().

#define TP_INTEGER_PRECISION   10

Definition at line 329 of file object_domain.h.

Referenced by build_att_type_change_map(), and pt_upd_domain_info().

#define TP_IS_CHAR_BIT_TYPE (   typeid)
Value:
(TP_IS_CHAR_TYPE(typeid) \
|| TP_IS_BIT_TYPE(typeid))
#define TP_IS_CHAR_TYPE(typeid)
#define TP_IS_BIT_TYPE(typeid)

Definition at line 256 of file object_domain.h.

Referenced by build_attr_change_map(), qdata_add_dbval(), and tp_can_steal_string().

#define TP_IS_DATE_TYPE (   typeid)
Value:
(((typeid) == DB_TYPE_DATE) || ((typeid) == DB_TYPE_DATETIME) \
|| ((typeid) == DB_TYPE_TIMESTAMP) || TP_IS_DATE_WITH_TZ_TYPE (typeid))
#define TP_IS_DATE_WITH_TZ_TYPE(typeid)

Definition at line 275 of file object_domain.h.

Referenced by db_trunc_dbval(), pt_evaluate_db_value_expr(), qdata_is_zero_value_date(), and tp_infer_common_domain().

#define TP_IS_DATE_WITH_TZ_TYPE (   typeid)
Value:

Definition at line 270 of file object_domain.h.

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

Definition at line 267 of file object_domain.h.

#define TP_IS_FIXED_LEN_CHAR_TYPE (   typeid)    (((typeid) == DB_TYPE_CHAR) || ((typeid) == DB_TYPE_NCHAR))

Definition at line 245 of file object_domain.h.

#define TP_IS_FLOATING_NUMBER_TYPE (   typeid)
Value:
(((typeid) == DB_TYPE_FLOAT) || ((typeid) == DB_TYPE_DOUBLE) \
|| ((typeid) == DB_TYPE_NUMERIC) || ((typeid) == DB_TYPE_MONETARY))

Definition at line 282 of file object_domain.h.

Referenced by qdata_add_dbval(), and qdata_subtract_dbval().

#define TP_IS_SET_TYPE (   typenum)
Value:
((((typenum) == DB_TYPE_SET) || ((typenum) == DB_TYPE_MULTISET) || \
((typenum) == DB_TYPE_SEQUENCE)) ? true : false)

Definition at line 224 of file object_domain.h.

Referenced by api_collection_create_from_db_value(), api_collection_set_to_db_value(), au_get_set(), build_attr_change_map(), catcls_get_or_value_from_attribute(), class_attr_info(), classobj_clear_attribute_value(), cursor_fetch_page_having_tuple(), db_value_type_is_collection(), dbval_to_net_buf(), do_add_attribute_from_select_column(), eval_pred(), eval_pred_alsm4(), eval_pred_comp2(), ex_contains_object_reference(), fetch_method(), get_att_default_from_def(), get_attr_type(), heap_attrinfo_set(), heap_get_referenced_by(), ldr_act_add_attr(), obj_assign_value(), obj_get_path(), obj_get_value(), obt_apply_assignment(), obt_final_check(), obt_free_assignment(), oid_attr_info_set(), optimize_sets(), pr_is_set_type(), prepare_column_list_info_set(), cubload::server_object_loader::process_collection_constant(), pt_check_and_replace_hostvar(), pt_check_expr_collation(), pt_coerce_node_collation(), pt_evaluate_db_value_expr(), pt_get_collation_info_for_collection_type(), qdata_add_dbval(), qdata_add_sequence_to_dbval(), qdata_multiply_dbval(), qdata_multiply_sequence_to_dbval(), qdata_strcat_dbval(), qdata_subtract_dbval(), qdata_subtract_sequence_to_dbval(), qexec_setup_topn_proc(), select_set_domain(), serialize_collection_as_string(), set_extended_cas_type(), setobj_create(), setobj_get_element(), setobj_sort(), tp_domain_find_compatible(), tp_domain_resolve_value(), tp_domain_select(), tp_domain_select_type(), tp_infer_common_domain(), tp_swizzle_oid(), tp_value_cast_internal(), ux_get_parameter_info(), ux_make_out_rs(), and vid_fetch_instance().

#define TP_IS_VAR_LEN_CHAR_TYPE (   typeid)    (((typeid) == DB_TYPE_VARCHAR) || ((typeid) == DB_TYPE_VARNCHAR))

Definition at line 248 of file object_domain.h.

#define TP_MONETARY_AS_CHAR_LENGTH   TP_DOUBLE_AS_CHAR_LENGTH

Definition at line 312 of file object_domain.h.

Referenced by pt_character_length_for_node().

#define TP_MONETARY_EXPONENT_PRECISION   TP_DOUBLE_EXPONENT_DECIMAL_PRECISION

Definition at line 310 of file object_domain.h.

#define TP_MONETARY_MANTISA_PRECISION   TP_DOUBLE_MANTISA_DECIMAL_PRECISION

Definition at line 309 of file object_domain.h.

#define TP_MONETARY_PRECISION   TP_DOUBLE_DECIMAL_PRECISION

Definition at line 311 of file object_domain.h.

#define TP_SMALLINT_AS_CHAR_LENGTH   6

Definition at line 333 of file object_domain.h.

Referenced by pt_character_length_for_node().

#define TP_SMALLINT_PRECISION   5

Definition at line 332 of file object_domain.h.

Referenced by build_att_type_change_map(), and pt_upd_domain_info().

#define TP_TIME_AS_CHAR_LENGTH   11

Definition at line 336 of file object_domain.h.

Referenced by build_att_type_change_map(), and pt_character_length_for_node().

#define TP_TIME_PRECISION   6

Definition at line 335 of file object_domain.h.

#define TP_TIMESTAMP_AS_CHAR_LENGTH   22

Definition at line 342 of file object_domain.h.

Referenced by build_att_type_change_map(), and pt_character_length_for_node().

#define TP_TIMESTAMP_PRECISION   14

Definition at line 341 of file object_domain.h.

#define TP_TIMESTAMPTZ_AS_CHAR_LENGTH   64

Definition at line 343 of file object_domain.h.

Referenced by build_att_type_change_map(), and pt_character_length_for_node().

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

Definition at line 379 of file object_domain.h.

Referenced by qo_check_type_index_covering().

Typedef Documentation

typedef struct tp_domain TP_DOMAIN
typedef enum tp_match TP_MATCH

Enumeration Type Documentation

Enumerator
TP_DOMAIN_COLL_NORMAL 
TP_DOMAIN_COLL_ENFORCE 
TP_DOMAIN_COLL_LEAVE 

Definition at line 62 of file object_domain.h.

Enumerator
DOMAIN_COMPATIBLE 
DOMAIN_INCOMPATIBLE 
DOMAIN_OVERFLOW 
DOMAIN_ERROR 

Definition at line 187 of file object_domain.h.

enum tp_match
Enumerator
TP_ANY_MATCH 
TP_EXACT_MATCH 
TP_STR_MATCH 
TP_SET_MATCH 

Definition at line 200 of file object_domain.h.

Function Documentation

void tp_apply_sys_charset ( void  )

Definition at line 677 of file object_domain.c.

References tp_domain::codeset, tp_domain::collation_id, LANG_SYS_CODESET, LANG_SYS_COLLATION, and NULL.

Referenced by lang_set_charset(), and lang_set_charset_lang().

Here is the caller graph for this function:

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

Definition at line 3663 of file object_domain.c.

References error(), tp_domain::next, NO_ERROR, and NULL.

Referenced by pt_node_to_db_domain().

Here is the caller graph for this function:

TP_DOMAIN* tp_domain_cache ( TP_DOMAIN domain)
void tp_domain_clear_enumeration ( DB_ENUMERATION enumeration)
int tp_domain_compatible ( const TP_DOMAIN dom1,
const TP_DOMAIN dom2 
)

Definition at line 4046 of file object_domain.c.

References tp_domain::next, and NULL.

Referenced by build_attr_change_map(), setobj_check_domain(), tp_domain_find_compatible(), and tp_value_cast_internal().

Here is the caller graph for this function:

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 
)

Definition at line 2901 of file object_domain.c.

References DB_TYPE_ENUMERATION, DOM_GET_ENUMERATION, tp_domain::is_desc, tp_domain::next_list, NULL, tp_domain_get_list(), and tp_enumeration_match().

Referenced by unpack_domain().

Here is the caller graph for this function:

TP_DOMAIN* tp_domain_find_noparam ( DB_TYPE  type,
bool  is_desc 
)

Definition at line 2572 of file object_domain.c.

References tp_domain::is_desc, tp_domain::next_list, NULL, and tp_domain_get_list().

Referenced by unpack_domain().

Here is the caller graph for this function:

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

Definition at line 2601 of file object_domain.c.

References assert, DB_TYPE_NUMERIC, tp_domain::is_desc, tp_domain::next_list, NULL, tp_domain::precision, tp_domain::scale, and tp_domain_get_list().

Referenced by unpack_domain().

Here is the caller graph for this function:

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

Definition at line 2728 of file object_domain.c.

References assert_release, tp_domain::class_mop, tp_domain::class_oid, tp_domain::is_desc, tp_domain::next_list, NULL, OID_EQ, tp_domain_get_list(), and WS_OID.

Referenced by unpack_domain().

Here is the caller graph for this function:

TP_DOMAIN* tp_domain_find_set ( DB_TYPE  type,
TP_DOMAIN setdomain,
bool  is_desc 
)
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 
)

Definition at line 1478 of file object_domain.c.

References tp_domain_match_internal().

Referenced by scan_dbvals_to_midxkey().

Here is the caller graph for this function:

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

Definition at line 3947 of file object_domain.c.

References pr_type::name, and tp_domain::type.

Referenced by check_args(), db_width_bucket(), and do_set_trigger().

Here is the caller graph for this function:

bool tp_domain_references_objects ( const TP_DOMAIN dom)
TP_DOMAIN* tp_domain_resolve_default ( DB_TYPE  type)

Definition at line 3092 of file object_domain.c.

References assert_release, and NULL.

Referenced by catcls_get_or_value_from_attribute(), catcls_get_or_value_from_domain(), db_cp_query_type_helper(), db_hex(), db_round_dbval(), db_time_format(), db_to_number(), db_trunc_dbval(), db_type_to_db_domain(), db_width_bucket(), do_evaluate_default_expr(), eval_value_rel_cmp(), export_serial(), get_savepoint_name_from_db_value(), heap_midxkey_key_generate(), heap_object_upgrade_domain(), numeric_coerce_string_to_num(), numeric_common_prec_scale(), numeric_db_value_add(), numeric_db_value_div(), numeric_db_value_sub(), or_get_all_representation(), or_get_current_representation(), or_get_old_representation(), pt_assignment_compatible(), pt_check_alter_partition(), pt_coerce_node_collation(), pt_coerce_range_expr_arguments(), pt_create_iss_range(), pt_eval_expr_type(), pt_evaluate_db_value_expr(), pt_get_query_limit_from_limit(), pt_get_query_limit_from_orderby_for(), pt_instnum_to_key_limit(), pt_make_regu_constant(), pt_make_regu_pred(), pt_to_cume_dist_percent_rank_regu_variable(), pt_to_key_limit(), pt_to_upd_del_query(), qdata_add_bigint_to_timestamptz(), qdata_add_datetimetz_to_dbval(), qdata_add_dbval(), qdata_add_int_to_timestamptz(), qdata_add_short_to_timestamptz(), qdata_add_timestamptz_to_dbval(), qdata_aggregate_accumulator_to_accumulator(), qdata_divide_dbval(), qdata_evaluate_aggregate_list(), qdata_evaluate_analytic_func(), qdata_finalize_aggregate_list(), qdata_finalize_analytic_func(), qdata_multiply_dbval(), qdata_subtract_datetimetz_to_dbval(), qdata_subtract_dbval(), qdata_subtract_timestampltz_to_dbval(), qdata_update_agg_interpolation_func_value_and_domain(), qdata_update_interpolation_func_value_and_domain(), qexec_execute_insert(), qexec_fill_sort_limit(), qexec_init_instnum_val(), qexec_resolve_domains_for_aggregation(), qexec_resolve_domains_for_group_by(), qo_get_key_limit_from_instnum(), qo_get_key_limit_from_ordbynum(), qo_get_limit_from_eval_term(), scan_get_next_iss_value(), scan_init_index_key_limit(), session_set_cur_insert_id(), tf_compile_meta_classes(), tp_domain_resolve_default_w_coll(), tp_domain_resolve_value(), tp_set_compare(), tp_value_cast_internal(), tp_value_compare_with_error(), tp_value_str_auto_cast_to_number(), unpack_domain(), and unpack_domain_2().

TP_DOMAIN* tp_domain_resolve_value ( const DB_VALUE val,
TP_DOMAIN dbuf 
)

Definition at line 3159 of file object_domain.c.

References assert, db_domain_info::char_info, tp_domain::codeset, tp_domain::collation_id, DB_DEFAULT_NUMERIC_PRECISION, DB_DEFAULT_NUMERIC_SCALE, db_get_json_schema, db_get_midxkey(), db_get_object(), db_get_set(), db_get_string_codeset(), db_get_string_collation(), db_json_load_validator(), DB_MAX_VARBIT_PRECISION, DB_MAX_VARCHAR_PRECISION, DB_MAX_VARNCHAR_PRECISION, DB_TYPE_BIGINT, DB_TYPE_BIT, DB_TYPE_BLOB, DB_TYPE_CHAR, DB_TYPE_CLOB, DB_TYPE_DATE, DB_TYPE_DATETIME, DB_TYPE_DATETIMELTZ, DB_TYPE_DATETIMETZ, DB_TYPE_DB_VALUE, DB_TYPE_DOUBLE, DB_TYPE_ELO, DB_TYPE_ENUMERATION, DB_TYPE_ERROR, DB_TYPE_FLOAT, DB_TYPE_INTEGER, DB_TYPE_JSON, DB_TYPE_MIDXKEY, DB_TYPE_MONETARY, DB_TYPE_MULTISET, DB_TYPE_NCHAR, DB_TYPE_NULL, DB_TYPE_NUMERIC, DB_TYPE_OBJECT, DB_TYPE_OID, DB_TYPE_POINTER, DB_TYPE_RESULTSET, DB_TYPE_SEQUENCE, DB_TYPE_SET, DB_TYPE_SHORT, DB_TYPE_SUB, DB_TYPE_TABLE, DB_TYPE_TIME, DB_TYPE_TIMESTAMP, DB_TYPE_TIMESTAMPLTZ, DB_TYPE_TIMESTAMPTZ, DB_TYPE_VARBIT, DB_TYPE_VARCHAR, DB_TYPE_VARIABLE, DB_TYPE_VARNCHAR, DB_TYPE_VOBJ, DB_VALUE_DOMAIN_TYPE, db_value_precision(), db_value_scale(), DB_VALUE_TYPE, db_midxkey::domain, db_value::domain, DOMAIN_COMPATIBLE, tp_domain::is_cached, tp_domain::json_validator, db_domain_info::char_info::length, NO_ERROR, NULL, tp_domain::precision, tp_domain::scale, set_get_domain(), tp_domain::setdomain, setobj_build_domain_from_col(), tp_domain_cache(), tp_domain_check(), tp_domain_free(), tp_domain_init(), tp_domain_new(), tp_domain_resolve_default(), TP_DOMAIN_TYPE, TP_EXACT_MATCH, TP_FLOATING_PRECISION_VALUE, TP_IS_SET_TYPE, tp_Object_domain, tp_Vobj_domain, WS_IS_DELETED, and WS_ISVID.

Referenced by btree_range_opt_check_add_index_key(), do_evaluate_default_expr(), fetch_peek_arith(), fetch_peek_dbval(), ldr_bstr_elem(), ldr_xstr_elem(), or_pack_mem_value(), or_packed_value_size(), or_put_value(), pt_evaluate_db_value_expr(), pt_to_regu_variable(), qdata_evaluate_analytic_func(), qdata_strcat_dbval(), qexec_execute_insert(), qexec_resolve_domains_for_aggregation(), scan_dbvals_to_midxkey(), setobj_build_domain_from_col(), cubload::to_db_varbit_from_bin_str(), cubload::to_db_varbit_from_hex_str(), tp_domain_select(), tp_value_cast_internal(), and tp_value_change_coll_and_codeset().

TP_DOMAIN* tp_domain_select_type ( const TP_DOMAIN domain_list,
DB_TYPE  type,
DB_OBJECT class_mop,
int  allow_coercion 
)

Definition at line 4413 of file object_domain.c.

References DB_TYPE_NULL, DB_TYPE_OBJECT, DB_TYPE_VARIABLE, i, tp_domain::next, NULL, sm_check_class_domain(), TP_DOMAIN_TYPE, TP_IS_SET_TYPE, and tp_domain::type.

Referenced by check_object_domain().

Here is the caller graph for this function:

int tp_enumeration_to_varchar ( const DB_VALUE src,
DB_VALUE result 
)
void tp_init_value_domain ( TP_DOMAIN domain,
DB_VALUE value 
)
int tp_more_general_type ( const DB_TYPE  type1,
const DB_TYPE  type2 
)

Definition at line 10348 of file object_domain.c.

References DB_TYPE_LAST, db_type_rank, and i.

Referenced by btree_coerce_key(), eval_value_rel_cmp(), pt_eval_expr_type(), tp_infer_common_domain(), tp_set_compare(), and tp_value_compare_with_error().

Here is the caller graph for this function:

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)

Definition at line 1393 of file object_domain.c.

References assert, DB_TYPE_MIDXKEY, NULL, tp_domain::precision, tp_domain::setdomain, tp_domain_size(), tp_domain_size_internal(), and TP_DOMAIN_TYPE.

Referenced by tp_domain_find_set(), and tp_is_domain_cached().

Here is the caller graph for this function:

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 
)

Definition at line 10208 of file object_domain.c.

References mode, TP_FORCE_COERCION, and tp_value_cast_internal().

Referenced by db_value_coerce(), fetch_peek_arith(), and qo_reduce_equality_terms().

Here is the caller graph for this function:

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 
)

Definition at line 10228 of file object_domain.c.

References mode, TP_EXPLICIT_COERCION, TP_IMPLICIT_COERCION, and tp_value_cast_internal().

Referenced by do_cast_host_variables_to_expected_domain(), pt_set_host_variables(), and pt_value_to_db().

Here is the caller graph for this function:

TP_DOMAIN_STATUS tp_value_change_coll_and_codeset ( DB_VALUE src,
DB_VALUE dest,
int  coll_id,
int  codeset 
)
int tp_value_coerce_strict ( const DB_VALUE src,
DB_VALUE dest,
const TP_DOMAIN desired_domain 
)

Definition at line 5807 of file object_domain.c.

References db_monetary::amount, DATA_STATUS_NOT_CONSUMED, DATA_STATUS_OK, DATA_STATUS_TRUNCATED, db_datetime::date, db_datetimetz::datetime, DB_CURRENCY_DEFAULT, DB_DATETIMETZ_INITIALIZER, db_get_bigint(), db_get_date(), db_get_datetime(), db_get_datetimetz(), db_get_double(), db_get_float(), db_get_int(), db_get_monetary(), db_get_short(), db_get_timestamp(), db_get_timestamptz(), db_make_bigint(), db_make_datetime(), db_make_datetimeltz(), db_make_datetimetz(), db_make_double(), db_make_float(), db_make_int(), db_make_monetary(), db_make_null(), db_make_short(), db_make_timestamp(), db_make_timestampltz(), db_make_timestamptz(), db_time_encode(), db_timestamp_decode_ses(), db_timestamp_decode_utc(), db_timestamp_decode_w_tz_id(), db_timestamp_encode_ses(), db_timestamp_encode_utc(), DB_TYPE_BIGINT, DB_TYPE_CHAR, DB_TYPE_DATE, DB_TYPE_DATETIME, DB_TYPE_DATETIMELTZ, DB_TYPE_DATETIMETZ, DB_TYPE_DOUBLE, DB_TYPE_FLOAT, DB_TYPE_INTEGER, DB_TYPE_MONETARY, DB_TYPE_NCHAR, DB_TYPE_NULL, DB_TYPE_NUMERIC, DB_TYPE_SHORT, DB_TYPE_TIME, DB_TYPE_TIMESTAMP, DB_TYPE_TIMESTAMPLTZ, DB_TYPE_TIMESTAMPTZ, DB_TYPE_VARCHAR, DB_TYPE_VARNCHAR, db_value_domain_init(), db_value_put_encoded_date(), db_value_put_encoded_time(), DB_VALUE_TYPE, er_clear(), ER_FAILED, err, i, NO_ERROR, NULL, numeric_db_value_coerce_from_num_strict(), numeric_db_value_coerce_to_num(), OR_CHECK_BIGINT_OVERFLOW, OR_CHECK_FLOAT_OVERFLOW, OR_CHECK_INT_OVERFLOW, OR_CHECK_SHORT_OVERFLOW, pr_clone_value(), tp_domain::precision, tp_domain::scale, db_datetime::time, db_timestamptz::timestamp, tp_atodate(), tp_atodatetimetz(), tp_atof(), tp_atonumeric(), tp_atotime(), tp_atotimestamptz(), tp_atoudatetime(), tp_atoutime(), TP_DOMAIN_TYPE, TP_IS_DATETIME_TYPE, TP_IS_NUMERIC_TYPE, tz_create_datetimetz_from_ses(), tz_create_session_tzid_for_datetime(), tz_create_session_tzid_for_timestamp(), tz_get_utc_tz_id(), db_timestamptz::tz_id, db_datetimetz::tz_id, and tz_utc_datetimetz_to_local().

Referenced by btree_coerce_key(), and scan_dbvals_to_midxkey().

Here is the caller graph for this function:

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

Definition at line 3967 of file object_domain.c.

References DB_VALUE_TYPE, and pr_type_name().

Referenced by check_args(), and do_set_trigger().

Here is the caller graph for this function:

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

Definition at line 11015 of file object_domain.c.

References DB_EQ, and tp_value_compare().

Referenced by db_value_equal(), setobj_find_seq_element(), vid_compare_non_updatable_objects(), and ws_vmop().

Here is the caller graph for this function:

int tp_value_string_to_double ( const DB_VALUE value,
DB_VALUE result 
)

Definition at line 5715 of file object_domain.c.

References db_make_double(), DB_VALUE_TYPE, ER_FAILED, NO_ERROR, tp_atof(), and TP_IS_CHAR_STRING.

Referenced by db_round_dbvalue_to_int().

Here is the caller graph for this function:

Variable Documentation

TP_DOMAIN tp_Blob_domain

Definition at line 266 of file object_domain.c.

TP_DOMAIN tp_Char_domain

Definition at line 310 of file object_domain.c.

TP_DOMAIN tp_Clob_domain

Definition at line 267 of file object_domain.c.

TP_DOMAIN tp_Date_domain

Definition at line 272 of file object_domain.c.

Referenced by round_date().

TP_DOMAIN tp_Elo_domain

Definition at line 265 of file object_domain.c.

TP_DOMAIN tp_Enumeration_domain

Definition at line 294 of file object_domain.c.

TP_DOMAIN tp_Error_domain

Definition at line 290 of file object_domain.c.

TP_DOMAIN tp_Float_domain

Definition at line 237 of file object_domain.c.

Referenced by check_timeout_value().

TP_DOMAIN tp_Json_domain
TP_DOMAIN tp_Midxkey_domain
TP_DOMAIN tp_Monetary_domain

Definition at line 240 of file object_domain.c.

TP_DOMAIN tp_Multiset_domain

Definition at line 249 of file object_domain.c.

Referenced by col_new(), set_op(), and setobj_get_domain().

TP_DOMAIN tp_NChar_domain

Definition at line 314 of file object_domain.c.

TP_DOMAIN tp_Numeric_domain

Definition at line 298 of file object_domain.c.

TP_DOMAIN tp_Object_domain

Definition at line 246 of file object_domain.c.

Referenced by put_object_set(), qexec_setup_list_id(), and tp_domain_resolve_value().

TP_DOMAIN tp_Oid_domain

Definition at line 292 of file object_domain.c.

TP_DOMAIN tp_Pointer_domain

Definition at line 289 of file object_domain.c.

TP_DOMAIN tp_Sequence_domain

Definition at line 251 of file object_domain.c.

Referenced by col_new(), mr_data_readval_vobj(), and setobj_get_domain().

TP_DOMAIN tp_Set_domain

Definition at line 247 of file object_domain.c.

Referenced by col_new(), and setobj_get_domain().

TP_DOMAIN tp_Short_domain

Definition at line 234 of file object_domain.c.

TP_DOMAIN tp_Substructure_domain

Definition at line 288 of file object_domain.c.

TP_DOMAIN tp_Time_domain

Definition at line 268 of file object_domain.c.

TP_DOMAIN tp_Utime_domain

Definition at line 269 of file object_domain.c.

TP_DOMAIN tp_VarBit_domain

Definition at line 306 of file object_domain.c.

TP_DOMAIN tp_Variable_domain

Definition at line 286 of file object_domain.c.

Referenced by pt_type_enum_to_db_domain(), and qexec_alloc_agg_hash_context().

TP_DOMAIN tp_VarNChar_domain

Definition at line 318 of file object_domain.c.