2972
2972
static void do_save_master_pos()
2974
drizzle_result_st res;
2975
drizzle_return_t ret;
2977
2974
drizzle_con_st *con= &cur_con->con;
2981
if (drizzle_query_str(con, &res, query= "show master status", &ret) == NULL ||
2982
ret != DRIZZLE_RETURN_OK)
2975
const char *query= "show master status";
2977
drizzle::result_c res;
2978
if (drizzle_return_t ret= drizzle::query(con, res, query))
2984
2980
if (ret == DRIZZLE_RETURN_ERROR_CODE)
2986
die("failed in '%s': %d: %s", query, drizzle_result_error_code(&res),
2987
drizzle_result_error(&res));
2988
drizzle_result_free(&res);
2982
die("failed in '%s': %d: %s", query, res.error_code(), res.error());
2991
2985
die("failed in '%s': %d: %s", query, ret, drizzle_con_error(con));
2994
if (drizzle_result_column_count(&res) == 0 ||
2995
drizzle_result_buffer(&res) != DRIZZLE_RETURN_OK)
2988
if (res.column_count() == 0)
2996
2989
die("drizzleclient_store_result() retuned NULL for '%s'", query);
2997
if (!(row = drizzle_row_next(&res)))
2990
drizzle_row_t row= res.row_next();
2998
2992
die("empty result in show master status");
2999
2993
strncpy(master_pos.file, row[0], sizeof(master_pos.file)-1);
3000
2994
master_pos.pos = strtoul(row[1], (char**) 0, 10);
3001
drizzle_result_free(&res);
3153
3146
static void fill_global_error_names()
3155
drizzle_result_st res;
3156
drizzle_return_t ret;
3157
3148
drizzle_con_st *con= &cur_con->con;
3159
3150
global_error_names.clear();
3152
drizzle::result_c res;
3161
3153
const std::string ds_query("select error_name, error_code from data_dictionary.errors");
3162
if (drizzle_query_str(con, &res, ds_query.c_str(), &ret) == NULL ||
3163
ret != DRIZZLE_RETURN_OK)
3154
if (drizzle_return_t ret= drizzle::query(con, res, ds_query))
3165
3156
if (ret == DRIZZLE_RETURN_ERROR_CODE)
3167
die("Error running query '%s': %d %s", ds_query.c_str(), drizzle_result_error_code(&res), drizzle_result_error(&res));
3158
die("Error running query '%s': %d %s", ds_query.c_str(), res.error_code(), res.error());
3171
3162
die("Error running query '%s': %d %s", ds_query.c_str(), ret, drizzle_con_error(con));
3174
if (drizzle_result_column_count(&res) == 0 ||
3175
drizzle_result_buffer(&res) != DRIZZLE_RETURN_OK)
3165
if (res.column_count() == 0)
3177
drizzle_result_free(&res);
3178
3167
die("Query '%s' didn't return a result set", ds_query.c_str());
3181
while (drizzle_row_t row= drizzle_row_next(&res))
3170
while (drizzle_row_t row= res.row_next())
3183
3172
if (not row[0])
3186
3175
Concatenate all fields in the first row with tab in between
3187
3176
and assign that string to the $variable
3189
size_t *lengths= drizzle_row_field_sizes(&res);
3178
size_t *lengths= drizzle_row_field_sizes(&res.b_);
3192
3181
global_error_names[string(row[0], lengths[0])] = boost::lexical_cast<uint32_t>(string(row[1], lengths[1]));
3194
3183
catch (boost::bad_lexical_cast &ex)
3196
drizzle_result_free(&res);
3197
3185
die("Invalid error_code from Drizzle: %s", ex.what());
3202
drizzle_result_free(&res);
3205
3190
static uint32_t get_errcode_from_name(const char *error_name, const char *error_end)