1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

Backport of subquery optimizations to 5.3.

There are still test failures because of:
- Wrong query results in outer join + semi join
- EXPLAIN output differences
This commit is contained in:
Sergey Petrunya
2010-01-17 17:51:10 +03:00
parent 1a490f2da4
commit b83cb52e9e
57 changed files with 30727 additions and 504 deletions

View File

@ -123,6 +123,21 @@ struct st_read_record; /* For referense later */
class SQL_SELECT;
class THD;
class handler;
class Copy_field;
/**
A context for reading through a single table using a chosen access method:
index read, scan, etc, use of cache, etc.
Use by:
READ_RECORD read_record;
init_read_record(&read_record, ...);
while (read_record.read_record())
{
...
}
end_read_record();
*/
typedef struct st_read_record { /* Parameter to read_record */
struct st_table *table; /* Head-form */
@ -140,6 +155,12 @@ typedef struct st_read_record { /* Parameter to read_record */
uchar *cache,*cache_pos,*cache_end,*read_positions;
IO_CACHE *io_cache;
bool print_error, ignore_not_found_rows;
/*
SJ-Materialization runtime may need to read fields from the materialized
table and unpack them into original table fields:
*/
Copy_field *copy_field;
Copy_field *copy_field_end;
} READ_RECORD;