mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Merge mysql.com:/home/ram/work/b24558/b24558.5.0
into mysql.com:/home/ram/work/b24558/b24558.5.1 sql/field_conv.cc: Auto merged mysql-test/r/type_newdecimal.result: merging mysql-test/t/type_newdecimal.test: merging
This commit is contained in:
@@ -1428,6 +1428,19 @@ f1
|
||||
20101112000000.000014
|
||||
101112.000000
|
||||
drop table t1;
|
||||
select cast(19999999999999999999 as unsigned);
|
||||
cast(19999999999999999999 as unsigned)
|
||||
18446744073709551615
|
||||
Warnings:
|
||||
Error 1292 Truncated incorrect DECIMAL value: ''
|
||||
create table t1(a decimal(18));
|
||||
insert into t1 values(123456789012345678);
|
||||
alter table t1 modify column a decimal(19);
|
||||
select * from t1;
|
||||
a
|
||||
123456789012345678
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
select cast(143.481 as decimal(4,1));
|
||||
cast(143.481 as decimal(4,1))
|
||||
143.5
|
||||
@@ -1455,8 +1468,3 @@ Error 1264 Out of range value for column 'cast(-13.4 as decimal(2,1))' at row 1
|
||||
select cast(98.6 as decimal(2,0));
|
||||
cast(98.6 as decimal(2,0))
|
||||
99
|
||||
select cast(19999999999999999999 as unsigned);
|
||||
cast(19999999999999999999 as unsigned)
|
||||
18446744073709551615
|
||||
Warnings:
|
||||
Error 1292 Truncated incorrect DECIMAL value: ''
|
||||
|
||||
@@ -1126,6 +1126,22 @@ insert into t1 values (CAST('10:11:12' AS time));
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #8663 (cant use bigint as input to CAST)
|
||||
#
|
||||
select cast(19999999999999999999 as unsigned);
|
||||
|
||||
#
|
||||
# Bug #24558: Increasing decimal column length causes data loss
|
||||
#
|
||||
create table t1(a decimal(18));
|
||||
insert into t1 values(123456789012345678);
|
||||
alter table t1 modify column a decimal(19);
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
# Bug#16172 DECIMAL data type processed incorrectly
|
||||
#
|
||||
@@ -1136,8 +1152,3 @@ select cast(-3.4 as decimal(2,1));
|
||||
select cast(99.6 as decimal(2,0));
|
||||
select cast(-13.4 as decimal(2,1));
|
||||
select cast(98.6 as decimal(2,0));
|
||||
|
||||
# Bug #8663 (cant use bigint as input to CAST)
|
||||
#
|
||||
select cast(19999999999999999999 as unsigned);
|
||||
|
||||
|
||||
@@ -336,6 +336,13 @@ static void do_field_real(Copy_field *copy)
|
||||
}
|
||||
|
||||
|
||||
static void do_field_decimal(Copy_field *copy)
|
||||
{
|
||||
my_decimal value;
|
||||
copy->to_field->store_decimal(copy->from_field->val_decimal(&value));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
string copy for single byte characters set when to string is shorter than
|
||||
from string
|
||||
@@ -580,6 +587,8 @@ void (*Copy_field::get_copy_func(Field *to,Field *from))(Copy_field*)
|
||||
if (to->real_type() == MYSQL_TYPE_BIT ||
|
||||
from->real_type() == MYSQL_TYPE_BIT)
|
||||
return do_field_int;
|
||||
if (to->result_type() == DECIMAL_RESULT)
|
||||
return do_field_decimal;
|
||||
// Check if identical fields
|
||||
if (from->result_type() == STRING_RESULT)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user