CUBRID Engine  latest
query_opfunc.c File Reference
#include "config.h"
#include <stdio.h>
#include <string.h>
#include <float.h>
#include <math.h>
#include <assert.h>
#include "query_opfunc.h"
#include "system_parameter.h"
#include "error_manager.h"
#include "fetch.h"
#include "list_file.h"
#include "object_domain.h"
#include "object_primitive.h"
#include "object_representation.h"
#include "set_object.h"
#include "query_executor.h"
#include "databases_file.h"
#include "tz_support.h"
#include "memory_hash.h"
#include "numeric_opfunc.h"
#include "db_date.h"
#include "dbtype.h"
#include "query_dump.h"
#include "query_list.h"
#include "db_json.hpp"
#include "arithmetic.h"
#include "xasl.h"
#include "xasl_aggregate.hpp"
#include "xasl_analytic.hpp"
#include <chrono>
#include <regex>

Go to the source code of this file.

Macros

#define NOT_NULL_VALUE(a, b)   ((a) ? (a) : (b))
 
#define INITIAL_OID_STACK_SIZE   1
 
#define SYS_CONNECT_BY_PATH_MEM_STEP   256
 

Functions

static bool qdata_is_zero_value_date (DB_VALUE *dbval_p)
 
static int qdata_add_short (short s, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_add_int (int i1, int i2, DB_VALUE *result_p)
 
static int qdata_add_bigint (DB_BIGINT i1, DB_BIGINT i2, DB_VALUE *result_p)
 
static int qdata_add_float (float f1, float f2, DB_VALUE *result_p)
 
static int qdata_add_double (double d1, double d2, DB_VALUE *result_p)
 
static double qdata_coerce_numeric_to_double (DB_VALUE *numeric_val_p)
 
static void qdata_coerce_dbval_to_numeric (DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_add_numeric (DB_VALUE *numeric_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_add_numeric_to_monetary (DB_VALUE *numeric_val_p, DB_VALUE *monetary_val_p, DB_VALUE *result_p)
 
static int qdata_add_monetary (double d1, double d2, DB_CURRENCY type, DB_VALUE *result_p)
 
static int qdata_add_bigint_to_time (DB_VALUE *time_val_p, DB_BIGINT add_time, DB_VALUE *result_p)
 
static int qdata_add_short_to_utime_asymmetry (DB_VALUE *utime_val_p, short s, unsigned int *utime, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_int_to_utime_asymmetry (DB_VALUE *utime_val_p, int i, unsigned int *utime, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_short_to_utime (DB_VALUE *utime_val_p, short s, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_int_to_utime (DB_VALUE *utime_val_p, int i, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_bigint_to_utime (DB_VALUE *utime_val_p, DB_BIGINT bi, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_short_to_timestamptz (DB_VALUE *ts_tz_val_p, short s, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_int_to_timestamptz (DB_VALUE *ts_tz_val_p, int i, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_bigint_to_timestamptz (DB_VALUE *ts_tz_val_p, DB_BIGINT bi, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_short_to_datetime (DB_VALUE *datetime_val_p, short s, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_int_to_datetime (DB_VALUE *datetime_val_p, int i, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_bigint_to_datetime (DB_VALUE *datetime_val_p, DB_BIGINT bi, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_short_to_date (DB_VALUE *date_val_p, short s, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_int_to_date (DB_VALUE *date_val_p, int i, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_bigint_to_date (DB_VALUE *date_val_p, DB_BIGINT i, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_short_to_dbval (DB_VALUE *short_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_int_to_dbval (DB_VALUE *int_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_bigint_to_dbval (DB_VALUE *bigint_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_float_to_dbval (DB_VALUE *float_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_add_double_to_dbval (DB_VALUE *double_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_add_numeric_to_dbval (DB_VALUE *numeric_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_add_monetary_to_dbval (DB_VALUE *monetary_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_add_chars_to_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p)
 
static int qdata_add_sequence_to_dbval (DB_VALUE *seq_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_time_to_dbval (DB_VALUE *time_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_add_utime_to_dbval (DB_VALUE *utime_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_timestamptz_to_dbval (DB_VALUE *ts_tz_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_add_datetime_to_dbval (DB_VALUE *datetime_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_add_datetimetz_to_dbval (DB_VALUE *datetimetz_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_add_date_to_dbval (DB_VALUE *date_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_coerce_result_to_domain (DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_cast_to_domain (DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_subtract_short (short s1, short s2, DB_VALUE *result_p)
 
static int qdata_subtract_int (int i1, int i2, DB_VALUE *result_p)
 
static int qdata_subtract_bigint (DB_BIGINT i1, DB_BIGINT i2, DB_VALUE *result_p)
 
static int qdata_subtract_float (float f1, float f2, DB_VALUE *result_p)
 
static int qdata_subtract_double (double d1, double d2, DB_VALUE *result_p)
 
static int qdata_subtract_monetary (double d1, double d2, DB_CURRENCY currency, DB_VALUE *result_p)
 
static int qdata_subtract_time (DB_TIME u1, DB_TIME u2, DB_VALUE *result_p)
 
static int qdata_subtract_utime (DB_UTIME u1, DB_UTIME u2, DB_VALUE *result_p)
 
static int qdata_subtract_utime_to_short_asymmetry (DB_VALUE *utime_val_p, short s, unsigned int *utime, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_subtract_utime_to_int_asymmetry (DB_VALUE *utime_val_p, int i, unsigned int *utime, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_subtract_datetime_to_int (DB_DATETIME *dt1, DB_BIGINT i2, DB_VALUE *result_p)
 
static int qdata_subtract_datetime (DB_DATETIME *dt1, DB_DATETIME *dt2, DB_VALUE *result_p)
 
static int qdata_subtract_datetime_to_int_asymmetry (DB_VALUE *datetime_val_p, DB_BIGINT i, DB_DATETIME *datetime, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_subtract_short_to_dbval (DB_VALUE *short_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_subtract_int_to_dbval (DB_VALUE *int_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_subtract_bigint_to_dbval (DB_VALUE *bigint_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_subtract_float_to_dbval (DB_VALUE *float_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_subtract_double_to_dbval (DB_VALUE *double_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_subtract_numeric_to_dbval (DB_VALUE *numeric_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_subtract_monetary_to_dbval (DB_VALUE *monetary_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_subtract_sequence_to_dbval (DB_VALUE *seq_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_subtract_time_to_dbval (DB_VALUE *time_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_subtract_utime_to_dbval (DB_VALUE *utime_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_subtract_timestampltz_to_dbval (DB_VALUE *ts_ltz_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_subtract_timestamptz_to_dbval (DB_VALUE *utime_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_subtract_datetime_to_dbval (DB_VALUE *datetime_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_subtract_datetimetz_to_dbval (DB_VALUE *dt_tz_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_subtract_date_to_dbval (DB_VALUE *date_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static int qdata_multiply_short (DB_VALUE *short_val_p, short s2, DB_VALUE *result_p)
 
static int qdata_multiply_int (DB_VALUE *int_val_p, int i2, DB_VALUE *result_p)
 
static int qdata_multiply_bigint (DB_VALUE *bigint_val_p, DB_BIGINT bi2, DB_VALUE *result_p)
 
static int qdata_multiply_float (DB_VALUE *float_val_p, float f2, DB_VALUE *result_p)
 
static int qdata_multiply_double (double d1, double d2, DB_VALUE *result_p)
 
static int qdata_multiply_numeric (DB_VALUE *numeric_val_p, DB_VALUE *dbval, DB_VALUE *result_p)
 
static int qdata_multiply_monetary (DB_VALUE *monetary_val_p, double d, DB_VALUE *result_p)
 
static int qdata_multiply_short_to_dbval (DB_VALUE *short_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_multiply_int_to_dbval (DB_VALUE *int_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_multiply_bigint_to_dbval (DB_VALUE *bigint_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_multiply_float_to_dbval (DB_VALUE *float_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_multiply_double_to_dbval (DB_VALUE *double_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_multiply_numeric_to_dbval (DB_VALUE *numeric_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_multiply_monetary_to_dbval (DB_VALUE *monetary_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_multiply_sequence_to_dbval (DB_VALUE *seq_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
static bool qdata_is_divided_zero (DB_VALUE *dbval_p)
 
static int qdata_divide_short (short s1, short s2, DB_VALUE *result_p)
 
static int qdata_divide_int (int i1, int i2, DB_VALUE *result_p)
 
static int qdata_divide_bigint (DB_BIGINT bi1, DB_BIGINT bi2, DB_VALUE *result_p)
 
static int qdata_divide_float (float f1, float f2, DB_VALUE *result_p)
 
static int qdata_divide_double (double d1, double d2, DB_VALUE *result_p, bool is_check_overflow)
 
static int qdata_divide_monetary (double d1, double d2, DB_CURRENCY currency, DB_VALUE *result_p, bool is_check_overflow)
 
static int qdata_divide_short_to_dbval (DB_VALUE *short_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_divide_int_to_dbval (DB_VALUE *int_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_divide_bigint_to_dbval (DB_VALUE *bigint_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_divide_float_to_dbval (DB_VALUE *float_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_divide_double_to_dbval (DB_VALUE *double_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_divide_numeric_to_dbval (DB_VALUE *numeric_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static int qdata_divide_monetary_to_dbval (DB_VALUE *monetary_val_p, DB_VALUE *dbval_p, DB_VALUE *result_p)
 
static DB_VALUEqdata_get_dbval_from_constant_regu_variable (THREAD_ENTRY *thread_p, REGU_VARIABLE *regu_var, VAL_DESCR *val_desc_p)
 
static int qdata_convert_dbvals_to_set (THREAD_ENTRY *thread_p, DB_TYPE stype, REGU_VARIABLE *func, VAL_DESCR *val_desc_p, OID *obj_oid_p, QFILE_TUPLE tuple)
 
static int qdata_evaluate_generic_function (THREAD_ENTRY *thread_p, FUNCTION_TYPE *function_p, VAL_DESCR *val_desc_p, OID *obj_oid_p, QFILE_TUPLE tuple)
 
static int qdata_get_class_of_function (THREAD_ENTRY *thread_p, FUNCTION_TYPE *function_p, VAL_DESCR *val_desc_p, OID *obj_oid_p, QFILE_TUPLE tuple)
 
static int qdata_convert_table_to_set (THREAD_ENTRY *thread_p, DB_TYPE stype, REGU_VARIABLE *func, VAL_DESCR *val_desc_p)
 
static int qdata_insert_substring_function (THREAD_ENTRY *thread_p, FUNCTION_TYPE *function_p, VAL_DESCR *val_desc_p, OID *obj_oid_p, QFILE_TUPLE tuple)
 
static int qdata_elt (THREAD_ENTRY *thread_p, FUNCTION_TYPE *function_p, VAL_DESCR *val_desc_p, OID *obj_oid_p, QFILE_TUPLE tuple)
 
static int qdata_benchmark (THREAD_ENTRY *thread_p, FUNCTION_TYPE *function_p, VAL_DESCR *val_desc_p, OID *obj_oid_p, QFILE_TUPLE tuple)
 
static int qdata_regexp_function (THREAD_ENTRY *thread_p, FUNCTION_TYPE *function_p, VAL_DESCR *val_desc_p, OID *obj_oid_p, QFILE_TUPLE tuple)
 
static int qdata_convert_operands_to_value_and_call (THREAD_ENTRY *thread_p, FUNCTION_TYPE *function_p, VAL_DESCR *val_desc_p, OID *obj_oid_p, QFILE_TUPLE tuple, int(*function_to_call)(DB_VALUE *, DB_VALUE *const *, int const))
 
void qdata_set_value_list_to_null (val_list_node *val_list_p)
 
bool qdata_copy_db_value (DB_VALUE *dest_p, const DB_VALUE *src_p)
 
int qdata_copy_db_value_to_tuple_value (DB_VALUE *dbval_p, bool clear_compressed_string, char *tuple_val_p, int *tuple_val_size)
 
int qdata_copy_valptr_list_to_tuple (THREAD_ENTRY *thread_p, valptr_list_node *valptr_list_p, val_descr *val_desc_p, qfile_tuple_record *tuple_record_p)
 
QPROC_TPLDESCR_STATUS qdata_generate_tuple_desc_for_valptr_list (THREAD_ENTRY *thread_p, valptr_list_node *valptr_list_p, val_descr *val_desc_p, qfile_tuple_descriptor *tuple_desc_p)
 
int qdata_set_valptr_list_unbound (THREAD_ENTRY *thread_p, valptr_list_node *valptr_list_p, val_descr *val_desc_p)
 
static int qdata_add_bigint_to_utime_asymmetry (DB_VALUE *utime_val_p, DB_BIGINT bi, unsigned int *utime, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
int qdata_add_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_concatenate_dbval (THREAD_ENTRY *thread_p, DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p, const int max_allowed_size, const char *warning_context)
 
int qdata_increment_dbval (DB_VALUE *dbval_p, DB_VALUE *result_p, int inc_val)
 
static int qdata_subtract_utime_to_bigint_asymmetry (DB_VALUE *utime_val_p, DB_BIGINT bi, unsigned int *utime, DB_VALUE *result_p, TP_DOMAIN *domain_p)
 
int qdata_subtract_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_multiply_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_divide_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_unary_minus_dbval (DB_VALUE *result_p, DB_VALUE *dbval_p)
 
int qdata_extract_dbval (const MISC_OPERAND extr_operand, DB_VALUE *dbval_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_strcat_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_get_tuple_value_size_from_dbval (DB_VALUE *dbval_p)
 
int qdata_get_single_tuple_from_list_id (THREAD_ENTRY *thread_p, qfile_list_id *list_id_p, val_list_node *single_tuple_p)
 
int qdata_get_valptr_type_list (THREAD_ENTRY *thread_p, valptr_list_node *valptr_list_p, qfile_tuple_value_type_list *type_list_p)
 
int qdata_evaluate_function (THREAD_ENTRY *thread_p, regu_variable_node *function_p, val_descr *val_desc_p, OID *obj_oid_p, QFILE_TUPLE tuple)
 
bool qdata_evaluate_connect_by_root (THREAD_ENTRY *thread_p, void *xasl_p, regu_variable_node *regu_p, DB_VALUE *result_val_p, val_descr *vd)
 
bool qdata_evaluate_qprior (THREAD_ENTRY *thread_p, void *xasl_p, regu_variable_node *regu_p, DB_VALUE *result_val_p, val_descr *vd)
 
bool qdata_evaluate_sys_connect_by_path (THREAD_ENTRY *thread_p, void *xasl_p, regu_variable_node *regu_p, DB_VALUE *value_char, DB_VALUE *result_p, val_descr *vd)
 
int qdata_bit_not_dbval (DB_VALUE *dbval_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_bit_and_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_bit_or_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_bit_xor_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_bit_shift_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, OPERATOR_TYPE op, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_divmod_dbval (DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, OPERATOR_TYPE op, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_list_dbs (THREAD_ENTRY *thread_p, DB_VALUE *result_p, tp_domain *domain_p)
 
int qdata_regu_list_to_regu_array (function_node *function_p, const int array_size, regu_variable_node *regu_array[], int *num_regu)
 
int qdata_get_cardinality (THREAD_ENTRY *thread_p, DB_VALUE *db_class_name, DB_VALUE *db_index_name, DB_VALUE *db_key_position, DB_VALUE *result_p)
 
int qdata_tuple_to_values_array (THREAD_ENTRY *thread_p, qfile_tuple_descriptor *tuple, DB_VALUE **values)
 
int qdata_apply_interpolation_function_coercion (DB_VALUE *f_value, tp_domain **result_dom, DB_VALUE *result, FUNC_TYPE function)
 
int qdata_interpolation_function_values (DB_VALUE *f_value, DB_VALUE *c_value, double row_num_d, double f_row_num_d, double c_row_num_d, tp_domain **result_dom, DB_VALUE *result, FUNC_TYPE function)
 
int qdata_get_interpolation_function_result (THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *scan_id, tp_domain *domain, int pos, double row_num_d, double f_row_num_d, double c_row_num_d, DB_VALUE *result, tp_domain **result_dom, FUNC_TYPE function)
 
int qdata_update_interpolation_func_value_and_domain (DB_VALUE *src_val, DB_VALUE *dest_val, TP_DOMAIN **domain)
 

Macro Definition Documentation

#define INITIAL_OID_STACK_SIZE   1

Definition at line 65 of file query_opfunc.c.

#define NOT_NULL_VALUE (   a,
 
)    ((a) ? (a) : (b))

Definition at line 64 of file query_opfunc.c.

#define SYS_CONNECT_BY_PATH_MEM_STEP   256

Definition at line 67 of file query_opfunc.c.

Referenced by qdata_evaluate_sys_connect_by_path().

Function Documentation

static int qdata_add_bigint ( DB_BIGINT  i1,
DB_BIGINT  i2,
DB_VALUE result_p 
)
static
static int qdata_add_bigint_to_datetime ( DB_VALUE datetime_val_p,
DB_BIGINT  bi,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static

Definition at line 1460 of file query_opfunc.c.

References db_add_int_to_datetime(), db_get_datetime(), db_make_datetime(), error(), and NO_ERROR.

Referenced by qdata_add_bigint_to_dbval(), and qdata_add_datetime_to_dbval().

Here is the caller graph for this function:

static int qdata_add_bigint_to_utime_asymmetry ( DB_VALUE utime_val_p,
DB_BIGINT  bi,
unsigned int *  utime,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static
static int qdata_add_chars_to_dbval ( DB_VALUE dbval1_p,
DB_VALUE dbval2_p,
DB_VALUE result_p 
)
static

Definition at line 2060 of file query_opfunc.c.

References DATA_STATUS_OK, db_string_concatenate(), ER_FAILED, and NO_ERROR.

Referenced by qdata_add_dbval(), qdata_concatenate_dbval(), and qdata_strcat_dbval().

Here is the caller graph for this function:

static int qdata_add_datetime_to_dbval ( DB_VALUE datetime_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static
int qdata_add_dbval ( DB_VALUE dbval1_p,
DB_VALUE dbval2_p,
DB_VALUE result_p,
tp_domain domain_p 
)

Definition at line 2358 of file query_opfunc.c.

References ARG_FILE_LINE, assert, db_get_datetime(), db_get_timestamp(), db_get_timestamptz(), DB_IS_NULL, db_make_datetimeltz(), db_make_null(), db_make_timestampltz(), db_make_timestamptz(), DB_TYPE_BIGINT, DB_TYPE_BIT, DB_TYPE_CHAR, 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_NULL, DB_TYPE_NUMERIC, DB_TYPE_SEQUENCE, DB_TYPE_SET, DB_TYPE_SHORT, DB_TYPE_SMALLINT, DB_TYPE_TIME, DB_TYPE_TIMESTAMP, DB_TYPE_TIMESTAMPLTZ, DB_TYPE_TIMESTAMPTZ, DB_TYPE_VARBIT, DB_TYPE_VARCHAR, DB_TYPE_VARNCHAR, DB_VALUE_DOMAIN_TYPE, DB_VALUE_TYPE, DOMAIN_COMPATIBLE, ER_ATTEMPT_TO_USE_ZERODATE, ER_ERROR_SEVERITY, ER_QPROC_INVALID_DATATYPE, er_set(), error(), NO_ERROR, NULL, pr_clear_value(), pr_clone_value(), prm_get_bool_value(), PRM_ID_PLUS_AS_CONCAT, PRM_ID_RETURN_NULL_ON_FUNCTION_ERRORS, qdata_add_bigint_to_dbval(), qdata_add_chars_to_dbval(), qdata_add_date_to_dbval(), qdata_add_datetime_to_dbval(), qdata_add_datetimetz_to_dbval(), qdata_add_dbval(), qdata_add_double_to_dbval(), qdata_add_float_to_dbval(), qdata_add_int_to_dbval(), qdata_add_monetary_to_dbval(), qdata_add_numeric_to_dbval(), qdata_add_sequence_to_dbval(), qdata_add_short_to_dbval(), qdata_add_time_to_dbval(), qdata_add_timestamptz_to_dbval(), qdata_add_utime_to_dbval(), qdata_coerce_result_to_domain(), qdata_is_zero_value_date(), qdata_strcat_dbval(), db_timestamptz::timestamp, tp_domain_resolve_default(), tp_domain_status_er_set(), TP_DOMAIN_TYPE, TP_IS_CHAR_BIT_TYPE, TP_IS_CHAR_TYPE, TP_IS_DATE_OR_TIME_TYPE, TP_IS_FLOATING_NUMBER_TYPE, TP_IS_NUMERIC_TYPE, TP_IS_SET_TYPE, tp_value_auto_cast(), tz_create_session_tzid_for_timestamp(), and db_timestamptz::tz_id.

Referenced by fetch_peek_arith(), qdata_add_dbval(), qdata_aggregate_accumulator_to_accumulator(), qdata_aggregate_value_to_accumulator(), qdata_evaluate_aggregate_hierarchy(), qdata_evaluate_analytic_func(), qdata_finalize_aggregate_list(), qdata_finalize_analytic_func(), qdata_subtract_datetime_to_int_asymmetry(), qdata_subtract_utime_to_bigint_asymmetry(), qdata_subtract_utime_to_int_asymmetry(), and qdata_subtract_utime_to_short_asymmetry().

Here is the caller graph for this function:

static int qdata_add_double ( double  d1,
double  d2,
DB_VALUE result_p 
)
static
static int qdata_add_double_to_dbval ( DB_VALUE double_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_add_float ( float  f1,
float  f2,
DB_VALUE result_p 
)
static
static int qdata_add_int ( int  i1,
int  i2,
DB_VALUE result_p 
)
static

Definition at line 677 of file query_opfunc.c.

References ARG_FILE_LINE, db_make_int(), ER_ERROR_SEVERITY, ER_QPROC_OVERFLOW_ADDITION, er_set(), NO_ERROR, and OR_CHECK_ADD_OVERFLOW.

Referenced by qdata_add_int_to_dbval(), and qdata_add_short_to_dbval().

Here is the caller graph for this function:

static int qdata_add_int_to_datetime ( DB_VALUE datetime_val_p,
int  i,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static

Definition at line 1443 of file query_opfunc.c.

References db_add_int_to_datetime(), db_get_datetime(), db_make_datetime(), error(), and NO_ERROR.

Referenced by qdata_add_datetime_to_dbval(), and qdata_add_int_to_dbval().

Here is the caller graph for this function:

static int qdata_add_int_to_utime_asymmetry ( DB_VALUE utime_val_p,
int  i,
unsigned int *  utime,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static
static int qdata_add_monetary_to_dbval ( DB_VALUE monetary_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_add_numeric ( DB_VALUE numeric_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_add_numeric_to_monetary ( DB_VALUE numeric_val_p,
DB_VALUE monetary_val_p,
DB_VALUE result_p 
)
static

Definition at line 782 of file query_opfunc.c.

References d1, db_get_monetary(), db_make_monetary(), NO_ERROR, and qdata_coerce_numeric_to_double().

Referenced by qdata_add_monetary_to_dbval(), and qdata_add_numeric_to_dbval().

Here is the caller graph for this function:

static int qdata_add_sequence_to_dbval ( DB_VALUE seq_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static
static int qdata_add_short ( short  s,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static

Definition at line 659 of file query_opfunc.c.

References ARG_FILE_LINE, db_get_short(), db_make_short(), ER_ERROR_SEVERITY, ER_QPROC_OVERFLOW_ADDITION, er_set(), NO_ERROR, and OR_CHECK_ADD_OVERFLOW.

Referenced by qdata_add_short_to_dbval().

Here is the caller graph for this function:

static int qdata_add_short_to_datetime ( DB_VALUE datetime_val_p,
short  s,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static

Definition at line 1426 of file query_opfunc.c.

References db_add_int_to_datetime(), db_get_datetime(), db_make_datetime(), error(), and NO_ERROR.

Referenced by qdata_add_datetime_to_dbval(), and qdata_add_short_to_dbval().

Here is the caller graph for this function:

static int qdata_add_short_to_utime_asymmetry ( DB_VALUE utime_val_p,
short  s,
unsigned int *  utime,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static
static int qdata_add_time_to_dbval ( DB_VALUE time_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static

Definition at line 2142 of file query_opfunc.c.

References db_get_bigint(), db_get_int(), db_get_short(), DB_TYPE_BIGINT, DB_TYPE_INTEGER, DB_TYPE_SHORT, DB_VALUE_DOMAIN_TYPE, NO_ERROR, and qdata_add_bigint_to_time().

Referenced by qdata_add_dbval(), and qdata_strcat_dbval().

Here is the caller graph for this function:

static int qdata_add_timestamptz_to_dbval ( DB_VALUE ts_tz_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_add_utime_to_dbval ( DB_VALUE utime_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static
int qdata_bit_and_dbval ( DB_VALUE dbval1_p,
DB_VALUE dbval2_p,
DB_VALUE result_p,
tp_domain domain_p 
)
int qdata_bit_not_dbval ( DB_VALUE dbval_p,
DB_VALUE result_p,
tp_domain domain_p 
)
int qdata_bit_or_dbval ( DB_VALUE dbval1_p,
DB_VALUE dbval2_p,
DB_VALUE result_p,
tp_domain domain_p 
)
int qdata_bit_shift_dbval ( DB_VALUE dbval1_p,
DB_VALUE dbval2_p,
OPERATOR_TYPE  op,
DB_VALUE result_p,
tp_domain domain_p 
)
int qdata_bit_xor_dbval ( DB_VALUE dbval1_p,
DB_VALUE dbval2_p,
DB_VALUE result_p,
tp_domain domain_p 
)
static int qdata_cast_to_domain ( DB_VALUE dbval_p,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static

Definition at line 2322 of file query_opfunc.c.

References ARG_FILE_LINE, assert_release, DOMAIN_COMPATIBLE, error(), NO_ERROR, NULL, tp_domain_status_er_set(), and tp_value_cast().

Referenced by qdata_evaluate_sys_connect_by_path().

Here is the caller graph for this function:

static int qdata_coerce_result_to_domain ( DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static
static int qdata_convert_operands_to_value_and_call ( THREAD_ENTRY thread_p,
FUNCTION_TYPE function_p,
VAL_DESCR val_desc_p,
OID obj_oid_p,
QFILE_TUPLE  tuple,
int(*)(DB_VALUE *, DB_VALUE *const *, int const function_to_call 
)
static
static int qdata_divide_bigint ( DB_BIGINT  bi1,
DB_BIGINT  bi2,
DB_VALUE result_p 
)
static

Definition at line 5362 of file query_opfunc.c.

References db_make_bigint(), and NO_ERROR.

Referenced by qdata_divide_bigint_to_dbval(), qdata_divide_int_to_dbval(), and qdata_divide_short_to_dbval().

Here is the caller graph for this function:

static int qdata_divide_double ( double  d1,
double  d2,
DB_VALUE result_p,
bool  is_check_overflow 
)
static
static int qdata_divide_double_to_dbval ( DB_VALUE double_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_divide_float ( float  f1,
float  f2,
DB_VALUE result_p 
)
static
static int qdata_divide_int ( int  i1,
int  i2,
DB_VALUE result_p 
)
static

Definition at line 5351 of file query_opfunc.c.

References db_make_int(), and NO_ERROR.

Referenced by qdata_divide_int_to_dbval(), and qdata_divide_short_to_dbval().

Here is the caller graph for this function:

static int qdata_divide_monetary ( double  d1,
double  d2,
DB_CURRENCY  currency,
DB_VALUE result_p,
bool  is_check_overflow 
)
static
static int qdata_divide_monetary_to_dbval ( DB_VALUE monetary_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_divide_short ( short  s1,
short  s2,
DB_VALUE result_p 
)
static

Definition at line 5340 of file query_opfunc.c.

References db_make_short(), and NO_ERROR.

Referenced by qdata_divide_short_to_dbval().

Here is the caller graph for this function:

int qdata_evaluate_function ( THREAD_ENTRY thread_p,
regu_variable_node function_p,
val_descr val_desc_p,
OID obj_oid_p,
QFILE_TUPLE  tuple 
)

Definition at line 6753 of file query_opfunc.c.

References ARG_FILE_LINE, db_evaluate_json_array(), db_evaluate_json_array_append(), db_evaluate_json_array_insert(), db_evaluate_json_contains(), db_evaluate_json_contains_path(), db_evaluate_json_depth(), db_evaluate_json_extract(), db_evaluate_json_get_all_paths(), db_evaluate_json_insert(), db_evaluate_json_keys(), db_evaluate_json_length(), db_evaluate_json_merge_patch(), db_evaluate_json_merge_preserve(), db_evaluate_json_object(), db_evaluate_json_pretty(), db_evaluate_json_quote(), db_evaluate_json_remove(), db_evaluate_json_replace(), db_evaluate_json_search(), db_evaluate_json_set(), db_evaluate_json_type_dbval(), db_evaluate_json_unquote(), db_evaluate_json_valid(), DB_TYPE_MULTISET, DB_TYPE_SEQUENCE, DB_TYPE_SET, DB_TYPE_VOBJ, ER_ERROR_SEVERITY, ER_FAILED, ER_QPROC_INVALID_XASLNODE, er_set(), F_BENCHMARK, F_CLASS_OF, F_ELT, F_GENERIC, F_INSERT_SUBSTRING, F_JSON_ARRAY, F_JSON_ARRAY_APPEND, F_JSON_ARRAY_INSERT, F_JSON_CONTAINS, F_JSON_CONTAINS_PATH, F_JSON_DEPTH, F_JSON_EXTRACT, F_JSON_GET_ALL_PATHS, F_JSON_INSERT, F_JSON_KEYS, F_JSON_LENGTH, F_JSON_MERGE, F_JSON_MERGE_PATCH, F_JSON_OBJECT, F_JSON_PRETTY, F_JSON_QUOTE, F_JSON_REMOVE, F_JSON_REPLACE, F_JSON_SEARCH, F_JSON_SET, F_JSON_TYPE, F_JSON_UNQUOTE, F_JSON_VALID, F_MULTISET, F_REGEXP_COUNT, F_REGEXP_INSTR, F_REGEXP_LIKE, F_REGEXP_REPLACE, F_REGEXP_SUBSTR, F_SEQUENCE, F_SET, F_TABLE_MULTISET, F_TABLE_SEQUENCE, F_TABLE_SET, F_VID, function_node::ftype, regu_variable_node::regu_data_value::funcp, pr_clear_value(), qdata_benchmark(), qdata_convert_dbvals_to_set(), qdata_convert_operands_to_value_and_call(), qdata_convert_table_to_set(), qdata_elt(), qdata_evaluate_generic_function(), qdata_get_class_of_function(), qdata_insert_substring_function(), qdata_regexp_function(), function_node::value, and regu_variable_node::value.

Referenced by fetch_peek_dbval().

Here is the caller graph for this function:

static int qdata_evaluate_generic_function ( THREAD_ENTRY thread_p,
FUNCTION_TYPE function_p,
VAL_DESCR val_desc_p,
OID obj_oid_p,
QFILE_TUPLE  tuple 
)
static

Definition at line 6673 of file query_opfunc.c.

References ARG_FILE_LINE, ER_ERROR_SEVERITY, ER_FAILED, ER_QPROC_GENERIC_FUNCTION_FAILURE, and er_set().

Referenced by qdata_evaluate_function().

Here is the caller graph for this function:

bool qdata_evaluate_sys_connect_by_path ( THREAD_ENTRY thread_p,
void *  xasl_p,
regu_variable_node regu_p,
DB_VALUE value_char,
DB_VALUE result_p,
val_descr vd 
)

Definition at line 7305 of file query_opfunc.c.

References regu_variable_node::regu_data_value::arithptr, assert, xasl_node::connect_by, xasl_node::connect_by_ptr, connectby_proc_node::curr_tuple, db_get_bit(), DB_GET_STRING_SAFE, db_get_string_size(), DB_IS_NULL, db_make_null(), db_make_string(), db_private_alloc, db_private_free_and_init, db_value_copy(), regu_variable_node::regu_data_value::dbvalptr, regu_variable_node::domain, error(), fetch_peek_dbval(), fetch_val_list(), i, xasl_node::instnum_val, xasl_node::list_id, db_value::need_clear, qproc_db_value_list::next, NO_ERROR, NULL, qfile_tuple_position::offset, arith_list_node::opcode, xasl_node::outptr_list, PCOL_PARENTPOS_TUPLE_OFFSET, PEEK, qfile_tuple_position::position, pr_clear_value(), pr_clone_value(), pr_free_ext_value(), xasl_node::proc, qdata_cast_to_domain(), qexec_get_tuple_column_value(), qfile_close_scan(), qfile_jump_scan_tuple_position(), qfile_open_list_scan(), connectby_proc_node::regu_list_pred, connectby_proc_node::regu_list_rest, REINTERPRET_CAST, arith_list_node::rightptr, S_ON, S_SUCCESS, qfile_tuple_position::status, qfile_list_scan_id::status, strlen, SYS_CONNECT_BY_PATH_MEM_STEP, T_CAST, tp_Bit_domain, tp_String_domain, qfile_tuple_record::tpl, qfile_tuple_position::tpl, qfile_tuple_position::tplno, regu_variable_node::type, TYPE_CONSTANT, TYPE_INARITH, qproc_db_value_list::val, val_list_node::val_cnt, xasl_node::val_list, val_list_node::valp, valptr_list_node::valptr_cnt, regu_variable_node::value, qfile_tuple_position::vpid, XASL_HAS_CONNECT_BY, and XASL_IS_FLAGED.

Referenced by fetch_peek_arith().

Here is the caller graph for this function:

int qdata_extract_dbval ( const MISC_OPERAND  extr_operand,
DB_VALUE dbval_p,
DB_VALUE result_p,
tp_domain domain_p 
)

Definition at line 6009 of file query_opfunc.c.

References db_string_extract_dbval(), ER_FAILED, and NO_ERROR.

Referenced by fetch_peek_arith().

Here is the caller graph for this function:

int qdata_get_cardinality ( THREAD_ENTRY thread_p,
DB_VALUE db_class_name,
DB_VALUE db_index_name,
DB_VALUE db_key_position,
DB_VALUE result_p 
)
static int qdata_get_class_of_function ( THREAD_ENTRY thread_p,
FUNCTION_TYPE function_p,
VAL_DESCR val_desc_p,
OID obj_oid_p,
QFILE_TUPLE  tuple 
)
static
int qdata_get_interpolation_function_result ( THREAD_ENTRY thread_p,
QFILE_LIST_SCAN_ID scan_id,
tp_domain domain,
int  pos,
double  row_num_d,
double  f_row_num_d,
double  c_row_num_d,
DB_VALUE result,
tp_domain **  result_dom,
FUNC_TYPE  function 
)
static int qdata_insert_substring_function ( THREAD_ENTRY thread_p,
FUNCTION_TYPE function_p,
VAL_DESCR val_desc_p,
OID obj_oid_p,
QFILE_TUPLE  tuple 
)
static
int qdata_interpolation_function_values ( DB_VALUE f_value,
DB_VALUE c_value,
double  row_num_d,
double  f_row_num_d,
double  c_row_num_d,
tp_domain **  result_dom,
DB_VALUE result,
FUNC_TYPE  function 
)

Definition at line 8881 of file query_opfunc.c.

References ARG_FILE_LINE, assert, d1, db_datetime::date, db_datetimetz::datetime, 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_time(), db_get_timestamp(), db_get_timestamptz(), db_locate_numeric, db_make_datetime(), db_make_datetimeltz(), db_make_datetimetz(), db_make_double(), db_make_timestamp(), db_make_timestampltz(), db_make_timestamptz(), db_timestamp_decode_utc(), db_timestamp_encode_utc(), DB_TYPE_BIGINT, 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_NUMERIC, DB_TYPE_SHORT, DB_TYPE_TIME, DB_TYPE_TIMESTAMP, DB_TYPE_TIMESTAMPLTZ, DB_TYPE_TIMESTAMPTZ, db_value_coerce(), db_value_put_encoded_date(), db_value_put_encoded_time(), DB_VALUE_SCALE, db_value_type(), ER_ARG_CAN_NOT_BE_CASTED_TO_DESIRED_DOMAIN, ER_ERROR_SEVERITY, ER_FAILED, er_set(), error(), fcode_get_uppercase_name(), MILLISECONDS_OF_ONE_DAY, NO_ERROR, NULL, numeric_coerce_num_to_double(), qdata_update_interpolation_func_value_and_domain(), db_datetime::time, db_timestamptz::timestamp, TP_DOMAIN_TYPE, TP_IS_DATE_OR_TIME_TYPE, TP_IS_NUMERIC_TYPE, tz_datetimetz_fix_zone(), db_timestamptz::tz_id, db_datetimetz::tz_id, and tz_timestamptz_fix_zone().

Referenced by qdata_get_interpolation_function_result(), and qexec_analytic_evaluate_interpolation_function().

Here is the caller graph for this function:

static int qdata_multiply_bigint ( DB_VALUE bigint_val_p,
DB_BIGINT  bi2,
DB_VALUE result_p 
)
static
static int qdata_multiply_bigint_to_dbval ( DB_VALUE bigint_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_multiply_double_to_dbval ( DB_VALUE double_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_multiply_float ( DB_VALUE float_val_p,
float  f2,
DB_VALUE result_p 
)
static
static int qdata_multiply_int ( DB_VALUE int_val_p,
int  i2,
DB_VALUE result_p 
)
static
static int qdata_multiply_monetary_to_dbval ( DB_VALUE monetary_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_multiply_numeric ( DB_VALUE numeric_val_p,
DB_VALUE dbval,
DB_VALUE result_p 
)
static
static int qdata_multiply_sequence_to_dbval ( DB_VALUE seq_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static

Definition at line 5116 of file query_opfunc.c.

References assert, db_get_set(), DB_VALUE_DOMAIN_TYPE, ER_FAILED, NO_ERROR, NULL, set_intersection(), set_make_collection(), and TP_IS_SET_TYPE.

Referenced by qdata_multiply_dbval().

Here is the caller graph for this function:

static int qdata_multiply_short ( DB_VALUE short_val_p,
short  s2,
DB_VALUE result_p 
)
static
int qdata_regu_list_to_regu_array ( function_node function_p,
const int  array_size,
regu_variable_node regu_array[],
int *  num_regu 
)

Definition at line 8206 of file query_opfunc.c.

References assert, ER_FAILED, i, regu_variable_list_node::next, NO_ERROR, NULL, function_node::operand, and regu_variable_list_node::value.

Referenced by fetch_peek_dbval(), and qdata_insert_substring_function().

Here is the caller graph for this function:

void qdata_set_value_list_to_null ( val_list_node val_list_p)

Definition at line 280 of file query_opfunc.c.

References qproc_db_value_list::next, NULL, pr_clear_value(), qproc_db_value_list::val, and val_list_node::valp.

Referenced by qexec_execute_obj_fetch(), and scan_handle_single_scan().

Here is the caller graph for this function:

int qdata_strcat_dbval ( DB_VALUE dbval1_p,
DB_VALUE dbval2_p,
DB_VALUE result_p,
tp_domain domain_p 
)

Definition at line 6027 of file query_opfunc.c.

References ARG_FILE_LINE, db_get_datetime(), db_get_timestamp(), DB_IS_NULL, db_make_datetimeltz(), db_make_null(), db_make_timestampltz(), DB_TYPE_BIGINT, DB_TYPE_BIT, 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_MULTISET, DB_TYPE_NCHAR, DB_TYPE_NULL, DB_TYPE_NUMERIC, 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_TYPE, DOMAIN_COMPATIBLE, ER_ERROR_SEVERITY, ER_FAILED, ER_QPROC_INVALID_DATATYPE, er_set(), error(), NO_ERROR, NULL, pr_clear_value(), prm_get_bool_value(), PRM_ID_ORACLE_STYLE_EMPTY_STRING, qdata_add_bigint_to_dbval(), qdata_add_chars_to_dbval(), qdata_add_date_to_dbval(), qdata_add_datetime_to_dbval(), qdata_add_datetimetz_to_dbval(), qdata_add_double_to_dbval(), qdata_add_float_to_dbval(), qdata_add_int_to_dbval(), qdata_add_monetary_to_dbval(), qdata_add_numeric_to_dbval(), qdata_add_sequence_to_dbval(), qdata_add_short_to_dbval(), qdata_add_time_to_dbval(), qdata_add_timestamptz_to_dbval(), qdata_add_utime_to_dbval(), qdata_coerce_result_to_domain(), QSTR_IS_ANY_CHAR_OR_BIT, tp_domain_resolve_value(), tp_domain_status_er_set(), TP_DOMAIN_TYPE, TP_IS_CHAR_TYPE, TP_IS_DATE_OR_TIME_TYPE, TP_IS_NUMERIC_TYPE, TP_IS_SET_TYPE, and tp_value_auto_cast().

Referenced by fetch_peek_arith(), and qdata_add_dbval().

Here is the caller graph for this function:

static int qdata_subtract_bigint ( DB_BIGINT  i1,
DB_BIGINT  i2,
DB_VALUE result_p 
)
static
static int qdata_subtract_datetime ( DB_DATETIME dt1,
DB_DATETIME dt2,
DB_VALUE result_p 
)
static
static int qdata_subtract_datetime_to_int ( DB_DATETIME dt1,
DB_BIGINT  i2,
DB_VALUE result_p 
)
static

Definition at line 3102 of file query_opfunc.c.

References db_make_datetime(), db_subtract_int_from_datetime(), error(), and NO_ERROR.

Referenced by qdata_subtract_datetime_to_dbval().

Here is the caller graph for this function:

static int qdata_subtract_datetime_to_int_asymmetry ( DB_VALUE datetime_val_p,
DB_BIGINT  i,
DB_DATETIME datetime,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static

Definition at line 3137 of file query_opfunc.c.

References db_datetime::date, DB_BIGINT_MIN, db_make_bigint(), error(), MILLISECONDS_OF_ONE_DAY, NO_ERROR, qdata_add_dbval(), and db_datetime::time.

Referenced by qdata_subtract_datetime_to_dbval().

Here is the caller graph for this function:

int qdata_subtract_dbval ( DB_VALUE dbval1_p,
DB_VALUE dbval2_p,
DB_VALUE result_p,
tp_domain domain_p 
)

Definition at line 4448 of file query_opfunc.c.

References ARG_FILE_LINE, db_datetimetz::datetime, db_get_datetime(), DB_IS_NULL, db_make_datetimetz(), db_make_null(), DB_TYPE_BIGINT, 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_NULL, DB_TYPE_NUMERIC, 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_VALUE_DOMAIN_TYPE, DOMAIN_COMPATIBLE, ER_ATTEMPT_TO_USE_ZERODATE, ER_ERROR_SEVERITY, ER_QPROC_INVALID_DATATYPE, er_set(), error(), NO_ERROR, NULL, prm_get_bool_value(), PRM_ID_RETURN_NULL_ON_FUNCTION_ERRORS, qdata_coerce_result_to_domain(), qdata_is_zero_value_date(), qdata_subtract_bigint_to_dbval(), qdata_subtract_date_to_dbval(), qdata_subtract_datetime_to_dbval(), qdata_subtract_datetimetz_to_dbval(), qdata_subtract_dbval(), qdata_subtract_double_to_dbval(), qdata_subtract_float_to_dbval(), qdata_subtract_int_to_dbval(), qdata_subtract_monetary_to_dbval(), qdata_subtract_numeric_to_dbval(), qdata_subtract_sequence_to_dbval(), qdata_subtract_short_to_dbval(), qdata_subtract_time_to_dbval(), qdata_subtract_timestampltz_to_dbval(), qdata_subtract_timestamptz_to_dbval(), qdata_subtract_utime_to_dbval(), tp_domain_resolve_default(), tp_domain_status_er_set(), TP_DOMAIN_TYPE, TP_IS_CHAR_TYPE, TP_IS_DATE_OR_TIME_TYPE, TP_IS_FLOATING_NUMBER_TYPE, TP_IS_NUMERIC_TYPE, TP_IS_SET_TYPE, tp_value_auto_cast(), tz_create_session_tzid_for_datetime(), and db_datetimetz::tz_id.

Referenced by fetch_peek_arith(), qdata_add_bigint_to_utime_asymmetry(), qdata_add_int_to_utime_asymmetry(), qdata_add_short_to_utime_asymmetry(), qdata_finalize_aggregate_list(), qdata_finalize_analytic_func(), qdata_subtract_dbval(), and qexec_get_orderbynum_upper_bound().

Here is the caller graph for this function:

static int qdata_subtract_double_to_dbval ( DB_VALUE double_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_subtract_float ( float  f1,
float  f2,
DB_VALUE result_p 
)
static
static int qdata_subtract_int ( int  i1,
int  i2,
DB_VALUE result_p 
)
static
static int qdata_subtract_monetary_to_dbval ( DB_VALUE monetary_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_subtract_sequence_to_dbval ( DB_VALUE seq_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static

Definition at line 3675 of file query_opfunc.c.

References assert, db_get_set(), DB_VALUE_DOMAIN_TYPE, ER_FAILED, NO_ERROR, NULL, set_difference(), set_make_collection(), and TP_IS_SET_TYPE.

Referenced by qdata_subtract_dbval().

Here is the caller graph for this function:

static int qdata_subtract_short ( short  s1,
short  s2,
DB_VALUE result_p 
)
static

Definition at line 2891 of file query_opfunc.c.

References ARG_FILE_LINE, db_make_short(), ER_ERROR_SEVERITY, ER_FAILED, ER_QPROC_OVERFLOW_SUBTRACTION, er_set(), NO_ERROR, and OR_CHECK_SUB_UNDERFLOW.

Referenced by qdata_subtract_short_to_dbval().

Here is the caller graph for this function:

static int qdata_subtract_time ( DB_TIME  u1,
DB_TIME  u2,
DB_VALUE result_p 
)
static
static int qdata_subtract_time_to_dbval ( DB_VALUE time_val_p,
DB_VALUE dbval_p,
DB_VALUE result_p 
)
static
static int qdata_subtract_utime ( DB_UTIME  u1,
DB_UTIME  u2,
DB_VALUE result_p 
)
static
static int qdata_subtract_utime_to_bigint_asymmetry ( DB_VALUE utime_val_p,
DB_BIGINT  bi,
unsigned int *  utime,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static
static int qdata_subtract_utime_to_int_asymmetry ( DB_VALUE utime_val_p,
int  i,
unsigned int *  utime,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static
static int qdata_subtract_utime_to_short_asymmetry ( DB_VALUE utime_val_p,
short  s,
unsigned int *  utime,
DB_VALUE result_p,
TP_DOMAIN domain_p 
)
static
int qdata_tuple_to_values_array ( THREAD_ENTRY thread_p,
qfile_tuple_descriptor tuple,
DB_VALUE **  values 
)