CUBRID Engine  latest
query_hash_scan.h File Reference
#include "regu_var.hpp"
Include dependency graph for query_hash_scan.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  qfile_tuple_simple_pos
 
union  hash_scan_value
 
struct  hash_scan_key
 
struct  hash_list_scan
 

Macros

#define MAKE_TUPLE_POSTION(tuple_pos, simple_pos, scan_id_p)
 

Typedefs

typedef enum hash_method HASH_METHOD
 
typedef struct qfile_tuple_simple_pos QFILE_TUPLE_SIMPLE_POS
 
typedef union hash_scan_value HASH_SCAN_VALUE
 
typedef struct hash_scan_key HASH_SCAN_KEY
 
typedef struct hash_list_scan HASH_LIST_SCAN
 

Enumerations

enum  hash_method { HASH_METH_NOT_USE = 0, HASH_METH_IN_MEM = 1, HASH_METH_HYBRID = 2, HASH_METH_HASH_FILE = 3 }
 

Functions

HASH_SCAN_KEYqdata_alloc_hscan_key (THREAD_ENTRY *thread_p, int val_cnt, bool alloc_vals)
 
HASH_SCAN_VALUEqdata_alloc_hscan_value (THREAD_ENTRY *thread_p, QFILE_TUPLE tpl)
 
HASH_SCAN_VALUEqdata_alloc_hscan_value_OID (THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *scan_id_p)
 
void qdata_free_hscan_key (THREAD_ENTRY *thread_p, HASH_SCAN_KEY *key, int val_count)
 
void qdata_free_hscan_value (THREAD_ENTRY *thread_p, HASH_SCAN_VALUE *value)
 
int qdata_free_hscan_entry (const void *key, void *data, void *args)
 
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)
 
unsigned int qdata_hash_scan_key (const void *key, unsigned int ht_size)
 
HASH_SCAN_KEYqdata_copy_hscan_key (THREAD_ENTRY *thread_p, HASH_SCAN_KEY *key, REGU_VARIABLE_LIST probe_regu_list, val_descr *vd)
 
HASH_SCAN_KEYqdata_copy_hscan_key_without_alloc (THREAD_ENTRY *thread_p, HASH_SCAN_KEY *key, REGU_VARIABLE_LIST probe_regu_list, HASH_SCAN_KEY *new_key)
 
int qdata_print_hash_scan_entry (THREAD_ENTRY *thread_p, FILE *fp, const void *data, void *args)
 

Macro Definition Documentation

#define MAKE_TUPLE_POSTION (   tuple_pos,
  simple_pos,
  scan_id_p 
)
Value:
do \
{ \
tuple_pos.status = scan_id_p->status; \
tuple_pos.position = S_ON; \
tuple_pos.vpid = simple_pos->vpid; \
tuple_pos.offset = simple_pos->offset; \
tuple_pos.tpl = NULL; \
tuple_pos.tplno = 0; /* If tplno is needed, add it from scan_build_hash_list_scan() */ \
} \
while (0)
#define NULL
Definition: freelistheap.h:34
while(1)
Definition: cnvlex.c:816

Definition at line 32 of file query_hash_scan.h.

Referenced by scan_hash_probe_next().

Typedef Documentation

Definition at line 81 of file query_hash_scan.h.

typedef enum hash_method HASH_METHOD

Definition at line 52 of file query_hash_scan.h.

typedef struct hash_scan_key HASH_SCAN_KEY

Definition at line 72 of file query_hash_scan.h.

Definition at line 63 of file query_hash_scan.h.

Definition at line 55 of file query_hash_scan.h.

Enumeration Type Documentation

Enumerator
HASH_METH_NOT_USE 
HASH_METH_IN_MEM 
HASH_METH_HYBRID 
HASH_METH_HASH_FILE 

Definition at line 45 of file query_hash_scan.h.

Function Documentation

HASH_SCAN_KEY* qdata_alloc_hscan_key ( THREAD_ENTRY thread_p,
int  val_cnt,
bool  alloc_vals 
)
HASH_SCAN_VALUE* qdata_alloc_hscan_value ( THREAD_ENTRY thread_p,
QFILE_TUPLE  tpl 
)
HASH_SCAN_VALUE* qdata_alloc_hscan_value_OID ( THREAD_ENTRY thread_p,
QFILE_LIST_SCAN_ID scan_id_p 
)
int qdata_build_hscan_key ( THREAD_ENTRY thread_p,
val_descr vd,
REGU_VARIABLE_LIST  regu_list,
HASH_SCAN_KEY key 
)
HASH_SCAN_KEY* qdata_copy_hscan_key ( THREAD_ENTRY thread_p,
HASH_SCAN_KEY key,
REGU_VARIABLE_LIST  probe_regu_list,
val_descr vd 
)
HASH_SCAN_KEY* qdata_copy_hscan_key_without_alloc ( THREAD_ENTRY thread_p,
HASH_SCAN_KEY key,
REGU_VARIABLE_LIST  probe_regu_list,
HASH_SCAN_KEY new_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 ( THREAD_ENTRY thread_p,
HASH_SCAN_KEY key,
int  val_count 
)
void qdata_free_hscan_value ( THREAD_ENTRY thread_p,
HASH_SCAN_VALUE value 
)
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:

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 
)