summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/records.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/sql/records.h b/sql/records.h
index 1928acfd4f4..473cb610be5 100644
--- a/sql/records.h
+++ b/sql/records.h
@@ -27,6 +27,10 @@ class SQL_SELECT;
class Copy_field;
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:
index read, scan, etc, use of cache, etc.
@@ -73,7 +77,8 @@ struct READ_RECORD
Copy_field *copy_field;
Copy_field *copy_field_end;
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,
@@ -82,7 +87,6 @@ bool init_read_record(READ_RECORD *info, THD *thd, TABLE *reg_form,
bool print_errors, bool disable_rr_cache);
bool init_read_record_idx(READ_RECORD *info, THD *thd, TABLE *table,
bool print_error, uint idx, bool reverse);
-void end_read_record(READ_RECORD *info);
void rr_unlock_row(st_join_table *tab);