@ -76,6 +76,7 @@ static const std::set<std::string> mysql_variables_boolean = {
" foreign_key_checks " ,
" innodb_strict_mode " ,
" innodb_table_locks " ,
" log_queries_not_using_indexes " ,
" sql_auto_is_null " ,
" sql_big_selects " ,
" sql_generate_invisible_primary_key " ,
@ -114,6 +115,7 @@ static const std::set<std::string> mysql_variables_strings = {
" group_replication_consistency " ,
" lc_messages " ,
" lc_time_names " ,
" log_slow_filter " ,
" optimizer_switch " ,
" wsrep_osu_method " ,
} ;
@ -210,10 +212,10 @@ KillArgs::~KillArgs() {
const char * KillArgs : : get_host_address ( ) const {
const char * host_address = hostname ;
if ( ip_addr )
host_address = ip_addr ;
return host_address ;
}
@ -799,7 +801,7 @@ void MySQL_Session::writeout() {
if ( client_myds ) client_myds - > array2buffer_full ( ) ;
if ( mybe & & mybe - > server_myds & & mybe - > server_myds - > myds_type = = MYDS_BACKEND ) {
if ( session_type = = PROXYSQL_SESSION_MYSQL ) {
if ( mybe - > server_myds - > net_failure = = false ) {
if ( mybe - > server_myds - > net_failure = = false ) {
if ( mybe - > server_myds - > poll_fds_idx > - 1 ) { // NOTE: attempt to force writes
mybe - > server_myds - > array2buffer_full ( ) ;
}
@ -2806,7 +2808,7 @@ bool MySQL_Session::handler_again___status_CHANGING_SCHEMA(int *_rc) {
}
bool MySQL_Session : : handler_again___status_CONNECTING_SERVER ( int * _rc ) {
bool MySQL_Session : : handler_again___status_CONNECTING_SERVER ( int * _rc ) {
//fprintf(stderr,"CONNECTING_SERVER\n");
unsigned long long curtime = monotonic_time ( ) ;
thread - > atomic_curtime = curtime ;
@ -2867,7 +2869,7 @@ bool MySQL_Session::handler_again___status_CONNECTING_SERVER(int *_rc) {
if ( mirror ) {
PROXY_TRACE ( ) ;
NEXT_IMMEDIATE_NEW ( WAITING_CLIENT_DATA ) ;
}
}
}
// NOTE-connect_retries_delay: This check alone is not enough for imposing
@ -2953,7 +2955,7 @@ bool MySQL_Session::handler_again___status_CONNECTING_SERVER(int *_rc) {
}
if ( mirror ) {
PROXY_TRACE ( ) ;
}
}
myds - > destroy_MySQL_Connection_From_Pool ( false ) ;
// NOTE-connect_retries_delay: In case of failure to connect, if
// 'mysql_thread___connect_retries_delay' is set, we impose a delay in the session
@ -4139,7 +4141,7 @@ __get_pkts_from_client:
handler_ret = - 1 ;
return handler_ret ;
break ;
}
}
break ;
case FAST_FORWARD :
mybe - > server_myds - > PSarrayOUT - > add ( pkt . ptr , pkt . size ) ;
@ -5209,7 +5211,7 @@ handler_again:
__exit_DSS__STATE_NOT_INITIALIZED :
if ( mybe & & mybe - > server_myds ) {
if ( mybe - > server_myds - > DSS > STATE_MARIADB_BEGIN & & mybe - > server_myds - > DSS < STATE_MARIADB_END ) {
@ -5349,7 +5351,7 @@ void MySQL_Session::handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE(
proxy_debug ( PROXY_DEBUG_MYSQL_CONNECTION , 8 , " Session=%p , DS=%p . Returning \n " , this , client_myds ) ;
return ;
}
if (
( is_encrypted = = false ) & & // the connection was encrypted
( handshake_response_return = = false ) & & // the authentication didn't complete
@ -5362,15 +5364,15 @@ void MySQL_Session::handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE(
client_myds - > wbio_ssl = BIO_new ( BIO_s_mem ( ) ) ;
client_myds - > ssl = GloVars . get_SSL_ctx ( ) ;
SSL_set_fd ( client_myds - > ssl , client_myds - > fd ) ;
SSL_set_accept_state ( client_myds - > ssl ) ;
SSL_set_accept_state ( client_myds - > ssl ) ;
SSL_set_bio ( client_myds - > ssl , client_myds - > rbio_ssl , client_myds - > wbio_ssl ) ;
l_free ( pkt - > size , pkt - > ptr ) ;
return ;
}
if (
//(client_myds->myprot.process_pkt_handshake_response((unsigned char *)pkt->ptr,pkt->size)==true)
( handshake_response_return = = true )
if (
//(client_myds->myprot.process_pkt_handshake_response((unsigned char *)pkt->ptr,pkt->size)==true)
( handshake_response_return = = true )
& &
(
# if defined(TEST_AURORA) || defined(TEST_GALERA) || defined(TEST_GROUPREP)
@ -5556,7 +5558,7 @@ void MySQL_Session::handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE(
if ( use_ssl = = true & & is_encrypted = = false ) {
* wrong_pass = true ;
GloMyLogger - > log_audit_entry ( PROXYSQL_MYSQL_AUTH_ERR , this , NULL ) ;
char * _a = ( char * ) " ProxySQL Error: Access denied for user '%s' (using password: %s). SSL is required " ;
char * _s = ( char * ) malloc ( strlen ( _a ) + strlen ( client_myds - > myconn - > userinfo - > username ) + 32 ) ;
sprintf ( _s , _a , client_myds - > myconn - > userinfo - > username , ( client_myds - > myconn - > userinfo - > password ? " YES " : " NO " ) ) ;
@ -6307,7 +6309,7 @@ bool MySQL_Session::handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_C
}
if ( mysql_variables . client_get_hash ( this , idx ) ! = var_value_int ) {
const MARIADB_CHARSET_INFO * ci = NULL ;
if ( var = = " character_set_results " | | var = = " character_set_connection " | |
if ( var = = " character_set_results " | | var = = " character_set_connection " | |
var = = " character_set_client " | | var = = " character_set_database " ) {
ci = proxysql_find_charset_name ( value1 . c_str ( ) ) ;
}
@ -6818,7 +6820,7 @@ void MySQL_Session::handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_C
l_free ( pkt - > size , pkt - > ptr ) ;
client_myds - > setDSS_STATE_QUERY_SENT_NET ( ) ;
client_myds - > myprot . generate_statistics_response ( true , NULL , NULL ) ;
client_myds - > DSS = STATE_SLEEP ;
client_myds - > DSS = STATE_SLEEP ;
}
void MySQL_Session : : handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_CHANGE_USER ( PtrSize_t * pkt , bool * wrong_pass ) {
@ -7303,7 +7305,7 @@ void MySQL_Session::SQLite3_to_MySQL(SQLite3_result *result, char *error, int af
myds - > DSS = STATE_SLEEP ;
free ( l ) ;
free ( p ) ;
} else { // no result set
if ( error ) {
// there was an error
@ -7448,7 +7450,7 @@ unsigned long long MySQL_Session::IdleTime() {
// this is called either from RequestEnd(), or at the end of executing
// prepared statements
// prepared statements
void MySQL_Session : : LogQuery ( MySQL_Data_Stream * myds ) {
// we need to access statistics before calling CurrentQuery.end()
// so we track the time here
@ -7801,18 +7803,18 @@ bool MySQL_Session::known_query_for_locked_on_hostgroup(uint64_t digest) {
case 5915334213354374281ULL : // "SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0"
case 7837089204483965579ULL : // "SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'"
case 4312882378746554890ULL : // "SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0"
case 4379922288366515816ULL : // "SET @rocksdb_get_is_supported = IF (@rocksdb_has_p_s_session_variables, 'SELECT COUNT(*) INTO @rocksdb_is_supported FROM performance_schema.session_variables WHERE VARIABLE_NAME...
case 4379922288366515816ULL : // "SET @rocksdb_get_is_supported = IF (@rocksdb_has_p_s_session_variables, 'SELECT COUNT(*) INTO @rocksdb_is_supported FROM performance_schema.session_variables WHERE VARIABLE_NAME...
case 12687634401278615449ULL : // "SET @rocksdb_enable_bulk_load = IF (@rocksdb_is_supported, 'SET SESSION rocksdb_bulk_load = 1', 'SET @rocksdb_dummy_bulk_load = 0')"
case 15991633859978935883ULL : // "SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN"
case 10636751085721966716ULL : // "SET @@GLOBAL.GTID_PURGED=?"
case 15976043181199829579ULL : // "SET SQL_QUOTE_SHOW_CREATE=?"
case 12094956190640701942ULL : // "SET SESSION information_schema_stats_expiry=0"
/*
case ULL : //
case ULL : //
case ULL : //
case ULL : //
case ULL : //
case ULL : //
case ULL : //
case ULL : //
case ULL : //
case ULL : //
*/
ret = true ;
break ;