CUBRID Engine  latest
db_macro.c File Reference
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <ctype.h>
#include <string.h>
#include <assert.h>
#include "system_parameter.h"
#include "error_manager.h"
#include "db.h"
#include "db_value_printer.hpp"
#include "string_opfunc.h"
#include "set_object.h"
#include "cnv.h"
#include "tz_support.h"
#include "object_accessor.h"
#include "elo.h"
#include "db_elo.h"
#include "db_set_function.h"
#include "numeric_opfunc.h"
#include "object_primitive.h"
#include "object_representation.h"
#include "db_json.hpp"
#include "dbtype.h"

Go to the source code of this file.

Classes

struct  valcnv_buffer
 

Macros

#define DB_NUMBER_ZERO   0
 
#define VALCNV_TOO_BIG_TO_MATTER   1024
 

Typedefs

typedef struct valcnv_buffer VALCNV_BUFFER
 

Enumerations

enum  { C_TO_VALUE_NOERROR = 0, C_TO_VALUE_UNSUPPORTED_CONVERSION = -1, C_TO_VALUE_CONVERSION_ERROR = -2, C_TO_VALUE_TRUNCATION_ERROR = -3 }
 

Functions

static int transfer_string (char *dst, int *xflen, int *outlen, const int dstlen, const char *src, const int srclen, const DB_TYPE_C type, const INTL_CODESET codeset)
 
static int transfer_bit_string (char *buf, int *xflen, int *outlen, const int buflen, const DB_VALUE *src, const DB_TYPE_C c_type)
 
static int coerce_char_to_dbvalue (DB_VALUE *value, char *buf, const int buflen)
 
static int coerce_numeric_to_dbvalue (DB_VALUE *value, char *buf, const DB_TYPE_C c_type)
 
static int coerce_binary_to_dbvalue (DB_VALUE *value, char *buf, const int buflen)
 
static int coerce_date_to_dbvalue (DB_VALUE *value, char *buf)
 
static int coerce_time_to_dbvalue (DB_VALUE *value, char *buf)
 
static int coerce_timestamp_to_dbvalue (DB_VALUE *value, char *buf)
 
static int coerce_datetime_to_dbvalue (DB_VALUE *value, char *buf)
 
static VALCNV_BUFFERvalcnv_append_bytes (VALCNV_BUFFER *old_string, const char *new_tail, const size_t new_tail_length)
 
static VALCNV_BUFFERvalcnv_append_string (VALCNV_BUFFER *old_string, const char *new_tail)
 
static VALCNV_BUFFERvalcnv_convert_float_to_string (VALCNV_BUFFER *buf, const float value)
 
static VALCNV_BUFFERvalcnv_convert_double_to_string (VALCNV_BUFFER *buf, const double value)
 
static VALCNV_BUFFERvalcnv_convert_bit_to_string (VALCNV_BUFFER *buf, const DB_VALUE *value)
 
static VALCNV_BUFFERvalcnv_convert_set_to_string (VALCNV_BUFFER *buf, DB_SET *set)
 
static VALCNV_BUFFERvalcnv_convert_money_to_string (const double value)
 
static VALCNV_BUFFERvalcnv_convert_data_to_string (VALCNV_BUFFER *buf, const DB_VALUE *value)
 
static VALCNV_BUFFERvalcnv_convert_db_value_to_string (VALCNV_BUFFER *buf, const DB_VALUE *value)
 
int db_value_put_null (DB_VALUE *value)
 
bool IS_INVALID_PRECISION (int p, int m)
 
int db_value_domain_init (DB_VALUE *value, const DB_TYPE type, const int precision, const int scale)
 
void db_value_domain_init_default (DB_VALUE *value, const DB_TYPE type)
 
int db_value_domain_min (DB_VALUE *value, const DB_TYPE type, const int precision, const int scale, const int codeset, const int collation_id, const DB_ENUMERATION *enumeration)
 
int db_value_domain_max (DB_VALUE *value, const DB_TYPE type, const int precision, const int scale, const int codeset, const int collation_id, const DB_ENUMERATION *enumeration)
 
int db_value_domain_default (DB_VALUE *value, const DB_TYPE type, const int precision, const int scale, const int codeset, const int collation_id, DB_ENUMERATION *enumeration)
 
int db_value_domain_zero (DB_VALUE *value, const DB_TYPE type, const int precision, const int scale)
 
int db_string_truncate (DB_VALUE *value, const int precision)
 
bool db_value_type_is_collection (const DB_VALUE *value)
 
DB_DATAdb_value_get_db_data (DB_VALUE *value)
 
int db_value_alter_type (DB_VALUE *value, const DB_TYPE type)
 
int db_value_put (DB_VALUE *value, const DB_TYPE_C c_type, void *input, const int input_length)
 
int db_value_put_encoded_time (DB_VALUE *value, const DB_TIME *time)
 
int db_value_put_encoded_date (DB_VALUE *value, const DB_DATE *date)
 
int db_value_put_monetary_currency (DB_VALUE *value, DB_CURRENCY const type)
 
int db_value_put_monetary_amount_as_double (DB_VALUE *value, const double amount)
 
DB_CURRENCY db_value_get_monetary_currency (const DB_VALUE *value)
 
double db_value_get_monetary_amount_as_double (const DB_VALUE *value)
 
DB_VALUEdb_value_create (void)
 
DB_VALUEdb_value_copy (DB_VALUE *value)
 
int db_value_clone (DB_VALUE *src, DB_VALUE *dest)
 
int db_value_clear (DB_VALUE *value)
 
int db_value_free (DB_VALUE *value)
 
int db_value_clear_array (DB_VALUE_ARRAY *value_array)
 
void db_value_print (const DB_VALUE *value)
 
void db_value_fprint (FILE *fp, const DB_VALUE *value)
 
DB_DOMAINdb_type_to_db_domain (const DB_TYPE type)
 
int db_value_coerce (const DB_VALUE *src, DB_VALUE *dest, const DB_DOMAIN *desired_domain)
 
int db_value_equal (const DB_VALUE *value1, const DB_VALUE *value2)
 
int db_set_compare (const DB_VALUE *value1, const DB_VALUE *value2)
 
int db_value_compare (const DB_VALUE *value1, const DB_VALUE *value2)
 
DB_CURRENCY db_get_currency_default ()
 
int db_get_deep_copy_of_json (const DB_JSON *src, DB_JSON *dst)
 
int db_init_db_json_pointers (DB_JSON *val)
 
int db_value_get (DB_VALUE *value, const DB_TYPE_C c_type, void *buf, const int buflen, int *xflen, int *outlen)
 
DB_DOMAINdb_domain_next (const DB_DOMAIN *domain)
 
DB_TYPE db_domain_type (const DB_DOMAIN *domain)
 
DB_OBJECTdb_domain_class (const DB_DOMAIN *domain)
 
DB_DOMAINdb_domain_set (const DB_DOMAIN *domain)
 
int db_domain_precision (const DB_DOMAIN *domain)
 
int db_domain_scale (const DB_DOMAIN *domain)
 
int db_domain_codeset (const DB_DOMAIN *domain)
 
int db_domain_collation_id (const DB_DOMAIN *domain)
 
const char * db_domain_raw_json_schema (const DB_DOMAIN *domain)
 
int db_string_put_cs_and_collation (DB_VALUE *value, const int codeset, const int collation_id)
 
int db_enum_put_cs_and_collation (DB_VALUE *value, const int codeset, const int collation_id)
 
int valcnv_convert_value_to_string (DB_VALUE *value_p)
 
int db_get_connect_status (void)
 
void db_set_connect_status (int status)
 
const char * db_default_expression_string (DB_DEFAULT_EXPR_TYPE default_expr_type)
 
int db_convert_json_into_scalar (const DB_VALUE *src, DB_VALUE *dest)
 
bool db_is_json_value_type (DB_TYPE type)
 
bool db_is_json_doc_type (DB_TYPE type)
 
char * db_get_json_raw_body (const DB_VALUE *value)
 
bool db_value_is_corrupted (const DB_VALUE *value)
 

Variables

SESSION_ID db_Session_id = DB_EMPTY_SESSION
 
int db_Row_count = DB_ROW_COUNT_NOT_SET
 
static int valcnv_Max_set_elements = 10
 
int db_Connect_status = DB_CONNECTION_STATUS_NOT_CONNECTED
 
int db_Disable_modifications = 0
 

Macro Definition Documentation

#define DB_NUMBER_ZERO   0

Definition at line 60 of file db_macro.c.

Referenced by db_value_domain_zero().

#define VALCNV_TOO_BIG_TO_MATTER   1024

Definition at line 62 of file db_macro.c.

Referenced by valcnv_convert_data_to_string().

Typedef Documentation

typedef struct valcnv_buffer VALCNV_BUFFER

Definition at line 72 of file db_macro.c.

Enumeration Type Documentation

anonymous enum
Enumerator
C_TO_VALUE_NOERROR 
C_TO_VALUE_UNSUPPORTED_CONVERSION 
C_TO_VALUE_CONVERSION_ERROR 
C_TO_VALUE_TRUNCATION_ERROR 

Definition at line 64 of file db_macro.c.

Function Documentation

int db_domain_codeset ( const DB_DOMAIN domain)

Definition at line 4116 of file db_macro.c.

References tp_domain::codeset, and NULL.

Referenced by get_set_domain(), oid_attr_info_set(), prepare_column_list_info_set(), pt_domain_to_data_type(), ux_col_get(), ux_get_parameter_info(), and ux_make_out_rs().

Here is the caller graph for this function:

int db_domain_collation_id ( const DB_DOMAIN domain)

Definition at line 4134 of file db_macro.c.

References tp_domain::collation_id, and NULL.

Referenced by pt_domain_to_data_type().

Here is the caller graph for this function:

DB_DOMAIN* db_domain_next ( const DB_DOMAIN domain)
const char* db_domain_raw_json_schema ( const DB_DOMAIN domain)

Definition at line 4147 of file db_macro.c.

References db_json_get_schema_raw_from_validator(), tp_domain::json_validator, and NULL.

Referenced by emit_domain_def().

Here is the caller graph for this function:

DB_TYPE db_domain_type ( const DB_DOMAIN domain)

Definition at line 4006 of file db_macro.c.

References TP_DOMAIN_TYPE.

int db_get_connect_status ( void  )

Definition at line 4930 of file db_macro.c.

References db_Connect_status.

Referenced by cas_get_db_connect_status().

Here is the caller graph for this function:

DB_CURRENCY db_get_currency_default ( void  )

Definition at line 1870 of file db_macro.c.

References lang_currency().

Referenced by netval_to_dbval().

Here is the caller graph for this function:

int db_get_deep_copy_of_json ( const DB_JSON src,
DB_JSON dst 
)

Definition at line 2022 of file db_macro.c.

References assert, CHECK_2ARGS_ERROR, db_json_get_copy_of_doc(), db_private_strdup(), db_json::document, NO_ERROR, NULL, and db_json::schema_raw.

Referenced by mr_getmem_json(), and mr_setmem_json().

Here is the caller graph for this function:

char* db_get_json_raw_body ( const DB_VALUE value)
int db_init_db_json_pointers ( DB_JSON val)

Definition at line 2042 of file db_macro.c.

References CHECK_1ARG_ERROR, db_json::document, NO_ERROR, NULL, and db_json::schema_raw.

Referenced by mr_getmem_json().

Here is the caller graph for this function:

bool db_is_json_doc_type ( DB_TYPE  type)

Definition at line 5066 of file db_macro.c.

References DB_TYPE_CHAR, DB_TYPE_JSON, DB_TYPE_NCHAR, DB_TYPE_VARCHAR, and DB_TYPE_VARNCHAR.

Referenced by pt_is_json_doc_type().

Here is the caller graph for this function:

bool db_is_json_value_type ( DB_TYPE  type)
int db_set_compare ( const DB_VALUE value1,
const DB_VALUE value2 
)

Definition at line 1833 of file db_macro.c.

References tp_set_compare().

Referenced by pt_evaluate_db_value_expr().

Here is the caller graph for this function:

void db_set_connect_status ( int  status)

Definition at line 4936 of file db_macro.c.

References db_Connect_status.

Referenced by cas_set_db_connect_status().

Here is the caller graph for this function:

int db_value_clear ( DB_VALUE value)

Definition at line 1588 of file db_macro.c.

References error(), NO_ERROR, NULL, and pr_clear_value().

Referenced by au_add_member_internal(), au_drop_member(), au_get_new_auth(), au_get_user_name(), bind_value_print(), call_method(), check_change_attribute(), chksum_get_next_lower_bound(), chksum_get_prev_checksum_results(), chksum_report_diff(), chksum_report_schema_diff(), chksum_report_summary(), chksum_update_master_checksum(), cubload::server_object_loader::clear_db_values(), coerce_binary_to_dbvalue(), coerce_char_to_dbvalue(), coerce_date_to_dbvalue(), coerce_datetime_to_dbvalue(), coerce_time_to_dbvalue(), coerce_timestamp_to_dbvalue(), cur_tuple(), cursor_fetch_page_having_tuple(), cursor_fixup_vobjs(), db_close_session_local(), db_free_query_result(), db_gadget_bind(), db_gadget_destroy(), db_value_to_value(), dbval_to_net_buf(), delete_object_tuple(), db_value_printer::describe_set(), do_add_attribute(), do_add_attribute_from_select_column(), do_alter_one_clause_with_template(), do_change_att_schema_only(), do_change_auto_increment_serial(), do_check_rows_for_null(), do_clear_insert_values(), do_evaluate_default_expr(), do_evaluate_insert_values(), do_execute_select(), do_execute_session_statement(), do_reset_auto_increment_serial(), do_rollback(), do_savepoint(), do_select_internal(), do_set_trigger(), emit_class_owner(), emit_stored_procedure(), ex_contains_object_reference(), execute_info_set(), export_serial(), fetch_attribute(), fetch_result(), fetch_set_internal(), fn_collection(), fn_lob_read(), fn_lob_write(), free_db_values(), free_pointers(), get_att_default_from_def(), get_column_default_as_string(), get_desc_old(), get_string(), get_user_name(), help_class_names(), object_description::init(), insert_ha_apply_info(), insert_subquery_results(), jsp_call_stored_procedure(), jsp_receive_error(), jsp_receive_result(), la_delete_ha_apply_info(), la_get_ha_apply_info(), la_insert_ha_apply_info(), la_update_ha_apply_info_log_record_time(), la_update_ha_apply_info_start_time(), la_update_ha_last_applied_info(), ldr_bstr_db_varbit(), ldr_bstr_elem(), ldr_elo_ext_db_elo(), ldr_json_db_json(), ldr_xstr_db_varbit(), ldr_xstr_elem(), logtb_clear_tdes(), make_bind_value(), method_clear_scan_buffer(), method_invoke(), mr_readval_nchar_internal(), mr_readval_varnchar_internal(), netval_to_dbval(), object_to_trigger(), obt_apply_assignments(), oid_attr_info_set(), oid_data_set(), parser_free_node_resources(), parser_free_parser(), prepare_call_info_dbval_clear(), pt_evaluate_tree_internal(), pt_set_elements_to_value(), qmgr_execute_query(), qo_find_like_rewrite_bound(), qo_rewrite_one_like_term(), qproc_next_set_scan(), serialize_collection_as_string(), session_dump_session(), session_dump_variable(), set_has_objs(), set_to_string(), setof_mop_to_setof_vobj(), sm_att_default_value(), sm_delete_class_mop(), sm_rename_class(), sserial_get_current_value(), sserial_get_next_value(), cubload::to_db_varbit_from_bin_str(), cubload::to_db_varbit_from_hex_str(), transfer_bit_string(), uci_start(), update_object_tuple(), ux_col_get(), ux_cursor_update(), ux_execute(), ux_execute_all(), ux_execute_array(), ux_execute_batch(), ux_execute_call(), ux_get_generated_keys_client_insert(), ux_get_last_insert_id(), ux_lob_new(), ux_oid_put(), value_to_db_value(), vid_pack_vobj(), and ws_free_repl_flush_error().

int db_value_clear_array ( DB_VALUE_ARRAY value_array)

Definition at line 1633 of file db_macro.c.

References assert, error(), i, NO_ERROR, NULL, pr_clear_value(), db_value_array::size, and db_value_array::vals.

Referenced by db_unpack_prepare_info(), do_set_user_host_variables(), and values_list_to_values_array().

Here is the caller graph for this function:

int db_value_domain_default ( DB_VALUE value,
const DB_TYPE  type,
const int  precision,
const int  scale,
const int  codeset,
const int  collation_id,
DB_ENUMERATION enumeration 
)

Definition at line 756 of file db_macro.c.

References ARG_FILE_LINE, assert, db_char::buf, db_data::ch, db_domain_info::char_info, db_char::codeset, db_domain_info::char_info::collation_id, db_char::compressed_buf, db_char::compressed_need_clear, db_char::compressed_size, db_value::data, db_datetime::date, db_data::date, db_datetimetz::datetime, db_data::datetime, db_data::datetimetz, DB_DATE_MIN, db_make_bit(), db_make_enumeration(), db_make_multiset(), db_make_sequence(), db_make_set(), db_seq_create(), db_set_create_basic(), db_set_create_multi(), DB_TIME_MIN, 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_DOUBLE, DB_TYPE_ENUMERATION, DB_TYPE_ERROR, DB_TYPE_FLOAT, DB_TYPE_INTEGER, 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_SEQUENCE, DB_TYPE_SET, DB_TYPE_SHORT, DB_TYPE_SUB, 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_UTIME_MIN, db_value_domain_init(), db_value_domain_zero(), db_value::domain, db_data::elo, ELO_NULL, ER_ERROR_SEVERITY, er_set(), ER_UCI_INVALID_DATA_TYPE, error(), db_domain_info::general_info, db_char::info, db_char::is_max_string, db_domain_info::general_info::is_null, db_char::medium, MEDIUM_STRING, NO_ERROR, NULL, NULL_PAGEID, db_data::oid, db_identifier::pageid, db_char::size, db_identifier::slotid, db_char::style, db_datetime::time, db_data::time, db_timestamptz::timestamp, db_data::timestamptz, TP_IS_NUMERIC_TYPE, db_elo::type, tz_get_utc_tz_id(), db_timestamptz::tz_id, db_datetimetz::tz_id, db_data::utime, and db_identifier::volid.

Referenced by heap_object_upgrade_domain(), pt_make_query_show_columns(), pt_make_query_show_index(), pt_to_upd_del_query(), and valcnv_convert_data_to_string().

Here is the caller graph for this function:

int db_value_domain_init ( DB_VALUE value,
const DB_TYPE  type,
const int  precision,
const int  scale 
)

Definition at line 153 of file db_macro.c.

References ARG_FILE_LINE, db_data::ch, db_domain_info::char_info, CHECK_1ARG_ERROR, db_char::codeset, db_domain_info::char_info::collation_id, db_value::data, DB_DEFAULT_NUMERIC_PRECISION, DB_DEFAULT_NUMERIC_SCALE, DB_DEFAULT_PRECISION, DB_DEFAULT_SCALE, DB_MAX_BIT_PRECISION, DB_MAX_CHAR_PRECISION, DB_MAX_NCHAR_PRECISION, DB_MAX_NUMERIC_PRECISION, 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_DOUBLE, 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_SEQUENCE, DB_TYPE_SET, DB_TYPE_SHORT, DB_TYPE_SUB, 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_json::document, db_value::domain, db_data::enumeration, ER_INVALID_PRECISION, er_set(), ER_UCI_INVALID_DATA_TYPE, ER_WARNING_SEVERITY, error(), db_domain_info::general_info, db_char::info, INTL_CODESET_RAW_BITS, IS_INVALID_PRECISION(), db_domain_info::general_info::is_null, db_data::json, LANG_SYS_CODESET, LANG_SYS_COLLATION, db_domain_info::char_info::length, db_value::need_clear, NO_ERROR, NULL, db_domain_info::numeric_info, db_domain_info::numeric_info::precision, db_domain_info::numeric_info::scale, db_json::schema_raw, db_enum_element::str_val, TP_FLOATING_PRECISION_VALUE, and db_domain_info::general_info::type.

Referenced by catcls_expand_or_value_by_def(), catcls_expand_or_value_by_repr(), catcls_get_or_value_from_domain(), coerce_binary_to_dbvalue(), coerce_char_to_dbvalue(), coerce_date_to_dbvalue(), coerce_datetime_to_dbvalue(), coerce_time_to_dbvalue(), coerce_timestamp_to_dbvalue(), csect_start_scan(), cursor_copy_vobj_to_dbvalue(), cursor_fixup_vobjs(), cursor_get_tuple_value_to_dbvalue(), db_add_months(), db_bit_string_coerce(), db_char_string_coerce(), db_datetime_to_timestamp(), db_string_bit_length(), db_string_char_length(), db_string_concatenate(), db_string_convert_to(), db_string_elt(), db_string_index_prefix(), db_string_make_empty_typed_string(), db_string_pad(), db_string_replace(), db_string_translate(), db_string_trim(), db_string_unique_prefix(), db_string_value(), db_sys_date(), db_sys_datetime(), db_sys_time(), db_sys_timestamp(), db_sys_timezone(), db_timestamp(), db_value_alloc_and_copy(), db_value_domain_default(), db_value_domain_init_default(), db_value_domain_max(), db_value_domain_min(), db_value_domain_zero(), db_value_get(), do_alter_serial(), do_cast_host_variables_to_expected_domain(), do_change_auto_increment_serial(), do_create_auto_increment_serial(), do_create_serial(), do_update_maxvalue_of_auto_increment_serial(), get_set_value(), heap_attrinfo_recache_attrepr(), heap_attrinfo_set(), heap_attrinfo_start(), heap_attrinfo_transform_to_disk_internal(), heap_attrvalue_read(), heap_eval_function_index(), ldr_act_class_attr(), ldr_bstr_elem(), ldr_int_elem(), ldr_numeric_elem(), ldr_xstr_elem(), method_receive_results_for_stand_alone(), mr_data_readval_error(), mr_data_readval_object(), mr_data_readval_oid(), mr_data_readval_ptr(), mr_data_readval_set(), mr_getmem_json(), mr_getmem_string(), mr_getmem_varbit(), mr_getmem_varnchar(), mr_index_readval_midxkey(), mr_index_readval_oid(), mr_initval_bigint(), mr_initval_bit(), mr_initval_blob(), mr_initval_clob(), mr_initval_double(), mr_initval_enumeration(), mr_initval_error(), mr_initval_int(), mr_initval_json(), mr_initval_midxkey(), mr_initval_multiset(), mr_initval_nchar(), mr_initval_null(), mr_initval_numeric(), mr_initval_object(), mr_initval_oid(), mr_initval_ptr(), mr_initval_resultset(), mr_initval_sequence(), mr_initval_set(), mr_initval_short(), mr_initval_sub(), mr_initval_vobj(), 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_bigint(), mr_setval_bit(), mr_setval_date(), mr_setval_datetime(), mr_setval_datetimeltz(), mr_setval_datetimetz(), mr_setval_double(), mr_setval_enumeration(), mr_setval_float(), mr_setval_int(), mr_setval_json(), mr_setval_midxkey(), mr_setval_money(), mr_setval_nchar(), mr_setval_numeric(), mr_setval_object(), mr_setval_resultset(), mr_setval_set_internal(), mr_setval_short(), mr_setval_string(), mr_setval_time(), mr_setval_timestampltz(), mr_setval_timestamptz(), mr_setval_utime(), mr_setval_varbit(), mr_setval_varnchar(), netval_to_dbval(), numeric_coerce_string_to_num(), numeric_db_value_add(), numeric_db_value_compare(), numeric_db_value_div(), numeric_db_value_mul(), numeric_db_value_sub(), obt_apply_assignments(), or_get_set(), pgbuf_start_scan(), populate_auto_increment(), pr_clone_value(), pr_make_ext_value(), pr_make_value(), pt_db_value_initialize(), pt_evaluate_db_value_expr(), pt_make_regu_hostvar(), pt_to_regu_variable(), qdata_aggregate_accumulator_to_accumulator(), qdata_coerce_dbval_to_numeric(), qdata_coerce_numeric_to_double(), qdata_evaluate_analytic_func(), qdata_finalize_aggregate_list(), qdata_finalize_analytic_func(), qdata_get_single_tuple_from_list_id(), qdata_group_concat_first_value(), qdata_initialize_aggregate_list(), qdata_initialize_analytic_func(), qdata_set_valptr_list_unbound(), qexec_resolve_domains_for_aggregation(), qexec_resolve_domains_for_group_by(), qexec_set_pseudocolumns_val_pointers(), regu_dbval_type_init(), rs_init_domain(), setobj_convert_oids_to_objects(), setof_mop_to_setof_vobj(), swizzle_value(), cubload::to_db_generic_char(), cubload::to_db_numeric(), cubload::to_db_varbit_from_bin_str(), cubload::to_db_varbit_from_hex_str(), cubload::to_int_generic(), tp_init_value_domain(), tp_value_cast_internal(), tp_value_coerce_strict(), tp_value_compare_with_error(), transfer_bit_string(), uci_put_value(), value_to_db_value(), vid_build_non_upd_object(), vid_compare_non_updatable_objects(), vid_fetch_instance(), vid_make_vid(), vt_api_init_domain(), ws_rehash_vmop(), and xtran_get_local_transaction_id().

void db_value_domain_init_default ( DB_VALUE value,
const DB_TYPE  type 
)

Definition at line 394 of file db_macro.c.

References DB_DEFAULT_PRECISION, DB_DEFAULT_SCALE, and db_value_domain_init().

Referenced by pt_data_type_init_value().

Here is the caller graph for this function:

int db_value_domain_max ( DB_VALUE value,
const DB_TYPE  type,
const int  precision,
const int  scale,
const int  codeset,
const int  collation_id,
const DB_ENUMERATION enumeration 
)

Definition at line 581 of file db_macro.c.

References db_monetary::amount, ARG_FILE_LINE, db_data::bigint, db_numeric::buf, db_char::buf, db_data::ch, db_domain_info::char_info, db_char::codeset, db_domain_info::char_info::collation_id, db_char::compressed_buf, db_char::compressed_need_clear, db_char::compressed_size, db_enumeration::count, db_numeric::d, db_data::d, db_value::data, db_datetime::date, db_data::date, db_datetimetz::datetime, db_data::datetime, db_data::datetimetz, DB_BIGINT_MAX, DB_CURRENCY_DEFAULT, DB_DATE_MAX, DB_ENUM_ELEMENTS_MAX, DB_INT16_MAX, DB_INT32_MAX, db_make_enumeration(), DB_MAX_NUMERIC_PRECISION, DB_TIME_MAX, 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_DOUBLE, DB_TYPE_ENUMERATION, DB_TYPE_FLOAT, DB_TYPE_INTEGER, DB_TYPE_JSON, DB_TYPE_MONETARY, DB_TYPE_MULTISET, DB_TYPE_NCHAR, DB_TYPE_NULL, DB_TYPE_NUMERIC, DB_TYPE_OID, DB_TYPE_SEQUENCE, DB_TYPE_SET, DB_TYPE_SHORT, DB_TYPE_TIME, DB_TYPE_TIMESTAMP, DB_TYPE_TIMESTAMPLTZ, DB_TYPE_TIMESTAMPTZ, DB_TYPE_VARBIT, DB_TYPE_VARCHAR, DB_TYPE_VARNCHAR, DB_UTIME_MAX, db_value_domain_init(), db_value::domain, db_enumeration::elements, db_data::elo, elo_init_structure(), er_set(), ER_UCI_INVALID_DATA_TYPE, ER_WARNING_SEVERITY, error(), db_data::f, db_domain_info::general_info, db_data::i, db_char::info, INTL_CODESET_RAW_BITS, db_char::is_max_string, db_domain_info::general_info::is_null, db_char::medium, MEDIUM_STRING, db_data::money, db_value::need_clear, NO_ERROR, NULL, db_data::num, numeric_coerce_dec_str_to_num(), db_domain_info::numeric_info, db_data::oid, db_identifier::pageid, db_domain_info::numeric_info::precision, db_data::set, db_data::sh, db_char::size, db_identifier::slotid, db_enum_element::str_val, db_char::style, db_datetime::time, db_data::time, db_timestamptz::timestamp, db_data::timestamptz, db_monetary::type, tz_get_utc_tz_id(), db_timestamptz::tz_id, db_datetimetz::tz_id, db_data::utime, and db_identifier::volid.

Referenced by db_get_like_optimization_bounds(), and heap_object_upgrade_domain().

Here is the caller graph for this function:

int db_value_domain_min ( DB_VALUE value,
const DB_TYPE  type,
const int  precision,
const int  scale,
const int  codeset,
const int  collation_id,
const DB_ENUMERATION enumeration 
)

Definition at line 413 of file db_macro.c.

References db_monetary::amount, ARG_FILE_LINE, db_data::bigint, db_numeric::buf, db_char::buf, db_data::ch, db_domain_info::char_info, db_char::codeset, db_domain_info::char_info::collation_id, db_char::compressed_buf, db_char::compressed_need_clear, db_char::compressed_size, db_numeric::d, db_data::d, db_value::data, db_datetime::date, db_data::date, db_datetimetz::datetime, db_data::datetime, db_data::datetimetz, DB_BIGINT_MIN, DB_CURRENCY_DEFAULT, DB_DATE_MIN, DB_INT16_MIN, DB_INT32_MIN, db_make_enumeration(), DB_MAX_NUMERIC_PRECISION, DB_TIME_MIN, 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_DOUBLE, DB_TYPE_ENUMERATION, DB_TYPE_FLOAT, DB_TYPE_INTEGER, DB_TYPE_JSON, DB_TYPE_MONETARY, DB_TYPE_MULTISET, DB_TYPE_NCHAR, DB_TYPE_NULL, DB_TYPE_NUMERIC, DB_TYPE_OID, DB_TYPE_SEQUENCE, DB_TYPE_SET, DB_TYPE_SHORT, DB_TYPE_TIME, DB_TYPE_TIMESTAMP, DB_TYPE_TIMESTAMPLTZ, DB_TYPE_TIMESTAMPTZ, DB_TYPE_VARBIT, DB_TYPE_VARCHAR, DB_TYPE_VARNCHAR, DB_UTIME_MIN, db_value_domain_init(), db_value::domain, db_data::elo, elo_init_structure(), er_set(), ER_UCI_INVALID_DATA_TYPE, ER_WARNING_SEVERITY, error(), db_data::f, db_domain_info::general_info, db_data::i, db_char::info, INTL_CODESET_RAW_BITS, db_char::is_max_string, db_domain_info::general_info::is_null, db_char::medium, MEDIUM_STRING, db_data::money, db_value::need_clear, NO_ERROR, NULL, NULL_PAGEID, db_data::num, numeric_coerce_dec_str_to_num(), db_domain_info::numeric_info, db_data::oid, db_identifier::pageid, db_domain_info::numeric_info::precision, db_data::set, db_data::sh, db_char::size, db_identifier::slotid, db_char::style, db_datetime::time, db_data::time, db_timestamptz::timestamp, db_data::timestamptz, db_monetary::type, tz_get_utc_tz_id(), db_timestamptz::tz_id, db_datetimetz::tz_id, db_data::utime, and db_identifier::volid.

Referenced by db_get_like_optimization_bounds(), and heap_object_upgrade_domain().

Here is the caller graph for this function:

int db_value_equal ( const DB_VALUE value1,
const DB_VALUE value2 
)

Definition at line 1803 of file db_macro.c.

References CHECK_CONNECT_ZERO, and tp_value_equal().

void db_value_fprint ( FILE *  fp,
const DB_VALUE value 
)

Definition at line 1681 of file db_macro.c.

References CHECK_CONNECT_VOID, db_fprint_value(), and NULL.

int db_value_get ( DB_VALUE value,
const DB_TYPE_C  c_type,
void *  buf,
const int  buflen,
int *  xflen,
int *  outlen 
)

Definition at line 2077 of file db_macro.c.

References db_monetary::amount, ARG_FILE_LINE, DATE_BUF_SIZE, DATETIME_BUF_SIZE, db_date_to_string(), db_datetime_to_string(), DB_DEFAULT_PRECISION, DB_DEFAULT_SCALE, db_get_bigint(), db_get_date(), db_get_datetime(), db_get_double(), db_get_float(), db_get_int(), db_get_monetary(), db_get_object(), db_get_set(), db_get_short(), db_get_string(), db_get_string_length(), db_get_string_size(), db_get_time(), db_get_timestamp(), DB_IS_NULL, db_time_to_string(), db_timestamp_to_string(), DB_TYPE_BIGINT, DB_TYPE_BIT, DB_TYPE_BLOB, DB_TYPE_C_BIGINT, DB_TYPE_C_BIT, DB_TYPE_C_CHAR, DB_TYPE_C_DATE, DB_TYPE_C_DATETIME, DB_TYPE_C_DOUBLE, DB_TYPE_C_FLOAT, DB_TYPE_C_INT, DB_TYPE_C_LONG, DB_TYPE_C_MONETARY, DB_TYPE_C_NCHAR, DB_TYPE_C_OBJECT, DB_TYPE_C_SET, DB_TYPE_C_SHORT, DB_TYPE_C_TIME, DB_TYPE_C_TIMESTAMP, DB_TYPE_C_VARBIT, DB_TYPE_C_VARCHAR, DB_TYPE_C_VARNCHAR, DB_TYPE_CHAR, DB_TYPE_CLOB, DB_TYPE_DATE, DB_TYPE_DATETIME, DB_TYPE_DB_VALUE, DB_TYPE_DOUBLE, DB_TYPE_ENUMERATION, DB_TYPE_ERROR, DB_TYPE_FIRST, DB_TYPE_FLOAT, DB_TYPE_INTEGER, DB_TYPE_MIDXKEY, DB_TYPE_MONETARY, DB_TYPE_MULTISET, DB_TYPE_NCHAR, DB_TYPE_NUMERIC, DB_TYPE_OBJECT, DB_TYPE_OID, DB_TYPE_POINTER, DB_TYPE_RESULTSET, DB_TYPE_SEQUENCE, DB_TYPE_SET, DB_TYPE_SMALLINT, DB_TYPE_SUB, DB_TYPE_TABLE, DB_TYPE_TIME, DB_TYPE_TIMESTAMP, DB_TYPE_VARBIT, DB_TYPE_VARCHAR, DB_TYPE_VARIABLE, DB_TYPE_VARNCHAR, DB_TYPE_VOBJ, db_value_domain_init(), db_value_get(), DB_VALUE_TYPE, ER_DB_UNSUPPORTED_CONVERSION, ER_ERROR_SEVERITY, ER_OBJ_INVALID_ARGUMENTS, er_set(), ER_UCI_NULL_IND_NEEDED, i, LANG_SYS_CODESET, NO_ERROR, NULL, NUM_BUF_SIZE, numeric_db_value_coerce_from_num(), pr_clear_value(), qstr_bit_to_hex_coerce(), strlen, TIME_BUF_SIZE, TIMESTAMP_BUF_SIZE, transfer_bit_string(), and transfer_string().

Referenced by db_value_get(), db_value_to_value(), and uci_get_value().

Here is the caller graph for this function:

DB_DATA* db_value_get_db_data ( DB_VALUE value)

Definition at line 1211 of file db_macro.c.

References CHECK_1ARG_NULL, and db_value::data.

double db_value_get_monetary_amount_as_double ( const DB_VALUE value)

Definition at line 1505 of file db_macro.c.

References db_monetary::amount, CHECK_1ARG_ZERO, db_value::data, and db_data::money.

Referenced by db_conv(), db_format(), db_timestamp(), dbval_to_net_buf(), and numeric_db_value_coerce_to_num().

Here is the caller graph for this function:

DB_CURRENCY db_value_get_monetary_currency ( const DB_VALUE value)

Definition at line 1492 of file db_macro.c.

References CHECK_1ARG_ZERO_WITH_TYPE, db_value::data, db_data::money, and db_monetary::type.

Referenced by db_string_value(), pt_bind_helper(), and pt_dbval_to_value().

Here is the caller graph for this function:

void db_value_print ( const DB_VALUE value)
bool IS_INVALID_PRECISION ( int  p,
int  m 
)
inline

Definition at line 137 of file db_macro.c.

References DB_DEFAULT_PRECISION.

Referenced by db_value_domain_init(), and db_value_is_corrupted().

Here is the caller graph for this function:

static int transfer_bit_string ( char *  buf,
int *  xflen,
int *  outlen,
const int  buflen,
const DB_VALUE src,
const DB_TYPE_C  c_type 
)
static
static int transfer_string ( char *  dst,
int *  xflen,
int *  outlen,
const int  dstlen,
const char *  src,
const int  srclen,
const DB_TYPE_C  type,
const INTL_CODESET  codeset 
)
static
static VALCNV_BUFFER * valcnv_append_bytes ( VALCNV_BUFFER old_string,
const char *  new_tail,
const size_t  new_tail_length 
)
static

Definition at line 4221 of file db_macro.c.

References ARG_FILE_LINE, valcnv_buffer::bytes, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), valcnv_buffer::length, and NULL.

Referenced by valcnv_append_string(), and valcnv_convert_data_to_string().

Here is the caller graph for this function:

static VALCNV_BUFFER * valcnv_append_string ( VALCNV_BUFFER old_string,
const char *  new_tail 
)
static
static VALCNV_BUFFER * valcnv_convert_bit_to_string ( VALCNV_BUFFER buf,
const DB_VALUE value 
)
static

Definition at line 4335 of file db_macro.c.

References cubregex::count(), db_get_string(), db_get_string_length(), NULL, REINTERPRET_CAST, and valcnv_append_string().

Referenced by valcnv_convert_data_to_string().

Here is the caller graph for this function:

static VALCNV_BUFFER * valcnv_convert_data_to_string ( VALCNV_BUFFER buf,
const DB_VALUE value 
)
static

Definition at line 4478 of file db_macro.c.

References db_monetary::amount, assert, valcnv_buffer::bytes, db_datetimetz::datetime, db_date_to_string(), db_datetime_to_string(), db_datetimetz_to_string(), DB_DEFAULT_PRECISION, db_get_bigint(), db_get_date(), db_get_datetime(), db_get_datetimetz(), db_get_double(), db_get_elo(), db_get_enum_short(), db_get_enum_string(), db_get_enum_string_size(), db_get_float(), db_get_int(), db_get_monetary(), db_get_oid(), db_get_set(), db_get_short(), db_get_string(), db_get_string_size(), db_get_time(), db_get_timestamp(), db_get_timestamptz(), DB_IS_NULL, db_make_string(), db_time_to_string(), db_timestamp_to_string(), db_timestamptz_to_string(), 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_DOUBLE, DB_TYPE_ENUMERATION, DB_TYPE_FLOAT, DB_TYPE_INTEGER, DB_TYPE_MONETARY, DB_TYPE_MULTISET, DB_TYPE_NCHAR, DB_TYPE_NUMERIC, DB_TYPE_OID, DB_TYPE_SEQUENCE, DB_TYPE_SET, DB_TYPE_SHORT, DB_TYPE_TIME, DB_TYPE_TIMESTAMP, DB_TYPE_TIMESTAMPLTZ, DB_TYPE_TIMESTAMPTZ, DB_TYPE_VARBIT, DB_TYPE_VARCHAR, DB_TYPE_VARNCHAR, db_value_domain_default(), DB_VALUE_TYPE, ELO_FBO, free_and_init, lang_currency_symbol(), LANG_SYS_CODESET, LANG_SYS_COLLATION, valcnv_buffer::length, db_elo::locator, NO_ERROR, NULL, numeric_db_value_print(), OR_MOVE_DOUBLE, p, db_identifier::pageid, db_identifier::slotid, strlen, db_timestamptz::timestamp, db_monetary::type, db_elo::type, tz_create_session_tzid_for_datetime(), tz_create_session_tzid_for_timestamp(), db_timestamptz::tz_id, db_datetimetz::tz_id, valcnv_append_bytes(), valcnv_append_string(), valcnv_convert_bit_to_string(), valcnv_convert_double_to_string(), valcnv_convert_float_to_string(), valcnv_convert_money_to_string(), valcnv_convert_set_to_string(), VALCNV_TOO_BIG_TO_MATTER, and db_identifier::volid.

Referenced by valcnv_convert_db_value_to_string().

Here is the caller graph for this function:

static VALCNV_BUFFER * valcnv_convert_db_value_to_string ( VALCNV_BUFFER buf,
const DB_VALUE value 
)
static
static VALCNV_BUFFER * valcnv_convert_double_to_string ( VALCNV_BUFFER buf,
const double  value 
)
static

Definition at line 4307 of file db_macro.c.

References valcnv_append_string().

Referenced by valcnv_convert_data_to_string().

Here is the caller graph for this function:

static VALCNV_BUFFER * valcnv_convert_float_to_string ( VALCNV_BUFFER buf,
const float  value 
)
static

Definition at line 4279 of file db_macro.c.

References valcnv_append_string().

Referenced by valcnv_convert_data_to_string().

Here is the caller graph for this function:

static VALCNV_BUFFER * valcnv_convert_money_to_string ( const double  value)
static

Definition at line 4450 of file db_macro.c.

References NULL, and valcnv_append_string().

Referenced by valcnv_convert_data_to_string().

Here is the caller graph for this function:

static VALCNV_BUFFER * valcnv_convert_set_to_string ( VALCNV_BUFFER buf,
DB_SET set 
)
static

Definition at line 4378 of file db_macro.c.

References err, i, NULL, pr_clear_value(), set_get_element(), set_size(), valcnv_append_string(), valcnv_convert_db_value_to_string(), and valcnv_Max_set_elements.

Referenced by valcnv_convert_data_to_string().

Here is the caller graph for this function:

Variable Documentation

int db_Row_count = DB_ROW_COUNT_NOT_SET

Definition at line 81 of file db_macro.c.

Referenced by db_get_row_count_cache(), and db_update_row_count_cache().

int valcnv_Max_set_elements = 10
static

Definition at line 83 of file db_macro.c.

Referenced by valcnv_convert_set_to_string().