mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 18:20:07 +01:00
Bug#41030 Wrong meta data (incorrect fieldlen)
set user variable max length on fix_length_and_dec() stage using real value length.
This commit is contained in:
parent
72292421d0
commit
3fac11b907
3 changed files with 22 additions and 1 deletions
|
@ -1389,3 +1389,8 @@ SET @@session.thread_stack= 7;
|
|||
ERROR HY000: Variable 'thread_stack' is a read only variable
|
||||
SET @@global.thread_stack= 7;
|
||||
ERROR HY000: Variable 'thread_stack' is a read only variable
|
||||
select @@storage_engine;
|
||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def @@storage_engine 253 6 6 N 1 31 8
|
||||
@@storage_engine
|
||||
MyISAM
|
||||
|
|
|
@ -1121,3 +1121,10 @@ SET @@session.thread_stack= 7;
|
|||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||
SET @@global.thread_stack= 7;
|
||||
#
|
||||
|
||||
#
|
||||
# Bug#41030 Wrong meta data (incorrect fieldlen)
|
||||
#
|
||||
--enable_metadata
|
||||
select @@storage_engine;
|
||||
--disable_metadata
|
||||
|
|
|
@ -4837,7 +4837,10 @@ bool Item_func_get_system_var::is_written_to_binlog()
|
|||
|
||||
void Item_func_get_system_var::fix_length_and_dec()
|
||||
{
|
||||
char *cptr;
|
||||
int well_formed_error;
|
||||
maybe_null=0;
|
||||
max_length= 0;
|
||||
|
||||
if (var->check_type(var_type))
|
||||
{
|
||||
|
@ -4867,8 +4870,14 @@ void Item_func_get_system_var::fix_length_and_dec()
|
|||
break;
|
||||
case SHOW_CHAR:
|
||||
case SHOW_CHAR_PTR:
|
||||
pthread_mutex_lock(&LOCK_global_system_variables);
|
||||
cptr= var->show_type() == SHOW_CHAR_PTR ?
|
||||
*(char**) var->value_ptr(current_thd, var_type, &component) :
|
||||
(char*) var->value_ptr(current_thd, var_type, &component);
|
||||
if (cptr)
|
||||
max_length= strlen(cptr) * system_charset_info->mbmaxlen;
|
||||
pthread_mutex_unlock(&LOCK_global_system_variables);
|
||||
collation.set(system_charset_info, DERIVATION_SYSCONST);
|
||||
max_length= MAX_BLOB_WIDTH;
|
||||
decimals=NOT_FIXED_DEC;
|
||||
break;
|
||||
case SHOW_BOOL:
|
||||
|
|
Loading…
Add table
Reference in a new issue