CUBRID Engine  latest
object_domain.c File Reference
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#include <math.h>
#include <errno.h>
#include <assert.h>
#include "area_alloc.h"
#include "object_domain.h"
#include "object_primitive.h"
#include "object_representation.h"
#include "numeric_opfunc.h"
#include "tz_support.h"
#include "db_date.h"
#include "mprec.h"
#include "porting_inline.hpp"
#include "set_object.h"
#include "string_opfunc.h"
#include "chartype.h"
#include "db_json.hpp"
#include "work_space.h"
#include "virtual_object.h"
#include "schema_manager.h"
#include "locator_cl.h"
#include "object_template.h"
#include "dbi.h"
#include "dbtype.h"
#include "error_manager.h"

Go to the source code of this file.

Macros

#define ARE_COMPARABLE(typ1, typ2)
 
#define DBL_MAX_DIGITS   ((int)ceil(DBL_MAX_EXP * log10((double) FLT_RADIX)))
 
#define TP_NEAR_MATCH(t1, t2)
 
#define TP_NUM_MIDXKEY_DOMAIN_LIST   (10)
 
#define DB_DATETIMETZ_INITIALIZER   { {0, 0}, 0 }
 
#define DOMAIN_INIT
 
#define DOMAIN_INIT2(codeset, coll)
 
#define DOMAIN_INIT3
 
#define DOMAIN_INIT4(prec, scale)
 
#define BITS_IN_BYTE   8
 
#define HEX_IN_BYTE   2
 
#define BITS_IN_HEX   4
 
#define BYTE_COUNT(bit_cnt)   (((bit_cnt)+BITS_IN_BYTE-1)/BITS_IN_BYTE)
 
#define BYTE_COUNT_HEX(bit_cnt)   (((bit_cnt)+BITS_IN_HEX-1)/BITS_IN_HEX)
 
#define ROUND(x)   ((x) > 0 ? ((x) + .5) : ((x) - .5))
 
#define SECONDS_IN_A_DAY   (long)(86400) /* 24L * 60L * 60L */
 
#define TP_IS_CHAR_STRING(db_val_type)
 
#define TP_IS_LOB(db_val_type)   (db_val_type == DB_TYPE_BLOB || db_val_type == DB_TYPE_CLOB)
 
#define TP_IS_DATETIME_TYPE(db_val_type)   TP_IS_DATE_OR_TIME_TYPE (db_val_type)
 
#define TP_IMPLICIT_COERCION_NOT_ALLOWED(src_type, dest_type)
 
#define HIGHEST_4BITS_OF_UBI   0xF000000000000000
 
#define HIGHEST_BIT_OF_UINT64   0x8000000000000000
 
#define HIGHEST_3BITS_OF_UBI   0xE000000000000000
 

Typedefs

typedef enum tp_coersion_mode TP_COERCION_MODE
 

Enumerations

enum  tp_coersion_mode { TP_EXPLICIT_COERCION = 0, TP_IMPLICIT_COERCION, TP_FORCE_COERCION }
 

Functions

static int tp_domain_size_internal (const TP_DOMAIN *domain)
 
static void tp_value_slam_domain (DB_VALUE *value, const DB_DOMAIN *domain)
 
static TP_DOMAINtp_is_domain_cached (TP_DOMAIN *dlist, TP_DOMAIN *transient, TP_MATCH exact, TP_DOMAIN **ins_pos)
 
static void tp_swizzle_oid (TP_DOMAIN *domain)
 
static int tp_domain_check_class (TP_DOMAIN *domain, int *change)
 
static const TP_DOMAINtp_domain_find_compatible (const TP_DOMAIN *src, const TP_DOMAIN *dest)
 
static int tp_atotime (const DB_VALUE *src, DB_TIME *temp)
 
static int tp_atodate (const DB_VALUE *src, DB_DATE *temp)
 
static int tp_atoutime (const DB_VALUE *src, DB_UTIME *temp)
 
static int tp_atotimestamptz (const DB_VALUE *src, DB_TIMESTAMPTZ *temp)
 
static int tp_atoudatetime (const DB_VALUE *src, DB_DATETIME *temp)
 
static int tp_atodatetimetz (const DB_VALUE *src, DB_DATETIMETZ *temp)
 
static int tp_atonumeric (const DB_VALUE *src, DB_VALUE *temp)
 
static int tp_atof (const DB_VALUE *src, double *num_value, DB_DATA_STATUS *data_stat)
 
static int tp_atobi (const DB_VALUE *src, DB_BIGINT *num_value, DB_DATA_STATUS *data_stat)
 
static char * tp_ltoa (DB_BIGINT value, char *string, int radix)
 
static void format_floating_point (char *new_string, char *rve, int ndigits, int decpt, int sign)
 
static void tp_ftoa (DB_VALUE const *src, DB_VALUE *result)
 
static void tp_dtoa (DB_VALUE const *src, DB_VALUE *result)
 
static int bfmt_print (int bfmt, const DB_VALUE *the_db_bit, char *string, int max_size)
 
static TP_DOMAIN_STATUS tp_value_cast_internal (const DB_VALUE *src, DB_VALUE *dest, const TP_DOMAIN *desired_domain, TP_COERCION_MODE coercion_mode, bool do_domain_select, bool preserve_domain)
 
static DB_VALUE_COMPARE_RESULT oidcmp (OID *oid1, OID *oid2)
 
static int tp_domain_match_internal (const TP_DOMAIN *dom1, const TP_DOMAIN *dom2, TP_MATCH exact, bool match_order)
 
static INLINE TP_DOMAIN ** tp_domain_get_list_ptr (DB_TYPE type, TP_DOMAIN *setdomain) __attribute__((ALWAYS_INLINE))
 
static INLINE TP_DOMAINtp_domain_get_list (DB_TYPE type, TP_DOMAIN *setdomain) __attribute__((ALWAYS_INLINE))
 
static int tp_enumeration_match (const DB_ENUMERATION *db_enum1, const DB_ENUMERATION *db_enum2)
 
static int tp_digit_number_str_to_bi (const char *start, const char *end, INTL_CODESET codeset, bool is_negative, DB_BIGINT *num_value, DB_DATA_STATUS *data_stat)
 
static int tp_hex_str_to_bi (const char *start, const char *end, INTL_CODESET codeset, bool is_negative, DB_BIGINT *num_value, DB_DATA_STATUS *data_stat)
 
static int tp_scientific_str_to_bi (const char *start, const char *end, INTL_CODESET codeset, bool is_negative, DB_BIGINT *num_value, DB_DATA_STATUS *data_stat)
 
static DB_BIGINT tp_ubi_to_bi_with_args (UINT64 ubi, bool is_negative, bool truncated, bool round, DB_DATA_STATUS *data_stat)
 
static UINT64 tp_ubi_times_ten (UINT64 ubi, bool *truncated)
 
int tp_init (void)
 
void tp_apply_sys_charset (void)
 
void tp_final (void)
 
void tp_domain_clear_enumeration (DB_ENUMERATION *enumeration)
 
int tp_get_fixed_precision (DB_TYPE domain_type)
 
void tp_domain_free (TP_DOMAIN *dom)
 
void tp_domain_init (TP_DOMAIN *domain, DB_TYPE type_id)
 
TP_DOMAINtp_domain_new (DB_TYPE type)
 
TP_DOMAINtp_domain_construct (DB_TYPE domain_type, DB_OBJECT *class_obj, int precision, int scale, TP_DOMAIN *setdomain)
 
int tp_domain_copy_enumeration (DB_ENUMERATION *dest, const DB_ENUMERATION *src)
 
TP_DOMAINtp_domain_copy (const TP_DOMAIN *domain, bool check_cache)
 
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)
 
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_mop, 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_cache (TP_DOMAIN *transient)
 
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)
 
TP_DOMAINtp_domain_resolve_value (const DB_VALUE *val, TP_DOMAIN *dbuf)
 
int tp_domain_add (TP_DOMAIN **dlist, TP_DOMAIN *domain)
 
int tp_domain_attach (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_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_compatible (const TP_DOMAIN *src, const TP_DOMAIN *dest)
 
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)
 
int tp_can_steal_string (const DB_VALUE *val, const DB_DOMAIN *desired_domain)
 
int tp_enumeration_to_varchar (const DB_VALUE *src, DB_VALUE *result)
 
int tp_value_string_to_double (const DB_VALUE *value, DB_VALUE *result)
 
static void make_desired_string_db_value (DB_TYPE desired_type, const TP_DOMAIN *desired_domain, const char *new_string, DB_VALUE *target, TP_DOMAIN_STATUS *status, DB_DATA_STATUS *data_stat)
 
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_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 do_coercion, int total_order)
 
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 do_coercion, int total_order, bool *can_compare)
 
int tp_value_equal (const DB_VALUE *value1, const DB_VALUE *value2, int do_coercion)
 
int tp_domain_disk_size (TP_DOMAIN *domain)
 
int tp_domain_memory_size (TP_DOMAIN *domain)
 
void tp_init_value_domain (TP_DOMAIN *domain, DB_VALUE *value)
 
TP_DOMAIN_STATUS tp_check_value_size (TP_DOMAIN *domain, DB_VALUE *value)
 
int tp_valid_indextype (DB_TYPE type)
 
bool tp_domain_references_objects (const TP_DOMAIN *dom)
 
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_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

static const DB_TYPE db_type_rank []
 
AREAtp_Domain_area = NULL
 
static bool tp_Initialized = false
 
unsigned int db_on_server
 
TP_DOMAIN tp_Null_domain = { NULL, NULL, &tp_Null, DOMAIN_INIT }
 
TP_DOMAIN tp_Short_domain = { NULL, NULL, &tp_Short, DOMAIN_INIT4 (DB_SHORT_PRECISION, 0) }
 
TP_DOMAIN tp_Integer_domain = { NULL, NULL, &tp_Integer, DOMAIN_INIT4 (DB_INTEGER_PRECISION, 0) }
 
TP_DOMAIN tp_Bigint_domain = { NULL, NULL, &tp_Bigint, DOMAIN_INIT4 (DB_BIGINT_PRECISION, 0) }
 
TP_DOMAIN tp_Float_domain = { NULL, NULL, &tp_Float, DOMAIN_INIT4 (DB_FLOAT_DECIMAL_PRECISION, 0) }
 
TP_DOMAIN tp_Double_domain = { NULL, NULL, &tp_Double, DOMAIN_INIT4 (DB_DOUBLE_DECIMAL_PRECISION, 0) }
 
TP_DOMAIN tp_Monetary_domain = { NULL, NULL, &tp_Monetary, DOMAIN_INIT4 (DB_MONETARY_DECIMAL_PRECISION, 0) }
 
TP_DOMAIN tp_String_domain
 
TP_DOMAIN tp_Object_domain = { NULL, NULL, &tp_Object, DOMAIN_INIT3 }
 
TP_DOMAIN tp_Set_domain = { NULL, NULL, &tp_Set, DOMAIN_INIT3 }
 
TP_DOMAIN tp_Multiset_domain = { NULL, NULL, &tp_Multiset, DOMAIN_INIT3 }
 
TP_DOMAIN tp_Sequence_domain = { NULL, NULL, &tp_Sequence, DOMAIN_INIT3 }
 
TP_DOMAIN tp_Midxkey_domain_list_heads [TP_NUM_MIDXKEY_DOMAIN_LIST]
 
TP_DOMAIN tp_Elo_domain = { NULL, NULL, &tp_Elo, DOMAIN_INIT }
 
TP_DOMAIN tp_Blob_domain = { NULL, NULL, &tp_Blob, DOMAIN_INIT }
 
TP_DOMAIN tp_Clob_domain = { NULL, NULL, &tp_Clob, DOMAIN_INIT }
 
TP_DOMAIN tp_Time_domain = { NULL, NULL, &tp_Time, DOMAIN_INIT4 (DB_TIME_PRECISION, 0) }
 
TP_DOMAIN tp_Utime_domain = { NULL, NULL, &tp_Utime, DOMAIN_INIT4 (DB_TIMESTAMP_PRECISION, 0) }
 
TP_DOMAIN tp_Timestamptz_domain = { NULL, NULL, &tp_Timestamptz, DOMAIN_INIT4 (DB_TIMESTAMPTZ_PRECISION, 0) }
 
TP_DOMAIN tp_Timestampltz_domain = { NULL, NULL, &tp_Timestampltz, DOMAIN_INIT4 (DB_TIMESTAMP_PRECISION, 0) }
 
TP_DOMAIN tp_Date_domain = { NULL, NULL, &tp_Date, DOMAIN_INIT4 (DB_DATE_PRECISION, 0) }
 
TP_DOMAIN tp_Datetime_domain
 
TP_DOMAIN tp_Datetimetz_domain
 
TP_DOMAIN tp_Datetimeltz_domain
 
TP_DOMAIN tp_Variable_domain = { NULL, NULL, &tp_Variable, DOMAIN_INIT3 }
 
TP_DOMAIN tp_Substructure_domain = { NULL, NULL, &tp_Substructure, DOMAIN_INIT3 }
 
TP_DOMAIN tp_Pointer_domain = { NULL, NULL, &tp_Pointer, DOMAIN_INIT }
 
TP_DOMAIN tp_Error_domain = { NULL, NULL, &tp_Error, DOMAIN_INIT }
 
TP_DOMAIN tp_Vobj_domain = { NULL, NULL, &tp_Vobj, DOMAIN_INIT3 }
 
TP_DOMAIN tp_Oid_domain = { NULL, NULL, &tp_Oid, DOMAIN_INIT3 }
 
TP_DOMAIN tp_Enumeration_domain
 
TP_DOMAIN tp_Numeric_domain
 
TP_DOMAIN tp_Bit_domain
 
TP_DOMAIN tp_VarBit_domain
 
TP_DOMAIN tp_Char_domain
 
TP_DOMAIN tp_NChar_domain
 
TP_DOMAIN tp_VarNChar_domain
 
TP_DOMAIN tp_Json_domain
 
static TP_DOMAINtp_Domains []
 
static TP_DOMAINtp_Midxkey_domains [TP_NUM_MIDXKEY_DOMAIN_LIST+1]
 
static TP_DOMAINtp_Bigint_conv []
 
static TP_DOMAINtp_Integer_conv []
 
static TP_DOMAINtp_Short_conv []
 
static TP_DOMAINtp_Float_conv []
 
static TP_DOMAINtp_Double_conv []
 
static TP_DOMAINtp_Numeric_conv []
 
static TP_DOMAINtp_Monetary_conv []
 
static TP_DOMAINtp_String_conv []
 
static TP_DOMAINtp_Char_conv []
 
static TP_DOMAINtp_NChar_conv []
 
static TP_DOMAINtp_VarNChar_conv []
 
static TP_DOMAINtp_Bit_conv []
 
static TP_DOMAINtp_VarBit_conv []
 
static TP_DOMAINtp_Set_conv []
 
static TP_DOMAINtp_Multiset_conv []
 
static TP_DOMAINtp_Sequence_conv []
 
TP_DOMAIN ** tp_Domain_conversion_matrix []
 

Macro Definition Documentation

#define ARE_COMPARABLE (   typ1,
  typ2 
)
Value:
((typ1 == typ2) || \
(QSTR_IS_CHAR(typ1) && QSTR_IS_CHAR(typ2)) || \
#define QSTR_IS_CHAR(s)
Definition: string_opfunc.h:40
#define QSTR_IS_NATIONAL_CHAR(s)
Definition: string_opfunc.h:42

Definition at line 74 of file object_domain.c.

Referenced by tp_value_compare_with_error().

#define BITS_IN_BYTE   8

Definition at line 5600 of file object_domain.c.

#define BITS_IN_HEX   4

Definition at line 5602 of file object_domain.c.

Referenced by bfmt_print().

#define BYTE_COUNT (   bit_cnt)    (((bit_cnt)+BITS_IN_BYTE-1)/BITS_IN_BYTE)

Definition at line 5604 of file object_domain.c.

Referenced by bfmt_print().

#define BYTE_COUNT_HEX (   bit_cnt)    (((bit_cnt)+BITS_IN_HEX-1)/BITS_IN_HEX)

Definition at line 5605 of file object_domain.c.

Referenced by bfmt_print().

#define DB_DATETIMETZ_INITIALIZER   { {0, 0}, 0 }

Definition at line 92 of file object_domain.c.

Referenced by tp_value_coerce_strict().

#define DBL_MAX_DIGITS   ((int)ceil(DBL_MAX_EXP * log10((double) FLT_RADIX)))

Definition at line 79 of file object_domain.c.

Referenced by tp_value_cast_internal().

#define DOMAIN_INIT
Value:
0, /* precision */ \
0, /* scale */ \
NULL, /* class */ \
NULL, /* set domain */ \
{NULL, 0, 0}, /* enumeration */ \
{-1, -1, -1}, /* class OID */ \
1, /* built_in_index (set in tp_init) */ \
0, /* codeset */ \
0, /* collation id */ \
TP_DOMAIN_COLL_NORMAL, /* collation flag */ \
0, /* self_ref */ \
1, /* is_cached */ \
0, /* is_parameterized */ \
false, /* is_desc */ \
0, /* is_visited */ \
NULL /* json_validator */ \
#define NULL
Definition: freelistheap.h:34

Definition at line 157 of file object_domain.c.

#define DOMAIN_INIT2 (   codeset,
  coll 
)
Value:
NULL, /* class */ \
NULL, /* set domain */ \
{NULL, 0, 0}, /* enumeration */ \
{-1, -1, -1}, /* class OID */ \
1, /* built_in_index (set in tp_init) */ \
(codeset), /* codeset */ \
(coll), /* collation id */ \
TP_DOMAIN_COLL_NORMAL, /* collation flag */ \
0, /* self_ref */ \
1, /* is_cached */ \
1, /* is_parameterized */ \
false, /* is_desc */ \
0, /* is_visited */ \
NULL /* json_validator */ \
/*
* Same as DOMAIN_INIT but it sets the is_parameterized flag.
* Used for things that don't have a precision but which are parameterized in
* other ways.
*/
#define NULL
Definition: freelistheap.h:34

Definition at line 176 of file object_domain.c.

#define DOMAIN_INIT3
Value:
0, /* precision */ \
0, /* scale */ \
NULL, /* class */ \
NULL, /* set domain */ \
{NULL, 0, 0}, /* enumeration */ \
{-1, -1, -1}, /* class OID */ \
1, /* built_in_index (set in tp_init) */ \
0, /* codeset */ \
0, /* collation id */ \
TP_DOMAIN_COLL_NORMAL, /* collation flag */ \
0, /* self_ref */ \
1, /* is_cached */ \
1, /* is_parameterized */ \
false, /* is_desc */ \
0, /* is_visited */ \
NULL /* json_validator */ \
#define NULL
Definition: freelistheap.h:34

Definition at line 196 of file object_domain.c.

#define DOMAIN_INIT4 (   prec,
  scale 
)
Value:
(prec), /* precision */ \
(scale), /* scale */ \
NULL, /* class */ \
NULL, /* set domain */ \
{NULL, 0, 0}, /* enumeration */ \
{-1, -1, -1}, /* class OID */ \
1, /* built_in_index (set in tp_init) */ \
0, /* codeset */ \
0, /* collation id */ \
TP_DOMAIN_COLL_NORMAL, /* collation flag */ \
0, /* self_ref */ \
1, /* is_cached */ \
0, /* is_parameterized */ \
false, /* is_desc */ \
0, /* is_visited */ \
NULL /* json_validator */ \
#define NULL
Definition: freelistheap.h:34

Definition at line 215 of file object_domain.c.

#define HEX_IN_BYTE   2

Definition at line 5601 of file object_domain.c.

#define HIGHEST_3BITS_OF_UBI   0xE000000000000000

Referenced by tp_ubi_times_ten().

#define HIGHEST_4BITS_OF_UBI   0xF000000000000000

Referenced by tp_hex_str_to_bi().

#define HIGHEST_BIT_OF_UINT64   0x8000000000000000

Referenced by tp_ubi_to_bi_with_args().

#define ROUND (   x)    ((x) > 0 ? ((x) + .5) : ((x) - .5))

Definition at line 5686 of file object_domain.c.

Referenced by tp_value_cast_internal().

#define SECONDS_IN_A_DAY   (long)(86400) /* 24L * 60L * 60L */

Definition at line 5687 of file object_domain.c.

Referenced by tp_value_cast_internal().

#define TP_IMPLICIT_COERCION_NOT_ALLOWED (   src_type,
  dest_type 
)
Value:
((TP_IS_CHAR_STRING(src_type) && !(TP_IS_CHAR_STRING(dest_type) || \
TP_IS_DATETIME_TYPE(dest_type) || \
TP_IS_NUMERIC_TYPE(dest_type) || \
dest_type == DB_TYPE_ENUMERATION)) ||\
(!TP_IS_CHAR_STRING(src_type) && src_type != DB_TYPE_ENUMERATION && \
TP_IS_CHAR_STRING(dest_type)) || \
(TP_IS_LOB(src_type) || TP_IS_LOB(dest_type)))
#define TP_IS_DATETIME_TYPE(db_val_type)
#define TP_IS_NUMERIC_TYPE(typeid)
#define TP_IS_LOB(db_val_type)
#define TP_IS_CHAR_STRING(db_val_type)

Definition at line 5697 of file object_domain.c.

Referenced by tp_value_cast_internal().

#define TP_IS_CHAR_STRING (   db_val_type)
Value:
(db_val_type == DB_TYPE_CHAR || db_val_type == DB_TYPE_VARCHAR || \
db_val_type == DB_TYPE_NCHAR || db_val_type == DB_TYPE_VARNCHAR)

Definition at line 5688 of file object_domain.c.

Referenced by tp_value_string_to_double().

#define TP_IS_DATETIME_TYPE (   db_val_type)    TP_IS_DATE_OR_TIME_TYPE (db_val_type)

Definition at line 5695 of file object_domain.c.

Referenced by tp_value_coerce_strict().

#define TP_IS_LOB (   db_val_type)    (db_val_type == DB_TYPE_BLOB || db_val_type == DB_TYPE_CLOB)

Definition at line 5692 of file object_domain.c.

#define TP_NEAR_MATCH (   t1,
  t2 
)
Value:
(((t1) == (t2)) || \
((t1) == DB_TYPE_CHAR && (t2) == DB_TYPE_VARCHAR) || \
((t1) == DB_TYPE_VARCHAR && (t2) == DB_TYPE_CHAR) || \
((t1) == DB_TYPE_NCHAR && (t2) == DB_TYPE_VARNCHAR) || \
((t1) == DB_TYPE_VARNCHAR && (t2) == DB_TYPE_VARCHAR) || \
((t1) == DB_TYPE_BIT && (t2) == DB_TYPE_VARBIT) || \
((t1) == DB_TYPE_VARBIT && (t2) == DB_TYPE_BIT))

Definition at line 81 of file object_domain.c.

Referenced by tp_domain_match_internal(), and tp_is_domain_cached().

#define TP_NUM_MIDXKEY_DOMAIN_LIST   (10)

Definition at line 90 of file object_domain.c.

Referenced by tp_domain_get_list_ptr().

Typedef Documentation

Enumeration Type Documentation

Enumerator
TP_EXPLICIT_COERCION 
TP_IMPLICIT_COERCION 
TP_FORCE_COERCION 

Definition at line 94 of file object_domain.c.

Function Documentation

static int bfmt_print ( int  bfmt,
const DB_VALUE the_db_bit,
char *  string,
int  max_size 
)
static

Definition at line 5617 of file object_domain.c.

References BITS_IN_HEX, BYTE_COUNT, BYTE_COUNT_HEX, db_get_bit(), error(), and NO_ERROR.

Referenced by tp_value_cast_internal().

Here is the caller graph for this function:

static void format_floating_point ( char *  new_string,
char *  rve,
int  ndigits,
int  decpt,
int  sign 
)
static

Definition at line 5290 of file object_domain.c.

References assert, and p.

Referenced by tp_dtoa(), and tp_ftoa().

Here is the caller graph for this function:

static DB_VALUE_COMPARE_RESULT oidcmp ( OID oid1,
OID oid2 
)
static

Definition at line 10317 of file object_domain.c.

References DB_EQ, DB_GT, DB_LT, and oid_compare().

Referenced by tp_value_compare_with_error().

Here is the caller graph for this function:

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:

static int tp_atobi ( const DB_VALUE src,
DB_BIGINT num_value,
DB_DATA_STATUS data_stat 
)
static
static int tp_atodate ( const DB_VALUE src,
DB_DATE temp 
)
static

Definition at line 4728 of file object_domain.c.

References db_date_parse_date(), db_get_string(), db_get_string_size(), ER_FAILED, and NO_ERROR.

Referenced by tp_value_cast_internal(), and tp_value_coerce_strict().

Here is the caller graph for this function:

static int tp_atodatetimetz ( const DB_VALUE src,
DB_DATETIMETZ temp 
)
static

Definition at line 4825 of file object_domain.c.

References db_get_string(), db_get_string_size(), db_string_to_datetimetz_ex(), ER_FAILED, and NO_ERROR.

Referenced by tp_value_cast_internal(), and tp_value_coerce_strict().

Here is the caller graph for this function:

static int tp_atonumeric ( const DB_VALUE src,
DB_VALUE temp 
)
static

Definition at line 4850 of file object_domain.c.

References db_get_string(), db_get_string_codeset(), db_get_string_size(), ER_FAILED, NO_ERROR, NULL, and numeric_coerce_string_to_num().

Referenced by tp_value_cast_internal(), and tp_value_coerce_strict().

Here is the caller graph for this function:

static int tp_atotime ( const DB_VALUE src,
DB_TIME temp 
)
static

Definition at line 4703 of file object_domain.c.

References db_date_parse_time(), db_get_string(), db_get_string_size(), ER_FAILED, and NO_ERROR.

Referenced by tp_value_cast_internal(), and tp_value_coerce_strict().

Here is the caller graph for this function:

static int tp_atotimestamptz ( const DB_VALUE src,
DB_TIMESTAMPTZ temp 
)
static

Definition at line 4776 of file object_domain.c.

References db_get_string(), db_get_string_size(), db_string_to_timestamptz_ex(), ER_FAILED, and NO_ERROR.

Referenced by tp_value_cast_internal(), and tp_value_coerce_strict().

Here is the caller graph for this function:

static int tp_atoudatetime ( const DB_VALUE src,
DB_DATETIME temp 
)
static

Definition at line 4801 of file object_domain.c.

References db_date_parse_datetime(), db_get_string(), db_get_string_size(), ER_FAILED, and NO_ERROR.

Referenced by tp_value_cast_internal(), and tp_value_coerce_strict().

Here is the caller graph for this function:

static int tp_atoutime ( const DB_VALUE src,
DB_UTIME temp 
)
static

Definition at line 4752 of file object_domain.c.

References db_date_parse_utime, db_get_string(), db_get_string_size(), ER_FAILED, and NO_ERROR.

Referenced by tp_value_cast_internal(), and tp_value_coerce_strict().

Here is the caller graph for this function:

int tp_digit_number_str_to_bi ( const char *  start,
const char *  end,
INTL_CODESET  codeset,
bool  is_negative,
DB_BIGINT num_value,
DB_DATA_STATUS data_stat 
)
static

Definition at line 11699 of file object_domain.c.

References assert, char_isdigit(), DATA_STATUS_OK, DATA_STATUS_TRUNCATED, DB_BIGINT_MAX, DB_BIGINT_MIN, ER_FAILED, intl_skip_spaces(), NO_ERROR, NULL, and p.

Referenced by tp_atobi().

Here is the caller graph for this function:

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 transient)
static int tp_domain_check_class ( TP_DOMAIN domain,
int *  change 
)
static
void tp_domain_clear_enumeration ( DB_ENUMERATION enumeration)
int tp_domain_compatible ( const TP_DOMAIN src,
const TP_DOMAIN dest 
)

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 
)
static const TP_DOMAIN * tp_domain_find_compatible ( const TP_DOMAIN src,
const TP_DOMAIN dest 
)
static
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_mop,
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 
)
STATIC_INLINE TP_DOMAIN * tp_domain_get_list ( DB_TYPE  type,
TP_DOMAIN setdomain 
)
static
STATIC_INLINE TP_DOMAIN ** tp_domain_get_list_ptr ( DB_TYPE  type,
TP_DOMAIN setdomain 
)
static

Definition at line 1875 of file object_domain.c.

References DB_TYPE_MIDXKEY, STATIC_INLINE, tp_domain_size(), and TP_NUM_MIDXKEY_DOMAIN_LIST.

Referenced by tp_domain_cache(), and tp_domain_get_list().

Here is the caller graph for this function:

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:

static int tp_domain_match_internal ( const TP_DOMAIN dom1,
const TP_DOMAIN dom2,
TP_MATCH  exact,
bool  match_order 
)
static
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:

static int tp_domain_size_internal ( const TP_DOMAIN domain)
static

Definition at line 1363 of file object_domain.c.

References tp_domain::next.

Referenced by tp_domain_size(), and tp_setdomain_size().

Here is the caller graph for this function:

static int tp_enumeration_match ( const DB_ENUMERATION db_enum1,
const DB_ENUMERATION db_enum2 
)
static
int tp_enumeration_to_varchar ( const DB_VALUE src,
DB_VALUE result 
)
int tp_hex_str_to_bi ( const char *  start,
const char *  end,
INTL_CODESET  codeset,
bool  is_negative,
DB_BIGINT num_value,
DB_DATA_STATUS data_stat 
)
static

Definition at line 11849 of file object_domain.c.

References assert, char_isdigit(), char_isxdigit(), DATA_STATUS_OK, ER_FAILED, error(), HIGHEST_4BITS_OF_UBI, intl_skip_spaces(), NO_ERROR, NULL, p, and tp_ubi_to_bi_with_args().

Referenced by tp_atobi().

Here is the caller graph for this function:

void tp_init_value_domain ( TP_DOMAIN domain,
DB_VALUE value 
)
static TP_DOMAIN * tp_is_domain_cached ( TP_DOMAIN dlist,
TP_DOMAIN transient,
TP_MATCH  exact,
TP_DOMAIN **  ins_pos 
)
static
static char * tp_ltoa ( DB_BIGINT  value,
char *  string,
int  radix 
)
static

Definition at line 5209 of file object_domain.c.

References ARG_FILE_LINE, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), i, and NULL.

Referenced by tp_value_cast_internal().

Here is the caller graph for this function:

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:

int tp_scientific_str_to_bi ( const char *  start,
const char *  end,
INTL_CODESET  codeset,
bool  is_negative,
DB_BIGINT num_value,
DB_DATA_STATUS data_stat 
)
static

Definition at line 11974 of file object_domain.c.

References assert, char_isdigit(), DATA_STATUS_OK, ER_FAILED, error(), NO_ERROR, NULL, p, tp_ubi_times_ten(), and tp_ubi_to_bi_with_args().

Referenced by tp_atobi().

Here is the caller graph for this function:

DB_VALUE_COMPARE_RESULT tp_set_compare ( const DB_VALUE value1,
const DB_VALUE value2,
int  do_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:

static void tp_swizzle_oid ( TP_DOMAIN domain)
static
UINT64 tp_ubi_times_ten ( UINT64  ubi,
bool truncated 
)
static

Definition at line 12301 of file object_domain.c.

References assert, HIGHEST_3BITS_OF_UBI, and NULL.

Referenced by tp_scientific_str_to_bi().

Here is the caller graph for this function:

DB_BIGINT tp_ubi_to_bi_with_args ( UINT64  ubi,
bool  is_negative,
bool  truncated,
bool  round,
DB_DATA_STATUS data_stat 
)
static

Definition at line 12209 of file object_domain.c.

References assert, DATA_STATUS_TRUNCATED, DB_BIGINT_MAX, DB_BIGINT_MIN, HIGHEST_BIT_OF_UINT64, and NULL.

Referenced by tp_hex_str_to_bi(), and tp_scientific_str_to_bi().

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:

static TP_DOMAIN_STATUS tp_value_cast_internal ( const DB_VALUE src,
DB_VALUE dest,
const TP_DOMAIN desired_domain,
TP_COERCION_MODE  coercion_mode,
bool  do_domain_select,
bool  preserve_domain 
)
static

Definition at line 7073 of file object_domain.c.

References db_monetary::amount, assert, ASSERT_ERROR, bfmt_print(), tp_domain::class_mop, tp_domain::codeset, tp_domain::collation_flag, tp_domain::collation_id, db_value::data, DATA_STATUS_NOT_CONSUMED, DATA_STATUS_OK, DATA_STATUS_TRUNCATED, db_datetime::date, db_datetimetz::datetime, DATETIMETZ_BUF_SIZE, DB_BIGINT_MAX, DB_BIGINT_MIN, db_bit_string_coerce(), db_bit_to_blob(), db_blob_to_bit(), db_char_string_coerce(), db_char_to_blob(), db_char_to_clob(), db_clob_to_char(), DB_CURRENCY_DEFAULT, db_date_decode(), db_date_to_string(), db_datetime_decode(), db_datetime_to_string(), db_datetimetz_to_string(), db_get_bigint(), db_get_class(), db_get_date(), db_get_datetime(), db_get_datetimetz(), db_get_double(), db_get_enum_codeset(), db_get_enum_collation(), DB_GET_ENUM_ELEM_STRING, DB_GET_ENUM_ELEM_STRING_SIZE, db_get_enum_short(), db_get_enum_string(), db_get_enum_string_size(), db_get_float(), db_get_int(), db_get_json_document(), db_get_monetary(), db_get_object(), db_get_pointer(), db_get_set(), db_get_short(), db_get_string(), db_get_string_codeset(), db_get_string_collation(), db_get_string_length(), db_get_string_size(), db_get_time(), db_get_timestamp(), db_get_timestamptz(), DB_INT32_MAX, DB_INT32_MIN, DB_IS_NULL, db_is_subclass(), db_is_vclass(), db_json_allocate_doc(), db_json_copy_and_convert_to_utf8(), db_json_delete_doc(), db_json_get_bigint_from_document(), db_json_get_bool_as_str_from_document(), db_json_get_bool_from_document(), db_json_get_double_from_document(), db_json_get_int_from_document(), db_json_get_json_from_str(), db_json_get_raw_json_body_from_document(), db_json_get_string_from_document(), db_json_get_type(), db_json_set_bigint_to_doc(), db_json_set_double_to_doc(), db_json_set_int_to_doc(), db_json_validate_doc(), db_make_bigint(), db_make_bit(), db_make_date(), db_make_datetime(), db_make_datetimeltz(), db_make_datetimetz(), db_make_double(), db_make_enumeration(), db_make_float(), db_make_int(), db_make_json(), db_make_monetary(), db_make_multiset(), db_make_null(), db_make_object(), db_make_oid(), db_make_pointer(), db_make_sequence(), db_make_set(), db_make_short(), db_make_string(), db_make_string_copy(), db_make_time(), db_make_timestamp(), db_make_timestampltz(), db_make_timestamptz(), db_make_varchar(), DB_MAX_STRING_LENGTH, db_private_alloc, db_private_free_and_init, db_real_instance(), db_seq_create(), db_seq_put(), db_string_put_cs_and_collation(), db_time_decode(), db_time_encode(), db_time_to_string(), db_timestamp_decode_ses(), db_timestamp_decode_utc(), db_timestamp_decode_w_tz_id(), db_timestamp_encode_ses(), db_timestamp_encode_utc(), 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_JSON, 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_SMALLINT, DB_TYPE_STRING, DB_TYPE_TIME, DB_TYPE_TIMESTAMP, DB_TYPE_TIMESTAMPLTZ, DB_TYPE_TIMESTAMPTZ, db_type_to_db_domain(), DB_TYPE_VARBIT, DB_TYPE_VARCHAR, DB_TYPE_VARNCHAR, DB_TYPE_VOBJ, db_value_alter_type(), db_value_clone(), db_value_coerce(), db_value_domain_init(), DB_VALUE_PRECISION, db_value_precision(), db_value_put_encoded_time(), db_value_put_null(), DB_VALUE_SCALE, DB_VALUE_TYPE, DBL_MAX_DIGITS, db_json::document, DOM_GET_ENUM_ELEM, DOM_GET_ENUM_ELEMS_COUNT, db_value::domain, DOMAIN_COMPATIBLE, DOMAIN_ERROR, DOMAIN_INCOMPATIBLE, DOMAIN_OVERFLOW, er_errid(), ER_IT_DATA_OVERFLOW, ER_OUT_OF_VIRTUAL_MEMORY, err, db_domain_info::general_info, i, pr_type::id, INTL_CODESET_RAW_BYTES, db_domain_info::general_info::is_null, tp_domain::is_parameterized, db_data::json, tp_domain::json_validator, lang_currency_symbol(), make_desired_string_db_value(), db_value::need_clear, tp_domain::next, NO_ERROR, NULL, numeric_db_value_coerce_from_num(), numeric_db_value_coerce_to_num(), numeric_db_value_print(), NUMERIC_MAX_STRING_SIZE, OID_SET_NULL, OR_CHECK_ASSIGN_OVERFLOW, OR_CHECK_BIGINT_OVERFLOW, OR_CHECK_FLOAT_OVERFLOW, OR_CHECK_INT_OVERFLOW, OR_CHECK_SHORT_OVERFLOW, OR_CHECK_USHRT_OVERFLOW, p, pr_clear_value(), pr_clone_value(), tp_domain::precision, prm_get_bool_value(), PRM_ID_ALLOW_TRUNCATED_STRING, PRM_ID_IGNORE_TRAILING_SPACE, QSTR_COMPARE, qstr_hex_to_bin(), ROUND, tp_domain::scale, SECONDS_IN_A_DAY, db_set::set, set_coerce(), set_copy(), tp_domain::setdomain, setobj_domain(), setobj_put_domain(), sm_check_class_domain(), sm_coerce_object_domain(), strlen, db_datetime::time, db_timestamptz::timestamp, TP_ANY_MATCH, tp_atobi(), tp_atodate(), tp_atodatetimetz(), tp_atof(), tp_atonumeric(), tp_atotime(), tp_atotimestamptz(), tp_atoudatetime(), tp_atoutime(), TP_BIGINT_PRECISION, tp_can_steal_string(), tp_domain_add(), TP_DOMAIN_CODESET, TP_DOMAIN_COLL_ENFORCE, TP_DOMAIN_COLL_LEAVE, TP_DOMAIN_COLL_NORMAL, TP_DOMAIN_COLLATION, tp_domain_compatible(), tp_domain_copy(), tp_domain_resolve_default(), tp_domain_resolve_value(), tp_domain_select(), TP_DOMAIN_TYPE, tp_dtoa(), tp_enumeration_to_varchar(), TP_FLOATING_PRECISION_VALUE, TP_FORCE_COERCION, tp_ftoa(), TP_IMPLICIT_COERCION, TP_IMPLICIT_COERCION_NOT_ALLOWED, TP_IS_CHAR_TYPE, TP_IS_SET_TYPE, tp_ltoa(), tp_value_coerce(), tp_value_slam_domain(), tp_domain::type, tz_create_datetimetz_from_ses(), tz_create_session_tzid_for_datetime(), tz_create_session_tzid_for_timestamp(), tz_datetimeltz_to_local(), db_timestamptz::tz_id, db_datetimetz::tz_id, tz_utc_datetimetz_to_local(), vid_object_to_vobj(), vid_oid_to_object(), and vid_vobj_to_object().

Referenced by tp_value_cast(), tp_value_cast_force(), tp_value_cast_no_domain_select(), and tp_value_cast_preserve_domain().

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  do_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

unsigned int db_on_server

Definition at line 91 of file network_interface_cl.c.

Referenced by tp_domain_check_class(), and tp_domain_select().

const DB_TYPE db_type_rank[]
static

Definition at line 108 of file object_domain.c.

Referenced by tp_more_general_type().

TP_DOMAIN* tp_Bigint_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_Short_domain
TP_DOMAIN tp_Integer_domain
TP_DOMAIN tp_Double_domain
TP_DOMAIN tp_Bigint_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Float_domain
TP_DOMAIN tp_Numeric_domain
TP_DOMAIN tp_Monetary_domain

Definition at line 410 of file object_domain.c.

TP_DOMAIN tp_Bigint_domain = { NULL, NULL, &tp_Bigint, DOMAIN_INIT4 (DB_BIGINT_PRECISION, 0) }

Definition at line 236 of file object_domain.c.

TP_DOMAIN* tp_Bit_conv[]
static
Initial value:
= {
}
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Bit_domain
TP_DOMAIN tp_VarBit_domain

Definition at line 480 of file object_domain.c.

TP_DOMAIN tp_Blob_domain = { NULL, NULL, &tp_Blob, DOMAIN_INIT }

Definition at line 266 of file object_domain.c.

TP_DOMAIN* tp_Char_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_String_domain
TP_DOMAIN tp_Timestamptz_domain
TP_DOMAIN tp_Utime_domain
TP_DOMAIN tp_VarNChar_domain
TP_DOMAIN tp_Datetime_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Date_domain
TP_DOMAIN tp_Char_domain
TP_DOMAIN tp_Datetimetz_domain
TP_DOMAIN tp_NChar_domain

Definition at line 459 of file object_domain.c.

TP_DOMAIN tp_Char_domain
Initial value:

Definition at line 310 of file object_domain.c.

TP_DOMAIN tp_Clob_domain = { NULL, NULL, &tp_Clob, DOMAIN_INIT }

Definition at line 267 of file object_domain.c.

TP_DOMAIN tp_Date_domain = { NULL, NULL, &tp_Date, DOMAIN_INIT4 (DB_DATE_PRECISION, 0) }

Definition at line 272 of file object_domain.c.

Referenced by round_date().

TP_DOMAIN tp_Datetime_domain
Initial value:
}
PR_TYPE tp_Datetime
#define DB_DATETIME_DECIMAL_SCALE
Definition: dbtype_def.h:616
#define DB_DATETIME_PRECISION
Definition: dbtype_def.h:610
#define DOMAIN_INIT4(prec, scale)
#define NULL
Definition: freelistheap.h:34

Definition at line 274 of file object_domain.c.

TP_DOMAIN tp_Datetimeltz_domain
Initial value:
}
PR_TYPE tp_Datetimeltz
#define DB_DATETIME_DECIMAL_SCALE
Definition: dbtype_def.h:616
#define DB_DATETIME_PRECISION
Definition: dbtype_def.h:610
#define DOMAIN_INIT4(prec, scale)
#define NULL
Definition: freelistheap.h:34

Definition at line 282 of file object_domain.c.

TP_DOMAIN tp_Datetimetz_domain
Initial value:
}
#define DB_DATETIMETZ_PRECISION
Definition: dbtype_def.h:613
#define DB_DATETIME_DECIMAL_SCALE
Definition: dbtype_def.h:616
#define DOMAIN_INIT4(prec, scale)
#define NULL
Definition: freelistheap.h:34
PR_TYPE tp_Datetimetz

Definition at line 278 of file object_domain.c.

AREA* tp_Domain_area = NULL

Definition at line 147 of file object_domain.c.

TP_DOMAIN** tp_Domain_conversion_matrix[]

Definition at line 506 of file object_domain.c.

TP_DOMAIN* tp_Domains[]
static

Definition at line 327 of file object_domain.c.

TP_DOMAIN* tp_Double_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_Short_domain
TP_DOMAIN tp_Integer_domain
TP_DOMAIN tp_Double_domain
TP_DOMAIN tp_Bigint_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Float_domain
TP_DOMAIN tp_Numeric_domain
TP_DOMAIN tp_Monetary_domain

Definition at line 434 of file object_domain.c.

TP_DOMAIN tp_Elo_domain = { NULL, NULL, &tp_Elo, DOMAIN_INIT }

Definition at line 265 of file object_domain.c.

TP_DOMAIN tp_Enumeration_domain
Initial value:

Definition at line 294 of file object_domain.c.

TP_DOMAIN tp_Error_domain = { NULL, NULL, &tp_Error, DOMAIN_INIT }

Definition at line 290 of file object_domain.c.

TP_DOMAIN* tp_Float_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_Short_domain
TP_DOMAIN tp_Integer_domain
TP_DOMAIN tp_Double_domain
TP_DOMAIN tp_Bigint_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Float_domain
TP_DOMAIN tp_Numeric_domain
TP_DOMAIN tp_Monetary_domain

Definition at line 428 of file object_domain.c.

Definition at line 237 of file object_domain.c.

Referenced by check_timeout_value().

bool tp_Initialized = false
static

Definition at line 148 of file object_domain.c.

Referenced by tp_final(), and tp_init().

TP_DOMAIN* tp_Integer_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_Short_domain
TP_DOMAIN tp_Integer_domain
TP_DOMAIN tp_Double_domain
TP_DOMAIN tp_Bigint_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Float_domain
TP_DOMAIN tp_Numeric_domain
TP_DOMAIN tp_Monetary_domain

Definition at line 416 of file object_domain.c.

TP_DOMAIN tp_Json_domain
Initial value:

Definition at line 322 of file object_domain.c.

Referenced by db_value_to_json_value(), and qexec_resolve_domains_for_aggregation().

TP_DOMAIN tp_Midxkey_domain_list_heads[TP_NUM_MIDXKEY_DOMAIN_LIST]
Initial value:
= {
{NULL, NULL, &tp_Midxkey, DOMAIN_INIT3},
{NULL, NULL, &tp_Midxkey, DOMAIN_INIT3},
{NULL, NULL, &tp_Midxkey, DOMAIN_INIT3},
{NULL, NULL, &tp_Midxkey, DOMAIN_INIT3},
{NULL, NULL, &tp_Midxkey, DOMAIN_INIT3},
{NULL, NULL, &tp_Midxkey, DOMAIN_INIT3},
{NULL, NULL, &tp_Midxkey, DOMAIN_INIT3},
{NULL, NULL, &tp_Midxkey, DOMAIN_INIT3},
{NULL, NULL, &tp_Midxkey, DOMAIN_INIT3}
}
#define NULL
Definition: freelistheap.h:34
PR_TYPE tp_Midxkey
#define DOMAIN_INIT3

Definition at line 253 of file object_domain.c.

TP_DOMAIN* tp_Midxkey_domains[TP_NUM_MIDXKEY_DOMAIN_LIST+1]
static
Initial value:
= {
&tp_Midxkey_domain_list_heads[2],
&tp_Midxkey_domain_list_heads[3],
&tp_Midxkey_domain_list_heads[4],
&tp_Midxkey_domain_list_heads[5],
&tp_Midxkey_domain_list_heads[6],
&tp_Midxkey_domain_list_heads[7],
&tp_Midxkey_domain_list_heads[8],
&tp_Midxkey_domain_list_heads[9],
}
TP_DOMAIN tp_Midxkey_domain_list_heads[TP_NUM_MIDXKEY_DOMAIN_LIST]
#define NULL
Definition: freelistheap.h:34

Definition at line 394 of file object_domain.c.

TP_DOMAIN* tp_Monetary_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_Short_domain
TP_DOMAIN tp_Integer_domain
TP_DOMAIN tp_Double_domain
TP_DOMAIN tp_Bigint_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Float_domain
TP_DOMAIN tp_Monetary_domain

Definition at line 446 of file object_domain.c.

Definition at line 240 of file object_domain.c.

TP_DOMAIN* tp_Multiset_conv[]
static
Initial value:
= {
}
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Sequence_domain
TP_DOMAIN tp_Multiset_domain

Definition at line 492 of file object_domain.c.

TP_DOMAIN tp_Multiset_domain = { NULL, NULL, &tp_Multiset, DOMAIN_INIT3 }

Definition at line 249 of file object_domain.c.

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

TP_DOMAIN* tp_NChar_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_String_domain
TP_DOMAIN tp_Timestamptz_domain
TP_DOMAIN tp_Utime_domain
TP_DOMAIN tp_VarNChar_domain
TP_DOMAIN tp_Datetime_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Date_domain
TP_DOMAIN tp_Char_domain
TP_DOMAIN tp_Datetimetz_domain
TP_DOMAIN tp_NChar_domain

Definition at line 466 of file object_domain.c.

TP_DOMAIN tp_NChar_domain
Initial value:

Definition at line 314 of file object_domain.c.

TP_DOMAIN* tp_Numeric_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_Short_domain
TP_DOMAIN tp_Integer_domain
TP_DOMAIN tp_Double_domain
TP_DOMAIN tp_Bigint_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Float_domain
TP_DOMAIN tp_Numeric_domain
TP_DOMAIN tp_Monetary_domain

Definition at line 440 of file object_domain.c.

TP_DOMAIN tp_Numeric_domain
Initial value:
DOMAIN_INIT2 (0, 0)
}
PR_TYPE tp_Numeric
#define DOMAIN_INIT2(codeset, coll)
#define DB_DEFAULT_NUMERIC_SCALE
Definition: dbtype_def.h:567
#define NULL
Definition: freelistheap.h:34
#define DB_DEFAULT_NUMERIC_PRECISION
Definition: dbtype_def.h:564

Definition at line 298 of file object_domain.c.

TP_DOMAIN tp_Object_domain = { NULL, NULL, &tp_Object, DOMAIN_INIT3 }

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 = { NULL, NULL, &tp_Oid, DOMAIN_INIT3 }

Definition at line 292 of file object_domain.c.

TP_DOMAIN tp_Pointer_domain = { NULL, NULL, &tp_Pointer, DOMAIN_INIT }

Definition at line 289 of file object_domain.c.

TP_DOMAIN* tp_Sequence_conv[]
static
Initial value:
= {
}
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Sequence_domain
TP_DOMAIN tp_Multiset_domain

Definition at line 496 of file object_domain.c.

TP_DOMAIN tp_Sequence_domain = { NULL, NULL, &tp_Sequence, DOMAIN_INIT3 }

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_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_Set_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Sequence_domain
TP_DOMAIN tp_Multiset_domain

Definition at line 488 of file object_domain.c.

TP_DOMAIN tp_Set_domain = { NULL, NULL, &tp_Set, DOMAIN_INIT3 }

Definition at line 247 of file object_domain.c.

Referenced by col_new(), and setobj_get_domain().

TP_DOMAIN* tp_Short_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_Short_domain
TP_DOMAIN tp_Integer_domain
TP_DOMAIN tp_Double_domain
TP_DOMAIN tp_Bigint_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Float_domain
TP_DOMAIN tp_Numeric_domain
TP_DOMAIN tp_Monetary_domain

Definition at line 422 of file object_domain.c.

TP_DOMAIN tp_Short_domain = { NULL, NULL, &tp_Short, DOMAIN_INIT4 (DB_SHORT_PRECISION, 0) }

Definition at line 234 of file object_domain.c.

TP_DOMAIN* tp_String_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_String_domain
TP_DOMAIN tp_Timestamptz_domain
TP_DOMAIN tp_Utime_domain
TP_DOMAIN tp_VarNChar_domain
TP_DOMAIN tp_Datetime_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Date_domain
TP_DOMAIN tp_Char_domain
TP_DOMAIN tp_Datetimetz_domain
TP_DOMAIN tp_NChar_domain

Definition at line 452 of file object_domain.c.

TP_DOMAIN tp_Substructure_domain = { NULL, NULL, &tp_Substructure, DOMAIN_INIT3 }

Definition at line 288 of file object_domain.c.

TP_DOMAIN tp_Time_domain = { NULL, NULL, &tp_Time, DOMAIN_INIT4 (DB_TIME_PRECISION, 0) }

Definition at line 268 of file object_domain.c.

TP_DOMAIN tp_Timestampltz_domain = { NULL, NULL, &tp_Timestampltz, DOMAIN_INIT4 (DB_TIMESTAMP_PRECISION, 0) }

Definition at line 271 of file object_domain.c.

Definition at line 270 of file object_domain.c.

Definition at line 269 of file object_domain.c.

TP_DOMAIN* tp_VarBit_conv[]
static
Initial value:
= {
}
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Bit_domain
TP_DOMAIN tp_VarBit_domain

Definition at line 484 of file object_domain.c.

TP_DOMAIN tp_VarBit_domain
Initial value:
}
#define DOMAIN_INIT2(codeset, coll)
#define DB_MAX_VARBIT_PRECISION
Definition: dbtype_def.h:552
#define NULL
Definition: freelistheap.h:34
PR_TYPE tp_VarBit

Definition at line 306 of file object_domain.c.

TP_DOMAIN tp_Variable_domain = { NULL, NULL, &tp_Variable, DOMAIN_INIT3 }

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_conv[]
static
Initial value:
= {
}
TP_DOMAIN tp_String_domain
TP_DOMAIN tp_Timestamptz_domain
TP_DOMAIN tp_Utime_domain
TP_DOMAIN tp_VarNChar_domain
TP_DOMAIN tp_Datetime_domain
#define NULL
Definition: freelistheap.h:34
TP_DOMAIN tp_Time_domain
TP_DOMAIN tp_Date_domain
TP_DOMAIN tp_Char_domain
TP_DOMAIN tp_Datetimetz_domain
TP_DOMAIN tp_NChar_domain

Definition at line 473 of file object_domain.c.

TP_DOMAIN tp_VarNChar_domain
Initial value:

Definition at line 318 of file object_domain.c.