| 128 | }; |
| 129 | |
| 130 | struct 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 |
nothing calls this directly
no outgoing calls
no test coverage detected