diff options
Diffstat (limited to 'sql/structs.h')
-rw-r--r-- | sql/structs.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/sql/structs.h b/sql/structs.h index 64e69fca0d0..fbbafafe3ea 100644 --- a/sql/structs.h +++ b/sql/structs.h @@ -53,7 +53,8 @@ typedef struct st_key_part_info { /* Info about a key part */ Field *field; uint offset; /* offset in record (from 0) */ uint null_offset; /* Offset to null_bit in record */ - uint16 length; /* Length of keypart value in bytes */ + /* Length of key part in bytes, excluding NULL flag and length bytes */ + uint16 length; /* Number of bytes required to store the keypart value. This may be different from the "length" field as it also counts @@ -126,6 +127,21 @@ class SQL_SELECT; class THD; class handler; struct st_join_table; +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(); +*/ void rr_unlock_row(st_join_table *tab); @@ -149,6 +165,12 @@ struct 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; }; |