1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-24 07:13:33 +03:00
Files
mariadb/sql
unknown 99bde6d9ec Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
The LEAST/GREATEST functions compared DATE/DATETIME values as
strings which in some cases could lead to a wrong result.

A new member function called cmp_datetimes() is added to the
Item_func_min_max class. It compares arguments in DATETIME context
and returns index of the least/greatest argument.
The Item_func_min_max::fix_length_and_dec() function now detects when
arguments should be compared in DATETIME context and sets the newly
added flag compare_as_dates. It indicates that the cmp_datetimes() function
should be called to get a correct result.
Item_func_min_max::val_xxx() methods are corrected to call the
cmp_datetimes() function when needed.
Objects of the Item_splocal class now stores and reports correct original
field type.


mysql-test/t/type_datetime.test:
  Added a test case for the bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
mysql-test/r/type_datetime.result:
  Added a test case for the bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
mysql-test/r/sp-vars.result:
  A test case result corrected after the fix for the bug#27759.
sql/mysql_priv.h:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  Added the prototype of the get_datetime_value() function.
sql/item_func.h:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  A new member function called cmp_datetimes() is added to the
  Item_func_min_max class.
sql/item_func.cc:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  A new member function called cmp_datetimes() is added to the
  Item_func_min_max class. It compares arguments in DATETIME context
  and returns index of the least/greatest argument.
  The Item_func_min_max::fix_length_and_dec() function now detects when
  arguments should be compared in DATETIME context and sets the newly
  added flag compare_as_dates. It indicates that the cmp_datetimes() function
  should be called to get a correct result.
  Item_func_min_max::val_xxx() methods are corrected to call the
  cmp_datetimes() function when needed.
sql/item_cmpfunc.cc:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  The get_datetime_value() function is no longer static.
sql/item.h:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  Objects of the Item_splocal class now stores and reports correct original
  field type.
sql/item.cc:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  Objects of the Item_splocal class now stores and reports correct original
  field type.
2007-05-04 18:57:10 +04:00
..
2007-02-22 17:53:41 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2007-03-07 14:51:45 +02:00
2006-12-31 01:02:27 +01:00
2007-01-31 00:06:42 +01:00
2006-12-23 20:17:15 +01:00
2006-12-31 01:02:27 +01:00
2007-02-28 22:23:35 +02:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-31 01:02:27 +01:00
2007-04-29 18:42:50 +05:00
2007-04-18 19:36:22 -06:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-23 20:17:15 +01:00
2006-12-31 01:02:27 +01:00
2006-12-23 20:17:15 +01:00
2007-04-11 13:58:16 +03:00
2007-03-22 20:32:07 +02:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-09-01 10:32:12 +02:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-23 20:17:15 +01:00
2007-04-06 18:56:39 +04:00
2006-12-23 20:17:15 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2007-02-08 15:53:14 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-31 01:02:27 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2007-04-17 12:32:01 +02:00
2007-04-20 10:49:45 +03:00
2006-12-31 01:02:27 +01:00
2007-03-29 10:35:28 +04:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2007-03-22 20:32:07 +02:00
2006-12-31 01:02:27 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2007-03-22 20:32:07 +02:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-23 20:17:15 +01:00
2007-03-22 20:32:07 +02:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2007-03-22 20:32:07 +02:00
2006-12-31 01:02:27 +01:00