23 #ifndef _QUERY_AGGREGATE_HPP_ 24 #define _QUERY_AGGREGATE_HPP_ 26 #if !defined (SERVER_MODE) && !defined (SA_MODE) 28 #endif // not server and not SA mode 44 struct aggregate_accumulator;
45 struct aggregate_accumulator_domain;
46 struct aggregate_list_node;
125 OID *partition_cls_oid);
130 bool keep_list_file);
151 cubxasl::aggregate_accumulator_domain **acc_dom);
154 tp_domain **key_dom, cubxasl::aggregate_accumulator_domain **acc_dom);
158 #endif // _QUERY_AGGREGATE_HPP_ cubquery::aggregate_hash_key * qdata_alloc_agg_hkey(cubthread::entry *thread_p, int val_cnt, bool alloc_vals)
db_value * temp_dbval_array
int qdata_evaluate_aggregate_optimize(cubthread::entry *thread_p, cubxasl::aggregate_list_node *agg_ptr, HFID *hfid, OID *partition_cls_oid)
int qdata_evaluate_aggregate_list(cubthread::entry *thread_p, cubxasl::aggregate_list_node *agg_list, val_descr *vd, cubxasl::aggregate_accumulator *alt_acc_list)
int qdata_save_agg_hentry_to_list(cubthread::entry *thread_p, cubquery::aggregate_hash_key *key, cubquery::aggregate_hash_value *value, DB_VALUE *temp_dbval_array, qfile_list_id *list_id)
int qdata_load_agg_hentry_from_tuple(cubthread::entry *thread_p, QFILE_TUPLE tuple, cubquery::aggregate_hash_key *key, cubquery::aggregate_hash_value *value, tp_domain **key_dom, cubxasl::aggregate_accumulator_domain **acc_dom)
QFILE_TUPLE_RECORD input_tuple
void qdata_free_agg_hvalue(cubthread::entry *thread_p, cubquery::aggregate_hash_value *value)
qfile_list_id * sorted_part_list_id
DB_VALUE_COMPARE_RESULT qdata_agg_hkey_compare(cubquery::aggregate_hash_key *ckey1, cubquery::aggregate_hash_key *ckey2, int *diff_pos)
qfile_list_scan_id part_scan_id
aggregate_hash_value * temp_part_value
cubquery::aggregate_hash_value * qdata_alloc_agg_hvalue(cubthread::entry *thread_p, int func_cnt, cubxasl::aggregate_list_node *g_agg_list)
int qdata_evaluate_aggregate_hierarchy(cubthread::entry *thread_p, cubxasl::aggregate_list_node *agg_ptr, HFID *root_hfid, BTID *root_btid, cubquery::hierarchy_aggregate_helper *helper)
int qdata_get_agg_hkey_size(cubquery::aggregate_hash_key *key)
qfile_list_id * part_list_id
int qdata_agg_hkey_eq(const void *key1, const void *key2)
int qdata_free_agg_hentry(const void *key, void *data, void *args)
aggregate_hash_value * curr_part_value
SCAN_CODE qdata_load_agg_hentry_from_list(cubthread::entry *thread_p, qfile_list_scan_id *list_scan_id, cubquery::aggregate_hash_key *key, cubquery::aggregate_hash_value *value, tp_domain **key_dom, cubxasl::aggregate_accumulator_domain **acc_dom)
int qdata_aggregate_accumulator_to_accumulator(cubthread::entry *thread_p, cubxasl::aggregate_accumulator *acc, cubxasl::aggregate_accumulator_domain *acc_dom, FUNC_TYPE func_type, tp_domain *func_domain, cubxasl::aggregate_accumulator *new_acc)
AGGREGATE_HASH_STATE state
qfile_tuple_record first_tuple
aggregate_hash_key * curr_part_key
cubxasl::aggregate_accumulator * accumulators
unsigned int qdata_hash_agg_hkey(const void *key, unsigned int ht_size)
aggregate_hash_key * temp_part_key
cubquery::aggregate_hash_key * qdata_copy_agg_hkey(cubthread::entry *thread_p, cubquery::aggregate_hash_key *key)
cubxasl::aggregate_accumulator_domain ** accumulator_domains
int qdata_finalize_aggregate_list(cubthread::entry *thread_p, cubxasl::aggregate_list_node *agg_list, bool keep_list_file)
void qdata_load_agg_hvalue_in_agg_list(cubquery::aggregate_hash_value *value, cubxasl::aggregate_list_node *agg_list, bool copy_vals)
int qdata_initialize_aggregate_list(cubthread::entry *thread_p, cubxasl::aggregate_list_node *agg_list, QUERY_ID query_id)
void qdata_free_agg_hkey(cubthread::entry *thread_p, cubquery::aggregate_hash_key *key)
int qdata_get_agg_hvalue_size(cubquery::aggregate_hash_value *value, bool ret_delta)
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)
aggregate_hash_key * temp_key