Drizzled Public API Documentation

row0sel.h
Go to the documentation of this file.
1 /*****************************************************************************
2 
3 Copyright (C) 1997, 2010, Innobase Oy. All Rights Reserved.
4 
5 This program is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free Software
7 Foundation; version 2 of the License.
8 
9 This program is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 
13 You should have received a copy of the GNU General Public License along with
14 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
15 St, Fifth Floor, Boston, MA 02110-1301 USA
16 
17 *****************************************************************************/
18 
19 /**************************************************/
26 #pragma once
27 #ifndef row0sel_h
28 #define row0sel_h
29 
30 #include "univ.i"
31 #include "data0data.h"
32 #include "que0types.h"
33 #include "dict0types.h"
34 #include "trx0types.h"
35 #include "row0types.h"
36 #include "que0types.h"
37 #include "pars0sym.h"
38 #include "btr0pcur.h"
39 #include "read0read.h"
40 #include "row0mysql.h"
41 
42 /*********************************************************************/
45 UNIV_INTERN
48 /*============*/
49  mem_heap_t* heap);
50 /*********************************************************************/
53 UNIV_INTERN
54 void
56 /*==================*/
57  sel_node_t* node);
58 /*********************************************************************/
61 UNIV_INTERN
62 void
64 /*======================*/
65  sel_buf_t* prefetch_buf);
66 /*********************************************************************/
69 UNIV_INLINE
70 plan_t*
72 /*==================*/
73  sel_node_t* node,
74  ulint i);
75 /**********************************************************************/
79 UNIV_INTERN
80 que_thr_t*
82 /*=========*/
83  que_thr_t* thr);
84 /**********************************************************************/
87 UNIV_INLINE
88 que_thr_t*
89 open_step(
90 /*======*/
91  que_thr_t* thr);
92 /**********************************************************************/
95 UNIV_INTERN
96 que_thr_t*
98 /*=======*/
99  que_thr_t* thr);
100 /****************************************************************/
103 UNIV_INTERN
104 void*
106 /*============*/
107  void* row,
108  void* user_arg);
109 /***********************************************************/
112 UNIV_INTERN
113 que_thr_t*
115 /*============*/
116  que_thr_t* thr);
117 /****************************************************************/
123 UNIV_INTERN
124 void
126 /*==================================*/
127  dtuple_t* tuple,
131  byte* buf,
133  ulint buf_len,
134  dict_index_t* index,
135  const byte* key_ptr,
136  ulint key_len,
137  trx_t* trx);
138 /********************************************************************/
146 UNIV_INTERN
147 ulint
149 /*=================*/
150  byte* buf,
152  ulint mode,
153  row_prebuilt_t* prebuilt,
160  ulint match_mode,
162  ulint direction);
167 /*******************************************************************/
171 UNIV_INTERN
172 ibool
174 /*======================================*/
175  trx_t* trx,
176  const char* norm_name);
178 /*******************************************************************/
181 UNIV_INTERN
182 ulint
184 /*===================*/
185  dict_index_t* index,
186  const char* col_name,
187  ib_uint64_t* value);
191  byte* data;
195  ulint len;
200 };
201 
203 struct plan_struct{
209  ibool asc;
210  ibool pcur_is_open;
223  que_node_t** tuple_exps;
230  ulint mode;
243  ibool no_prefetch;
244  sym_node_list_t columns;
266  ulint* clust_map;
277 };
278 
286 };
287 
292  state;
293  que_node_t* select_list;
296  ibool asc;
298  ibool set_x_locks;
302  ulint n_tables;
303  ulint fetch_table;
308  que_node_t* search_cond;
316  ibool is_aggregate;
335  copy_variables;
339 };
340 
360 };
361 
366 };
367 
372  op_type;
375 };
376 
381 };
382 
387 };
388 
397 };
398 
399 #ifndef UNIV_NONINL
400 #include "row0sel.ic"
401 #endif
402 
403 #endif
sel_node_t * sel_node
Definition: row0sel.h:380
ulint val_buf_size
Definition: row0sel.h:196
UNIV_INTERN ulint row_search_for_mysql(byte *buf, ulint mode, row_prebuilt_t *prebuilt, ulint match_mode, ulint direction)
Definition: row0sel.cc:3346
ibool pcur_is_open
Definition: row0sel.h:210
ulint first_prefetched
Definition: row0sel.h:241
row_sel_direction
Definition: row0sel.h:384
plan_t * plans
Definition: row0sel.h:305
UNIV_INTERN void sel_col_prefetch_buf_free(sel_buf_t *prefetch_buf)
Definition: row0sel.cc:505
ulint mode
Definition: row0sel.h:230
UNIV_INTERN void * row_fetch_print(void *row, void *user_arg)
Definition: row0sel.cc:2181
sym_node_t * into_list
Definition: row0sel.h:294
UNIV_INLINE plan_t * sel_node_get_nth_plan(sel_node_t *node, ulint i)
UNIV_INTERN ulint row_search_max_autoinc(dict_index_t *index, const char *col_name, ib_uint64_t *value)
Definition: row0sel.cc:4844
que_common_t common
Definition: row0sel.h:370
sym_node_t * table_list
Definition: row0sel.h:295
ulint n_rows_prefetched
Definition: row0sel.h:238
row_sel_match_mode
Definition: row0sel.h:390
que_node_t ** tuple_exps
Definition: row0sel.h:223
ulint n_rows_fetched
Definition: row0sel.h:236
ibool unique_search
Definition: row0sel.h:234
ulint n_exact_match
Definition: row0sel.h:231
dict_index_t * index
Definition: row0sel.h:206
ibool consistent_read
Definition: row0sel.h:312
sel_node_t * cursor_def
Definition: row0sel.h:374
que_common_t common
Definition: row0sel.h:290
ibool set_x_locks
Definition: row0sel.h:298
typedef UT_LIST_BASE_NODE_T(mutex_t) ut_list_base_node_t
UNIV_INTERN void sel_node_free_private(sel_node_t *node)
Definition: row0sel.cc:275
ibool no_prefetch
Definition: row0sel.h:243
UNIV_INTERN sel_node_t * sel_node_create(mem_heap_t *heap)
Definition: row0sel.cc:255
sym_node_t * into_list
Definition: row0sel.h:345
order_node_t * order_by
Definition: row0sel.h:314
ibool must_get_clust
Definition: row0sel.h:258
UNIV_INTERN void row_sel_convert_mysql_key_to_innobase(dtuple_t *tuple, byte *buf, ulint buf_len, dict_index_t *index, const byte *key_ptr, ulint key_len, trx_t *trx)
Definition: row0sel.cc:2292
que_node_t * select_list
Definition: row0sel.h:293
btr_pcur_t clust_pcur
Definition: row0sel.h:272
dict_table_t * table
Definition: row0sel.h:204
ibool stored_cursor_rec_processed
Definition: row0sel.h:219
que_common_t common
Definition: row0sel.h:343
btr_pcur_t pcur
Definition: row0sel.h:207
ibool can_get_updated
Definition: row0sel.h:322
pars_user_func_t * func
Definition: row0sel.h:348
mem_heap_t * old_vers_heap
Definition: row0sel.h:275
sym_node_list_t columns
Definition: row0sel.h:244
byte * data
Definition: row0sel.h:191
ibool is_aggregate
Definition: row0sel.h:316
UNIV_INTERN que_thr_t * row_printf_step(que_thr_t *thr)
Definition: row0sel.cc:2225
ibool aggregate_already_fetched
Definition: row0sel.h:318
UNIV_INTERN ibool row_search_check_if_query_cache_permitted(trx_t *trx, const char *norm_name)
Definition: row0sel.cc:4708
ulint * clust_map
Definition: row0sel.h:266
ulint fetch_table
Definition: row0sel.h:303
ulint n_tables
Definition: row0sel.h:302
dtuple_t * tuple
Definition: row0sel.h:229
UNIV_INLINE que_thr_t * open_step(que_thr_t *thr)
sel_node_state
Definition: row0sel.h:280
UNIV_INTERN que_thr_t * fetch_step(que_thr_t *thr)
Definition: row0sel.cc:2118
ulint row_lock_mode
Definition: row0sel.h:301
ibool cursor_at_end
Definition: row0sel.h:212
dtuple_t * clust_ref
Definition: row0sel.h:269
sel_node_t * cursor_def
Definition: row0sel.h:344
que_common_t common
Definition: row0sel.h:379
open_node_op
Definition: row0sel.h:363
que_node_t * search_cond
Definition: row0sel.h:308
ibool asc
Definition: row0sel.h:209
sym_node_t * explicit_cursor
Definition: row0sel.h:333
read_view_t * read_view
Definition: row0sel.h:309
UNIV_INTERN que_thr_t * row_sel_step(que_thr_t *thr)
Definition: row0sel.cc:2015