CUBRID Engine  latest
query_analytic.cpp File Reference
#include "query_analytic.hpp"
#include "dbtype.h"
#include "fetch.h"
#include "list_file.h"
#include "object_domain.h"
#include "object_primitive.h"
#include "object_representation.h"
#include "query_opfunc.h"
#include "xasl.h"
#include "xasl_analytic.hpp"
#include <cmath>
Include dependency graph for query_analytic.cpp:

Go to the source code of this file.

Functions

static int qdata_analytic_interpolation (cubthread::entry *thread_p, cubxasl::analytic_list_node *ana_p, QFILE_LIST_SCAN_ID *scan_id)
 
int qdata_initialize_analytic_func (cubthread::entry *thread_p, ANALYTIC_TYPE *func_p, QUERY_ID query_id)
 
int qdata_evaluate_analytic_func (cubthread::entry *thread_p, ANALYTIC_TYPE *func_p, VAL_DESCR *val_desc_p)
 
int qdata_finalize_analytic_func (cubthread::entry *thread_p, ANALYTIC_TYPE *func_p, bool is_same_group)
 

Function Documentation

int qdata_evaluate_analytic_func ( cubthread::entry thread_p,
ANALYTIC_TYPE func_p,
VAL_DESCR val_desc_p 
)

Definition at line 108 of file query_analytic.cpp.

References ANALYTIC_FUNC_CLEAR_FLAG, ANALYTIC_FUNC_IS_FLAGED, ANALYTIC_KEEP_RANK, ARG_FILE_LINE, assert, assert_release, cubxasl::analytic_ntile_function_info::bucket_count, pr_type::cmpval(), tp_domain::collation_id, cubxasl::analytic_percentile_function_info::cur_group_percentile, cubxasl::analytic_list_node::curr_cnt, pr_type::data_writeval(), DB_DEFAULT_PRECISION, DB_DEFAULT_SCALE, db_get_double(), db_get_int(), DB_INT32_MAX, DB_IS_NULL, db_make_int(), db_make_null(), db_private_alloc, db_private_free_and_init, 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_TYPE_VARIABLE, db_value_coerce(), db_value_domain_init(), DB_VALUE_DOMAIN_TYPE, DB_VALUE_TYPE, cubxasl::analytic_list_node::domain, db_value::domain, DOMAIN_COMPATIBLE, ER_ARG_CAN_NOT_BE_CASTED_TO_DESIRED_DOMAIN, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_NTILE_INVALID_BUCKET_NUMBER, ER_PERCENTILE_FUNC_INVALID_PERCENTILE_RANGE, ER_PERCENTILE_FUNC_PERCENTILE_CHANGED_IN_GROUP, ER_QPROC_INVALID_DATATYPE, ER_QPROC_INVALID_XASLNODE, er_set(), ER_TF_BUFFER_OVERFLOW, error(), fcode_get_uppercase_name(), fetch_copy_dbval(), fetch_peek_dbval(), cubxasl::analytic_list_node::function, db_domain_info::general_info, cubxasl::analytic_list_node::ignore_nulls, cubxasl::analytic_list_node::info, cubxasl::analytic_list_node::is_const_operand, cubxasl::analytic_list_node::is_first_exec_time, cubxasl::analytic_ntile_function_info::is_null, cubxasl::analytic_list_node::list_id, NO_ERROR, cubxasl::analytic_function_info::ntile, NULL, cubxasl::analytic_list_node::operand, cubxasl::analytic_list_node::opr_dbtype, cubxasl::analytic_list_node::option, OR_BUF_INIT, cubxasl::analytic_list_node::out_value, cubxasl::analytic_function_info::percentile, cubxasl::analytic_percentile_function_info::percentile_reguvar, pr_clear_value(), pr_clone_value(), pr_data_writeval_disk_size(), pr_type_from_id(), PT_AVG, PT_COUNT, PT_COUNT_STAR, PT_CUME_DIST, PT_DENSE_RANK, PT_FIRST_VALUE, PT_LAG, PT_LAST_VALUE, PT_LEAD, PT_MAX, PT_MEDIAN, PT_MIN, PT_NTH_VALUE, PT_NTILE, PT_PERCENT_RANK, PT_PERCENTILE_CONT, PT_PERCENTILE_DISC, PT_RANK, PT_ROW_NUMBER, PT_STDDEV, PT_STDDEV_POP, PT_STDDEV_SAMP, PT_SUM, PT_VAR_POP, PT_VAR_SAMP, PT_VARIANCE, Q_DISTINCT, qdata_add_dbval(), qdata_multiply_dbval(), qfile_add_item_to_list(), QPROC_IS_INTERPOLATION_FUNC, pr_type::setval(), TP_DOMAIN_COLL_NORMAL, TP_DOMAIN_COLLATION_FLAG, tp_domain_resolve_default(), tp_domain_resolve_value(), tp_domain_status_er_set(), TP_DOMAIN_TYPE, tp_Double_domain, TP_IS_CHAR_TYPE, TP_IS_NUMERIC_TYPE, tp_value_cast(), tp_value_coerce(), tp_domain::type, db_domain_info::general_info::type, cubxasl::analytic_list_node::value, and cubxasl::analytic_list_node::value2.

Referenced by qexec_analytic_add_tuple().

Here is the caller graph for this function:

int qdata_finalize_analytic_func ( cubthread::entry thread_p,
ANALYTIC_TYPE func_p,
bool  is_same_group 
)

Definition at line 751 of file query_analytic.cpp.

References assert, cubxasl::analytic_list_node::curr_cnt, pr_type::data_readval(), DB_DEFAULT_PRECISION, DB_DEFAULT_SCALE, db_get_double(), DB_IS_NULL, db_make_double(), db_make_int(), db_make_null(), DB_TYPE_DOUBLE, DB_TYPE_NUMERIC, db_value_domain_init(), DB_VALUE_DOMAIN_TYPE, cubxasl::analytic_list_node::domain, db_value::domain, DOMAIN_COMPATIBLE, qfile_tuple_value_type_list::domp, ER_FAILED, err, error(), cubxasl::analytic_list_node::function, db_domain_info::general_info, cubxasl::analytic_list_node::list_id, NO_ERROR, NULL, cubxasl::analytic_list_node::option, or_init(), cubxasl::analytic_list_node::part_value, PEEK, pr_clear_value(), pr_clone_value(), pr_type_from_id(), PT_AVG, PT_COUNT, PT_COUNT_STAR, PT_STDDEV, PT_STDDEV_POP, PT_STDDEV_SAMP, PT_VAR_POP, PT_VAR_SAMP, PT_VARIANCE, Q_DISTINCT, qdata_add_dbval(), qdata_analytic_interpolation(), qdata_copy_db_value(), qdata_divide_dbval(), qdata_multiply_dbval(), qdata_subtract_dbval(), qfile_close_list(), qfile_close_scan(), qfile_destroy_list(), QFILE_GET_TUPLE_VALUE_FLAG, QFILE_GET_TUPLE_VALUE_LENGTH, qfile_open_list_scan(), qfile_scan_list_next(), qfile_sort_list(), QFILE_TUPLE_LENGTH_SIZE, QFILE_TUPLE_VALUE_HEADER_SIZE, QPROC_IS_INTERPOLATION_FUNC, S_SUCCESS, pr_type::setval(), qfile_list_id::sort_list, tp_domain_resolve_default(), tp_value_coerce(), qfile_tuple_record::tpl, qfile_list_id::tuple_cnt, tp_domain::type, db_domain_info::general_info::type, qfile_list_id::type_list, V_UNBOUND, cubxasl::analytic_list_node::value, and cubxasl::analytic_list_node::value2.

Referenced by qexec_analytic_finalize_group().

Here is the caller graph for this function: