Fixed support for NULL comments in new added hostgroup tables fetching

pull/2833/head
Javier Jaramago Fernández 6 years ago
parent 0ac939dd69
commit 88c6924e79

@ -1073,19 +1073,30 @@ void ProxySQL_Cluster::pull_mysql_servers_from_peer() {
"writer_hostgroup, backup_writer_hostgroup, reader_hostgroup, offline_hostgroup, active, "
"max_writers, writer_is_also_reader, max_transactions_behind, comment) "
"VALUES (%s, %s, %s, %s, %s, %s, %s, %s, '%s')";
char *error = NULL;
int cols = 0;
int affected_rows = 0;
SQLite3_result *resultset = NULL;
while ((row = mysql_fetch_row(results[2]))) {
int i;
int l = 0;
for (i = 0; i < 8; i++) {
l += strlen(row[i]);
}
char *o = escape_string_single_quotes(row[8], false);
char *query = (char *)malloc(strlen(q) + i + strlen(o) + 64);
sprintf(query, q, row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], o);
// free in case of 'o' being a copy
if (o != row[8]) {
free(o);
char* o = nullptr;
char* query = nullptr;
if (row[8] != nullptr) {
o = escape_string_single_quotes(row[8], false);
query = (char *)malloc(strlen(q) + i + strlen(o) + 64);
// free in case of 'o' being a copy
if (o != row[8]) {
free(o);
}
} else {
o = const_cast<char*>("NULL");
query = (char *)malloc(strlen(q) + strlen("NULL") + i + 64);
}
sprintf(query, q, row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], o);
GloAdmin->admindb->execute(query);
free(query);
}
@ -1103,13 +1114,20 @@ void ProxySQL_Cluster::pull_mysql_servers_from_peer() {
for (i = 0; i < 8; i++) {
l += strlen(row[i]);
}
char *o = escape_string_single_quotes(row[8], false);
char *query = (char *)malloc(strlen(q) + i + strlen(o) + 64);
sprintf(query, q, row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], o);
// free in case of 'o' being a copy
if (o != row[8]) {
free(o);
char* o = nullptr;
char* query = nullptr;
if (row[8] != nullptr) {
o = escape_string_single_quotes(row[8], false);
query = (char *)malloc(strlen(q) + i + strlen(o) + 64);
// free in case of 'o' being a copy
if (o != row[8]) {
free(o);
}
} else {
o = const_cast<char*>("NULL");
query = (char *)malloc(strlen(q) + i + strlen("NULL") + 64);
}
sprintf(query, q, row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], o);
GloAdmin->admindb->execute(query);
free(query);
}
@ -1127,13 +1145,20 @@ void ProxySQL_Cluster::pull_mysql_servers_from_peer() {
for (i = 0; i < 13; i++) {
l += strlen(row[i]);
}
char *o = escape_string_single_quotes(row[13], false);
char *query = (char *)malloc(strlen(q) + i + strlen(o) + 64);
sprintf(query, q, row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], o);
// free in case of 'o' being a copy
if (o != row[13]) {
free(o);
char* o = nullptr;
char* query = nullptr;
if (row[13] != nullptr) {
o = escape_string_single_quotes(row[13], false);
query = (char *)malloc(strlen(q) + i + strlen(o) + 64);
// free in case of 'o' being a copy
if (o != row[13]) {
free(o);
}
} else {
o = const_cast<char*>("NULL");
query = (char *)malloc(strlen(q) + strlen("NULL") + i + 64);
}
sprintf(query, q, row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], o);
GloAdmin->admindb->execute(query);
free(query);
}

Loading…
Cancel
Save