diff options
Diffstat (limited to 'sql/opt_range.h')
-rw-r--r-- | sql/opt_range.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sql/opt_range.h b/sql/opt_range.h index bb0d27b722c..bf10c02c295 100644 --- a/sql/opt_range.h +++ b/sql/opt_range.h @@ -130,11 +130,22 @@ class SQL_SELECT :public Sql_alloc { void cleanup(); bool check_quick(THD *thd, bool force_quick_range, ha_rows limit) { return test_quick_select(thd, key_map(~0), 0, limit, force_quick_range) < 0; } - inline bool skipp_record() { return cond ? cond->val_int() == 0 : 0; } + inline bool skip_record() { return cond ? cond->val_int() == 0 : 0; } int test_quick_select(THD *thd, key_map keys, table_map prev_tables, ha_rows limit, bool force_quick_range=0); }; + +class FT_SELECT: public QUICK_SELECT { +public: + FT_SELECT(THD *thd, TABLE *table, uint key): + QUICK_SELECT (thd, table, key, 1) { init(); } + + int init() { return error= file->ft_init(); } + int get_next() { return error= file->ft_read(record); } +}; + + QUICK_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table, struct st_table_ref *ref); |