Skip to content

File query_aggregate.cpp

FileList > cubrid > src > query > query_aggregate.cpp

Go to the source code of this file

  • #include "query_aggregate.hpp"
  • #include "arithmetic.h"
  • #include "btree.h"
  • #include "db_json.hpp"
  • #include "dbtype.h"
  • #include "fetch.h"
  • #include "list_file.h"
  • #include "memory_alloc.h"
  • #include "memory_hash.h"
  • #include "object_domain.h"
  • #include "object_primitive.h"
  • #include "object_representation.h"
  • #include "query_opfunc.h"
  • #include "regu_var.hpp"
  • #include "string_opfunc.h"
  • #include "xasl.h"
  • #include "xasl_aggregate.hpp"
  • #include "statistics.h"
  • #include <cmath>
  • #include "memory_wrapper.hpp"

Public Functions

Type Name
DB_VALUE_COMPARE_RESULT qdata_agg_hkey_compare (aggregate_hash_key * ckey1, aggregate_hash_key * ckey2, int * diff_pos)
int qdata_agg_hkey_eq (const void * key1, const void * key2)
int qdata_aggregate_accumulator_to_accumulator (cubthread::entry * thread_p, cubxasl::aggregate_accumulator * acc, cubxasl::aggregate_accumulator_domain * acc_dom, FUNC_CODE func_type, tp_domain * func_domain, cubxasl::aggregate_accumulator * new_acc)
aggregate_hash_key * qdata_alloc_agg_hkey (cubthread::entry * thread_p, int val_cnt, bool alloc_vals)
aggregate_hash_value * qdata_alloc_agg_hvalue (cubthread::entry * thread_p, int func_cnt, cubxasl::aggregate_list_node * g_agg_list)
aggregate_hash_key * qdata_copy_agg_hkey (cubthread::entry * thread_p, aggregate_hash_key * key)
int qdata_evaluate_aggregate_hierarchy (cubthread::entry * thread_p, cubxasl::aggregate_list_node * agg_p, HFID * root_hfid, BTID * root_btid, hierarchy_aggregate_helper * helper)
int qdata_evaluate_aggregate_list (cubthread::entry * thread_p, cubxasl::aggregate_list_node * agg_list_p, val_descr * val_desc_p, cubxasl::aggregate_accumulator * alt_acc_list, bool use_desc_index)
bool qdata_evaluate_aggregate_min_max_finished (cubthread::entry * thread_p, cubxasl::aggregate_list_node * agg_list_p)
int qdata_evaluate_aggregate_optimize (cubthread::entry * thread_p, cubxasl::aggregate_list_node * agg_p, HFID * hfid_p, OID * super_oid)
int qdata_finalize_aggregate_list (cubthread::entry * thread_p, cubxasl::aggregate_list_node * agg_list_p, bool keep_list_file, sampling_info * sampling)
int qdata_free_agg_hentry (const void * key, void * data, void * args)
void qdata_free_agg_hkey (cubthread::entry * thread_p, aggregate_hash_key * key)
void qdata_free_agg_hvalue (cubthread::entry * thread_p, aggregate_hash_value * value)
int qdata_get_agg_hkey_size (aggregate_hash_key * key)
int qdata_get_agg_hvalue_size (aggregate_hash_value * value, bool ret_delta)
unsigned int qdata_hash_agg_hkey (const void * key, unsigned int ht_size)
int qdata_initialize_aggregate_list (cubthread::entry * thread_p, cubxasl::aggregate_list_node * agg_list_p, QUERY_ID query_id)
SCAN_CODE qdata_load_agg_hentry_from_list (cubthread::entry * thread_p, qfile_list_scan_id * list_scan_id, aggregate_hash_key * key, aggregate_hash_value * value, tp_domain ** key_dom, cubxasl::aggregate_accumulator_domain ** acc_dom)
int qdata_load_agg_hentry_from_tuple (cubthread::entry * thread_p, QFILE_TUPLE tuple, aggregate_hash_key * key, aggregate_hash_value * value, tp_domain ** key_dom, cubxasl::aggregate_accumulator_domain ** acc_dom)
void qdata_load_agg_hvalue_in_agg_list (aggregate_hash_value * value, cubxasl::aggregate_list_node * agg_list, bool copy_vals)
int qdata_save_agg_hentry_to_list (cubthread::entry * thread_p, aggregate_hash_key * key, aggregate_hash_value * value, DB_VALUE * temp_dbval_array, qfile_list_id * list_id)
int qdata_save_agg_htable_to_list (cubthread::entry * thread_p, mht_table * hash_table, qfile_list_id * tuple_list_id, qfile_list_id * partial_list_id, db_value * temp_dbval_array)

Public Static Functions

Type Name
int qdata_aggregate_interpolation (cubthread::entry * thread_p, cubxasl::aggregate_list_node * agg_p, QFILE_LIST_SCAN_ID * scan_id)
int qdata_aggregate_multiple_values_to_accumulator (cubthread::entry * thread_p, cubxasl::aggregate_accumulator * acc, cubxasl::aggregate_accumulator_domain * domain, FUNC_CODE func_type, tp_domain * func_domain, std::vector< DB_VALUE > & db_values)
int qdata_aggregate_value_to_accumulator (cubthread::entry * thread_p, cubxasl::aggregate_accumulator * acc, cubxasl::aggregate_accumulator_domain * domain, FUNC_CODE func_type, tp_domain * func_domain, db_value * value, bool is_acc_to_acc)
int qdata_calculate_aggregate_cume_dist_percent_rank (cubthread::entry * thread_p, cubxasl::aggregate_list_node * agg_p, VAL_DESCR * val_desc_p)
int qdata_group_concat_first_value (THREAD_ENTRY * thread_p, AGGREGATE_TYPE * agg_p, DB_VALUE * dbvalue)
int qdata_group_concat_value (THREAD_ENTRY * thread_p, AGGREGATE_TYPE * agg_p, DB_VALUE * dbvalue)
int qdata_process_distinct_or_sort (cubthread::entry * thread_p, cubxasl::aggregate_list_node * agg_p, QUERY_ID query_id)
int qdata_update_agg_interpolation_func_value_and_domain (cubxasl::aggregate_list_node * agg_p, DB_VALUE * val)

Public Functions Documentation

function qdata_agg_hkey_compare

DB_VALUE_COMPARE_RESULT qdata_agg_hkey_compare (
    aggregate_hash_key * ckey1,
    aggregate_hash_key * ckey2,
    int * diff_pos
) 

function qdata_agg_hkey_eq

int qdata_agg_hkey_eq (
    const  void * key1,
    const  void * key2
) 

function qdata_aggregate_accumulator_to_accumulator

int qdata_aggregate_accumulator_to_accumulator (
    cubthread::entry * thread_p,
    cubxasl::aggregate_accumulator * acc,
    cubxasl::aggregate_accumulator_domain * acc_dom,
    FUNC_CODE func_type,
    tp_domain * func_domain,
    cubxasl::aggregate_accumulator * new_acc
) 

function qdata_alloc_agg_hkey

aggregate_hash_key * qdata_alloc_agg_hkey (
    cubthread::entry * thread_p,
    int val_cnt,
    bool alloc_vals
) 

function qdata_alloc_agg_hvalue

aggregate_hash_value * qdata_alloc_agg_hvalue (
    cubthread::entry * thread_p,
    int func_cnt,
    cubxasl::aggregate_list_node * g_agg_list
) 

function qdata_copy_agg_hkey

aggregate_hash_key * qdata_copy_agg_hkey (
    cubthread::entry * thread_p,
    aggregate_hash_key * key
) 

function qdata_evaluate_aggregate_hierarchy

int qdata_evaluate_aggregate_hierarchy (
    cubthread::entry * thread_p,
    cubxasl::aggregate_list_node * agg_p,
    HFID * root_hfid,
    BTID * root_btid,
    hierarchy_aggregate_helper * helper
) 

function qdata_evaluate_aggregate_list

int qdata_evaluate_aggregate_list (
    cubthread::entry * thread_p,
    cubxasl::aggregate_list_node * agg_list_p,
    val_descr * val_desc_p,
    cubxasl::aggregate_accumulator * alt_acc_list,
    bool use_desc_index
) 

function qdata_evaluate_aggregate_min_max_finished

bool qdata_evaluate_aggregate_min_max_finished (
    cubthread::entry * thread_p,
    cubxasl::aggregate_list_node * agg_list_p
) 

function qdata_evaluate_aggregate_optimize

int qdata_evaluate_aggregate_optimize (
    cubthread::entry * thread_p,
    cubxasl::aggregate_list_node * agg_p,
    HFID * hfid_p,
    OID * super_oid
) 

function qdata_finalize_aggregate_list

int qdata_finalize_aggregate_list (
    cubthread::entry * thread_p,
    cubxasl::aggregate_list_node * agg_list_p,
    bool keep_list_file,
    sampling_info * sampling
) 

function qdata_free_agg_hentry

int qdata_free_agg_hentry (
    const  void * key,
    void * data,
    void * args
) 

function qdata_free_agg_hkey

void qdata_free_agg_hkey (
    cubthread::entry * thread_p,
    aggregate_hash_key * key
) 

function qdata_free_agg_hvalue

void qdata_free_agg_hvalue (
    cubthread::entry * thread_p,
    aggregate_hash_value * value
) 

function qdata_get_agg_hkey_size

int qdata_get_agg_hkey_size (
    aggregate_hash_key * key
) 

function qdata_get_agg_hvalue_size

int qdata_get_agg_hvalue_size (
    aggregate_hash_value * value,
    bool ret_delta
) 

function qdata_hash_agg_hkey

unsigned  int qdata_hash_agg_hkey (
    const  void * key,
    unsigned  int ht_size
) 

function qdata_initialize_aggregate_list

int qdata_initialize_aggregate_list (
    cubthread::entry * thread_p,
    cubxasl::aggregate_list_node * agg_list_p,
    QUERY_ID query_id
) 

function qdata_load_agg_hentry_from_list

SCAN_CODE qdata_load_agg_hentry_from_list (
    cubthread::entry * thread_p,
    qfile_list_scan_id * list_scan_id,
    aggregate_hash_key * key,
    aggregate_hash_value * value,
    tp_domain ** key_dom,
    cubxasl::aggregate_accumulator_domain ** acc_dom
) 

function qdata_load_agg_hentry_from_tuple

int qdata_load_agg_hentry_from_tuple (
    cubthread::entry * thread_p,
    QFILE_TUPLE tuple,
    aggregate_hash_key * key,
    aggregate_hash_value * value,
    tp_domain ** key_dom,
    cubxasl::aggregate_accumulator_domain ** acc_dom
) 

function qdata_load_agg_hvalue_in_agg_list

void qdata_load_agg_hvalue_in_agg_list (
    aggregate_hash_value * value,
    cubxasl::aggregate_list_node * agg_list,
    bool copy_vals
) 

function qdata_save_agg_hentry_to_list

int qdata_save_agg_hentry_to_list (
    cubthread::entry * thread_p,
    aggregate_hash_key * key,
    aggregate_hash_value * value,
    DB_VALUE * temp_dbval_array,
    qfile_list_id * list_id
) 

function qdata_save_agg_htable_to_list

int qdata_save_agg_htable_to_list (
    cubthread::entry * thread_p,
    mht_table * hash_table,
    qfile_list_id * tuple_list_id,
    qfile_list_id * partial_list_id,
    db_value * temp_dbval_array
) 

Public Static Functions Documentation

function qdata_aggregate_interpolation

static int qdata_aggregate_interpolation (
    cubthread::entry * thread_p,
    cubxasl::aggregate_list_node * agg_p,
    QFILE_LIST_SCAN_ID * scan_id
) 

function qdata_aggregate_multiple_values_to_accumulator

static int qdata_aggregate_multiple_values_to_accumulator (
    cubthread::entry * thread_p,
    cubxasl::aggregate_accumulator * acc,
    cubxasl::aggregate_accumulator_domain * domain,
    FUNC_CODE func_type,
    tp_domain * func_domain,
    std::vector< DB_VALUE > & db_values
) 

function qdata_aggregate_value_to_accumulator

static int qdata_aggregate_value_to_accumulator (
    cubthread::entry * thread_p,
    cubxasl::aggregate_accumulator * acc,
    cubxasl::aggregate_accumulator_domain * domain,
    FUNC_CODE func_type,
    tp_domain * func_domain,
    db_value * value,
    bool is_acc_to_acc
) 

function qdata_calculate_aggregate_cume_dist_percent_rank

static int qdata_calculate_aggregate_cume_dist_percent_rank (
    cubthread::entry * thread_p,
    cubxasl::aggregate_list_node * agg_p,
    VAL_DESCR * val_desc_p
) 

function qdata_group_concat_first_value

static int qdata_group_concat_first_value (
    THREAD_ENTRY * thread_p,
    AGGREGATE_TYPE * agg_p,
    DB_VALUE * dbvalue
) 

function qdata_group_concat_value

static int qdata_group_concat_value (
    THREAD_ENTRY * thread_p,
    AGGREGATE_TYPE * agg_p,
    DB_VALUE * dbvalue
) 

function qdata_process_distinct_or_sort

static int qdata_process_distinct_or_sort (
    cubthread::entry * thread_p,
    cubxasl::aggregate_list_node * agg_p,
    QUERY_ID query_id
) 

function qdata_update_agg_interpolation_func_value_and_domain

static int qdata_update_agg_interpolation_func_value_and_domain (
    cubxasl::aggregate_list_node * agg_p,
    DB_VALUE * val
) 


The documentation for this class was generated from the following file cubrid/src/query/query_aggregate.cpp