CUBRID Engine  latest
numeric_opfunc.h File Reference
#include "config.h"
#include "intl_support.h"
#include "dbtype_def.h"
#include "error_manager.h"
Include dependency graph for numeric_opfunc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define NUMERIC_MAX_STRING_SIZE   (80 + 1)
 
#define SECONDS_OF_ONE_DAY   86400 /* 24 * 60 * 60 */
 
#define MILLISECONDS_OF_ONE_DAY   86400000 /* 24 * 60 * 60 * 1000 */
 
#define db_locate_numeric(value)   ((DB_C_NUMERIC) ((value)->data.num.d.buf))
 

Enumerations

enum  DB_DATA_STATUS { DATA_STATUS_OK = 0, DATA_STATUS_TRUNCATED = 1004, DATA_STATUS_NOT_CONSUMED = 1005 }
 

Functions

int numeric_db_value_add (const DB_VALUE *dbv1, const DB_VALUE *dbv2, DB_VALUE *answer)
 
int numeric_db_value_sub (const DB_VALUE *dbv1, const DB_VALUE *dbv2, DB_VALUE *answer)
 
int numeric_db_value_mul (const DB_VALUE *dbv1, const DB_VALUE *dbv2, DB_VALUE *answer)
 
int numeric_db_value_div (const DB_VALUE *dbv1, const DB_VALUE *dbv2, DB_VALUE *answer)
 
int numeric_db_value_negate (DB_VALUE *answer)
 
void numeric_db_value_abs (DB_C_NUMERIC src_num, DB_C_NUMERIC dest_num)
 
int numeric_db_value_increase (DB_VALUE *arg)
 
int numeric_db_value_compare (const DB_VALUE *dbv1, const DB_VALUE *dbv2, DB_VALUE *answer)
 
void numeric_coerce_int_to_num (int arg, DB_C_NUMERIC answer)
 
void numeric_coerce_bigint_to_num (DB_BIGINT arg, DB_C_NUMERIC answer)
 
void numeric_coerce_num_to_int (DB_C_NUMERIC arg, int *answer)
 
int numeric_coerce_num_to_bigint (DB_C_NUMERIC arg, int scale, DB_BIGINT *answer)
 
void numeric_coerce_dec_str_to_num (const char *dec_str, DB_C_NUMERIC result)
 
void numeric_coerce_num_to_dec_str (DB_C_NUMERIC num, char *dec_str)
 
void numeric_coerce_num_to_double (DB_C_NUMERIC num, int scale, double *adouble)
 
int numeric_internal_double_to_num (double adouble, int dst_scale, DB_C_NUMERIC num, int *prec, int *scale)
 
int numeric_internal_float_to_num (float afloat, int dst_scale, DB_C_NUMERIC num, int *prec, int *scale)
 
int numeric_coerce_string_to_num (const char *astring, int astring_len, INTL_CODESET codeset, DB_VALUE *num)
 
int numeric_coerce_num_to_num (DB_C_NUMERIC src_num, int src_prec, int src_scale, int dest_prec, int dest_scale, DB_C_NUMERIC dest_num)
 
int numeric_db_value_coerce_to_num (DB_VALUE *src, DB_VALUE *dest, DB_DATA_STATUS *data_stat)
 
int numeric_db_value_coerce_from_num (DB_VALUE *src, DB_VALUE *dest, DB_DATA_STATUS *data_stat)
 
int numeric_db_value_coerce_from_num_strict (DB_VALUE *src, DB_VALUE *dest)
 
char * numeric_db_value_print (const DB_VALUE *val, char *buf)
 
bool numeric_db_value_is_zero (const DB_VALUE *arg)
 
int numeric_db_value_is_positive (const DB_VALUE *arg)
 

Macro Definition Documentation

Enumeration Type Documentation

Enumerator
DATA_STATUS_OK 
DATA_STATUS_TRUNCATED 
DATA_STATUS_NOT_CONSUMED 

Definition at line 36 of file numeric_opfunc.h.

Function Documentation

void numeric_coerce_bigint_to_num ( DB_BIGINT  arg,
DB_C_NUMERIC  answer 
)

Definition at line 2276 of file numeric_opfunc.c.

References DB_NUMERIC_BUF_SIZE.

Referenced by numeric_db_value_coerce_to_num(), and numeric_div().

Here is the caller graph for this function:

void numeric_coerce_int_to_num ( int  arg,
DB_C_NUMERIC  answer 
)

Definition at line 2245 of file numeric_opfunc.c.

References DB_NUMERIC_BUF_SIZE.

Referenced by boot_define_serial(), numeric_coerce_dec_str_to_num(), numeric_db_value_coerce_to_num(), numeric_div(), numeric_long_div(), and serial_get_nth_value().

Here is the caller graph for this function:

void numeric_coerce_num_to_int ( DB_C_NUMERIC  arg,
int *  answer 
)

Definition at line 2311 of file numeric_opfunc.c.

References DB_NUMERIC_BUF_SIZE, and numeric_is_negative().

Referenced by numeric_div().

Here is the caller graph for this function:

int numeric_coerce_num_to_num ( DB_C_NUMERIC  src_num,
int  src_prec,
int  src_scale,
int  dest_prec,
int  dest_scale,
DB_C_NUMERIC  dest_num 
)
void numeric_db_value_abs ( DB_C_NUMERIC  src_num,
DB_C_NUMERIC  dest_num 
)

Definition at line 2074 of file numeric_opfunc.c.

References numeric_copy(), numeric_is_negative(), and numeric_negate().

Referenced by db_abs_dbval().

Here is the caller graph for this function:

int numeric_db_value_coerce_from_num ( DB_VALUE src,
DB_VALUE dest,
DB_DATA_STATUS data_stat 
)
int numeric_db_value_increase ( DB_VALUE arg)
int numeric_db_value_is_positive ( const DB_VALUE arg)

Definition at line 2089 of file numeric_opfunc.c.

References DB_IS_NULL, db_locate_numeric, DB_TYPE_NUMERIC, DB_VALUE_TYPE, ER_OBJ_INVALID_ARGUMENTS, NULL, and numeric_is_negative().

Referenced by heap_object_upgrade_domain(), and serial_get_nth_value().

Here is the caller graph for this function:

bool numeric_db_value_is_zero ( const DB_VALUE arg)

Definition at line 3916 of file numeric_opfunc.c.

References db_get_numeric(), DB_IS_NULL, and numeric_is_zero().

Referenced by pt_evaluate_db_value_expr(), and qdata_is_divided_zero().

Here is the caller graph for this function:

int numeric_db_value_negate ( DB_VALUE answer)

Definition at line 2047 of file numeric_opfunc.c.

References DB_IS_NULL, db_locate_numeric, DB_TYPE_NUMERIC, DB_VALUE_TYPE, ER_OBJ_INVALID_ARGUMENTS, NO_ERROR, NULL, and numeric_negate().

Referenced by pt_evaluate_db_value_expr(), and qdata_unary_minus_dbval().

Here is the caller graph for this function:

int numeric_internal_double_to_num ( double  adouble,
int  dst_scale,
DB_C_NUMERIC  num,
int *  prec,
int *  scale 
)

Definition at line 2786 of file numeric_opfunc.c.

References numeric_internal_real_to_num().

Referenced by db_mod_bigint(), db_mod_int(), db_mod_numeric(), db_mod_short(), numeric_db_value_coerce_to_num(), and numeric_internal_real_to_num().

Here is the caller graph for this function:

int numeric_internal_float_to_num ( float  afloat,
int  dst_scale,
DB_C_NUMERIC  num,
int *  prec,
int *  scale 
)

Definition at line 2804 of file numeric_opfunc.c.

References numeric_internal_real_to_num().

Referenced by numeric_db_value_coerce_to_num().

Here is the caller graph for this function: