26
struct ReadRecord { /* Parameter to read_record */
27
Table *table; /* Head-form */
29
Table **forms; /* head and ref forms */
30
int (*read_record)(ReadRecord *);
32
optimizer::SqlSelect *select;
33
uint32_t cache_records;
35
uint32_t struct_length;
37
uint32_t rec_cache_size;
38
uint32_t error_offset;
40
unsigned char *ref_pos; /* pointer to form->refpos */
41
unsigned char *record;
42
unsigned char *rec_buf; /* to read field values after filesort */
46
unsigned char *getCache()
50
unsigned char *cache_pos;
51
unsigned char *cache_end;
52
unsigned char *read_positions;
53
internal::IO_CACHE *io_cache;
55
bool ignore_not_found_rows;
56
JoinTable *do_insideout_scan;
80
ignore_not_found_rows(0),
109
ignore_not_found_rows= 0;
110
do_insideout_scan= 0;
113
virtual ~ReadRecord()
27
Initialize ReadRecord structure to perform full index scan (in forward
28
direction) using read_record.read_record() interface.
30
This function has been added at late stage and is used only by
31
UPDATE/DELETE. Other statements perform index scans using
32
join_read_first/next functions.
34
@param info ReadRecord structure to initialize.
35
@param session Thread handle
36
@param table Table to be accessed
37
@param print_error If true, call table->print_error() if an error
38
occurs (except for end-of-records error)
39
@param idx index to scan
41
void init_read_record_idx(ReadRecord *info,
117
48
init_read_record is used to scan by using a number of different methods.
181
112
This is the most basic access method of a table using rnd_init,
182
113
rnd_next and rnd_end. No indexes are used.
116
struct ReadRecord { /* Parameter to read_record */
117
Table *table; /* Head-form */
119
Table **forms; /* head and ref forms */
120
int (*read_record)(ReadRecord *);
122
optimizer::SqlSelect *select;
123
uint32_t cache_records;
124
uint32_t ref_length,struct_length,reclength,rec_cache_size,error_offset;
126
unsigned char *ref_pos; /* pointer to form->refpos */
127
unsigned char *record;
128
unsigned char *rec_buf; /* to read field values after filesort */
129
unsigned char *cache,*cache_pos,*cache_end,*read_positions;
130
internal::IO_CACHE *io_cache;
131
bool print_error, ignore_not_found_rows;
132
JoinTable *do_insideout_scan;
184
134
void init_read_record(Session *session,
186
136
optimizer::SqlSelect *select,
188
138
bool print_errors);
190
140
void end_read_record();
194
Initialize ReadRecord structure to perform full index scan (in forward
195
direction) using read_record.read_record() interface.
197
This function has been added at late stage and is used only by
198
UPDATE/DELETE. Other statements perform index scans using
199
join_read_first/next functions.
201
@param info ReadRecord structure to initialize.
202
@param session Thread handle
203
@param table Table to be accessed
204
@param print_error If true, call table->print_error() if an error
205
occurs (except for end-of-records error)
206
@param idx index to scan
208
void init_read_record_idx(Session *session,
213
void init_reard_record_sequential();
215
bool init_rr_cache();
218
143
} /* namespace drizzled */