Commit bdca350f authored by Vicențiu Ciorbaru's avatar Vicențiu Ciorbaru

Allow READ_RECORD to make use of RAII and free itself on destruction

parent 5bf33843
...@@ -27,6 +27,10 @@ class SQL_SELECT; ...@@ -27,6 +27,10 @@ class SQL_SELECT;
class Copy_field; class Copy_field;
class SORT_INFO; class SORT_INFO;
struct READ_RECORD;
void end_read_record(READ_RECORD *info);
/** /**
A context for reading through a single table using a chosen access method: A context for reading through a single table using a chosen access method:
index read, scan, etc, use of cache, etc. index read, scan, etc, use of cache, etc.
...@@ -73,7 +77,8 @@ struct READ_RECORD ...@@ -73,7 +77,8 @@ struct READ_RECORD
Copy_field *copy_field; Copy_field *copy_field;
Copy_field *copy_field_end; Copy_field *copy_field_end;
public: public:
READ_RECORD() {} READ_RECORD() : table(NULL), cache(NULL) {}
~READ_RECORD() { end_read_record(this); }
}; };
bool init_read_record(READ_RECORD *info, THD *thd, TABLE *reg_form, bool init_read_record(READ_RECORD *info, THD *thd, TABLE *reg_form,
...@@ -82,7 +87,6 @@ bool init_read_record(READ_RECORD *info, THD *thd, TABLE *reg_form, ...@@ -82,7 +87,6 @@ bool init_read_record(READ_RECORD *info, THD *thd, TABLE *reg_form,
bool print_errors, bool disable_rr_cache); bool print_errors, bool disable_rr_cache);
bool init_read_record_idx(READ_RECORD *info, THD *thd, TABLE *table, bool init_read_record_idx(READ_RECORD *info, THD *thd, TABLE *table,
bool print_error, uint idx, bool reverse); bool print_error, uint idx, bool reverse);
void end_read_record(READ_RECORD *info);
void rr_unlock_row(st_join_table *tab); void rr_unlock_row(st_join_table *tab);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment