CUBRID Engine
latest
|
#include "fetch.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 "string_opfunc.h"
#include "query_hash_scan.h"
#include "db_value_printer.hpp"
#include "dbtype.h"
Go to the source code of this file.
HASH_SCAN_KEY* qdata_alloc_hscan_key | ( | cubthread::entry * | thread_p, |
int | val_cnt, | ||
bool | alloc_vals | ||
) |
Definition at line 45 of file query_hash_scan.c.
References ARG_FILE_LINE, db_private_alloc, db_private_free, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), hash_scan_key::free_values, i, NULL, pr_make_value(), qdata_free_hscan_key(), hash_scan_key::val_count, and hash_scan_key::values.
Referenced by qdata_copy_hscan_key(), and scan_open_list_scan().
HASH_SCAN_VALUE* qdata_alloc_hscan_value | ( | cubthread::entry * | thread_p, |
QFILE_TUPLE | tpl | ||
) |
Definition at line 403 of file query_hash_scan.c.
References ARG_FILE_LINE, db_private_alloc, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), NULL, qdata_free_hscan_value(), QFILE_GET_TUPLE_LENGTH, safe_memcpy(), and hash_scan_value::tuple.
Referenced by scan_build_hash_list_scan().
HASH_SCAN_VALUE* qdata_alloc_hscan_value_OID | ( | cubthread::entry * | thread_p, |
QFILE_LIST_SCAN_ID * | scan_id_p | ||
) |
Definition at line 438 of file query_hash_scan.c.
References ARG_FILE_LINE, qfile_list_scan_id::curr_offset, qfile_list_scan_id::curr_vpid, db_private_alloc, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), NULL, qfile_tuple_simple_pos::offset, hash_scan_value::pos, qdata_free_hscan_value(), and qfile_tuple_simple_pos::vpid.
Referenced by scan_build_hash_list_scan().
int qdata_build_hscan_key | ( | THREAD_ENTRY * | thread_p, |
val_descr * | vd, | ||
REGU_VARIABLE_LIST | regu_list, | ||
HASH_SCAN_KEY * | key | ||
) |
Definition at line 212 of file query_hash_scan.c.
References fetch_peek_dbval(), hash_scan_key::free_values, regu_variable_list_node::next, NO_ERROR, NULL, rc, hash_scan_key::val_count, regu_variable_list_node::value, and hash_scan_key::values.
Referenced by scan_build_hash_list_scan(), and scan_hash_probe_next().
HASH_SCAN_KEY* qdata_copy_hscan_key | ( | cubthread::entry * | thread_p, |
HASH_SCAN_KEY * | key, | ||
REGU_VARIABLE_LIST | probe_regu_list, | ||
val_descr * | vd | ||
) |
Definition at line 284 of file query_hash_scan.c.
References ARG_FILE_LINE, DB_VALUE_DOMAIN_TYPE, DOMAIN_COMPATIBLE, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), ER_TP_CANT_COERCE, hash_scan_key::free_values, i, regu_variable_list_node::next, NULL, pr_copy_value(), pr_make_value(), pr_type_name(), qdata_alloc_hscan_key(), qdata_free_hscan_key(), REGU_VARIABLE_GET_TYPE(), tp_value_coerce(), hash_scan_key::val_count, regu_variable_list_node::value, and hash_scan_key::values.
HASH_SCAN_KEY* qdata_copy_hscan_key_without_alloc | ( | cubthread::entry * | thread_p, |
HASH_SCAN_KEY * | key, | ||
REGU_VARIABLE_LIST | probe_regu_list, | ||
HASH_SCAN_KEY * | new_key | ||
) |
Definition at line 351 of file query_hash_scan.c.
References ARG_FILE_LINE, DB_VALUE_DOMAIN_TYPE, DOMAIN_COMPATIBLE, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), ER_TP_CANT_COERCE, i, regu_variable_list_node::next, NO_ERROR, NULL, pr_clear_value(), pr_clone_value(), pr_type_name(), REGU_VARIABLE_GET_TYPE(), tp_value_coerce(), hash_scan_key::val_count, regu_variable_list_node::value, and hash_scan_key::values.
Referenced by scan_build_hash_list_scan().
int qdata_free_hscan_entry | ( | const void * | key, |
void * | data, | ||
void * | args | ||
) |
Definition at line 506 of file query_hash_scan.c.
References NO_ERROR, qdata_free_hscan_key(), and qdata_free_hscan_value().
Referenced by scan_close_scan().
void qdata_free_hscan_key | ( | cubthread::entry * | thread_p, |
HASH_SCAN_KEY * | key, | ||
int | val_count | ||
) |
Definition at line 91 of file query_hash_scan.c.
References db_private_free, hash_scan_key::free_values, i, NULL, pr_free_value(), and hash_scan_key::values.
Referenced by qdata_alloc_hscan_key(), qdata_copy_hscan_key(), qdata_free_hscan_entry(), and scan_close_scan().
void qdata_free_hscan_value | ( | cubthread::entry * | thread_p, |
HASH_SCAN_VALUE * | value | ||
) |
Definition at line 482 of file query_hash_scan.c.
References hash_scan_value::data, db_private_free_and_init, and NULL.
Referenced by qdata_alloc_hscan_value(), qdata_alloc_hscan_value_OID(), and qdata_free_hscan_entry().
unsigned int qdata_hash_scan_key | ( | const void * | key, |
unsigned int | ht_size | ||
) |
Definition at line 126 of file query_hash_scan.c.
References i, mht_get_hash_number(), hash_scan_key::val_count, and hash_scan_key::values.
Referenced by scan_open_list_scan().
|
static |
Definition at line 154 of file query_hash_scan.c.
References assert, DB_EQ, DB_UNK, i, tp_value_compare(), hash_scan_key::val_count, and hash_scan_key::values.
Referenced by qdata_hscan_key_eq().
Definition at line 196 of file query_hash_scan.c.
References DB_EQ, and qdata_hscan_key_compare().
Referenced by scan_open_list_scan().
int qdata_print_hash_scan_entry | ( | THREAD_ENTRY * | thread_p, |
FILE * | fp, | ||
const void * | data, | ||
void * | args | ||
) |
Definition at line 246 of file query_hash_scan.c.
References HASH_METH_HYBRID, HASH_METH_IN_MEM, NULL, qfile_tuple_simple_pos::offset, vpid::pageid, hash_scan_value::pos, QFILE_GET_TUPLE_LENGTH, hash_scan_value::tuple, vpid::volid, and qfile_tuple_simple_pos::vpid.
Referenced by scan_close_scan().
|
static |
Definition at line 466 of file query_hash_scan.c.
Referenced by qdata_alloc_hscan_value().