MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
records.h
1 #ifndef SQL_RECORDS_H
2 #define SQL_RECORDS_H
3 /* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; version 2 of the License.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software Foundation,
16  51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
17 
18 #include <my_global.h> /* for uint typedefs */
19 
20 typedef struct st_join_table JOIN_TAB;
21 class handler;
22 struct TABLE;
23 class THD;
24 class SQL_SELECT;
25 
44 {
45  typedef int (*Read_func)(READ_RECORD*);
46  typedef void (*Unlock_row_func)(st_join_table *);
47  typedef int (*Setup_func)(JOIN_TAB*);
48 
49  TABLE *table; /* Head-form */
50  TABLE **forms; /* head and ref forms */
51  Unlock_row_func unlock_row;
52  Read_func read_record;
53  THD *thd;
54  SQL_SELECT *select;
55  uint cache_records;
56  uint ref_length,struct_length,reclength,rec_cache_size,error_offset;
57  uint index;
58  uchar *ref_pos; /* pointer to form->refpos */
59  uchar *record;
60  uchar *rec_buf; /* to read field values after filesort */
61  uchar *cache,*cache_pos,*cache_end,*read_positions;
62  struct st_io_cache *io_cache;
63  bool print_error, ignore_not_found_rows;
64 
65 public:
66  READ_RECORD() {}
67 };
68 
69 bool init_read_record(READ_RECORD *info, THD *thd, TABLE *reg_form,
70  SQL_SELECT *select, int use_record_cache,
71  bool print_errors, bool disable_rr_cache);
72 bool init_read_record_idx(READ_RECORD *info, THD *thd, TABLE *table,
73  bool print_error, uint idx, bool reverse);
74 void end_read_record(READ_RECORD *info);
75 
76 void rr_unlock_row(st_join_table *tab);
77 int rr_sequential(READ_RECORD *info);
78 
79 #endif /* SQL_RECORDS_H */