~thomir-deactivatedaccount/drizzle/drizzle-fix-bug653747

« back to all changes in this revision

Viewing changes to plugin/haildb/test-suite-dir/haildb/tests/t/type_date.test

  • Committer: Brian Aker
  • Date: 2010-10-10 02:07:52 UTC
  • mfrom: (1827.2.3 staging)
  • Revision ID: brian@tangent.org-20101010020752-ktv73isay5dxtvp3
Merge in switch on table_share_instance inheritance.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#
2
 
# test of problem with date fields
3
 
#
4
 
--disable_warnings
5
 
drop table if exists t1,t2;
6
 
--enable_warnings
7
 
 
8
 
create table t1 (a char(16) primary key, b date, c datetime);
9
 
insert into t1 SET a='test 2000-01-01', b='2000-01-01', c='2000-01-01';
10
 
select * from t1 where c = '2000-01-01';
11
 
select * from t1 where b = '2000-01-01';
12
 
drop table t1;
13
 
 
14
 
#
15
 
# problem with date conversions
16
 
#
17
 
 
18
 
CREATE TABLE t1 (name char(6),cdate date, primary key (name,cdate));
19
 
INSERT INTO t1 VALUES ('name1','1998-01-01');
20
 
INSERT INTO t1 VALUES ('name2','1998-01-01');
21
 
INSERT INTO t1 VALUES ('name1','1998-01-02');
22
 
INSERT INTO t1 VALUES ('name2','1998-01-02');
23
 
CREATE TABLE t2 (cdate date, note char(6), primary key (cdate,note));
24
 
INSERT INTO t2 VALUES ('1998-01-01','note01');
25
 
INSERT INTO t2 VALUES ('1998-01-02','note02');
26
 
select name,t1.cdate,note from t1,t2 where t1.cdate=t2.cdate and t1.cdate='1998-01-01';
27
 
drop table t1,t2;
28
 
 
29
 
#
30
 
# Date and BETWEEN
31
 
#
32
 
 
33
 
CREATE TABLE t1 ( datum DATE primary key);
34
 
INSERT INTO t1 VALUES ( "2000-1-1" );
35
 
INSERT INTO t1 VALUES ( "2000-1-2" );
36
 
INSERT INTO t1 VALUES ( "2000-1-3" );
37
 
INSERT INTO t1 VALUES ( "2000-1-4" );
38
 
INSERT INTO t1 VALUES ( "2000-1-5" );
39
 
SELECT * FROM t1 WHERE datum BETWEEN cast("2000-1-2" as date) AND cast("2000-1-4" as date);
40
 
SELECT * FROM t1 WHERE datum BETWEEN cast("2000-1-2" as date) AND datum - INTERVAL 100 DAY;
41
 
DROP TABLE t1;
42
 
 
43
 
#
44
 
# test of max(date) and having
45
 
#
46
 
 
47
 
CREATE TABLE t1 (
48
 
  user_id char(10),
49
 
  summa int,
50
 
  rdate date,
51
 
  primary key (user_id, summa, rdate)
52
 
);
53
 
INSERT INTO t1 VALUES ('aaa',100,'1998-01-01');
54
 
INSERT INTO t1 VALUES ('aaa',200,'1998-01-03');
55
 
INSERT INTO t1 VALUES ('bbb',50,'1998-01-02');
56
 
INSERT INTO t1 VALUES ('bbb',200,'1998-01-04');
57
 
select max(rdate) as s from t1 where rdate < '1998-01-03' having s> "1998-01-01";
58
 
select max(rdate) as s from t1 having s="1998-01-04";
59
 
select max(rdate+0) as s from t1 having s="19980104";
60
 
drop table t1;
61
 
 
62
 
#
63
 
# Test of date and not null
64
 
#
65
 
 
66
 
create table t1 (date date primary key);  
67
 
insert into t1 values ("2000-08-10"),("2000-08-11");
68
 
select date_add(date,INTERVAL 1 DAY),date_add(date,INTERVAL 1 SECOND) from t1;
69
 
drop table t1;
70
 
 
71
 
#
72
 
# Test problem with DATE_FORMAT
73
 
#
74
 
 
75
 
CREATE TABLE t1(AFIELD INT primary key);
76
 
INSERT INTO t1 VALUES(1);
77
 
CREATE TABLE t2(GMT  VARCHAR(32) primary key);
78
 
INSERT INTO t2 VALUES('GMT-0800');
79
 
SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' ,  t2.GMT)) FROM t1, t2 GROUP BY t1.AFIELD;
80
 
INSERT INTO t1 VALUES(2);
81
 
SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ' ,  t2.GMT)), DATE_FORMAT("2002-03-06 10:11:12",  CONCAT('%a, %d %M %Y %H:%i:%s ' ,  t2.GMT)) FROM t1,t2 GROUP BY t1.AFIELD;
82
 
drop table t1,t2;
83
 
 
84
 
#
85
 
# Bug 4937: different date -> string conversion when using SELECT ... UNION
86
 
# and INSERT ... SELECT ... UNION
87
 
#
88
 
 
89
 
CREATE TABLE t1 (f1 DATE, pk int auto_increment primary key);
90
 
CREATE TABLE t2 (f2 VARCHAR(8), pk int auto_increment primary key);
91
 
CREATE TABLE t3 (f2 CHAR(8), pk int auto_increment primary key);
92
 
 
93
 
INSERT INTO t1 (f1) VALUES ('1978-11-26');
94
 
INSERT INTO t2 (f2) SELECT f1+0 FROM t1;
95
 
INSERT INTO t2 (f2) SELECT f1+0 FROM t1 UNION SELECT f1+0 FROM t1;
96
 
INSERT INTO t3 (f2) SELECT f1+0 FROM t1;
97
 
INSERT INTO t3 (f2) SELECT f1+0 FROM t1 UNION SELECT f1+0 FROM t1;
98
 
SELECT f2 FROM t2;
99
 
SELECT f2 FROM t3;
100
 
 
101
 
DROP TABLE t1, t2, t3;
102
 
 
103
 
#
104
 
# Bug#21677: Wrong result when comparing a DATE and a DATETIME in BETWEEN
105
 
#
106
 
create table t1(start_date date, end_date date, primary key (start_date, end_date));
107
 
insert into t1 values ('2000-01-01','2000-01-02');
108
 
select 1 from t1 where cast('2000-01-01 12:01:01' as datetime) between start_date and end_date;
109
 
drop table t1;
110
 
# End of 4.1 tests
111
 
 
112
 
#
113
 
# Bug #23093: Implicit conversion of 9912101 to date does not match
114
 
# cast(9912101 as date)
115
 
#
116
 
select @d:=1111;
117
 
select year(@d), month(@d), day(@d), cast(@d as date);
118
 
select @d:=011111;
119
 
select year(@d), month(@d), day(@d), cast(@d as date);
120
 
select @d:=1311;
121
 
--error ER_INVALID_DATETIME_VALUE # Invalid datetime of 1311
122
 
select year(@d), month(@d), day(@d), cast(@d as date);
123
 
create table t1 (d  date , dt datetime , ts timestamp, primary key (d));
124
 
insert into t1 values (9912101,9912101,9912101);
125
 
insert into t1 values (11111,11111,11111);
126
 
select * from t1;
127
 
drop table t1;
128
 
 
129
 
#
130
 
# Bug #31221: Optimizer incorrectly identifies impossible WHERE clause
131
 
#
132
 
 
133
 
CREATE TABLE t1 (a DATE, b int, PRIMARY KEY (a,b));
134
 
INSERT INTO t1 VALUES (DATE(NOW()), 1);
135
 
SELECT COUNT(*) FROM t1 WHERE a = NOW();
136
 
--replace_column 9 #
137
 
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
138
 
INSERT INTO t1 VALUES (DATE(NOW()), 2);
139
 
SELECT COUNT(*) FROM t1 WHERE a = NOW();
140
 
--replace_column 9 #
141
 
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
142
 
SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
143
 
--replace_column 9 #
144
 
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
145
 
# This bombs for some reason...commenting out for now.
146
 
# JRP - 2009-02-10
147
 
# ALTER TABLE t1 DROP PRIMARY KEY;
148
 
#SELECT COUNT(*) FROM t1 WHERE a = NOW();
149
 
#EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
150
 
 
151
 
DROP TABLE t1;
152
 
 
153
 
#
154
 
# Bug #31990: MINUTE() and SECOND() return bogus results when used on a DATE
155
 
#
156
 
 
157
 
CREATE TABLE t1 (f1 date primary key) SELECT curdate() AS f1;
158
 
SELECT hour(f1), minute(f1), second(f1) FROM t1;
159
 
DROP TABLE t1;
160
 
 
161
 
--echo End of 5.0 tests