Loading mysql-test/r/type_newdecimal.result +9 −0 Original line number Diff line number Diff line Loading @@ -876,3 +876,12 @@ SELECT * FROM t1; f1 f2 9999999999999999999999999999999999.00000000000000000000 0.00 DROP TABLE t1; CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB; INSERT INTO t1 (GRADE) VALUES (151),(252),(343); SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300; GRADE 252 SELECT GRADE FROM t1 WHERE GRADE= 151; GRADE 151 DROP TABLE t1; mysql-test/t/type_newdecimal.test +10 −0 Original line number Diff line number Diff line Loading @@ -906,3 +906,13 @@ CREATE TABLE t1 (f1 DECIMAL (64,20), f2 DECIMAL(2,2)); INSERT INTO t1 VALUES (9999999999999999999999999999999999, 0); SELECT * FROM t1; DROP TABLE t1; # # Bug #10465 # CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB; INSERT INTO t1 (GRADE) VALUES (151),(252),(343); SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300; SELECT GRADE FROM t1 WHERE GRADE= 151; DROP TABLE t1; sql/field.cc +6 −1 Original line number Diff line number Diff line Loading @@ -8060,7 +8060,12 @@ void create_field::create_length_to_internal_length(void) } break; case MYSQL_TYPE_NEWDECIMAL: key_length= pack_length= my_decimal_get_binary_size(length, decimals); key_length= pack_length= my_decimal_get_binary_size(my_decimal_length_to_precision(length, decimals, flags & UNSIGNED_FLAG), decimals); break; default: key_length= pack_length= calc_pack_length(sql_type, length); Loading Loading
mysql-test/r/type_newdecimal.result +9 −0 Original line number Diff line number Diff line Loading @@ -876,3 +876,12 @@ SELECT * FROM t1; f1 f2 9999999999999999999999999999999999.00000000000000000000 0.00 DROP TABLE t1; CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB; INSERT INTO t1 (GRADE) VALUES (151),(252),(343); SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300; GRADE 252 SELECT GRADE FROM t1 WHERE GRADE= 151; GRADE 151 DROP TABLE t1;
mysql-test/t/type_newdecimal.test +10 −0 Original line number Diff line number Diff line Loading @@ -906,3 +906,13 @@ CREATE TABLE t1 (f1 DECIMAL (64,20), f2 DECIMAL(2,2)); INSERT INTO t1 VALUES (9999999999999999999999999999999999, 0); SELECT * FROM t1; DROP TABLE t1; # # Bug #10465 # CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB; INSERT INTO t1 (GRADE) VALUES (151),(252),(343); SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300; SELECT GRADE FROM t1 WHERE GRADE= 151; DROP TABLE t1;
sql/field.cc +6 −1 Original line number Diff line number Diff line Loading @@ -8060,7 +8060,12 @@ void create_field::create_length_to_internal_length(void) } break; case MYSQL_TYPE_NEWDECIMAL: key_length= pack_length= my_decimal_get_binary_size(length, decimals); key_length= pack_length= my_decimal_get_binary_size(my_decimal_length_to_precision(length, decimals, flags & UNSIGNED_FLAG), decimals); break; default: key_length= pack_length= calc_pack_length(sql_type, length); Loading