Reversed adding 'first_comment' to 'compute_hash' #3427

Information from 'first_comment' is redundant since the comment itself
is already contained in 'query' when reaching 'compute_hash'.
pull/3453/head
Javier Jaramago Fernández 5 years ago
parent 96b1bc7d99
commit 9e70e3918b

@ -218,7 +218,7 @@ class MySQL_STMTs_local_v14 {
return is_client_;
}
void backend_insert(uint64_t global_statement_id, MYSQL_STMT *stmt);
uint64_t compute_hash(char *user, char *schema, char *query, unsigned int query_length, char *first_comment);
uint64_t compute_hash(char *user, char *schema, char *query, unsigned int query_length);
unsigned int get_num_backend_stmts() { return backend_stmt_to_global_ids.size(); }
uint32_t generate_new_client_stmt_id(uint64_t global_statement_id);
uint64_t find_global_stmt_id_from_client(uint32_t client_stmt_id);

@ -14,8 +14,7 @@ extern MySQL_STMT_Manager_v14 *GloMyStmt;
static uint64_t stmt_compute_hash(char *user,
char *schema, char *query,
unsigned int query_length,
char* first_comment) {
unsigned int query_length) {
int l = 0;
l += strlen(user);
l += strlen(schema);
@ -25,9 +24,6 @@ static uint64_t stmt_compute_hash(char *user,
l += strlen(_COMPUTE_HASH_DEL1_);
l += strlen(_COMPUTE_HASH_DEL2_);
l += query_length;
if (first_comment) {
l += strlen(first_comment);
}
char *buf = (char *)malloc(l);
l = 0;
@ -47,12 +43,6 @@ static uint64_t stmt_compute_hash(char *user,
strcpy(buf + l, _COMPUTE_HASH_DEL2_);
l += strlen(_COMPUTE_HASH_DEL2_);
// write first comment
if (first_comment) {
strcpy(buf + l, first_comment);
l += strlen(first_comment);
}
// write query
memcpy(buf + l, query, query_length);
l += query_length;
@ -64,7 +54,7 @@ static uint64_t stmt_compute_hash(char *user,
void MySQL_STMT_Global_info::compute_hash() {
hash = stmt_compute_hash(username, schemaname, query,
query_length, first_comment);
query_length);
}
StmtLongDataHandler::StmtLongDataHandler() { long_datas = new PtrArray(); }
@ -561,10 +551,9 @@ void MySQL_STMTs_local_v14::backend_insert(uint64_t global_statement_id, MYSQL_S
uint64_t MySQL_STMTs_local_v14::compute_hash(char *user,
char *schema, char *query,
unsigned int query_length,
char *first_comment) {
unsigned int query_length) {
uint64_t hash;
hash = stmt_compute_hash(user, schema, query, query_length, first_comment);
hash = stmt_compute_hash(user, schema, query, query_length);
return hash;
}
@ -835,7 +824,7 @@ MySQL_STMT_Global_info *MySQL_STMT_Manager_v14::add_prepared_statement(
char *fc, MYSQL_STMT *stmt, bool lock) {
MySQL_STMT_Global_info *ret = NULL;
uint64_t hash = stmt_compute_hash(
u, s, q, ql, fc); // this identifies the prepared statement
u, s, q, ql); // this identifies the prepared statement
if (lock) {
pthread_rwlock_wrlock(&rwlock_);
}

@ -3041,8 +3041,7 @@ void MySQL_Session::handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_C
(char *)client_myds->myconn->userinfo->username,
(char *)client_myds->myconn->userinfo->schemaname,
(char *)CurrentQuery.QueryPointer,
CurrentQuery.QueryLength,
(char *)CurrentQuery.QueryParserArgs.first_comment
CurrentQuery.QueryLength
);
MySQL_STMT_Global_info *stmt_info=NULL;
// we first lock GloStmt

Loading…
Cancel
Save