From 0a76ad5ffd04fdfdf77435f4c9e733c2a59a14d8 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 4 Feb 2016 12:51:57 +0100 Subject: [PATCH] MDEV-9175 Query parser tansforms MICROSECOND into SECOND_FRAC, which does not work --- mysql-test/r/second_frac-9175.result | 13 +++++++++++++ mysql-test/t/second_frac-9175.test | 9 +++++++++ sql/item_timefunc.cc | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 mysql-test/r/second_frac-9175.result create mode 100644 mysql-test/t/second_frac-9175.test diff --git a/mysql-test/r/second_frac-9175.result b/mysql-test/r/second_frac-9175.result new file mode 100644 index 00000000000..dbf268b5c3b --- /dev/null +++ b/mysql-test/r/second_frac-9175.result @@ -0,0 +1,13 @@ +select timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456'); +timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456') +31622400123456 +explain extended select timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456'); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used +Warnings: +Note 1003 select timestampdiff(MICROSECOND,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456') AS `timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456')` +create view v1 as select timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456'); +select * from v1; +Name_exp_1 +31622400123456 +drop view v1; diff --git a/mysql-test/t/second_frac-9175.test b/mysql-test/t/second_frac-9175.test new file mode 100644 index 00000000000..91baf997459 --- /dev/null +++ b/mysql-test/t/second_frac-9175.test @@ -0,0 +1,9 @@ +# +# MDEV-9175 Query parser tansforms MICROSECOND into SECOND_FRAC, which does not work +# + +select timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456'); +explain extended select timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456'); +create view v1 as select timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456'); +select * from v1; +drop view v1; diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 522004e965b..44a185e72a9 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -2916,7 +2916,7 @@ void Item_func_timestamp_diff::print(String *str, enum_query_type query_type) str->append(STRING_WITH_LEN("SECOND")); break; case INTERVAL_MICROSECOND: - str->append(STRING_WITH_LEN("SECOND_FRAC")); + str->append(STRING_WITH_LEN("MICROSECOND")); break; default: break;