File query_hash_join.c¶
FileList > cubrid > src > query > query_hash_join.c
Go to the source code of this file
#include "query_hash_join.h"#include "dbtype.h"#include "error_manager.h"#include "fetch.h"#include "list_file.h"#include "memory_alloc.h"#include "object_representation.h"#include "perf_monitor.h"#include "px_hash_join.hpp"#include "px_parallel.hpp"#include "px_worker_manager.hpp"#include "query_list.h"#include "query_manager.h"#include "system_parameter.h"#include "thread_entry.hpp"#include "xasl.h"#include "memory_wrapper.hpp"
Public Types¶
| Type | Name |
|---|---|
| typedef enum hashjoin_print_step | HASHJOIN_PRINT_STEP |
| enum | hashjoin_print_step |
Public Functions¶
Public Static Functions¶
Macros¶
| Type | Name |
|---|---|
| define | DUMP_HASH_TABLE_LIMIT 100 |
| define | DUMP_PROBE_LIMIT 20 |
| define | HJOIN_DUMP_HASH_TABLE (thread_p, hash_scan_p, list_id_p) (([**void**](broker__monitor_8c.md#function-timeout)) 0) |
| define | HJOIN_PRINT_TUPLE (list_scan_id, tuple, step) (([**void**](broker__monitor_8c.md#function-timeout)) 0) |
| define | PARTITION_FILL_FACTOR 0.8 |
Public Types Documentation¶
typedef HASHJOIN_PRINT_STEP¶
enum hashjoin_print_step¶
enum hashjoin_print_step {
HASHJOIN_PRINT_NONE = 0,
HASHJOIN_PRINT_READ_KEY,
HASHJOIN_PRINT_NOT_MATCHED_KEY,
HASHJOIN_PRINT_NOT_QUALIFIED_KEY,
HASHJOIN_PRINT_QUALIFIED_KEY,
HASHJOIN_PRINT_FILL_EMPTY_KEY
};
Public Functions Documentation¶
function hjoin_clear_shared_split_info¶
void hjoin_clear_shared_split_info (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_SHARED_SPLIT_INFO * shared_info
)
function hjoin_execute¶
int hjoin_execute (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * context
)
function hjoin_fetch_key¶
int hjoin_fetch_key (
THREAD_ENTRY * thread_p,
HASHJOIN_FETCH_INFO * fetch_info,
QFILE_TUPLE_RECORD * tuple_record,
HASH_SCAN_KEY * key,
HASH_SCAN_KEY * compare_key,
bool * need_skip_next
)
function hjoin_init_shared_split_info¶
int hjoin_init_shared_split_info (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_SHARED_SPLIT_INFO * shared_info
)
function hjoin_merge_qlist¶
int hjoin_merge_qlist (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * context
)
function hjoin_trace_drain_worker_stats¶
function hjoin_trace_end¶
void hjoin_trace_end (
THREAD_ENTRY * thread_p,
HASHJOIN_INPUT_STATS * stats,
HASHJOIN_START_STATS * start_stats
)
function hjoin_trace_get_worker_stats¶
function hjoin_trace_merge_stats¶
function hjoin_trace_start¶
function hjoin_update_tuple_hash_key¶
void hjoin_update_tuple_hash_key (
THREAD_ENTRY * thread_p,
QFILE_TUPLE_RECORD * tuple_record,
UINT32 hash_key
)
function qexec_hash_join¶
int qexec_hash_join (
THREAD_ENTRY * thread_p,
XASL_NODE * xasl,
QUERY_ID query_id,
VAL_DESCR * val_descr
)
Public Static Functions Documentation¶
function hjoin_build¶
static int hjoin_build (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * context
)
function hjoin_build_key¶
static int hjoin_build_key (
THREAD_ENTRY * thread_p,
HASH_LIST_SCAN * hash_scan,
QFILE_LIST_SCAN_ID * list_scan_id,
QFILE_TUPLE_RECORD * tuple_record
)
function hjoin_build_partitions¶
static int hjoin_build_partitions (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_SPLIT_INFO * split_info
)
function hjoin_check_empty_inputs¶
static HASHJOIN_STATUS hjoin_check_empty_inputs (
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * context
)
function hjoin_check_partition¶
static HASHJOIN_STATUS hjoin_check_partition (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * single_context
)
function hjoin_clear_context¶
function hjoin_clear_manager¶
function hjoin_clear_split_info¶
static void hjoin_clear_split_info (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_SPLIT_INFO * split_info,
bool clear_all
)
function hjoin_destroy_qlist¶
function hjoin_execute_internal¶
static int hjoin_execute_internal (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * context
)
function hjoin_execute_partitions¶
function hjoin_init_context¶
static int hjoin_init_context (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * context
)
function hjoin_init_domain_info¶
static int hjoin_init_domain_info (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_DOMAIN_INFO * domain_info
)
function hjoin_init_manager¶
static int hjoin_init_manager (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
XASL_NODE * xasl,
QUERY_ID query_id,
VAL_DESCR * val_descr
)
function hjoin_init_split_info¶
static int hjoin_init_split_info (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_SPLIT_INFO * split_info
)
function hjoin_merge_tuple¶
static int hjoin_merge_tuple (
THREAD_ENTRY * thread_p,
QFILE_TUPLE_RECORD * outer_record,
QFILE_TUPLE_RECORD * inner_record,
QFILE_LIST_MERGE_INFO * merge_info,
QFILE_TUPLE_RECORD * overflow_record
)
function hjoin_merge_tuple_to_list_id¶
static int hjoin_merge_tuple_to_list_id (
THREAD_ENTRY * thread_p,
QFILE_LIST_ID * list_id,
QFILE_TUPLE_RECORD * outer_record,
QFILE_TUPLE_RECORD * inner_record,
QFILE_LIST_MERGE_INFO * merge_info,
QFILE_TUPLE_RECORD * overflow_record
)
function hjoin_outer_fill_null_values¶
static int hjoin_outer_fill_null_values (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * context
)
function hjoin_outer_probe¶
static int hjoin_outer_probe (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * context,
QFILE_LIST_ID * list_id
)
function hjoin_prepare_partition¶
static int hjoin_prepare_partition (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_SPLIT_INFO * split_info
)
function hjoin_probe¶
static int hjoin_probe (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * context,
QFILE_LIST_ID * list_id
)
function hjoin_probe_key¶
static int hjoin_probe_key (
THREAD_ENTRY * thread_p,
HASH_LIST_SCAN * hash_scan,
QFILE_LIST_SCAN_ID * list_scan_id,
QFILE_TUPLE_RECORD * tuple_record
)
function hjoin_scan_clear¶
function hjoin_scan_init¶
static int hjoin_scan_init (
THREAD_ENTRY * thread_p,
HASH_LIST_SCAN * hash_scan,
int key_cnt,
QFILE_LIST_ID * list_id
)
function hjoin_split_qlist¶
static int hjoin_split_qlist (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_INPUT_SPLIT_INFO * split_info,
QFILE_LIST_ID ** temp_part_list_id,
HASH_SCAN_KEY * temp_key
)
function hjoin_try_parallel¶
static HASHJOIN_STATUS hjoin_try_parallel (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * single_context
)
function hjoin_try_partition¶
static HASHJOIN_STATUS hjoin_try_partition (
THREAD_ENTRY * thread_p,
HASHJOIN_MANAGER * manager,
HASHJOIN_CONTEXT * single_context
)
Macro Definition Documentation¶
define DUMP_HASH_TABLE_LIMIT¶
define DUMP_PROBE_LIMIT¶
define HJOIN_DUMP_HASH_TABLE¶
define HJOIN_PRINT_TUPLE¶
define PARTITION_FILL_FACTOR¶
The documentation for this class was generated from the following file cubrid/src/query/query_hash_join.c