MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
rpl_info_table_access.h
1 /* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
2 
3  This program is free software; you can redistribute it and/or modify
4  it under the terms of the GNU General Public License as published by
5  the Free Software Foundation; version 2 of the License.
6 
7  This program is distributed in the hope that it will be useful,
8  but WITHOUT ANY WARRANTY; without even the implied warranty of
9  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  GNU General Public License for more details.
11 
12  You should have received a copy of the GNU General Public License
13  along with this program; if not, write to the Free Software
14  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
15 #ifndef RPL_INFO_TABLE_ACCESS_H
16 #define RPL_INFO_TABLE_ACCESS_H
17 
18 #include "my_global.h"
19 #include "sql_priv.h"
20 #include <table.h>
21 #include <key.h>
22 #include <sql_base.h>
23 #include "rpl_info_handler.h"
24 #include "rpl_info_values.h"
25 
26 enum enum_return_id { FOUND_ID= 1, NOT_FOUND_ID, ERROR_ID };
27 
29 {
30 public:
32  virtual ~Rpl_info_table_access() { };
33 
34  bool open_table(THD* thd, const LEX_STRING dbstr, const LEX_STRING tbstr,
35  uint max_num_field, enum thr_lock_type lock_type,
36  TABLE** table, Open_tables_backup* backup);
37  bool close_table(THD* thd, TABLE* table, Open_tables_backup* backup,
38  bool error);
39  enum enum_return_id find_info(Rpl_info_values *field_values, TABLE *table);
40  enum enum_return_id scan_info(TABLE *table, uint instance);
41  bool count_info(TABLE *table, uint* counter);
42  bool load_info_values(uint max_num_field, Field **fields,
43  Rpl_info_values *field_values);
44  bool store_info_values(uint max_num_field, Field **fields,
45  Rpl_info_values *field_values);
46  THD *create_thd();
47  bool drop_thd(THD* thd);
48 
49 private:
50  THD *saved_current_thd;
51 
52  Rpl_info_table_access& operator=(const Rpl_info_table_access& info);
54 };
55 #endif /* RPL_INFO_TABLE_ACCESS_H */