List:Commits« Previous MessageNext Message »
From:Georgi Kodinov Date:July 15 2010 3:47pm
Subject:bzr commit into mysql-trunk-bugfixing branch (Georgi.Kodinov:3120)
View as plain text  
#At file:///home/kgeorge/mysql/work/B53814-trunk-merge/ based on revid:davi.arnaut@stripped

 3120 Georgi Kodinov	2010-07-15 [merge]
      merge

    modified:
      mysql-test/r/information_schema.result
      mysql-test/t/information_schema.test
      sql/sql_show.cc
=== modified file 'mysql-test/r/information_schema.result'
--- a/mysql-test/r/information_schema.result	2010-07-15 13:47:50 +0000
+++ b/mysql-test/r/information_schema.result	2010-07-15 15:46:41 +0000
@@ -1691,6 +1691,23 @@ WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_N
 COLUMN_DEFAULT	TABLE_NAME
 NULL	variables
 DROP TABLE variables;
+#
+# Bug #53814: NUMERIC_PRECISION for unsigned bigint field is 19, 
+# should be 20
+#
+CREATE TABLE ubig (a BIGINT, b BIGINT UNSIGNED);
+SELECT TABLE_NAME, COLUMN_NAME, NUMERIC_PRECISION 
+FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='ubig';
+TABLE_NAME	COLUMN_NAME	NUMERIC_PRECISION
+ubig	a	19
+ubig	b	20
+INSERT INTO ubig VALUES (0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF);
+Warnings:
+Warning	1264	Out of range value for column 'a' at row 1
+SELECT length(CAST(b AS CHAR)) FROM ubig;
+length(CAST(b AS CHAR))
+20
+DROP TABLE ubig;
 End of 5.1 tests.
 #
 # Additional test for WL#3726 "DDL locking for all metadata objects"

=== modified file 'mysql-test/t/information_schema.test'
--- a/mysql-test/t/information_schema.test	2010-06-25 08:08:54 +0000
+++ b/mysql-test/t/information_schema.test	2010-07-15 15:46:41 +0000
@@ -1426,6 +1426,22 @@ FROM INFORMATION_SCHEMA.COLUMNS
 WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = 'variables';
 DROP TABLE variables;
 
+--echo #
+--echo # Bug #53814: NUMERIC_PRECISION for unsigned bigint field is 19, 
+--echo # should be 20
+--echo #
+
+CREATE TABLE ubig (a BIGINT, b BIGINT UNSIGNED);
+
+SELECT TABLE_NAME, COLUMN_NAME, NUMERIC_PRECISION 
+  FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='ubig';
+
+INSERT INTO ubig VALUES (0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF);
+SELECT length(CAST(b AS CHAR)) FROM ubig;
+
+DROP TABLE ubig;
+
+
 --echo End of 5.1 tests.
 
 --echo #

=== modified file 'sql/sql_show.cc'
--- a/sql/sql_show.cc	2010-07-15 13:47:50 +0000
+++ b/sql/sql_show.cc	2010-07-15 15:46:41 +0000
@@ -4022,10 +4022,13 @@ void store_column_type(TABLE *table, Fie
   case MYSQL_TYPE_TINY:
   case MYSQL_TYPE_SHORT:
   case MYSQL_TYPE_LONG:
-  case MYSQL_TYPE_LONGLONG:
   case MYSQL_TYPE_INT24:
     field_length= field->max_display_length() - 1;
     break;
+  case MYSQL_TYPE_LONGLONG:
+    field_length= field->max_display_length() - 
+      ((field->flags & UNSIGNED_FLAG) ? 0 : 1);
+    break;
   case MYSQL_TYPE_BIT:
     field_length= field->max_display_length();
     decimals= -1;                             // return NULL


Attachment: [text/bzr-bundle] bzr/georgi.kodinov@oracle.com-20100715154641-2qobg3hcg5x6ypr5.bundle
Thread
bzr commit into mysql-trunk-bugfixing branch (Georgi.Kodinov:3120) Georgi Kodinov15 Jul