Commit ca084e0f authored by unknown's avatar unknown

Fix for bug #12694 (float(1,2) field error)


mysql-test/t/type_float.test:
  test case
sql/sql_parse.cc:
  length & dec checks added
parent 1c35bcb6
......@@ -147,3 +147,12 @@ select * from t1 where reckey=1.09E2;
drop table t1;
# End of 4.1 tests
#
# bug #12694 (float(m,d) specifications)
#
--error 1427
create table t1 (s1 float(0,2));
--error 1427
create table t1 (s1 float(1,2));
......@@ -5752,19 +5752,31 @@ new_create_field(THD *thd, char *field_name, enum_field_types type,
new_field->decimals= NOT_FIXED_DEC;
break;
}
if (!length)
if (!length && !decimals)
{
new_field->length = FLT_DIG+6;
new_field->decimals= NOT_FIXED_DEC;
}
if (new_field->length < new_field->decimals &&
new_field->decimals != NOT_FIXED_DEC)
{
my_error(ER_SCALE_BIGGER_THAN_PRECISION, MYF(0), field_name);
DBUG_RETURN(NULL);
}
break;
case FIELD_TYPE_DOUBLE:
allowed_type_modifier= AUTO_INCREMENT_FLAG;
if (!length)
if (!length && !decimals)
{
new_field->length = DBL_DIG+7;
new_field->decimals=NOT_FIXED_DEC;
}
if (new_field->length < new_field->decimals &&
new_field->decimals != NOT_FIXED_DEC)
{
my_error(ER_SCALE_BIGGER_THAN_PRECISION, MYF(0), field_name);
DBUG_RETURN(NULL);
}
break;
case FIELD_TYPE_TIMESTAMP:
if (!length)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment