Skip to content

File list_file.c

FileList > cubrid > src > query > list_file.c

Go to the source code of this file

  • #include "config.h"
  • #include <stdio.h>
  • #include <string.h>
  • #include <math.h>
  • #include <search.h>
  • #include <stddef.h>
  • #include <assert.h>
  • #include "list_file.h"
  • #include "binaryheap.h"
  • #include "db_value_printer.hpp"
  • #include "dbtype.h"
  • #include "error_manager.h"
  • #include "file_manager.h"
  • #include "log_append.hpp"
  • #include "object_primitive.h"
  • #include "object_representation.h"
  • #include "query_manager.h"
  • #include "query_opfunc.h"
  • #include "stream_to_xasl.h"
  • #include "thread_entry.hpp"
  • #include "thread_manager.hpp"
  • #include "xasl.h"
  • #include "xasl_cache.h"
  • #include "memory_wrapper.hpp"

Classes

Type Name
struct qfile_cleanup_candidate
struct qfile_list_cache
struct qfile_list_cache_candidate
struct qfile_list_cache_entry_pool

Public Types

Type Name
typedef SCAN_CODE(* ADVANCE_FUCTION
typedef struct qfile_cleanup_candidate QFILE_CACHE_CLEANUP_CANDIDATE
typedef struct qfile_list_cache QFILE_LIST_CACHE
typedef struct qfile_list_cache_candidate QFILE_LIST_CACHE_CANDIDATE
typedef struct qfile_list_cache_entry_pool QFILE_LIST_CACHE_ENTRY_POOL
typedef union qfile_pooled_list_cache_entry QFILE_POOLED_LIST_CACHE_ENTRY
union qfile_pooled_list_cache_entry

Public Attributes

Type Name
int qfile_Is_list_cache_disabled

Public Static Attributes

Type Name
const int RESERVED_SIZE_FOR_LIST_CACHE_ENTRY = /* multi line expression */
QFILE_LIST_CACHE qfile_List_cache = { [**NULL**](freelistheap_8h.md#define-null), [**NULL**](freelistheap_8h.md#define-null), 0, 0, 0, 0, 0, 0, 0, 0 }
QFILE_LIST_CACHE_CANDIDATE qfile_List_cache_candidate = { 0, 0, 0, 0, [**NULL**](freelistheap_8h.md#define-null), [**NULL**](freelistheap_8h.md#define-null), [**NULL**](freelistheap_8h.md#define-null), 0, 0, [**false**](broker__monitor_8c.md#function-timeout) }
QFILE_LIST_CACHE_ENTRY_POOL qfile_List_cache_entry_pool = { [**NULL**](freelistheap_8h.md#define-null), 0, 0 }
int qfile_Max_tuple_page_size
LF_FREELIST qfile_sort_list_Freelist
LF_ENTRY_DESCRIPTOR qfile_sort_list_entry_desc = /* multi line expression */

Public Functions

Type Name
void qcache_free_ht_no (THREAD_ENTRY * thread_p, int ht_no)
int qcache_get_new_ht_no (THREAD_ENTRY * thread_p)
int qfile_add_item_to_list (THREAD_ENTRY * thread_p, char * item_p, int item_size, QFILE_LIST_ID * list_id_p)
int qfile_add_overflow_tuple_to_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, PAGE_PTR ovf_tuple_page_p, QFILE_LIST_ID * input_list_id_p)
int qfile_add_tuple_get_pos_in_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, QFILE_TUPLE tuple, QFILE_TUPLE_POSITION * tuple_pos)
int qfile_add_tuple_to_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, QFILE_TUPLE tuple)
SORT_LIST * qfile_allocate_sort_list (THREAD_ENTRY * thread_p, int count)
int qfile_append_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * base_list_id, QFILE_LIST_ID * append_list_id)
int qfile_clear_list_cache (THREAD_ENTRY * thread_p, XASL_CACHE_ENTRY * xcache_entry, bool invalidate)
void qfile_clear_list_id (QFILE_LIST_ID * list_id_p)
void qfile_clear_sort_key_info (SORTKEY_INFO * key_info_p)
QFILE_LIST_ID * qfile_clone_list_id (const QFILE_LIST_ID * list_id_p, bool is_include_sort_list, QFILE_DEPENDENT_MODE dep_mode)
void qfile_close_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p)
void qfile_close_scan (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * scan_id_p)
int qfile_collect_list_sector_info (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id, QFILE_LIST_SECTOR_INFO * sector_info)
QFILE_LIST_ID * qfile_combine_two_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * lhs_file_p, QFILE_LIST_ID * rhs_file_p, int flag)
int qfile_compare_all_sort_record (const void * pk0, const void * pk1, void * arg)
int qfile_compare_partial_sort_record (const void * pk0, const void * pk1, void * arg)
int qfile_connect_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * base_list_id, QFILE_LIST_ID * append_list_id)
int qfile_copy_list_id (QFILE_LIST_ID * dest_list_id_p, const QFILE_LIST_ID * src_list_id_p, bool is_include_sort_list, QFILE_DEPENDENT_MODE dep_mode)
int qfile_copy_tuple_descr_to_tuple (THREAD_ENTRY * thread_p, QFILE_TUPLE_DESCRIPTOR * tpl_descr, QFILE_TUPLE_RECORD * tplrec)
void qfile_destroy_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p)
int qfile_dump_list_cache (THREAD_ENTRY * thread_p, const char * fname)
int qfile_dump_list_cache_internal (THREAD_ENTRY * thread_p, FILE * fp)
QFILE_LIST_ID * qfile_duplicate_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, int flag)
void qfile_end_scan_fix (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * scan_id_p)
int qfile_end_use_of_list_cache_entry (THREAD_ENTRY * thread_p, QFILE_LIST_CACHE_ENTRY * lent, bool marker)
int qfile_fast_intint_tuple_to_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, int v1, int v2)
int qfile_fast_intval_tuple_to_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, int v1, DB_VALUE * v2)
int qfile_fast_val_tuple_to_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, DB_VALUE * val)
void qfile_finalize (void)
int qfile_finalize_list_cache (THREAD_ENTRY * thread_p)
void qfile_free_list_id (QFILE_LIST_ID * list_id_p)
void qfile_free_list_sector_info (THREAD_ENTRY * thread_p, QFILE_LIST_SECTOR_INFO * sector_info)
void qfile_free_sort_list (THREAD_ENTRY * thread_p, SORT_LIST * sort_list_p)
QFILE_TUPLE qfile_generate_sort_tuple (SORTKEY_INFO * key_info_p, SORT_REC * sort_record_p, RECDES * output_recdes_p)
int qfile_generate_tuple_into_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, QFILE_TUPLE_TYPE tuple_type)
int qfile_get_estimated_pages_for_sorting (QFILE_LIST_ID * list_id_p, SORTKEY_INFO * key_info_p)
int qfile_get_first_page (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p)
int qfile_get_list_cache_number_of_entries (int ht_no)
int qfile_get_tuple (THREAD_ENTRY * thread_p, PAGE_PTR first_page_p, QFILE_TUPLE tuple, QFILE_TUPLE_RECORD * tuple_record_p, QFILE_LIST_ID * list_id_p)
bool qfile_has_next_page (PAGE_PTR page_p)
bool qfile_has_no_cache_entries ()
int qfile_initialize (void)
int qfile_initialize_list_cache (THREAD_ENTRY * thread_p)
SORTKEY_INFO * qfile_initialize_sort_key_info (SORTKEY_INFO * key_info_p, SORT_LIST * list_p, QFILE_TUPLE_VALUE_TYPE_LIST * types)
bool qfile_is_sort_list_covered (SORT_LIST * covering_list_p, SORT_LIST * covered_list_p)
SCAN_CODE qfile_jump_scan_tuple_position (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * scan_id_p, QFILE_TUPLE_POSITION * tuple_position_p, QFILE_TUPLE_RECORD * tuple_record_p, int peek)
void qfile_load_xasl_node_header (THREAD_ENTRY * thread_p, char * xasl_stream, xasl_node_header * xasl_header_p)
int qfile_locate_tuple_next_value (OR_BUF * iterator, OR_BUF * buf, QFILE_TUPLE_VALUE_FLAG * flag)
QFILE_TUPLE_VALUE_FLAG qfile_locate_tuple_value (QFILE_TUPLE tuple, int index, char ** tuple_value_p, int * value_size_p)
QFILE_TUPLE_VALUE_FLAG qfile_locate_tuple_value_r (QFILE_TUPLE tuple, int index, char ** tuple_value_p, int * value_size_p)
QFILE_LIST_CACHE_ENTRY * qfile_lookup_list_cache_entry (THREAD_ENTRY * thread_p, XASL_CACHE_ENTRY * xasl, const DB_VALUE_ARRAY * params, bool * result_cached)
SORT_STATUS qfile_make_sort_key (THREAD_ENTRY * thread_p, SORTKEY_INFO * key_info_p, RECDES * key_record_p, QFILE_LIST_SCAN_ID * input_scan_p, QFILE_TUPLE_RECORD * tuple_record_p)
int qfile_modify_type_list (QFILE_TUPLE_VALUE_TYPE_LIST * type_list_p, QFILE_LIST_ID * list_id_p)
QFILE_LIST_ID * qfile_open_list (THREAD_ENTRY * thread_p, QFILE_TUPLE_VALUE_TYPE_LIST * type_list_p, SORT_LIST * sort_list_p, QUERY_ID query_id, int flag, QFILE_LIST_ID * existing_list_id)
int qfile_open_list_scan (QFILE_LIST_ID * list_id_p, QFILE_LIST_SCAN_ID * scan_id_p)
int qfile_overwrite_tuple (THREAD_ENTRY * thread_p, PAGE_PTR first_page_p, QFILE_TUPLE tuple, QFILE_TUPLE_RECORD * tuple_record_p, QFILE_LIST_ID * list_id_p)
void qfile_print_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p)
void qfile_print_tuple (QFILE_TUPLE_VALUE_TYPE_LIST * type_list_p, QFILE_TUPLE tuple)
int qfile_reallocate_tuple (QFILE_TUPLE_RECORD * tuple_record_p, int tuple_size)
int qfile_reopen_list_as_append_mode (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p)
void qfile_save_current_scan_tuple_position (QFILE_LIST_SCAN_ID * scan_id_p, QFILE_TUPLE_POSITION * tuple_position_p)
int qfile_save_tuple (QFILE_TUPLE_DESCRIPTOR * tuple_descr_p, QFILE_TUPLE_TYPE tuple_type, char * page_p, int * tuple_length_p)
SCAN_CODE qfile_scan_list_next (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * scan_id_p, QFILE_TUPLE_RECORD * tuple_record_p, int peek)
SCAN_CODE qfile_scan_list_prev (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * scan_id_p, QFILE_TUPLE_RECORD * tuple_record_p, int peek)
int qfile_set_tuple_column_value (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, PAGE_PTR curr_page_p, VPID * vpid_p, QFILE_TUPLE tuple_p, int col_num, DB_VALUE * value_p, TP_DOMAIN * domain_p)
QFILE_LIST_ID * qfile_sort_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, SORT_LIST * sort_list_p, QUERY_OPTIONS option, bool do_close)
QFILE_LIST_ID * qfile_sort_list_with_func (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, SORT_LIST * sort_list_p, QUERY_OPTIONS option, int flag, SORT_GET_FUNC * get_func, SORT_PUT_FUNC * put_func, SORT_CMP_FUNC * cmp_func, void * extra_arg, int limit, bool do_close, int parallelism, ORDERBY_STATS * orderby_stats)
int qfile_start_scan_fix (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * scan_id_p)
int qfile_truncate_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id)
int qfile_unify_types (QFILE_LIST_ID * list_id1_p, const QFILE_LIST_ID * list_id2_p)
int qfile_update_domains_on_type_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, valptr_list_node * valptr_list_p)
QFILE_LIST_CACHE_ENTRY * qfile_update_list_cache_entry (THREAD_ENTRY * thread_p, int list_ht_no, const DB_VALUE_ARRAY * params, const QFILE_LIST_ID * list_id, XASL_CACHE_ENTRY * xasl)
void qfile_update_qlist_count (THREAD_ENTRY * thread_p, const QFILE_LIST_ID * list_p, int inc)
int xqfile_get_list_file_page (THREAD_ENTRY * thread_p, QUERY_ID query_id, VOLID vol_id, PAGEID page_id, char * page_buf_p, int * page_size_p)

Public Static Functions

Type Name
int qfile_add_one_tuple (THREAD_ENTRY * thread_p, QFILE_LIST_ID * dst, QFILE_TUPLE lhs, QFILE_TUPLE rhs)
void qfile_add_tuple_to_list_id (QFILE_LIST_ID * list_id_p, PAGE_PTR page_p, int tuple_length, int written_tuple_length)
int qfile_add_two_tuple (THREAD_ENTRY * thread_p, QFILE_LIST_ID * dst, QFILE_TUPLE lhs, QFILE_TUPLE rhs)
void qfile_add_uncommitted_list_cache_entry (int tran_index, QFILE_LIST_CACHE_ENTRY * lent)
int qfile_advance (THREAD_ENTRY * thread_p, ADVANCE_FUCTION advance_func, QFILE_TUPLE_RECORD * side_p, QFILE_TUPLE_RECORD * last_side_p, QFILE_LIST_SCAN_ID * scan_p, QFILE_LIST_SCAN_ID * last_scan_p, QFILE_LIST_ID * side_file_p, int * have_side_p)
SCAN_CODE qfile_advance_group (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * next_scan, QFILE_TUPLE_RECORD * next_tpl, QFILE_LIST_SCAN_ID * last_scan, QFILE_TUPLE_RECORD * last_tpl, QFILE_TUPLE_VALUE_TYPE_LIST * types)
SCAN_CODE qfile_advance_single (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * next_scan, QFILE_TUPLE_RECORD * next_tpl, QFILE_LIST_SCAN_ID * last_scan, QFILE_TUPLE_RECORD * last_tpl, QFILE_TUPLE_VALUE_TYPE_LIST * types)
void * qfile_alloc_sort_list (void)
QFILE_LIST_CACHE_ENTRY * qfile_allocate_list_cache_entry (int req_size)
PAGE_PTR qfile_allocate_new_ovf_page (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, PAGE_PTR page_p, PAGE_PTR prev_page_p, int tuple_length, int offset, int * tuple_page_size_p)
PAGE_PTR qfile_allocate_new_page (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, PAGE_PTR page_p, bool is_ovf_page)
int qfile_allocate_new_page_if_need (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, PAGE_PTR * page_p, int tuple_length, bool is_ovf_page)
int qfile_assign_list_cache (void)
void qfile_clear_sort_info (SORT_INFO * info)
void qfile_close_and_free_list_file (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id)
BH_CMP_RESULT qfile_compare_cleanup_candidates (const void * left, const void * right, BH_CMP_ARG ignore_arg)
int qfile_compare_equal_db_value_array (const void * key1, const void * key2)
int qfile_compare_tran_id (const void * t1, const void * t2)
int qfile_compare_tuple_helper (QFILE_TUPLE lhs, QFILE_TUPLE rhs, QFILE_TUPLE_VALUE_TYPE_LIST * types, int * cmp)
int qfile_compare_tuple_values (QFILE_TUPLE tplp1, QFILE_TUPLE tplp2, TP_DOMAIN * domain, int * cmp)
int qfile_compare_with_interpolation_domain (char * fp0, char * fp1, SUBKEY_INFO * subkey, SORTKEY_INFO * key_info)
int qfile_compare_with_null_value (int o0, int o1, SUBKEY_INFO key_info)
int qfile_copy_list_pages (THREAD_ENTRY * thread_p, VPID * old_first_vpidp, QMGR_TEMP_FILE * old_tfile_vfidp, VPID * new_first_vpidp, VPID * new_last_vpidp, QMGR_TEMP_FILE * new_tfile_vfidp)
int qfile_copy_tuple (THREAD_ENTRY * thread_p, QFILE_LIST_ID * to_list_id_p, QFILE_LIST_ID * from_list_id_p)
int qfile_dealloc_sort_list (void * sort_list)
int qfile_delete_list_cache_entry (THREAD_ENTRY * thread_p, void * data)
void qfile_delete_uncommitted_list_cache_entry (int tran_index, QFILE_LIST_CACHE_ENTRY * lent)
int qfile_end_use_of_list_cache_entry_local (THREAD_ENTRY * thread_p, void * data, void * args)
int qfile_free_list_cache_entry (THREAD_ENTRY * thread_p, void * data, void * args)
DB_VALUE * qfile_get_list_cache_entry_param_values (QFILE_LIST_CACHE_ENTRY * ent)
int qfile_get_list_cache_entry_size_for_allocate (int nparam)
int * qfile_get_list_cache_entry_tran_index_array (QFILE_LIST_CACHE_ENTRY * ent)
SORT_STATUS qfile_get_next_sort_item (THREAD_ENTRY * thread_p, RECDES * recdes, void * arg)
int qfile_get_sort_list_size (SORT_LIST * sort_list)
int qfile_get_tuple_from_current_list (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * scan_id_p, QFILE_TUPLE_RECORD * tuple_record_p)
unsigned int qfile_hash_db_value_array (const void * key, unsigned int htsize)
void qfile_initialize_page_header (PAGE_PTR page_p)
SORT_INFO * qfile_initialize_sort_info (SORT_INFO * info, QFILE_LIST_ID * listid, SORT_LIST * sort_list)
bool qfile_is_early_time (struct timeval * a, struct timeval * b)
bool qfile_is_first_tuple (QFILE_LIST_ID * list_id_p)
bool qfile_is_last_page_full (QFILE_LIST_ID * list_id_p, int tuple_length, const bool is_ovf_page)
int qfile_list_cache_cleanup (THREAD_ENTRY * thread_p)
int qfile_print_list_cache_entry (THREAD_ENTRY * thread_p, FILE * fp, const void * key, void * data, void * args)
int qfile_put_next_sort_item (THREAD_ENTRY * thread_p, const RECDES * recdes, void * arg)
SCAN_CODE qfile_retrieve_tuple (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * scan_id_p, QFILE_TUPLE_RECORD * tuple_record_p, int peek)
int qfile_save_merge_tuple (QFILE_TUPLE_DESCRIPTOR * tuple_descr_p, char * tuple_p, char * page_p, int * tuple_length_p)
int qfile_save_normal_tuple (QFILE_TUPLE_DESCRIPTOR * tuple_descr_p, char * tuple_p, char * page_p, int tuple_length)
int qfile_save_single_bound_item_tuple (QFILE_TUPLE_DESCRIPTOR * tuple_descr_p, char * tuple_p, char * page_p, int tuple_length)
int qfile_save_sort_key_tuple (QFILE_TUPLE_DESCRIPTOR * tuple_descr_p, char * tuple_p, char * page_p, int tuple_length)
SCAN_CODE qfile_scan_list (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * scan_id_p, SCAN_CODE(*)(THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *) scan_func, QFILE_TUPLE_RECORD * tuple_record_p, int peek)
SCAN_CODE qfile_scan_next (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * s_id)
SCAN_CODE qfile_scan_prev (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * s_id)
void qfile_set_dirty_page (THREAD_ENTRY * thread_p, PAGE_PTR page_p, int free_page, QMGR_TEMP_FILE * vfid_p)
void qfile_set_dirty_page_and_skip_logging (THREAD_ENTRY * thread_p, PAGE_PTR page_p, VFID * vfid_p, int free_page)
QFILE_LIST_ID * qfile_union_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id1, QFILE_LIST_ID * list_id2, int flag)

Macros

Type Name
define ADDITION_FOR_POOLED_LIST_CACHE_ENTRY [**offsetof**](broker__monitor_8c.md#function-timeout)([**QFILE\_POOLED\_LIST\_CACHE\_ENTRY**](list__file_8c.md#typedef-qfile_pooled_list_cache_entry), s.entry)
define FIXED_SIZE_OF_POOLED_LIST_CACHE_ENTRY 4096
define LS_PUT_NEXT_VPID (ptr) /* multi line expression */
define POOLED_LIST_CACHE_ENTRY_FROM_LIST_CACHE_ENTRY (p) (([**QFILE\_POOLED\_LIST\_CACHE\_ENTRY**](list__file_8c.md#typedef-qfile_pooled_list_cache_entry) \*) (([**char**](broker__monitor_8c.md#function-timeout)\*) [**p**](dynamic__load_8c.md#variable-p) - [**ADDITION\_FOR\_POOLED\_LIST\_CACHE\_ENTRY**](list__file_8c.md#define-addition_for_pooled_list_cache_entry)))
define QFILE_CHECK_LIST_FILE_IS_CLOSED (list_id) [**assert**](malloc__2__8__3_8c.md#define-assert) (list\_id != [**NULL**](freelistheap_8h.md#define-null) &&(![**VPID\_ISNULL**](dbtype__def_8h.md#define-vpid_isnull)(&list\_id-&gt;last\_vpid) ? (list\_id-&gt;last\_pgptr != [**NULL**](freelistheap_8h.md#define-null)) : [**true**](broker__monitor_8c.md#function-timeout)))
define QFILE_DEFAULT_PAGES 4

Public Types Documentation

typedef ADVANCE_FUCTION

typedef SCAN_CODE(* ADVANCE_FUCTION) (THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *, QFILE_TUPLE_RECORD *, QFILE_LIST_SCAN_ID *, QFILE_TUPLE_RECORD *, QFILE_TUPLE_VALUE_TYPE_LIST *);

typedef QFILE_CACHE_CLEANUP_CANDIDATE

typedef struct qfile_cleanup_candidate QFILE_CACHE_CLEANUP_CANDIDATE;

typedef QFILE_LIST_CACHE

typedef struct qfile_list_cache QFILE_LIST_CACHE;

typedef QFILE_LIST_CACHE_CANDIDATE

typedef struct qfile_list_cache_candidate QFILE_LIST_CACHE_CANDIDATE;

typedef QFILE_LIST_CACHE_ENTRY_POOL

typedef struct qfile_list_cache_entry_pool QFILE_LIST_CACHE_ENTRY_POOL;

typedef QFILE_POOLED_LIST_CACHE_ENTRY

typedef union qfile_pooled_list_cache_entry QFILE_POOLED_LIST_CACHE_ENTRY;

union qfile_pooled_list_cache_entry



Public Attributes Documentation

variable qfile_Is_list_cache_disabled

int qfile_Is_list_cache_disabled;

Public Static Attributes Documentation

variable RESERVED_SIZE_FOR_LIST_CACHE_ENTRY

const int RESERVED_SIZE_FOR_LIST_CACHE_ENTRY;

variable qfile_List_cache

QFILE_LIST_CACHE qfile_List_cache;

variable qfile_List_cache_candidate

QFILE_LIST_CACHE_CANDIDATE qfile_List_cache_candidate;

variable qfile_List_cache_entry_pool

QFILE_LIST_CACHE_ENTRY_POOL qfile_List_cache_entry_pool;

variable qfile_Max_tuple_page_size

int qfile_Max_tuple_page_size;

variable qfile_sort_list_Freelist

LF_FREELIST qfile_sort_list_Freelist;

variable qfile_sort_list_entry_desc

LF_ENTRY_DESCRIPTOR qfile_sort_list_entry_desc;

Public Functions Documentation

function qcache_free_ht_no

void qcache_free_ht_no (
    THREAD_ENTRY * thread_p,
    int ht_no
) 

function qcache_get_new_ht_no

int qcache_get_new_ht_no (
    THREAD_ENTRY * thread_p
) 

function qfile_add_item_to_list

int qfile_add_item_to_list (
    THREAD_ENTRY * thread_p,
    char * item_p,
    int item_size,
    QFILE_LIST_ID * list_id_p
) 

function qfile_add_overflow_tuple_to_list

int qfile_add_overflow_tuple_to_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    PAGE_PTR ovf_tuple_page_p,
    QFILE_LIST_ID * input_list_id_p
) 

function qfile_add_tuple_get_pos_in_list

int qfile_add_tuple_get_pos_in_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    QFILE_TUPLE tuple,
    QFILE_TUPLE_POSITION * tuple_pos
) 

function qfile_add_tuple_to_list

int qfile_add_tuple_to_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    QFILE_TUPLE tuple
) 

function qfile_allocate_sort_list

SORT_LIST * qfile_allocate_sort_list (
    THREAD_ENTRY * thread_p,
    int count
) 

function qfile_append_list

int qfile_append_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * base_list_id,
    QFILE_LIST_ID * append_list_id
) 

function qfile_clear_list_cache

int qfile_clear_list_cache (
    THREAD_ENTRY * thread_p,
    XASL_CACHE_ENTRY * xcache_entry,
    bool invalidate
) 

function qfile_clear_list_id

void qfile_clear_list_id (
    QFILE_LIST_ID * list_id_p
) 

function qfile_clear_sort_key_info

void qfile_clear_sort_key_info (
    SORTKEY_INFO * key_info_p
) 

function qfile_clone_list_id

QFILE_LIST_ID * qfile_clone_list_id (
    const  QFILE_LIST_ID * list_id_p,
    bool is_include_sort_list,
    QFILE_DEPENDENT_MODE dep_mode
) 

function qfile_close_list

void qfile_close_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p
) 

function qfile_close_scan

void qfile_close_scan (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * scan_id_p
) 

function qfile_collect_list_sector_info

int qfile_collect_list_sector_info (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id,
    QFILE_LIST_SECTOR_INFO * sector_info
) 

function qfile_combine_two_list

QFILE_LIST_ID * qfile_combine_two_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * lhs_file_p,
    QFILE_LIST_ID * rhs_file_p,
    int flag
) 

function qfile_compare_all_sort_record

int qfile_compare_all_sort_record (
    const  void * pk0,
    const  void * pk1,
    void * arg
) 

function qfile_compare_partial_sort_record

int qfile_compare_partial_sort_record (
    const  void * pk0,
    const  void * pk1,
    void * arg
) 

function qfile_connect_list

int qfile_connect_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * base_list_id,
    QFILE_LIST_ID * append_list_id
) 

function qfile_copy_list_id

int qfile_copy_list_id (
    QFILE_LIST_ID * dest_list_id_p,
    const  QFILE_LIST_ID * src_list_id_p,
    bool is_include_sort_list,
    QFILE_DEPENDENT_MODE dep_mode
) 

function qfile_copy_tuple_descr_to_tuple

int qfile_copy_tuple_descr_to_tuple (
    THREAD_ENTRY * thread_p,
    QFILE_TUPLE_DESCRIPTOR * tpl_descr,
    QFILE_TUPLE_RECORD * tplrec
) 

function qfile_destroy_list

void qfile_destroy_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p
) 

function qfile_dump_list_cache

int qfile_dump_list_cache (
    THREAD_ENTRY * thread_p,
    const  char * fname
) 

function qfile_dump_list_cache_internal

int qfile_dump_list_cache_internal (
    THREAD_ENTRY * thread_p,
    FILE * fp
) 

function qfile_duplicate_list

QFILE_LIST_ID * qfile_duplicate_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    int flag
) 

function qfile_end_scan_fix

void qfile_end_scan_fix (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * scan_id_p
) 

function qfile_end_use_of_list_cache_entry

int qfile_end_use_of_list_cache_entry (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_CACHE_ENTRY * lent,
    bool marker
) 

function qfile_fast_intint_tuple_to_list

int qfile_fast_intint_tuple_to_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    int v1,
    int v2
) 

function qfile_fast_intval_tuple_to_list

int qfile_fast_intval_tuple_to_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    int v1,
    DB_VALUE * v2
) 

function qfile_fast_val_tuple_to_list

int qfile_fast_val_tuple_to_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    DB_VALUE * val
) 

function qfile_finalize

void qfile_finalize (
    void
) 

function qfile_finalize_list_cache

int qfile_finalize_list_cache (
    THREAD_ENTRY * thread_p
) 

function qfile_free_list_id

void qfile_free_list_id (
    QFILE_LIST_ID * list_id_p
) 

function qfile_free_list_sector_info

void qfile_free_list_sector_info (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SECTOR_INFO * sector_info
) 

function qfile_free_sort_list

void qfile_free_sort_list (
    THREAD_ENTRY * thread_p,
    SORT_LIST * sort_list_p
) 

function qfile_generate_sort_tuple

QFILE_TUPLE qfile_generate_sort_tuple (
    SORTKEY_INFO * key_info_p,
    SORT_REC * sort_record_p,
    RECDES * output_recdes_p
) 

function qfile_generate_tuple_into_list

int qfile_generate_tuple_into_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    QFILE_TUPLE_TYPE tuple_type
) 

function qfile_get_estimated_pages_for_sorting

int qfile_get_estimated_pages_for_sorting (
    QFILE_LIST_ID * list_id_p,
    SORTKEY_INFO * key_info_p
) 

function qfile_get_first_page

int qfile_get_first_page (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p
) 

function qfile_get_list_cache_number_of_entries

int qfile_get_list_cache_number_of_entries (
    int ht_no
) 

function qfile_get_tuple

int qfile_get_tuple (
    THREAD_ENTRY * thread_p,
    PAGE_PTR first_page_p,
    QFILE_TUPLE tuple,
    QFILE_TUPLE_RECORD * tuple_record_p,
    QFILE_LIST_ID * list_id_p
) 

function qfile_has_next_page

bool qfile_has_next_page (
    PAGE_PTR page_p
) 

function qfile_has_no_cache_entries

bool qfile_has_no_cache_entries () 

function qfile_initialize

int qfile_initialize (
    void
) 

function qfile_initialize_list_cache

int qfile_initialize_list_cache (
    THREAD_ENTRY * thread_p
) 

function qfile_initialize_sort_key_info

SORTKEY_INFO * qfile_initialize_sort_key_info (
    SORTKEY_INFO * key_info_p,
    SORT_LIST * list_p,
    QFILE_TUPLE_VALUE_TYPE_LIST * types
) 

function qfile_is_sort_list_covered

bool qfile_is_sort_list_covered (
    SORT_LIST * covering_list_p,
    SORT_LIST * covered_list_p
) 

function qfile_jump_scan_tuple_position

SCAN_CODE qfile_jump_scan_tuple_position (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * scan_id_p,
    QFILE_TUPLE_POSITION * tuple_position_p,
    QFILE_TUPLE_RECORD * tuple_record_p,
    int peek
) 

function qfile_load_xasl_node_header

void qfile_load_xasl_node_header (
    THREAD_ENTRY * thread_p,
    char * xasl_stream,
    xasl_node_header * xasl_header_p
) 

function qfile_locate_tuple_next_value

int qfile_locate_tuple_next_value (
    OR_BUF * iterator,
    OR_BUF * buf,
    QFILE_TUPLE_VALUE_FLAG * flag
) 

function qfile_locate_tuple_value

QFILE_TUPLE_VALUE_FLAG qfile_locate_tuple_value (
    QFILE_TUPLE tuple,
    int index,
    char ** tuple_value_p,
    int * value_size_p
) 

function qfile_locate_tuple_value_r

QFILE_TUPLE_VALUE_FLAG qfile_locate_tuple_value_r (
    QFILE_TUPLE tuple,
    int index,
    char ** tuple_value_p,
    int * value_size_p
) 

function qfile_lookup_list_cache_entry

QFILE_LIST_CACHE_ENTRY * qfile_lookup_list_cache_entry (
    THREAD_ENTRY * thread_p,
    XASL_CACHE_ENTRY * xasl,
    const  DB_VALUE_ARRAY * params,
    bool * result_cached
) 

function qfile_make_sort_key

SORT_STATUS qfile_make_sort_key (
    THREAD_ENTRY * thread_p,
    SORTKEY_INFO * key_info_p,
    RECDES * key_record_p,
    QFILE_LIST_SCAN_ID * input_scan_p,
    QFILE_TUPLE_RECORD * tuple_record_p
) 

function qfile_modify_type_list

int qfile_modify_type_list (
    QFILE_TUPLE_VALUE_TYPE_LIST * type_list_p,
    QFILE_LIST_ID * list_id_p
) 

function qfile_open_list

QFILE_LIST_ID * qfile_open_list (
    THREAD_ENTRY * thread_p,
    QFILE_TUPLE_VALUE_TYPE_LIST * type_list_p,
    SORT_LIST * sort_list_p,
    QUERY_ID query_id,
    int flag,
    QFILE_LIST_ID * existing_list_id
) 

function qfile_open_list_scan

int qfile_open_list_scan (
    QFILE_LIST_ID * list_id_p,
    QFILE_LIST_SCAN_ID * scan_id_p
) 

function qfile_overwrite_tuple

int qfile_overwrite_tuple (
    THREAD_ENTRY * thread_p,
    PAGE_PTR first_page_p,
    QFILE_TUPLE tuple,
    QFILE_TUPLE_RECORD * tuple_record_p,
    QFILE_LIST_ID * list_id_p
) 

function qfile_print_list

void qfile_print_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p
) 

function qfile_print_tuple

void qfile_print_tuple (
    QFILE_TUPLE_VALUE_TYPE_LIST * type_list_p,
    QFILE_TUPLE tuple
) 

function qfile_reallocate_tuple

int qfile_reallocate_tuple (
    QFILE_TUPLE_RECORD * tuple_record_p,
    int tuple_size
) 

function qfile_reopen_list_as_append_mode

int qfile_reopen_list_as_append_mode (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p
) 

function qfile_save_current_scan_tuple_position

void qfile_save_current_scan_tuple_position (
    QFILE_LIST_SCAN_ID * scan_id_p,
    QFILE_TUPLE_POSITION * tuple_position_p
) 

function qfile_save_tuple

int qfile_save_tuple (
    QFILE_TUPLE_DESCRIPTOR * tuple_descr_p,
    QFILE_TUPLE_TYPE tuple_type,
    char * page_p,
    int * tuple_length_p
) 

function qfile_scan_list_next

SCAN_CODE qfile_scan_list_next (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * scan_id_p,
    QFILE_TUPLE_RECORD * tuple_record_p,
    int peek
) 

function qfile_scan_list_prev

SCAN_CODE qfile_scan_list_prev (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * scan_id_p,
    QFILE_TUPLE_RECORD * tuple_record_p,
    int peek
) 

function qfile_set_tuple_column_value

int qfile_set_tuple_column_value (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    PAGE_PTR curr_page_p,
    VPID * vpid_p,
    QFILE_TUPLE tuple_p,
    int col_num,
    DB_VALUE * value_p,
    TP_DOMAIN * domain_p
) 

function qfile_sort_list

QFILE_LIST_ID * qfile_sort_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    SORT_LIST * sort_list_p,
    QUERY_OPTIONS option,
    bool do_close
) 

function qfile_sort_list_with_func

QFILE_LIST_ID * qfile_sort_list_with_func (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    SORT_LIST * sort_list_p,
    QUERY_OPTIONS option,
    int flag,
    SORT_GET_FUNC * get_func,
    SORT_PUT_FUNC * put_func,
    SORT_CMP_FUNC * cmp_func,
    void * extra_arg,
    int limit,
    bool do_close,
    int parallelism,
    ORDERBY_STATS * orderby_stats
) 

function qfile_start_scan_fix

int qfile_start_scan_fix (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * scan_id_p
) 

function qfile_truncate_list

int qfile_truncate_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id
) 

function qfile_unify_types

int qfile_unify_types (
    QFILE_LIST_ID * list_id1_p,
    const  QFILE_LIST_ID * list_id2_p
) 

function qfile_update_domains_on_type_list

int qfile_update_domains_on_type_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    valptr_list_node * valptr_list_p
) 

function qfile_update_list_cache_entry

QFILE_LIST_CACHE_ENTRY * qfile_update_list_cache_entry (
    THREAD_ENTRY * thread_p,
    int list_ht_no,
    const  DB_VALUE_ARRAY * params,
    const  QFILE_LIST_ID * list_id,
    XASL_CACHE_ENTRY * xasl
) 

function qfile_update_qlist_count

void qfile_update_qlist_count (
    THREAD_ENTRY * thread_p,
    const  QFILE_LIST_ID * list_p,
    int inc
) 

function xqfile_get_list_file_page

int xqfile_get_list_file_page (
    THREAD_ENTRY * thread_p,
    QUERY_ID query_id,
    VOLID vol_id,
    PAGEID page_id,
    char * page_buf_p,
    int * page_size_p
) 

Public Static Functions Documentation

function qfile_add_one_tuple

static int qfile_add_one_tuple (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * dst,
    QFILE_TUPLE lhs,
    QFILE_TUPLE rhs
) 

function qfile_add_tuple_to_list_id

static void qfile_add_tuple_to_list_id (
    QFILE_LIST_ID * list_id_p,
    PAGE_PTR page_p,
    int tuple_length,
    int written_tuple_length
) 

function qfile_add_two_tuple

static int qfile_add_two_tuple (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * dst,
    QFILE_TUPLE lhs,
    QFILE_TUPLE rhs
) 

function qfile_add_uncommitted_list_cache_entry

static void qfile_add_uncommitted_list_cache_entry (
    int tran_index,
    QFILE_LIST_CACHE_ENTRY * lent
) 

function qfile_advance

static int qfile_advance (
    THREAD_ENTRY * thread_p,
    ADVANCE_FUCTION advance_func,
    QFILE_TUPLE_RECORD * side_p,
    QFILE_TUPLE_RECORD * last_side_p,
    QFILE_LIST_SCAN_ID * scan_p,
    QFILE_LIST_SCAN_ID * last_scan_p,
    QFILE_LIST_ID * side_file_p,
    int * have_side_p
) 

function qfile_advance_group

static SCAN_CODE qfile_advance_group (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * next_scan,
    QFILE_TUPLE_RECORD * next_tpl,
    QFILE_LIST_SCAN_ID * last_scan,
    QFILE_TUPLE_RECORD * last_tpl,
    QFILE_TUPLE_VALUE_TYPE_LIST * types
) 

function qfile_advance_single

static SCAN_CODE qfile_advance_single (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * next_scan,
    QFILE_TUPLE_RECORD * next_tpl,
    QFILE_LIST_SCAN_ID * last_scan,
    QFILE_TUPLE_RECORD * last_tpl,
    QFILE_TUPLE_VALUE_TYPE_LIST * types
) 

function qfile_alloc_sort_list

static void * qfile_alloc_sort_list (
    void
) 

function qfile_allocate_list_cache_entry

static QFILE_LIST_CACHE_ENTRY * qfile_allocate_list_cache_entry (
    int req_size
) 

function qfile_allocate_new_ovf_page

static PAGE_PTR qfile_allocate_new_ovf_page (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    PAGE_PTR page_p,
    PAGE_PTR prev_page_p,
    int tuple_length,
    int offset,
    int * tuple_page_size_p
) 

function qfile_allocate_new_page

static PAGE_PTR qfile_allocate_new_page (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    PAGE_PTR page_p,
    bool is_ovf_page
) 

function qfile_allocate_new_page_if_need

static int qfile_allocate_new_page_if_need (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id_p,
    PAGE_PTR * page_p,
    int tuple_length,
    bool is_ovf_page
) 

function qfile_assign_list_cache

static int qfile_assign_list_cache (
    void
) 

function qfile_clear_sort_info

static void qfile_clear_sort_info (
    SORT_INFO * info
) 

function qfile_close_and_free_list_file

static void qfile_close_and_free_list_file (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id
) 

function qfile_compare_cleanup_candidates

static BH_CMP_RESULT qfile_compare_cleanup_candidates (
    const  void * left,
    const  void * right,
    BH_CMP_ARG ignore_arg
) 

function qfile_compare_equal_db_value_array

static int qfile_compare_equal_db_value_array (
    const  void * key1,
    const  void * key2
) 

function qfile_compare_tran_id

static int qfile_compare_tran_id (
    const  void * t1,
    const  void * t2
) 

function qfile_compare_tuple_helper

static int qfile_compare_tuple_helper (
    QFILE_TUPLE lhs,
    QFILE_TUPLE rhs,
    QFILE_TUPLE_VALUE_TYPE_LIST * types,
    int * cmp
) 

function qfile_compare_tuple_values

static int qfile_compare_tuple_values (
    QFILE_TUPLE tplp1,
    QFILE_TUPLE tplp2,
    TP_DOMAIN * domain,
    int * cmp
) 

function qfile_compare_with_interpolation_domain

static int qfile_compare_with_interpolation_domain (
    char * fp0,
    char * fp1,
    SUBKEY_INFO * subkey,
    SORTKEY_INFO * key_info
) 

function qfile_compare_with_null_value

static int qfile_compare_with_null_value (
    int o0,
    int o1,
    SUBKEY_INFO key_info
) 

function qfile_copy_list_pages

static int qfile_copy_list_pages (
    THREAD_ENTRY * thread_p,
    VPID * old_first_vpidp,
    QMGR_TEMP_FILE * old_tfile_vfidp,
    VPID * new_first_vpidp,
    VPID * new_last_vpidp,
    QMGR_TEMP_FILE * new_tfile_vfidp
) 

function qfile_copy_tuple

static int qfile_copy_tuple (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * to_list_id_p,
    QFILE_LIST_ID * from_list_id_p
) 

function qfile_dealloc_sort_list

static int qfile_dealloc_sort_list (
    void * sort_list
) 

function qfile_delete_list_cache_entry

static int qfile_delete_list_cache_entry (
    THREAD_ENTRY * thread_p,
    void * data
) 

function qfile_delete_uncommitted_list_cache_entry

static void qfile_delete_uncommitted_list_cache_entry (
    int tran_index,
    QFILE_LIST_CACHE_ENTRY * lent
) 

function qfile_end_use_of_list_cache_entry_local

static int qfile_end_use_of_list_cache_entry_local (
    THREAD_ENTRY * thread_p,
    void * data,
    void * args
) 

function qfile_free_list_cache_entry

static int qfile_free_list_cache_entry (
    THREAD_ENTRY * thread_p,
    void * data,
    void * args
) 

function qfile_get_list_cache_entry_param_values

static DB_VALUE * qfile_get_list_cache_entry_param_values (
    QFILE_LIST_CACHE_ENTRY * ent
) 

function qfile_get_list_cache_entry_size_for_allocate

static int qfile_get_list_cache_entry_size_for_allocate (
    int nparam
) 

function qfile_get_list_cache_entry_tran_index_array

static int * qfile_get_list_cache_entry_tran_index_array (
    QFILE_LIST_CACHE_ENTRY * ent
) 

function qfile_get_next_sort_item

static SORT_STATUS qfile_get_next_sort_item (
    THREAD_ENTRY * thread_p,
    RECDES * recdes,
    void * arg
) 

function qfile_get_sort_list_size

static int qfile_get_sort_list_size (
    SORT_LIST * sort_list
) 

function qfile_get_tuple_from_current_list

static int qfile_get_tuple_from_current_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * scan_id_p,
    QFILE_TUPLE_RECORD * tuple_record_p
) 

function qfile_hash_db_value_array

static unsigned  int qfile_hash_db_value_array (
    const  void * key,
    unsigned  int htsize
) 

function qfile_initialize_page_header

static void qfile_initialize_page_header (
    PAGE_PTR page_p
) 

function qfile_initialize_sort_info

static SORT_INFO * qfile_initialize_sort_info (
    SORT_INFO * info,
    QFILE_LIST_ID * listid,
    SORT_LIST * sort_list
) 

function qfile_is_early_time

static bool qfile_is_early_time (
    struct  timeval * a,
    struct  timeval * b
) 

function qfile_is_first_tuple

static bool qfile_is_first_tuple (
    QFILE_LIST_ID * list_id_p
) 

function qfile_is_last_page_full

static bool qfile_is_last_page_full (
    QFILE_LIST_ID * list_id_p,
    int tuple_length,
    const  bool is_ovf_page
) 

function qfile_list_cache_cleanup

static int qfile_list_cache_cleanup (
    THREAD_ENTRY * thread_p
) 

function qfile_print_list_cache_entry

static int qfile_print_list_cache_entry (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    const  void * key,
    void * data,
    void * args
) 

function qfile_put_next_sort_item

static int qfile_put_next_sort_item (
    THREAD_ENTRY * thread_p,
    const  RECDES * recdes,
    void * arg
) 

function qfile_retrieve_tuple

static SCAN_CODE qfile_retrieve_tuple (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * scan_id_p,
    QFILE_TUPLE_RECORD * tuple_record_p,
    int peek
) 

function qfile_save_merge_tuple

static int qfile_save_merge_tuple (
    QFILE_TUPLE_DESCRIPTOR * tuple_descr_p,
    char * tuple_p,
    char * page_p,
    int * tuple_length_p
) 

function qfile_save_normal_tuple

static int qfile_save_normal_tuple (
    QFILE_TUPLE_DESCRIPTOR * tuple_descr_p,
    char * tuple_p,
    char * page_p,
    int tuple_length
) 

function qfile_save_single_bound_item_tuple

static int qfile_save_single_bound_item_tuple (
    QFILE_TUPLE_DESCRIPTOR * tuple_descr_p,
    char * tuple_p,
    char * page_p,
    int tuple_length
) 

function qfile_save_sort_key_tuple

static int qfile_save_sort_key_tuple (
    QFILE_TUPLE_DESCRIPTOR * tuple_descr_p,
    char * tuple_p,
    char * page_p,
    int tuple_length
) 

function qfile_scan_list

static SCAN_CODE qfile_scan_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * scan_id_p,
    SCAN_CODE (*)( THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *) scan_func,
    QFILE_TUPLE_RECORD * tuple_record_p,
    int peek
) 

function qfile_scan_next

static SCAN_CODE qfile_scan_next (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * s_id
) 

function qfile_scan_prev

static SCAN_CODE qfile_scan_prev (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_SCAN_ID * s_id
) 

function qfile_set_dirty_page

static void qfile_set_dirty_page (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page_p,
    int free_page,
    QMGR_TEMP_FILE * vfid_p
) 

function qfile_set_dirty_page_and_skip_logging

static void qfile_set_dirty_page_and_skip_logging (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page_p,
    VFID * vfid_p,
    int free_page
) 

function qfile_union_list

static QFILE_LIST_ID * qfile_union_list (
    THREAD_ENTRY * thread_p,
    QFILE_LIST_ID * list_id1,
    QFILE_LIST_ID * list_id2,
    int flag
) 

Macro Definition Documentation

define ADDITION_FOR_POOLED_LIST_CACHE_ENTRY

#define ADDITION_FOR_POOLED_LIST_CACHE_ENTRY `offsetof ( QFILE_POOLED_LIST_CACHE_ENTRY , s.entry)`

define FIXED_SIZE_OF_POOLED_LIST_CACHE_ENTRY

#define FIXED_SIZE_OF_POOLED_LIST_CACHE_ENTRY `4096`

define LS_PUT_NEXT_VPID

#define LS_PUT_NEXT_VPID (
    ptr
) `/* multi line expression */`

define POOLED_LIST_CACHE_ENTRY_FROM_LIST_CACHE_ENTRY

#define POOLED_LIST_CACHE_ENTRY_FROM_LIST_CACHE_ENTRY (
    p
) `(( QFILE_POOLED_LIST_CACHE_ENTRY *) (( char *) p - ADDITION_FOR_POOLED_LIST_CACHE_ENTRY ))`

define QFILE_CHECK_LIST_FILE_IS_CLOSED

#define QFILE_CHECK_LIST_FILE_IS_CLOSED (
    list_id
) `assert (list_id != NULL &&(! VPID_ISNULL (&list_id->last_vpid) ? (list_id->last_pgptr != NULL ) : true ))`

define QFILE_DEFAULT_PAGES

#define QFILE_DEFAULT_PAGES `4`


The documentation for this class was generated from the following file cubrid/src/query/list_file.c