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
Public Types
Public Attributes
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) &&((&list\_id->last\_vpid) ? (list\_id->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
)
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
)
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