mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge mysql.com:/home/mydev/mysql-5.0
into mysql.com:/home/mydev/mysql-5.0-5000
This commit is contained in:
@ -591,8 +591,7 @@ row_ins_set_detailed(
|
||||
|
||||
FILE* tf = os_file_create_tmpfile();
|
||||
|
||||
ut_a(tf);
|
||||
|
||||
if (tf) {
|
||||
ut_print_name(tf, trx, foreign->foreign_table_name);
|
||||
dict_print_info_on_foreign_key_in_create_format(tf, trx,
|
||||
foreign, FALSE);
|
||||
@ -600,6 +599,9 @@ row_ins_set_detailed(
|
||||
trx_set_detailed_error_from_file(trx, tf);
|
||||
|
||||
fclose(tf);
|
||||
} else {
|
||||
trx_set_detailed_error(trx, "temp file creation failed");
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
|
@ -225,3 +225,7 @@ select * from t1 where reckey=1.09E2;
|
||||
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').
|
||||
create table t1 (s1 float(1,2));
|
||||
ERROR 42000: For float(M,D) or double(M,D), M must be >= D (column 's1').
|
||||
|
@ -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 1453
|
||||
create table t1 (s1 float(0,2));
|
||||
--error 1453
|
||||
create table t1 (s1 float(1,2));
|
||||
|
@ -5419,3 +5419,5 @@ 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')."
|
||||
|
@ -5814,19 +5814,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_M_BIGGER_THAN_D, 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_M_BIGGER_THAN_D, MYF(0), field_name);
|
||||
DBUG_RETURN(NULL);
|
||||
}
|
||||
break;
|
||||
case FIELD_TYPE_TIMESTAMP:
|
||||
if (!length)
|
||||
|
Reference in New Issue
Block a user