diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index e7a543a9613..3fcdccceed6 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -2625,11 +2625,11 @@ test.test_checksum 1531596814 insert into test_checksum values(3); checksum table test_checksum; Table Checksum -test.test_checksum 1531596814 +test.test_checksum 2605035534 commit; checksum table test_checksum; Table Checksum -test.test_checksum 2050879373 +test.test_checksum 127268899 commit; drop table test_checksum; create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1; @@ -2642,5 +2642,5 @@ set autocommit=1; insert into test_checksum values(3); checksum table test_checksum; Table Checksum -test.test_checksum 2050879373 +test.test_checksum 127268899 drop table test_checksum; diff --git a/mysql-test/r/type_decimal.result b/mysql-test/r/type_decimal.result index 56a2bceeccf..d7f5f9fa328 100644 --- a/mysql-test/r/type_decimal.result +++ b/mysql-test/r/type_decimal.result @@ -476,7 +476,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp CREATE TABLE t1 (a_dec DECIMAL(-1,1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1,1))' at line 1 CREATE TABLE t1 (a_dec DECIMAL(0,11)); -ERROR 42000: Scale may not be larger than the precision (column 'a_dec'). +ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 'a_dec'). create table t1(a decimal(7,3)); insert into t1 values ('1'),('+1'),('-1'),('0000000001'),('+0000000001'),('-0000000001'),('10'),('+10'),('-10'),('0000000010'),('+0000000010'),('-0000000010'),('100'),('+100'),('-100'),('0000000100'),('+0000000100'),('-0000000100'),('1000'),('+1000'),('-1000'),('0000001000'),('+0000001000'),('-0000001000'),('10000'),('+10000'),('-10000'),('0000010000'),('+0000010000'),('-0000010000'),('100000'),('+100000'),('-100000'),('0000100000'),('+0000100000'),('-0000100000'),('1000000'),('+1000000'),('-1000000'),('0001000000'),('+0001000000'),('-0001000000'),('10000000'),('+10000000'),('-10000000'),('0010000000'),('+0010000000'),('-0010000000'),('100000000'),('+100000000'),('-100000000'),('0100000000'),('+0100000000'),('-0100000000'),('1000000000'),('+1000000000'),('-1000000000'),('1000000000'),('+1000000000'),('-1000000000'); select * from t1; diff --git a/mysql-test/r/type_float.result b/mysql-test/r/type_float.result index fc7e4c5f346..6b124caac14 100644 --- a/mysql-test/r/type_float.result +++ b/mysql-test/r/type_float.result @@ -226,6 +226,6 @@ reckey recdesc 109 Has 109 as key drop table t1; create table t1 (s1 float(0,2)); -ERROR 42000: For float(M,D) or double(M,D), M must be >= D (column 's1'). +ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 's1'). create table t1 (s1 float(1,2)); -ERROR 42000: For float(M,D) or double(M,D), M must be >= D (column 's1'). +ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 's1'). diff --git a/mysql-test/r/type_newdecimal.result b/mysql-test/r/type_newdecimal.result index 17ebab1c6e7..be5e29ab662 100644 --- a/mysql-test/r/type_newdecimal.result +++ b/mysql-test/r/type_newdecimal.result @@ -936,7 +936,7 @@ ERROR 42000: Too big scale 31 specified for column 'sl'. Maximum is 30. create table t1 (sl decimal(0,38)); ERROR 42000: Too big scale 38 specified for column 'sl'. Maximum is 30. create table t1 (sl decimal(0,30)); -ERROR 42000: Scale may not be larger than the precision (column 'sl'). +ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 'sl'). create table t1 (sl decimal(5, 5)); show create table t1; Table Create Table diff --git a/mysql-test/t/type_float.test b/mysql-test/t/type_float.test index 2deec5ec63b..cf2a2676ab0 100644 --- a/mysql-test/t/type_float.test +++ b/mysql-test/t/type_float.test @@ -152,7 +152,7 @@ drop table t1; # bug #12694 (float(m,d) specifications) # ---error 1453 +--error 1427 create table t1 (s1 float(0,2)); ---error 1453 +--error 1427 create table t1 (s1 float(1,2)); diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index f2a91d5b88b..d3964fe6e52 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -5366,12 +5366,12 @@ ER_TOO_BIG_SCALE 42000 S1009 eng "Too big scale %d specified for column '%-.64s'. Maximum is %d." ER_TOO_BIG_PRECISION 42000 S1009 eng "Too big precision %d specified for column '%-.64s'. Maximum is %d." -ER_SCALE_BIGGER_THAN_PRECISION 42000 S1009 - eng "Scale may not be larger than the precision (column '%-.64s')." +ER_M_BIGGER_THAN_D 42000 S1009 + eng "For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '%-.64s')." ER_WRONG_LOCK_OF_SYSTEM_TABLE eng "You can't combine write-locking of system '%-.64s.%-.64s' table with other tables" ER_CONNECT_TO_FOREIGN_DATA_SOURCE - eng "Unable to connect to foreign data source - database '%s'!" + eng "Unable to connect to foreign data source - database '%.64s'!" ER_QUERY_ON_FOREIGN_DATA_SOURCE eng "There was a problem processing the query on the foreign data source. Data source error: '%-.64s'" ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST @@ -5400,7 +5400,7 @@ ER_DATETIME_FUNCTION_OVERFLOW 22008 ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG eng "Can't update table '%-.64s' in stored function/trigger because it is already used by statement which invoked this stored function/trigger." ER_VIEW_PREVENT_UPDATE - eng "The definition of table '%-.64s' prevents operation %s on table '%-.64s'." + eng "The definition of table '%-.64s' prevents operation %.64s on table '%-.64s'." ER_PS_NO_RECURSION eng "The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner" ER_SP_CANT_SET_AUTOCOMMIT @@ -5419,5 +5419,3 @@ ER_ROW_IS_REFERENCED_2 23000 eng "Cannot delete or update a parent row: a foreign key constraint fails (%.192s)" ER_NO_REFERENCED_ROW_2 23000 eng "Cannot add or update a child row: a foreign key constraint fails (%.192s)" -ER_M_BIGGER_THAN_D 42000 S1009 - eng "For float(M,D) or double(M,D), M must be >= D (column '%-.64s')." diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 46740460526..71bb86d4233 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -5751,7 +5751,7 @@ new_create_field(THD *thd, char *field_name, enum_field_types type, } if (new_field->length < new_field->decimals) { - my_error(ER_SCALE_BIGGER_THAN_PRECISION, MYF(0), field_name); + my_error(ER_M_BIGGER_THAN_D, MYF(0), field_name); DBUG_RETURN(NULL); } new_field->length=