Merge pull request #1290 from pondix/v1.4.4

Disable multiplexing for specific vars
pull/1292/head
René Cannaò 9 years ago committed by GitHub
commit 768d6bcbd4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -23,6 +23,16 @@ mysql_status(short event, short cont) {
return status;
}
// Defining list of session variables for comparison with query digest to disable multiplexing for "SET <variable_name>" commands
static char * session_vars[]= {
// For issue #555 , multiplexing is disabled if --safe-updates is used
(char *)"SQL_SAFE_UPDATES=?,SQL_SELECT_LIMIT=?,MAX_JOIN_SIZE=?",
(char *)"FOREIGN_KEY_CHECKS",
(char *)"UNIQUE_CHECKS",
(char *)"AUTO_INCREMENT_INCREMENT",
(char *)"AUTO_INCREMENT_OFFSET",
(char *)"GROUP_CONCAT_MAX_LEN"
};
MySQL_Connection_userinfo::MySQL_Connection_userinfo() {
username=NULL;
@ -1538,13 +1548,12 @@ void MySQL_Connection::ProcessQueryAndSetStatusFlags(char *query_digest_text) {
}
}
if (strncasecmp(query_digest_text,"SET ",4)==0) {
// For issue #555 , multiplexing is disabled if --safe-updates is used
if (strcasecmp(query_digest_text,"SET SQL_SAFE_UPDATES=?,SQL_SELECT_LIMIT=?,MAX_JOIN_SIZE=?")==0) {
set_status_user_variable(true);
} else if (strcasecmp(query_digest_text,"SET FOREIGN_KEY_CHECKS=?")==0) { // see #835
set_status_user_variable(true);
} else if (strcasecmp(query_digest_text,"SET UNIQUE_CHECKS=?")==0) { // see #835
set_status_user_variable(true);
// For issue #555 , multiplexing is disabled if --safe-updates is used (see session_vars definition)
for (unsigned int i = 0; i < sizeof(session_vars); i++) {
if (strcasestr(query_digest_text,session_vars[i])!=NULL) {
set_status_user_variable(true);
break;
}
}
}
}

Loading…
Cancel
Save