Commit a801277d authored by unknown's avatar unknown

Merge mysql.com:/home/jwinstead2/mysql-4.1-clean

into mysql.com:/home/jwinstead2/mysql-5.0-clean


mysql-test/r/type_float.result:
  Auto merged
sql/field.cc:
  Auto merged
parents 033636d0 e129f2c5
......@@ -143,3 +143,39 @@ drop table t1;
create table t1 (f float(54));
ERROR 42000: Incorrect column specifier for column 'f'
drop table if exists t1;
create table t1 (f float(4,3));
insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11");
Warnings:
Warning 1264 Data truncated; out of range for column 'f' at row 1
Warning 1264 Data truncated; out of range for column 'f' at row 2
Warning 1264 Data truncated; out of range for column 'f' at row 3
Warning 1264 Data truncated; out of range for column 'f' at row 4
Warning 1264 Data truncated; out of range for column 'f' at row 5
Warning 1264 Data truncated; out of range for column 'f' at row 6
select * from t1;
f
-9.999
-9.999
-9.999
9.999
9.999
9.999
drop table if exists t1;
create table t1 (f double(4,3));
insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11");
Warnings:
Warning 1264 Data truncated; out of range for column 'f' at row 1
Warning 1264 Data truncated; out of range for column 'f' at row 2
Warning 1264 Data truncated; out of range for column 'f' at row 3
Warning 1264 Data truncated; out of range for column 'f' at row 4
Warning 1264 Data truncated; out of range for column 'f' at row 5
Warning 1264 Data truncated; out of range for column 'f' at row 6
select * from t1;
f
-9.999
-9.999
-9.999
9.999
9.999
9.999
drop table if exists t1;
......@@ -143,3 +143,39 @@ drop table t1;
create table t1 (f float(54));
ERROR 42000: Incorrect column specifier for column 'f'
drop table if exists t1;
create table t1 (f float(4,3));
insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11");
Warnings:
Warning 1264 Data truncated; out of range for column 'f' at row 1
Warning 1264 Data truncated; out of range for column 'f' at row 2
Warning 1264 Data truncated; out of range for column 'f' at row 3
Warning 1264 Data truncated; out of range for column 'f' at row 4
Warning 1264 Data truncated; out of range for column 'f' at row 5
Warning 1264 Data truncated; out of range for column 'f' at row 6
select * from t1;
f
-9.999
-9.999
-9.999
9.999
9.999
9.999
drop table if exists t1;
create table t1 (f double(4,3));
insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11");
Warnings:
Warning 1264 Data truncated; out of range for column 'f' at row 1
Warning 1264 Data truncated; out of range for column 'f' at row 2
Warning 1264 Data truncated; out of range for column 'f' at row 3
Warning 1264 Data truncated; out of range for column 'f' at row 4
Warning 1264 Data truncated; out of range for column 'f' at row 5
Warning 1264 Data truncated; out of range for column 'f' at row 6
select * from t1;
f
-9.999
-9.999
-9.999
9.999
9.999
9.999
drop table if exists t1;
......@@ -93,3 +93,13 @@ create table t1 (f float(54)); # Should give an error
drop table if exists t1;
--enable_warnings
# Ensure that maximum values as the result of number of decimals
# being specified in table schema are enforced (Bug #7361)
create table t1 (f float(4,3));
insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11");
select * from t1;
drop table if exists t1;
create table t1 (f double(4,3));
insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11");
select * from t1;
drop table if exists t1;
......@@ -2440,23 +2440,7 @@ int Field_float::store(double nr)
int Field_float::store(longlong nr)
{
int error= 0;
float j= (float) nr;
if (unsigned_flag && j < 0)
{
set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1);
j=0;
error= 1;
}
#ifdef WORDS_BIGENDIAN
if (table->db_low_byte_first)
{
float4store(ptr,j);
}
else
#endif
memcpy_fixed(ptr,(byte*) &j,sizeof(j));
return error;
return store((double)nr);
}
......@@ -2738,23 +2722,7 @@ int Field_double::store(double nr)
int Field_double::store(longlong nr)
{
double j= (double) nr;
int error= 0;
if (unsigned_flag && j < 0)
{
set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1);
error= 1;
j=0;
}
#ifdef WORDS_BIGENDIAN
if (table->db_low_byte_first)
{
float8store(ptr,j);
}
else
#endif
doublestore(ptr,j);
return error;
return store((double)nr);
}
......
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