mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Fix for bug #13667 (Inconsistency for decimal(m,d) specification.
mysql-test/r/type_newdecimal.result: result fixed mysql-test/t/type_newdecimal.test: testcase added sql/sql_parse.cc: we should check if 'decimals' is not null
This commit is contained in:
@ -1019,3 +1019,5 @@ drop procedure wg2;
|
|||||||
select cast(@non_existing_user_var/2 as DECIMAL);
|
select cast(@non_existing_user_var/2 as DECIMAL);
|
||||||
cast(@non_existing_user_var/2 as DECIMAL)
|
cast(@non_existing_user_var/2 as DECIMAL)
|
||||||
NULL
|
NULL
|
||||||
|
create table t (d decimal(0,10));
|
||||||
|
ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 'd').
|
||||||
|
@ -1044,3 +1044,9 @@ drop procedure wg2;
|
|||||||
#
|
#
|
||||||
|
|
||||||
select cast(@non_existing_user_var/2 as DECIMAL);
|
select cast(@non_existing_user_var/2 as DECIMAL);
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #13667 (Inconsistency for decimal(m,d) specification
|
||||||
|
#
|
||||||
|
--error 1427
|
||||||
|
create table t (d decimal(0,10));
|
||||||
|
@ -5748,7 +5748,7 @@ new_create_field(THD *thd, char *field_name, enum_field_types type,
|
|||||||
case FIELD_TYPE_NULL:
|
case FIELD_TYPE_NULL:
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_NEWDECIMAL:
|
case FIELD_TYPE_NEWDECIMAL:
|
||||||
if (!length)
|
if (!length && !new_field->decimals)
|
||||||
new_field->length= 10;
|
new_field->length= 10;
|
||||||
if (new_field->length > DECIMAL_MAX_PRECISION)
|
if (new_field->length > DECIMAL_MAX_PRECISION)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user