merge
This commit is contained in:
commit
aaf5f8d5c4
@ -1691,6 +1691,23 @@ WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = 'variables';
|
||||
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"
|
||||
|
@ -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 #
|
||||
|
@ -4022,10 +4022,13 @@ void store_column_type(TABLE *table, Field *field, CHARSET_INFO *cs,
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user