proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL,5,"Changing status for server %s:%d (%s:%d) from %d (%d) to %d\n",mysrvc->address,mysrvc->port,r->fields[1],atoi(r->fields[2]),r->fields[4],mysrvc->status,atoi(r->fields[9]));
mysrvc->status=(MySerStatus)atoi(r->fields[9]);
if(mysrvc->status==MYSQL_SERVER_STATUS_SHUNNED){
mysrvc->shunned_automatic=false;
}
}
if(atoi(r->fields[5])!=atoi(r->fields[10])){
proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL,5,"Changing compression for server %s:%d (%s:%d) from %d (%d) to %d\n",mysrvc->address,mysrvc->port,r->fields[1],atoi(r->fields[2]),r->fields[4],mysrvc->compression,atoi(r->fields[10]));
proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL,7,"Returning MySQL_Connection %p, server %s:%d with status %d\n",c,mysrvc->address,mysrvc->port,mysrvc->status);
mysrvc->ConnectionsUsed->remove(c);
if(mysrvc->status==MYSQL_SERVER_STATUS_ONLINE){
mysrvc->ConnectionsFree->add(c);
if(c->async_state_machine==ASYNC_IDLE){
mysrvc->ConnectionsFree->add(c);
}else{
proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL,7,"Destroying MySQL_Connection %p, server %s:%d with status %d\n",c,mysrvc->address,mysrvc->port,mysrvc->status);
deletec;
}
}else{
proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL,7,"Destroying MySQL_Connection %p, server %s:%d with status %d\n",c,mysrvc->address,mysrvc->port,mysrvc->status);
sprintf(_s,"Access denied for user '%s' (using password: %s)",client_myds->myconn->userinfo->username,(client_myds->myconn->userinfo->password?"YES":"NO"));
#define STATS_SQLITE_TABLE_MYSQL_QUERY_RULES "CREATE TABLE stats_mysql_query_rules (rule_id INTEGER PRIMARY KEY , hits INT NOT NULL)"
#define STATS_SQLITE_TABLE_MYSQL_COMMANDS_COUNTERS "CREATE TABLE stats_mysql_commands_counters (Command VARCHAR NOT NULL PRIMARY KEY , Total_Time_us INT NOT NULL , Total_cnt INT NOT NULL , cnt_100us INT NOT NULL , cnt_500us INT NOT NULL , cnt_1ms INT NOT NULL , cnt_5ms INT NOT NULL , cnt_10ms INT NOT NULL , cnt_50ms INT NOT NULL , cnt_100ms INT NOT NULL , cnt_500ms INT NOT NULL , cnt_1s INT NOT NULL , cnt_5s INT NOT NULL , cnt_10s INT NOT NULL , cnt_INFs)"
#define STATS_SQLITE_TABLE_MYSQL_PROCESSLIST "CREATE TABLE stats_mysql_processlist (ThreadID INT NOT NULL , SessionID INTEGER PRIMARY KEY , user VARCHAR , db VARCHAR , cli_host VARCHAR , cli_port VARCHAR , hostgroup VARCHAR , l_srv_host VARCHAR , l_srv_port VARCHAR , srv_host VARCHAR , srv_port VARCHAR , command VARCHAR , time_ms INT NOT NULL , info VARCHAR)"
if(query_no_space_length==strlen("SHOW MYSQL STATUS")&&!strncasecmp("SHOW MYSQL STATUS",query_no_space,query_no_space_length)){
l_free(query_length,query);
query=l_strdup("SELECT Variable_Name AS Variable_name, Variable_Value AS Value FROM stats_mysql_global ORDER BY variable_name");
query_length=strlen(query)+1;
GloAdmin->stats___mysql_global();
goto__run_query;
}
strA=(char*)"SHOW CREATE TABLE ";
strB=(char*)"SELECT name AS 'table' , REPLACE(REPLACE(sql,' , ', X'2C0A'),'CREATE TABLE %s (','CREATE TABLE %s ('||X'0A') AS 'Create Table' FROM %s.sqlite_master WHERE type='table' AND name='%s'";