CUBRID Engine  latest
list_file.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008 Search Solution Corporation
3  * Copyright 2016 CUBRID Corporation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 
20 /*
21  * List files (Server Side)
22  */
23 
24 #ifndef _LIST_FILE_H_
25 #define _LIST_FILE_H_
26 
27 #ident "$Id$"
28 
29 #if !defined (SERVER_MODE) && !defined (SA_MODE)
30 #error Belongs to server module
31 #endif /* !defined (SERVER_MODE) && !defined (SA_MODE) */
32 
33 #include "dbtype_def.h"
34 #include "external_sort.h"
35 #if defined (SERVER_MODE)
36 #include "log_comm.h" // for TRAN_ISOLATION; todo - remove it.
37 #endif // SERVER_MODE
38 #include "query_list.h"
39 #include "storage_common.h"
40 #include "thread_compat.hpp"
41 
42 #include "xasl_cache.h"
43 
44 #include <stdio.h>
45 
46 // forward definitions
47 struct or_buf;
48 typedef struct or_buf OR_BUF;
49 struct valptr_list_node;
50 struct xasl_node_header;
51 
53 
54 #define QFILE_IS_LIST_CACHE_DISABLED (qfile_Is_list_cache_disabled)
55 
56 #define QFILE_FREE_AND_INIT_LIST_ID(list_id) \
57  do { \
58  if (list_id != NULL) \
59  { \
60  qfile_free_list_id (list_id); \
61  list_id = NULL; \
62  } \
63  } while (0)
64 
67 {
68  int pg_tplcnt; /* tuple count for the page */
69  PAGEID prev_pgid; /* previous page identifier */
70  PAGEID next_pgid; /* next page identifier */
71  int lasttpl_off; /* offset value of the last tuple */
72  PAGEID ovfl_pgid; /* overflow page identifier */
73  VOLID prev_volid; /* previous page volume identifier */
74  VOLID next_volid; /* next page volume identifier */
75  VOLID ovfl_volid; /* overflow page volume identifier */
76 };
77 #define QFILE_PAGE_HEADER_INITIALIZER \
78  { 0, NULL_PAGEID, NULL_PAGEID, 0, NULL_PAGEID, NULL_VOLID, NULL_VOLID, NULL_VOLID }
79 
80 /* query result(list file) cache entry type definition */
83 {
84  int list_ht_no; /* list_ht no to which this entry belongs */
85  DB_VALUE_ARRAY param_values; /* parameter values bound to this result */
86  QFILE_LIST_ID list_id; /* list file(query result) identifier */
87 #if defined(SERVER_MODE)
88  QFILE_LIST_CACHE_ENTRY *tran_next; /* next entry in the transaction list */
89  TRAN_ISOLATION tran_isolation; /* isolation level of the transaction which made this result */
90  bool uncommitted_marker; /* the transaction that made this entry is not committed yet */
91  int *tran_index_array; /* array of TID(tran index)s that are currently using this list file; size is
92  * MAX_NTRANS */
93  size_t last_ta_idx; /* index of the last element in TIDs array */
94 #endif /* SERVER_MODE */
95  XASL_CACHE_ENTRY *xcache_entry; /* xasl_cache entry */
96  const char *query_string; /* query string; information purpose only */
97  struct timeval time_created; /* when this entry created */
98  struct timeval time_last_used; /* when this entry used lastly */
99  int ref_count; /* how many times this query used */
100  bool deletion_marker; /* this entry will be deleted if marker set */
101 };
102 
103 enum
104 {
108 };
109 
110 /* List manipulation routines */
111 extern int qfile_initialize (void);
112 extern void qfile_finalize (void);
113 extern void qfile_destroy_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id);
114 extern void qfile_close_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id);
115 extern int qfile_add_tuple_to_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id, QFILE_TUPLE tpl);
116 extern int qfile_add_tuple_get_pos_in_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id, QFILE_TUPLE tpl,
117  QFILE_TUPLE_POSITION * tuple_pos);
118 extern int qfile_add_overflow_tuple_to_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id, PAGE_PTR ovfl_tpl_pg,
119  QFILE_LIST_ID * input_list_id);
120 extern int qfile_get_first_page (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id);
121 
122 /* Copy routines */
123 extern int qfile_copy_list_id (QFILE_LIST_ID * dest_list_id, const QFILE_LIST_ID * src_list_id, bool include_sort_list);
124 extern QFILE_LIST_ID *qfile_clone_list_id (const QFILE_LIST_ID * list_id, bool include_sort_list);
125 
126 /* Free routines */
127 extern void qfile_free_list_id (QFILE_LIST_ID * list_id);
128 extern void qfile_free_sort_list (THREAD_ENTRY * thread_p, SORT_LIST * sort_list);
129 
130 /* Alloc routines */
131 extern SORT_LIST *qfile_allocate_sort_list (THREAD_ENTRY * thread_p, int cnt);
132 
133 /* sort_list related routines */
134 extern bool qfile_is_sort_list_covered (SORT_LIST * covering_list, SORT_LIST * covered_list);
135 
136 /* Sorting related routines */
137 extern SORT_STATUS qfile_make_sort_key (THREAD_ENTRY * thread_p, SORTKEY_INFO * info, RECDES * key,
138  QFILE_LIST_SCAN_ID * input_scan, QFILE_TUPLE_RECORD * tplrec);
139 extern QFILE_TUPLE qfile_generate_sort_tuple (SORTKEY_INFO * info, SORT_REC * sort_rec, RECDES * output_recdes);
140 extern int qfile_compare_partial_sort_record (const void *pk0, const void *pk1, void *arg);
141 extern int qfile_compare_all_sort_record (const void *pk0, const void *pk1, void *arg);
145 extern void qfile_clear_sort_key_info (SORTKEY_INFO * info);
147  SORT_LIST * sort_list, QUERY_OPTIONS option, int ls_flag,
148  SORT_GET_FUNC * get_fn, SORT_PUT_FUNC * put_fn, SORT_CMP_FUNC * cmp_fn,
149  void *extra_arg, int limit, bool do_close);
151  QUERY_OPTIONS option, bool do_close);
152 
153 /* Query result(list file) cache routines */
154 extern int qfile_initialize_list_cache (THREAD_ENTRY * thread_p);
155 extern int qfile_finalize_list_cache (THREAD_ENTRY * thread_p);
156 extern int qfile_clear_list_cache (THREAD_ENTRY * thread_p, int list_ht_no);
157 extern int qfile_dump_list_cache_internal (THREAD_ENTRY * thread_p, FILE * fp);
158 #if defined (CUBRID_DEBUG)
159 extern int qfile_dump_list_cache (THREAD_ENTRY * thread_p, const char *fname);
160 #endif
161 /* query result(list file) cache entry manipulation functions */
162 void qfile_clear_uncommited_list_cache_entry (THREAD_ENTRY * thread_p, int tran_index);
164  const DB_VALUE_ARRAY * params, bool * result_cached);
166  const DB_VALUE_ARRAY * params, const QFILE_LIST_ID * list_id,
167  XASL_CACHE_ENTRY * xasl);
168 int qfile_end_use_of_list_cache_entry (THREAD_ENTRY * thread_p, QFILE_LIST_CACHE_ENTRY * lent, bool marker);
169 
170 /* Scan related routines */
171 extern int qfile_modify_type_list (QFILE_TUPLE_VALUE_TYPE_LIST * type_list, QFILE_LIST_ID * list_id);
172 extern void qfile_clear_list_id (QFILE_LIST_ID * list_id);
173 
174 extern void qfile_load_xasl_node_header (THREAD_ENTRY * thread_p, char *xasl_stream, xasl_node_header * xasl_header_p);
176  SORT_LIST * sort_list, QUERY_ID query_id, int flag);
177 extern int qfile_reopen_list_as_append_mode (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p);
178 extern int qfile_save_tuple (QFILE_TUPLE_DESCRIPTOR * tuple_descr_p, QFILE_TUPLE_TYPE tuple_type, char *page_p,
179  int *tuple_length_p);
180 extern int qfile_generate_tuple_into_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id, QFILE_TUPLE_TYPE tpl_type);
181 extern int qfile_fast_intint_tuple_to_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, int v1, int v2);
182 extern int qfile_fast_intval_tuple_to_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, int v1, DB_VALUE * v2);
183 extern int qfile_fast_val_tuple_to_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, DB_VALUE * val);
184 extern int qfile_add_item_to_list (THREAD_ENTRY * thread_p, char *item, int item_size, QFILE_LIST_ID * list_id);
185 extern QFILE_LIST_ID *qfile_combine_two_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * lhs_file,
186  QFILE_LIST_ID * rhs_file, int flag);
187 extern int qfile_copy_tuple_descr_to_tuple (THREAD_ENTRY * thread_p, QFILE_TUPLE_DESCRIPTOR * tpl_descr,
188  QFILE_TUPLE_RECORD * tplrec);
189 extern int qfile_reallocate_tuple (QFILE_TUPLE_RECORD * tplrec, int tpl_size);
190 extern int qfile_unify_types (QFILE_LIST_ID * list_id1, const QFILE_LIST_ID * list_id2);
191 #if defined (CUBRID_DEBUG)
192 extern void qfile_print_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id);
193 #endif
194 extern QFILE_LIST_ID *qfile_duplicate_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id, int flag);
195 extern int qfile_get_tuple (THREAD_ENTRY * thread_p, PAGE_PTR first_page, QFILE_TUPLE tuplep,
196  QFILE_TUPLE_RECORD * tplrec, QFILE_LIST_ID * list_idp);
199  QFILE_TUPLE_POSITION * ls_tplpos, QFILE_TUPLE_RECORD * tplrec,
200  int peek);
201 extern int qfile_start_scan_fix (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * s_id);
202 extern int qfile_open_list_scan (QFILE_LIST_ID * list_id, QFILE_LIST_SCAN_ID * s_id);
204  int peek);
206  int peek);
207 extern void qfile_end_scan_fix (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * s_id);
208 extern void qfile_close_scan (THREAD_ENTRY * thread_p, QFILE_LIST_SCAN_ID * s_id);
209 
210 /* Miscellaneous */
211 extern QFILE_TUPLE_VALUE_FLAG qfile_locate_tuple_value (QFILE_TUPLE tpl, int index, char **tpl_val, int *val_size);
212 extern QFILE_TUPLE_VALUE_FLAG qfile_locate_tuple_value_r (QFILE_TUPLE tpl, int index, char **tpl_val, int *val_size);
213 extern int qfile_locate_tuple_next_value (OR_BUF * iterator, OR_BUF * buf, QFILE_TUPLE_VALUE_FLAG * flag);
214 extern bool qfile_has_next_page (PAGE_PTR page_p);
215 extern int qfile_update_domains_on_type_list (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p,
216  valptr_list_node * valptr_list_p);
217 extern int qfile_set_tuple_column_value (THREAD_ENTRY * thread_p, QFILE_LIST_ID * list_id_p, PAGE_PTR curr_page_p,
218  VPID * vpid_p, QFILE_TUPLE tuple_p, int col_num, DB_VALUE * value_p,
219  TP_DOMAIN * domain);
220 extern int qfile_overwrite_tuple (THREAD_ENTRY * thread_p, PAGE_PTR first_page, QFILE_TUPLE tuplep,
221  QFILE_TUPLE_RECORD * tplrec, QFILE_LIST_ID * list_idp);
222 extern void qfile_update_qlist_count (THREAD_ENTRY * thread_p, const QFILE_LIST_ID * list_p, int inc);
223 extern int qfile_get_list_cache_number_of_entries (int ht_no);
224 extern bool qfile_has_no_cache_entries ();
225 
226 
227 #endif /* _LIST_FILE_H_ */
char * PAGE_PTR
QFILE_LIST_ID * qfile_combine_two_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *lhs_file, QFILE_LIST_ID *rhs_file, int flag)
Definition: list_file.c:2576
SORT_STATUS qfile_make_sort_key(THREAD_ENTRY *thread_p, SORTKEY_INFO *info, RECDES *key, QFILE_LIST_SCAN_ID *input_scan, QFILE_TUPLE_RECORD *tplrec)
Definition: list_file.c:3090
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)
Definition: list_file.c:6170
int qfile_fast_intint_tuple_to_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id_p, int v1, int v2)
Definition: list_file.c:1802
SCAN_CODE
int qfile_generate_tuple_into_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id, QFILE_TUPLE_TYPE tpl_type)
Definition: list_file.c:1749
int qfile_get_first_page(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id)
Definition: list_file.c:2112
int qfile_add_item_to_list(THREAD_ENTRY *thread_p, char *item, int item_size, QFILE_LIST_ID *list_id)
Definition: list_file.c:2330
int qfile_unify_types(QFILE_LIST_ID *list_id1, const QFILE_LIST_ID *list_id2)
Definition: list_file.c:826
QFILE_TUPLE_VALUE_FLAG qfile_locate_tuple_value_r(QFILE_TUPLE tpl, int index, char **tpl_val, int *val_size)
Definition: list_file.c:922
QFILE_TUPLE_VALUE_FLAG qfile_locate_tuple_value(QFILE_TUPLE tpl, int index, char **tpl_val, int *val_size)
Definition: list_file.c:905
void qfile_clear_sort_key_info(SORTKEY_INFO *info)
Definition: list_file.c:3826
QFILE_TUPLE qfile_generate_sort_tuple(SORTKEY_INFO *info, SORT_REC *sort_rec, RECDES *output_recdes)
Definition: list_file.c:3226
int qfile_Is_list_cache_disabled
Definition: list_file.c:193
int SORT_PUT_FUNC(THREAD_ENTRY *thread_p, const RECDES *, void *)
Definition: external_sort.h:60
int qfile_copy_tuple_descr_to_tuple(THREAD_ENTRY *thread_p, QFILE_TUPLE_DESCRIPTOR *tpl_descr, QFILE_TUPLE_RECORD *tplrec)
Definition: list_file.c:2846
void qfile_load_xasl_node_header(THREAD_ENTRY *thread_p, char *xasl_stream, xasl_node_header *xasl_header_p)
Definition: list_file.c:1063
void qfile_clear_list_id(QFILE_LIST_ID *list_id)
Definition: list_file.c:526
void qfile_clear_uncommited_list_cache_entry(THREAD_ENTRY *thread_p, int tran_index)
void qfile_free_sort_list(THREAD_ENTRY *thread_p, SORT_LIST *sort_list)
Definition: list_file.c:580
int qfile_add_tuple_to_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id, QFILE_TUPLE tpl)
Definition: list_file.c:1511
SCAN_CODE qfile_jump_scan_tuple_position(THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *s_id, QFILE_TUPLE_POSITION *ls_tplpos, QFILE_TUPLE_RECORD *tplrec, int peek)
Definition: list_file.c:4552
INT16 VOLID
QFILE_LIST_ID * qfile_open_list(THREAD_ENTRY *thread_p, QFILE_TUPLE_VALUE_TYPE_LIST *type_list, SORT_LIST *sort_list, QUERY_ID query_id, int flag)
Definition: list_file.c:1142
QFILE_TUPLE_TYPE
Definition: query_list.h:352
void qfile_destroy_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id)
Definition: list_file.c:2163
DB_VALUE_ARRAY param_values
Definition: list_file.h:85
int qfile_finalize_list_cache(THREAD_ENTRY *thread_p)
Definition: list_file.c:5010
int qfile_compare_all_sort_record(const void *pk0, const void *pk1, void *arg)
Definition: list_file.c:3586
void THREAD_ENTRY
XASL_CACHE_ENTRY * xcache_entry
Definition: list_file.h:95
int qfile_get_estimated_pages_for_sorting(QFILE_LIST_ID *listid, SORTKEY_INFO *info)
Definition: list_file.c:3689
int qfile_add_tuple_get_pos_in_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id, QFILE_TUPLE tpl, QFILE_TUPLE_POSITION *tuple_pos)
Definition: list_file.c:5989
QFILE_LIST_ID * qfile_clone_list_id(const QFILE_LIST_ID *list_id, bool include_sort_list)
Definition: list_file.c:501
void qfile_end_scan_fix(THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *s_id)
Definition: list_file.c:4752
const char * query_string
Definition: list_file.h:96
int ref_count
Definition: list_file.h:99
SORTKEY_INFO * qfile_initialize_sort_key_info(SORTKEY_INFO *info, SORT_LIST *list, QFILE_TUPLE_VALUE_TYPE_LIST *types)
Definition: list_file.c:3728
void qfile_update_qlist_count(THREAD_ENTRY *thread_p, const QFILE_LIST_ID *list_p, int inc)
Definition: list_file.c:6471
bool qfile_is_sort_list_covered(SORT_LIST *covering_list, SORT_LIST *covered_list)
Definition: list_file.c:705
int qfile_save_tuple(QFILE_TUPLE_DESCRIPTOR *tuple_descr_p, QFILE_TUPLE_TYPE tuple_type, char *page_p, int *tuple_length_p)
Definition: list_file.c:1705
int qfile_end_use_of_list_cache_entry(THREAD_ENTRY *thread_p, QFILE_LIST_CACHE_ENTRY *lent, bool marker)
Definition: list_file.c:5849
Definition: list_file.h:82
QFILE_LIST_ID list_id
Definition: list_file.h:86
PAGEID prev_pgid
Definition: list_file.h:69
DB_TRAN_ISOLATION
Definition: dbtran_def.h:26
int qfile_reopen_list_as_append_mode(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id_p)
Definition: list_file.c:1284
int qfile_update_domains_on_type_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id_p, valptr_list_node *valptr_list_p)
Definition: list_file.c:6078
void qfile_close_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id)
Definition: list_file.c:1263
int qfile_start_scan_fix(THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *s_id)
Definition: list_file.c:4628
int qfile_locate_tuple_next_value(OR_BUF *iterator, OR_BUF *buf, QFILE_TUPLE_VALUE_FLAG *flag)
Definition: list_file.c:952
PAGEID next_pgid
Definition: list_file.h:70
SORT_STATUS
Definition: external_sort.h:45
int qfile_get_tuple(THREAD_ENTRY *thread_p, PAGE_PTR first_page, QFILE_TUPLE tuplep, QFILE_TUPLE_RECORD *tplrec, QFILE_LIST_ID *list_idp)
Definition: list_file.c:4211
int qfile_initialize_list_cache(THREAD_ENTRY *thread_p)
Definition: list_file.c:4895
SCAN_CODE qfile_scan_list_prev(THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *s_id, QFILE_TUPLE_RECORD *tplrec, int peek)
Definition: list_file.c:4738
QFILE_LIST_ID * qfile_duplicate_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id, int flag)
Definition: list_file.c:4174
QFILE_LIST_ID * qfile_sort_list_with_func(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id, SORT_LIST *sort_list, QUERY_OPTIONS option, int ls_flag, SORT_GET_FUNC *get_fn, SORT_PUT_FUNC *put_fn, SORT_CMP_FUNC *cmp_fn, void *extra_arg, int limit, bool do_close)
Definition: list_file.c:3912
int list_ht_no
Definition: list_file.h:84
int qfile_fast_val_tuple_to_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id_p, DB_VALUE *val)
Definition: list_file.c:1949
int qfile_overwrite_tuple(THREAD_ENTRY *thread_p, PAGE_PTR first_page, QFILE_TUPLE tuplep, QFILE_TUPLE_RECORD *tplrec, QFILE_LIST_ID *list_idp)
Definition: list_file.c:6298
int qfile_dump_list_cache_internal(THREAD_ENTRY *thread_p, FILE *fp)
Definition: list_file.c:5321
QFILE_TUPLE_VALUE_FLAG
Definition: query_list.h:291
int qfile_copy_list_id(QFILE_LIST_ID *dest_list_id, const QFILE_LIST_ID *src_list_id, bool include_sort_list)
Definition: list_file.c:433
int qfile_add_overflow_tuple_to_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id, PAGE_PTR ovfl_tpl_pg, QFILE_LIST_ID *input_list_id)
Definition: list_file.c:2032
bool deletion_marker
Definition: list_file.h:100
SORT_LIST * qfile_allocate_sort_list(THREAD_ENTRY *thread_p, int cnt)
Definition: list_file.c:613
char * QFILE_TUPLE
Definition: query_list.h:281
int qfile_initialize(void)
Definition: list_file.c:1095
SCAN_CODE qfile_scan_list_next(THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *s_id, QFILE_TUPLE_RECORD *tplrec, int peek)
Definition: list_file.c:4724
int qfile_clear_list_cache(THREAD_ENTRY *thread_p, int list_ht_no)
Definition: list_file.c:5053
int qfile_compare_partial_sort_record(const void *pk0, const void *pk1, void *arg)
Definition: list_file.c:3508
int qfile_reallocate_tuple(QFILE_TUPLE_RECORD *tplrec, int tpl_size)
Definition: list_file.c:3010
int qfile_modify_type_list(QFILE_TUPLE_VALUE_TYPE_LIST *type_list, QFILE_LIST_ID *list_id)
Definition: list_file.c:401
bool qfile_has_next_page(PAGE_PTR page_p)
Definition: list_file.c:6066
void qfile_close_scan(THREAD_ENTRY *thread_p, QFILE_LIST_SCAN_ID *s_id)
Definition: list_file.c:4774
INT32 PAGEID
int qfile_get_list_cache_number_of_entries(int ht_no)
Definition: list_file.c:6486
void qfile_save_current_scan_tuple_position(QFILE_LIST_SCAN_ID *s_id, QFILE_TUPLE_POSITION *ls_tplpos)
Definition: list_file.c:4478
QFILE_LIST_CACHE_ENTRY * qfile_lookup_list_cache_entry(THREAD_ENTRY *thread_p, int list_ht_no, const DB_VALUE_ARRAY *params, bool *result_cached)
Definition: list_file.c:5480
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)
Definition: list_file.c:5627
int qfile_open_list_scan(QFILE_LIST_ID *list_id, QFILE_LIST_SCAN_ID *s_id)
Definition: list_file.c:4658
int SORT_CMP_FUNC(const void *, const void *, void *)
Definition: external_sort.h:61
bool qfile_has_no_cache_entries()
Definition: list_file.c:6494
QFILE_LIST_ID * qfile_sort_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id, SORT_LIST *sort_list, QUERY_OPTIONS option, bool do_close)
Definition: list_file.c:4030
SORT_STATUS SORT_GET_FUNC(THREAD_ENTRY *thread_p, RECDES *, void *)
Definition: external_sort.h:59
void qfile_finalize(void)
Definition: list_file.c:1117
PAGEID ovfl_pgid
Definition: list_file.h:72
void qfile_free_list_id(QFILE_LIST_ID *list_id)
Definition: list_file.c:563
int qfile_fast_intval_tuple_to_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id_p, int v1, DB_VALUE *v2)
Definition: list_file.c:1862
QUERY_OPTIONS