1
by brian
clean slate |
1 |
#
|
2 |
# Test of DATE_ADD |
|
3 |
#
|
|
4 |
||
5 |
--disable_warnings
|
|
6 |
drop table if exists t1; |
|
7 |
--enable_warnings
|
|
8 |
||
1063.9.3
by Brian Aker
Partial fix for tests for tmp |
9 |
CREATE TEMPORARY TABLE t1 ( |
512
by Brian Aker
Adding back more test cases. |
10 |
visitor_id int DEFAULT '0' NOT NULL, |
11 |
group_id int DEFAULT '0' NOT NULL, |
|
12 |
hits int DEFAULT '0' NOT NULL, |
|
13 |
sessions int DEFAULT '0' NOT NULL, |
|
1
by brian
clean slate |
14 |
ts timestamp, |
15 |
PRIMARY KEY (visitor_id,group_id) |
|
16 |
)/*! engine=MyISAM */; |
|
17 |
INSERT INTO t1 VALUES (465931136,7,2,2,20000318160952); |
|
18 |
INSERT INTO t1 VALUES (173865424,2,2,2,20000318233615); |
|
19 |
INSERT INTO t1 VALUES (173865424,8,2,2,20000318233615); |
|
20 |
INSERT INTO t1 VALUES (173865424,39,2,2,20000318233615); |
|
21 |
INSERT INTO t1 VALUES (173865424,7,2,2,20000318233615); |
|
22 |
INSERT INTO t1 VALUES (173865424,3,2,2,20000318233615); |
|
23 |
INSERT INTO t1 VALUES (173865424,6,2,2,20000318233615); |
|
24 |
INSERT INTO t1 VALUES (173865424,60,2,2,20000318233615); |
|
25 |
INSERT INTO t1 VALUES (173865424,1502,2,2,20000318233615); |
|
26 |
INSERT INTO t1 VALUES (48985536,2,2,2,20000319013932); |
|
27 |
INSERT INTO t1 VALUES (48985536,8,2,2,20000319013932); |
|
28 |
INSERT INTO t1 VALUES (48985536,39,2,2,20000319013932); |
|
29 |
INSERT INTO t1 VALUES (48985536,7,2,2,20000319013932); |
|
30 |
INSERT INTO t1 VALUES (465931136,3,2,2,20000318160951); |
|
31 |
INSERT INTO t1 VALUES (465931136,119,1,1,20000318160953); |
|
32 |
INSERT INTO t1 VALUES (465931136,2,1,1,20000318160950); |
|
33 |
INSERT INTO t1 VALUES (465931136,8,1,1,20000318160950); |
|
34 |
INSERT INTO t1 VALUES (465931136,39,1,1,20000318160950); |
|
35 |
INSERT INTO t1 VALUES (1092858576,14,1,1,20000319013445); |
|
36 |
INSERT INTO t1 VALUES (357917728,3,2,2,20000319145026); |
|
37 |
INSERT INTO t1 VALUES (357917728,7,2,2,20000319145027); |
|
38 |
select visitor_id,max(ts) as mts from t1 group by visitor_id |
|
39 |
having mts < DATE_SUB(NOW(),INTERVAL 3 MONTH); |
|
40 |
select visitor_id,max(ts) as mts from t1 group by visitor_id |
|
41 |
having DATE_ADD(mts,INTERVAL 3 MONTH) < NOW(); |
|
42 |
drop table t1; |
|
43 |
||
44 |
#
|
|
45 |
# Bug #10627: Invalid date turned to NULL from date_sub/date_add in |
|
46 |
# traditional mode |
|
47 |
#
|
|
48 |
create table t1 (d date); |
|
49 |
--error S22008
|
|
50 |
insert into t1 (d) select date_sub('2000-01-01', INTERVAL 2001 YEAR); |
|
51 |
--error S22008
|
|
52 |
insert into t1 (d) select date_add('2000-01-01',interval 8000 year); |
|
53 |
# No warnings/errors from the next two |
|
54 |
insert into t1 values (date_add(NULL, INTERVAL 1 DAY)); |
|
55 |
insert into t1 values (date_add('2000-01-04', INTERVAL NULL DAY)); |
|
56 |
# These will all work now, and we'll end up with some NULL entries in the |
|
57 |
# table and some warnings.
|
|
1731.3.1
by Lee Bieber
change tests to use enum values instead of error numbers |
58 |
--error ER_DATETIME_FUNCTION_OVERFLOW
|
1
by brian
clean slate |
59 |
insert into t1 (d) select date_sub('2000-01-01', INTERVAL 2001 YEAR); |
1731.3.1
by Lee Bieber
change tests to use enum values instead of error numbers |
60 |
--error ER_DATETIME_FUNCTION_OVERFLOW
|
1
by brian
clean slate |
61 |
insert into t1 (d) select date_add('2000-01-01',interval 8000 year); |
62 |
insert into t1 values (date_add(NULL, INTERVAL 1 DAY));
|
|
63 |
insert into t1 values (date_add('2000-01-04', INTERVAL NULL DAY)); |
|
64 |
select * from t1;
|
|
65 |
drop table t1;
|
|
66 |
||
67 |
--echo End of 4.1 tests
|
|
68 |
||
69 |
#
|
|
70 |
# Bug#21811
|
|
71 |
#
|
|
72 |
# Make sure we end up with an appropriate
|
|
73 |
# date format (DATE) after addition operation
|
|
74 |
#
|
|
75 |
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 DAY; |
|
76 |
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 MONTH; |
|
77 |
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 YEAR; |
|
78 |
SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 WEEK; |
|
79 |
||
80 |
#
|
|
81 |
# Bug#28450: The Item_date_add_interval in select list may fail the field
|
|
82 |
# type assertion.
|
|
83 |
#
|
|
84 |
create table t1 (a int, b varchar(10));
|
|
85 |
insert into t1 values (1, '2001-01-01'),(2, '2002-02-02'); |
|
86 |
select '2007-01-01' + interval a day from t1; |
|
87 |
select b + interval a day from t1; |
|
88 |
drop table t1; |
|
89 |
||
90 |
--echo End of 5.0 tests
|