| 194 | } |
| 195 | |
| 196 | data_handle mysql_data_provider::get_next(bool open_file) { |
| 197 | data_handle ret; |
| 198 | |
| 199 | if (open_file == false) { |
| 200 | ret.sql_handle.table = this->sql.table; |
| 201 | ret.sql_handle.column_names = this->column_names; |
| 202 | ret.sql_handle.column_types = this->column_types; |
| 203 | return ret; |
| 204 | } |
| 205 | |
| 206 | std::string query = this->build_select_query(this->batch_index); |
| 207 | |
| 208 | // DEBUG |
| 209 | //std::cout << "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>MYSQL QUERY:\n\n" << query << "\n\n\n"; |
| 210 | ++this->batch_index; |
| 211 | auto res = execute_mysql_query(this->mysql_connection.get(), query); |
| 212 | |
| 213 | if (res->rowsCount() == 0) { |
| 214 | this->table_fetch_completed = true; |
| 215 | } |
| 216 | |
| 217 | ret.sql_handle.table = this->sql.table; |
| 218 | ret.sql_handle.column_names = this->column_names; |
| 219 | ret.sql_handle.column_types = this->column_types; |
| 220 | ret.sql_handle.mysql_resultset = res; |
| 221 | ret.sql_handle.row_count = res->rowsCount(); |
| 222 | // TODO percy add columns to uri.query |
| 223 | ret.uri = Uri("mysql", "", this->sql.schema + "/" + this->sql.table, "", ""); |
| 224 | return ret; |
| 225 | } |
| 226 | |
| 227 | size_t mysql_data_provider::get_num_handles() { |
| 228 | size_t ret = this->estimated_table_row_count / this->sql.table_batch_size; |
no test coverage detected