mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Merge naruto.:C:/cpp/bug21811/my50-bug21811
into naruto.:C:/cpp/mysql-5.0-maint mysql-test/r/func_time.result: Auto merged sql/item_timefunc.cc: Auto merged
This commit is contained in:
commit
1e0ebb9105
5 changed files with 47 additions and 13 deletions
|
@ -71,3 +71,17 @@ NULL
|
|||
NULL
|
||||
NULL
|
||||
drop table t1;
|
||||
End of 4.1 tests
|
||||
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 DAY;
|
||||
CAST('2006-09-26' AS DATE) + INTERVAL 1 DAY
|
||||
2006-09-27
|
||||
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 MONTH;
|
||||
CAST('2006-09-26' AS DATE) + INTERVAL 1 MONTH
|
||||
2006-10-26
|
||||
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 YEAR;
|
||||
CAST('2006-09-26' AS DATE) + INTERVAL 1 YEAR
|
||||
2007-09-26
|
||||
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 WEEK;
|
||||
CAST('2006-09-26' AS DATE) + INTERVAL 1 WEEK
|
||||
2006-10-03
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -612,7 +612,7 @@ date_add(date,INTERVAL "1 1:1:1" DAY_SECOND)
|
|||
2003-01-03 01:01:01
|
||||
select date_add(date,INTERVAL "1" WEEK) from t1;
|
||||
date_add(date,INTERVAL "1" WEEK)
|
||||
2003-01-09 00:00:00
|
||||
2003-01-09
|
||||
select date_add(date,INTERVAL "1" QUARTER) from t1;
|
||||
date_add(date,INTERVAL "1" QUARTER)
|
||||
2003-04-02
|
||||
|
@ -621,7 +621,7 @@ timestampadd(MINUTE, 1, date)
|
|||
2003-01-02 00:01:00
|
||||
select timestampadd(WEEK, 1, date) from t1;
|
||||
timestampadd(WEEK, 1, date)
|
||||
2003-01-09 00:00:00
|
||||
2003-01-09
|
||||
select timestampadd(SQL_TSI_SECOND, 1, date) from t1;
|
||||
timestampadd(SQL_TSI_SECOND, 1, date)
|
||||
2003-01-02 00:00:01
|
||||
|
|
|
@ -64,4 +64,17 @@ insert into t1 values (date_add('2000-01-04', INTERVAL NULL DAY));
|
|||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
--echo End of 4.1 tests
|
||||
|
||||
#
|
||||
# Bug#21811
|
||||
#
|
||||
# Make sure we end up with an appropriate
|
||||
# date format (DATE) after addition operation
|
||||
#
|
||||
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 DAY;
|
||||
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 MONTH;
|
||||
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 YEAR;
|
||||
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 WEEK;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -2151,11 +2151,15 @@ bool Item_date_add_interval::eq(const Item *item, bool binary_cmp) const
|
|||
(date_sub_interval == other->date_sub_interval));
|
||||
}
|
||||
|
||||
/*
|
||||
'interval_names' reflects the order of the enumeration interval_type.
|
||||
See item_timefunc.h
|
||||
*/
|
||||
|
||||
static const char *interval_names[]=
|
||||
{
|
||||
"year", "quarter", "month", "day", "hour",
|
||||
"minute", "week", "second", "microsecond",
|
||||
"year", "quarter", "month", "week", "day",
|
||||
"hour", "minute", "second", "microsecond",
|
||||
"year_month", "day_hour", "day_minute",
|
||||
"day_second", "hour_minute", "hour_second",
|
||||
"minute_second", "day_microsecond",
|
||||
|
|
|
@ -630,18 +630,21 @@ public:
|
|||
};
|
||||
|
||||
/*
|
||||
The following must be sorted so that simple intervals comes first.
|
||||
(get_interval_value() depends on this)
|
||||
'interval_type' must be sorted so that simple intervals comes first,
|
||||
ie year, quarter, month, week, day, hour, etc. The order based on
|
||||
interval size is also important and the intervals should be kept in a
|
||||
large to smaller order. (get_interval_value() depends on this)
|
||||
*/
|
||||
|
||||
enum interval_type
|
||||
{
|
||||
INTERVAL_YEAR, INTERVAL_QUARTER, INTERVAL_MONTH, INTERVAL_DAY, INTERVAL_HOUR,
|
||||
INTERVAL_MINUTE, INTERVAL_WEEK, INTERVAL_SECOND, INTERVAL_MICROSECOND ,
|
||||
INTERVAL_YEAR_MONTH, INTERVAL_DAY_HOUR, INTERVAL_DAY_MINUTE,
|
||||
INTERVAL_DAY_SECOND, INTERVAL_HOUR_MINUTE, INTERVAL_HOUR_SECOND,
|
||||
INTERVAL_MINUTE_SECOND, INTERVAL_DAY_MICROSECOND, INTERVAL_HOUR_MICROSECOND,
|
||||
INTERVAL_MINUTE_MICROSECOND, INTERVAL_SECOND_MICROSECOND
|
||||
INTERVAL_YEAR, INTERVAL_QUARTER, INTERVAL_MONTH, INTERVAL_WEEK,
|
||||
INTERVAL_DAY, INTERVAL_HOUR, INTERVAL_MINUTE, INTERVAL_SECOND,
|
||||
INTERVAL_MICROSECOND, INTERVAL_YEAR_MONTH, INTERVAL_DAY_HOUR,
|
||||
INTERVAL_DAY_MINUTE, INTERVAL_DAY_SECOND, INTERVAL_HOUR_MINUTE,
|
||||
INTERVAL_HOUR_SECOND, INTERVAL_MINUTE_SECOND, INTERVAL_DAY_MICROSECOND,
|
||||
INTERVAL_HOUR_MICROSECOND, INTERVAL_MINUTE_MICROSECOND,
|
||||
INTERVAL_SECOND_MICROSECOND
|
||||
};
|
||||
|
||||
class Item_date_add_interval :public Item_date_func
|
||||
|
|
Loading…
Reference in a new issue