mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Manual merge from mysql-trunk-merge.
This commit is contained in:
@ -401,14 +401,14 @@ char *thd_security_context(THD *thd, char *buffer, unsigned int length,
|
||||
str.append(proc_info);
|
||||
}
|
||||
|
||||
if (thd->query)
|
||||
if (thd->query())
|
||||
{
|
||||
if (max_query_len < 1)
|
||||
len= thd->query_length;
|
||||
len= thd->query_length();
|
||||
else
|
||||
len= min(thd->query_length, max_query_len);
|
||||
len= min(thd->query_length(), max_query_len);
|
||||
str.append('\n');
|
||||
str.append(thd->query, len);
|
||||
str.append(thd->query(), len);
|
||||
}
|
||||
if (str.c_ptr_safe() == buffer)
|
||||
return buffer;
|
||||
@ -2515,12 +2515,12 @@ Statement::Statement(LEX *lex_arg, MEM_ROOT *mem_root_arg,
|
||||
id(id_arg),
|
||||
mark_used_columns(MARK_COLUMNS_READ),
|
||||
lex(lex_arg),
|
||||
query(0),
|
||||
query_length(0),
|
||||
cursor(0),
|
||||
db(NULL),
|
||||
db_length(0)
|
||||
{
|
||||
query_string.length= 0;
|
||||
query_string.str= NULL;
|
||||
name.str= NULL;
|
||||
}
|
||||
|
||||
@ -2536,8 +2536,7 @@ void Statement::set_statement(Statement *stmt)
|
||||
id= stmt->id;
|
||||
mark_used_columns= stmt->mark_used_columns;
|
||||
lex= stmt->lex;
|
||||
query= stmt->query;
|
||||
query_length= stmt->query_length;
|
||||
query_string= stmt->query_string;
|
||||
cursor= stmt->cursor;
|
||||
}
|
||||
|
||||
@ -2561,6 +2560,15 @@ void Statement::restore_backup_statement(Statement *stmt, Statement *backup)
|
||||
}
|
||||
|
||||
|
||||
/** Assign a new value to thd->query. */
|
||||
|
||||
void Statement::set_query_inner(char *query_arg, uint32 query_length_arg)
|
||||
{
|
||||
query_string.str= query_arg;
|
||||
query_string.length= query_length_arg;
|
||||
}
|
||||
|
||||
|
||||
void THD::end_statement()
|
||||
{
|
||||
/* Cleanup SQL processing state to reuse this statement in next query. */
|
||||
@ -3074,9 +3082,24 @@ extern "C" struct charset_info_st *thd_charset(MYSQL_THD thd)
|
||||
return(thd->charset());
|
||||
}
|
||||
|
||||
/**
|
||||
OBSOLETE : there's no way to ensure the string is null terminated.
|
||||
Use thd_query_string instead()
|
||||
*/
|
||||
extern "C" char **thd_query(MYSQL_THD thd)
|
||||
{
|
||||
return(&thd->query);
|
||||
return(&thd->query_string.str);
|
||||
}
|
||||
|
||||
/**
|
||||
Get the current query string for the thread.
|
||||
|
||||
@param The MySQL internal thread pointer
|
||||
@return query string and length. May be non-null-terminated.
|
||||
*/
|
||||
extern "C" LEX_STRING * thd_query_string (MYSQL_THD thd)
|
||||
{
|
||||
return(&thd->query_string);
|
||||
}
|
||||
|
||||
extern "C" int thd_slave_thread(const MYSQL_THD thd)
|
||||
@ -3255,8 +3278,7 @@ void THD::set_statement(Statement *stmt)
|
||||
void THD::set_query(char *query_arg, uint32 query_length_arg)
|
||||
{
|
||||
pthread_mutex_lock(&LOCK_thd_data);
|
||||
query= query_arg;
|
||||
query_length= query_length_arg;
|
||||
set_query_inner(query_arg, query_length_arg);
|
||||
pthread_mutex_unlock(&LOCK_thd_data);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user