Some close cleanup

pull/378/head
René Cannaò 11 years ago
parent e73fba4011
commit b8d9ef3a29

@ -558,27 +558,6 @@ handler_again:
break;
case PINGING_SERVER:
/*
if (mybe->server_myds->revents) {
MySQL_Data_Stream *myds=mybe->server_myds;
MySQL_Connection *myconn=myds->myconn;
myconn->handler(myds->revents);
if (myconn->async_state_machine==ASYNC_PING_SUCCESSFUL) {
myds->DSS=STATE_READY;
myds->myconn->async_state_machine=ASYNC_IDLE;
if ((myds->myconn->reusable==true) && ((myds->myprot.prot_status & SERVER_STATUS_IN_TRANS)==0)) {
return_MySQL_Connection_To_Poll(myds);
}
status=NONE;
} else {
if (myconn->async_state_machine==ASYNC_PING_FAILED) {
// FIXME: treat gracefully
assert(0);
}
}
}
*/
assert(mybe->server_myds->myconn);
{
MySQL_Data_Stream *myds=mybe->server_myds;
@ -706,11 +685,6 @@ handler_again:
status=WAITING_CLIENT_DATA;
client_myds->DSS=STATE_SLEEP;
CurrentQuery.end();
// if (mysql_thread___commands_stats==true) {
// CurrentQuery.end_time=thread->curtime;
// CurrentQuery.query_parser_update_counters();
// CurrentQuery.query_parser_free();
// }
myds->free_mysql_real_query();
//if ((myds->myconn->reusable==true) && ((myds->myprot.prot_status & SERVER_STATUS_IN_TRANS)==0)) {
if ((myds->myconn->reusable==true) && myds->myconn->IsActiveTransaction()==false) {
@ -1099,100 +1073,7 @@ handler_again:
break;
}
goto __exit_DSS__STATE_NOT_INITIALIZED;
__get_a_backend:
/*
if (client_myds==NULL) {
goto __exit_DSS__STATE_NOT_INITIALIZED;
}
//if ((client_myds->DSS==STATE_QUERY_SENT_NET && session_fast_forward==false) || session_fast_forward==true) {
if (status!=FAST_FORWARD && client_myds->DSS==STATE_QUERY_SENT_NET) {
// the client has completely sent the query, now we should handle it server side
//
proxy_debug(PROXY_DEBUG_MYSQL_CONNECTION, 5, "Sess=%p, client_myds->DSS==STATE_QUERY_SENT_NET\n", this);
if (mybe && mybe->server_myds->DSS==STATE_NOT_INITIALIZED) {
proxy_debug(PROXY_DEBUG_MYSQL_CONNECTION, 5, "Sess=%p, client_myds->DSS==STATE_QUERY_SENT_NET , server_myds==STATE_NOT_INITIALIZED\n", this);
// DSS is STATE_NOT_INITIALIZED. It means we are not connected to any server
// try to connect
pending_connect=1;
unsigned long long curtime=monotonic_time();
// if DSS==STATE_NOT_INITIALIZED , we expect few pointers to be NULL . If it is not null, we have a bug
//assert(server_myds->myconn==NULL);
assert(mybe->server_myds->myconn==NULL);
handler___client_DSS_QUERY_SENT___server_DSS_NOT_INITIALIZED__get_connection();
if (mybe->server_myds->myconn==NULL) {
pause_until=thread->curtime+100*1000;
goto __exit_DSS__STATE_NOT_INITIALIZED;
}
//mybe->server_myds->myprot.init(&mybe->server_myds, mybe->myconn->userinfo, this);
mybe->server_myds->myprot.init(&mybe->server_myds, mybe->server_myds->myconn->userinfo, this);
if (client_myds->myconn->has_prepared_statement==true) {
mybe->server_myds->myconn->has_prepared_statement=true;
mybe->server_myds->myconn->reusable=false;
}
// FIXME : handle missing connection from connection pool
// FIXME : perhaps is a goto __exit_DSS__STATE_NOT_INITIALIZED after setting time wait
thread->mypolls.add(POLLIN|POLLOUT, mybe->server_myds->fd, mybe->server_myds, curtime);
if (mybe->server_myds->DSS!=STATE_READY) {
mybe->server_myds->move_from_OUT_to_OUTpending();
}
// END OF if (server_myds->DSS==STATE_NOT_INITIALIZED)
//} else { TRY #1
} // TRY #1
if (session_fast_forward==true && mybe && mybe->server_myds && mybe->server_myds->myconn) {
mybe->server_myds->myconn->reusable=false;
}
if (session_fast_forward==false) {
if (mybe && mybe->server_myds->myds_type==MYDS_BACKEND && mybe->server_myds->DSS==STATE_READY) {
proxy_debug(PROXY_DEBUG_MYSQL_CONNECTION, 5, "Sess=%p, client_myds->DSS==STATE_QUERY_SENT_NET , server_myds==STATE_READY , server_myds->myds_type==MYDS_BACKEND\n", this);
//if (strcmp(userinfo_client.schemaname,userinfo_server.schemaname)==0) {
if (
(client_myds->myconn->userinfo->hash!=mybe->server_myds->myconn->userinfo->hash)
) {
if (strcmp(client_myds->myconn->userinfo->username,mybe->server_myds->myconn->userinfo->username)) {
// username don't match, we must change user
handler___client_DSS_QUERY_SENT___send_CHANGE_USER_to_backend();
} else {
// we should chek that schema is different, but here we assume that if we reach here user is identical, but schema is not
handler___client_DSS_QUERY_SENT___send_INIT_DB_to_backend();
}
} else {
#ifndef EXPMARIA
if (client_myds->myconn->options.charset!=mybe->server_myds->myconn->options.charset ) {
handler___client_DSS_QUERY_SENT___send_SET_NAMES_to_backend();
} else {
#endif
//server_myds->PSarrayOUT->add(pkt.ptr, pkt.size);
#ifdef EXPMARIA
MySQL_Data_Stream *myds=mybe->server_myds;
myds->DSS=STATE_MARIADB_QUERY;
status=PROCESSING_QUERY;
myds->myconn->async_state_machine=ASYNC_QUERY_START;
myds->myconn->set_query(myds->mysql_real_query.ptr,myds->mysql_real_query.size);
myds->myconn->handler(0);
#else
mybe->server_myds->DSS=STATE_QUERY_SENT_DS;
// if (client_myds->myconn->processing_prepared_statement) {
mybe->server_myds->myconn->processing_prepared_statement_prepare=client_myds->myconn->processing_prepared_statement_prepare;
mybe->server_myds->myconn->processing_prepared_statement_execute=client_myds->myconn->processing_prepared_statement_execute;
// }
status=WAITING_SERVER_DATA;
#endif
#ifndef EXPMARIA
}
#endif
}
}
// } TRY #1
}
}
*/
__exit_DSS__STATE_NOT_INITIALIZED:

Loading…
Cancel
Save