mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 03:47:17 +02:00
lp:731124 Loss of precision on DISTINCT
many changes: * NOT_FIXED_DEC now create hires fields, not old ones. As a result, temp tables preserve microseconds (on DISTINCT, GROUP BY) * I_S tables force decimals=0 on temporal types (backward compatibility) * Item_func_coalesce calculates decimals for temporal types * no precision for TIME/DATETIME in CAST means 0, not NOT_FIXED_DEC * addtime/timediff calculate decimals from arguments (not NOT_FIXED_DEC) sql/field.h: NOT_FIXED_DEC now create hires fields, not old ones sql/item.h: force decimals=0 for I_S tables sql/item_cmpfunc.cc: Item_func_coalesce calculates decimals for temporal types sql/item_create.cc: no precision for TIME/DATETIME in CAST means 0, not NOT_FIXED_DEC sql/item_timefunc.cc: addtime calculates decimals from arguments (not NOT_FIXED_DEC) sql/item_timefunc.h: timediff calculates decimals from arguments (not NOT_FIXED_DEC)
This commit is contained in:
parent
2c80662d23
commit
8b7fd8f577
11 changed files with 64 additions and 32 deletions
|
|
@ -37,7 +37,7 @@ Table Create Table
|
|||
t1 CREATE TABLE `t1` (
|
||||
`sec_to_time(12345)` time DEFAULT NULL,
|
||||
`sec_to_time(12345.6789)` time(4) DEFAULT NULL,
|
||||
`sec_to_time(1234567e-2)` time DEFAULT NULL,
|
||||
`sec_to_time(1234567e-2)` time(6) DEFAULT NULL,
|
||||
`now()` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`curtime(0)` time NOT NULL DEFAULT '00:00:00',
|
||||
`utc_timestamp(1)` datetime(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0',
|
||||
|
|
@ -52,7 +52,7 @@ t1 CREATE TABLE `t1` (
|
|||
select * from t1;
|
||||
sec_to_time(12345) 03:25:45
|
||||
sec_to_time(12345.6789) 03:25:45.6789
|
||||
sec_to_time(1234567e-2) 03:25:45
|
||||
sec_to_time(1234567e-2) 03:25:45.670000
|
||||
now() 2011-01-01 01:01:01
|
||||
curtime(0) 01:01:01
|
||||
utc_timestamp(1) 2010-12-31 22:01:01.1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue