CUBRID Engine  latest
query_hash_scan.c File Reference
#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"
Include dependency graph for query_hash_scan.c:

Go to the source code of this file.

Functions

static bool safe_memcpy (void *data, void *source, int size)
 
static DB_VALUE_COMPARE_RESULT qdata_hscan_key_compare (HASH_SCAN_KEY *ckey1, HASH_SCAN_KEY *ckey2, int *diff_pos)
 
HASH_SCAN_KEYqdata_alloc_hscan_key (cubthread::entry *thread_p, int val_cnt, bool alloc_vals)
 
void qdata_free_hscan_key (cubthread::entry *thread_p, HASH_SCAN_KEY *key, int val_count)
 
unsigned int qdata_hash_scan_key (const void *key, unsigned int ht_size)
 
int qdata_hscan_key_eq (const void *key1, const void *key2)
 
int qdata_build_hscan_key (THREAD_ENTRY *thread_p, val_descr *vd, REGU_VARIABLE_LIST regu_list, HASH_SCAN_KEY *key)
 
int qdata_print_hash_scan_entry (THREAD_ENTRY *thread_p, FILE *fp, const void *data, void *args)
 
HASH_SCAN_KEYqdata_copy_hscan_key (cubthread::entry *thread_p, HASH_SCAN_KEY *key, REGU_VARIABLE_LIST probe_regu_list, val_descr *vd)
 
HASH_SCAN_KEYqdata_copy_hscan_key_without_alloc (cubthread::entry *thread_p, HASH_SCAN_KEY *key, REGU_VARIABLE_LIST probe_regu_list, HASH_SCAN_KEY *new_key)
 
HASH_SCAN_VALUEqdata_alloc_hscan_value (cubthread::entry *thread_p, QFILE_TUPLE tpl)
 
HASH_SCAN_VALUEqdata_alloc_hscan_value_OID (cubthread::entry *thread_p, QFILE_LIST_SCAN_ID *scan_id_p)
 
void qdata_free_hscan_value (cubthread::entry *thread_p, HASH_SCAN_VALUE *value)
 
int qdata_free_hscan_entry (const void *key, void *data, void *args)
 

Function Documentation

HASH_SCAN_KEY* qdata_alloc_hscan_key ( cubthread::entry thread_p,
int  val_cnt,
bool  alloc_vals 
)
HASH_SCAN_VALUE* qdata_alloc_hscan_value ( cubthread::entry thread_p,
QFILE_TUPLE  tpl 
)
int qdata_build_hscan_key ( THREAD_ENTRY thread_p,
val_descr vd,
REGU_VARIABLE_LIST  regu_list,
HASH_SCAN_KEY key 
)
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().

Here is the caller graph for this function:

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().

Here is the caller graph for this function:

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().

Here is the caller graph for this function:

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().

Here is the caller graph for this function:

static DB_VALUE_COMPARE_RESULT qdata_hscan_key_compare ( HASH_SCAN_KEY ckey1,
HASH_SCAN_KEY ckey2,
int *  diff_pos 
)
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().

Here is the caller graph for this function:

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

Definition at line 196 of file query_hash_scan.c.

References DB_EQ, and qdata_hscan_key_compare().

Referenced by scan_open_list_scan().

Here is the caller graph for this function:

int qdata_print_hash_scan_entry ( THREAD_ENTRY thread_p,
FILE *  fp,
const void *  data,
void *  args 
)
static bool safe_memcpy ( void *  data,
void *  source,
int  size 
)
static

Definition at line 466 of file query_hash_scan.c.

Referenced by qdata_alloc_hscan_value().

Here is the caller graph for this function: