diff options
author | Sergei Golubchik <sergii@pisem.net> | 2011-03-08 19:41:58 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2011-03-08 19:41:58 +0100 |
commit | 8b7fd8f577fe3edc84eea54288c7d30775a1559b (patch) | |
tree | 6d245df86f99894d74eea055dc01800ccc2d7bb4 /sql/item_timefunc.h | |
parent | 2c80662d231414eb98b5cd4cede069d1482ccc20 (diff) | |
download | mariadb-git-8b7fd8f577fe3edc84eea54288c7d30775a1559b.tar.gz |
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)
Diffstat (limited to 'sql/item_timefunc.h')
-rw-r--r-- | sql/item_timefunc.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h index 36be86cd89c..b28daed202b 100644 --- a/sql/item_timefunc.h +++ b/sql/item_timefunc.h @@ -765,7 +765,7 @@ public: const char *func_name() const { return "timediff"; } void fix_length_and_dec() { - decimals= NOT_FIXED_DEC; + decimals= max(args[0]->decimals, args[1]->decimals); Item_timefunc::fix_length_and_dec(); maybe_null= 1; } |