From: Date: February 27 2009 2:39pm Subject: bzr commit into mysql-5.1-bugteam branch (Sergey.Glukhov:2828) Bug#41030 List-Archive: http://lists.mysql.com/commits/67856 X-Bug: 41030 Message-Id: <0KFQ000CD8MTFYA0@fe-emea-09.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_Ov1JZnjP8zrbFznUHLUDkw)" --Boundary_(ID_Ov1JZnjP8zrbFznUHLUDkw) MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline #At file:///home/gluh/MySQL/mysql-5.1-bug-41030/ based on revid:kgeorge@stripped 2828 Sergey Glukhov 2009-02-27 Bug#41030 Wrong meta data (incorrect fieldlen) set user variable max length on fix_length_and_dec() stage using real value length. @ mysql-test/r/variables.result test result @ mysql-test/t/variables.test test case @ sql/item_func.cc set user variable max length on fix_length_and_dec() using real value length. modified: mysql-test/r/variables.result mysql-test/t/variables.test sql/item_func.cc === modified file 'mysql-test/r/variables.result' --- a/mysql-test/r/variables.result 2009-01-30 13:44:49 +0000 +++ b/mysql-test/r/variables.result 2009-02-27 13:39:47 +0000 @@ -1341,3 +1341,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 === modified file 'mysql-test/t/variables.test' --- a/mysql-test/t/variables.test 2009-02-02 22:56:45 +0000 +++ b/mysql-test/t/variables.test 2009-02-27 13:39:47 +0000 @@ -1079,3 +1079,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 === modified file 'sql/item_func.cc' --- a/sql/item_func.cc 2009-02-12 10:10:07 +0000 +++ b/sql/item_func.cc 2009-02-27 13:39:47 +0000 @@ -4837,7 +4837,10 @@ bool Item_func_get_system_var::is_writte 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_lengt 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: --Boundary_(ID_Ov1JZnjP8zrbFznUHLUDkw) MIME-version: 1.0 Content-type: text/bzr-bundle; name="bzr/sergey.glukhov@stripped"; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline; filename="bzr/sergey.glukhov@stripped" # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: sergey.glukhov@stripped # target_branch: file:///home/gluh/MySQL/mysql-5.1-bug-41030/ # testament_sha1: ffdceb9d7479311c98c9bb66763c61fab47795e0 # timestamp: 2009-02-27 17:40:02 +0400 # base_revision_id: kgeorge@stripped # # Begin bundle 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 hC3jetf/F3JFOFCQz2nUcQ== --Boundary_(ID_Ov1JZnjP8zrbFznUHLUDkw)--