MCPcopy Create free account
hub / github.com/DeNA/HandlerSocket-Plugin-for-MySQL / dbcontext

Class dbcontext

handlersocket/database.cpp:130–186  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

128};
129
130struct dbcontext : public dbcontext_i, private noncopyable {
131 dbcontext(volatile database *d, bool for_write);
132 virtual ~dbcontext();
133 virtual void init_thread(const void *stack_botton,
134 volatile int& shutdown_flag);
135 virtual void term_thread();
136 virtual bool check_alive();
137 virtual void lock_tables_if();
138 virtual void unlock_tables_if();
139 virtual bool get_commit_error();
140 virtual void clear_error();
141 virtual void close_tables_if();
142 virtual void table_addref(size_t tbl_id);
143 virtual void table_release(size_t tbl_id);
144 virtual void cmd_open(dbcallback_i& cb, const cmd_open_args& args);
145 virtual void cmd_exec(dbcallback_i& cb, const cmd_exec_args& args);
146 virtual void set_statistics(size_t num_conns, size_t num_active);
147 private:
148 int set_thread_message(const char *fmt, ...)
149 __attribute__((format (printf, 2, 3)));
150 bool parse_fields(TABLE *const table, const char *str,
151 prep_stmt::fields_type& flds);
152 void cmd_insert_internal(dbcallback_i& cb, const prep_stmt& pst,
153 const string_ref *fvals, size_t fvalslen);
154 void cmd_sql_internal(dbcallback_i& cb, const prep_stmt& pst,
155 const string_ref *fvals, size_t fvalslen);
156 void cmd_find_internal(dbcallback_i& cb, const prep_stmt& pst,
157 ha_rkey_function find_flag, const cmd_exec_args& args);
158 size_t calc_filter_buf_size(TABLE *table, const prep_stmt& pst,
159 const record_filter *filters);
160 bool fill_filter_buf(TABLE *table, const prep_stmt& pst,
161 const record_filter *filters, uchar *filter_buf, size_t len);
162 int check_filter(dbcallback_i& cb, TABLE *table, const prep_stmt& pst,
163 const record_filter *filters, const uchar *filter_buf);
164 void resp_record(dbcallback_i& cb, TABLE *const table, const prep_stmt& pst);
165 void dump_record(dbcallback_i& cb, TABLE *const table, const prep_stmt& pst);
166 int modify_record(dbcallback_i& cb, TABLE *const table,
167 const prep_stmt& pst, const cmd_exec_args& args, char mod_op,
168 size_t& modified_count);
169 private:
170 typedef std::vector<tablevec_entry> table_vec_type;
171 typedef std::pair<std::string, std::string> table_name_type;
172 typedef std::map<table_name_type, size_t> table_map_type;
173 private:
174 volatile database *const dbref;
175 bool for_write_flag;
176 THD *thd;
177 MYSQL_LOCK *lock;
178 bool lock_failed;
179 std::auto_ptr<expr_user_lock> user_lock;
180 int user_level_lock_timeout;
181 bool user_level_lock_locked;
182 bool commit_error;
183 std::vector<char> info_message_buf;
184 table_vec_type table_vec;
185 table_map_type table_map;
186};
187

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected