~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/include/index_merge2.inc

  • Committer: Monty Taylor
  • Date: 2011-02-13 17:26:39 UTC
  • mfrom: (2157.2.2 give-in-to-pkg-config)
  • mto: This revision was merged to the branch mainline in revision 2166.
  • Revision ID: mordred@inaugust.com-20110213172639-nhy7i72sfhoq13ms
Merged in pkg-config fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
53
53
 
54
54
# Primary key as case-sensitive string with \0s.
55
55
# also make primary key be longer then max. index length of MyISAM.
56
 
alter table t1 add str1 char (100) not null,
57
 
                add zeroval int not null default 0,
58
 
                add str2 char (100) not null,
59
 
                add str3 char (100) not null;
60
 
 
61
 
update t1 set str1='aaa', str2='bbb', str3=concat(key2, '-', key1 div 2, '_' ,if(key1 mod 2 = 0, 'a', 'A'));
62
 
 
63
 
alter table t1 add primary key (str1, zeroval, str2, str3);
64
 
 
65
 
explain select * from t1 where key1 < 5 or key2 > 197;
 
56
ALTER TABLE t1 ADD str1 CHAR (100) DEFAULT "catfood" NOT NULL,
 
57
                ADD zeroval INT NOT NULL DEFAULT 0,
 
58
                ADD str2 CHAR (100) DEFAULT "bird" NOT NULL,
 
59
                ADD str3 CHAR (100) DEFAULT "dog" NOT NULL;
 
60
 
 
61
UPDATE t1 SET str1='aaa', str2='bbb', str3=concat(key2, '-', key1 div 2, '_' ,if(key1 mod 2 = 0, 'a', 'A'));
 
62
 
 
63
ALTER TABLE t1 ADD PRIMARY KEY (str1, zeroval, str2, str3);
 
64
 
 
65
EXPLAIN SELECT * FROM t1 WHERE key1 < 5 OR key2 > 197;
66
66
 
67
67
select * from t1 where key1 < 5 or key2 > 197;
68
68
 
118
118
insert into t2 values (0),(1),(2),(3),(4),(NULL);
119
119
 
120
120
insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
121
 
  select A.a, B.a, C.a, D.a, C.a, D.a from t2 A,t2 B,t2 C, t2 D;
 
121
  select A.a, B.a, C.a, D.a, C.a, D.a from t2 A CROSS JOIN t2 B CROSS JOIN t2 C CROSS JOIN t2 D;
122
122
insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
123
123
  select key1a, key1b, key2a, key2b, key3a, key3b from t1;
124
124
insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
182
182
explain select * from t1 where (key3 > 30 and key3<35) or (key2 >32 and key2 < 40);
183
183
select * from t1 where (key3 > 30 and key3<35) or (key2 >32 and key2 < 40);
184
184
drop table t1;
 
185
 
 
186
--echo #
 
187
--echo # Bug#56423: Different count with SELECT and CREATE SELECT queries
 
188
--echo #
 
189
 
 
190
CREATE TABLE t1 (
 
191
  a INT,
 
192
  b INT,
 
193
  c INT,
 
194
  d INT,
 
195
  PRIMARY KEY (a),
 
196
  KEY (c),
 
197
  KEY bd (b,d)
 
198
);
 
199
 
 
200
INSERT INTO t1 VALUES
 
201
(1, 0, 1, 0),
 
202
(2, 1, 1, 1),
 
203
(3, 1, 1, 1),
 
204
(4, 0, 1, 1);
 
205
 
 
206
EXPLAIN
 
207
SELECT a
 
208
FROM t1
 
209
WHERE c = 1 AND b = 1 AND d = 1;
 
210
 
 
211
CREATE TABLE t2 ( a INT )
 
212
SELECT a
 
213
FROM t1
 
214
WHERE c = 1 AND b = 1 AND d = 1;
 
215
 
 
216
SELECT * FROM t2;
 
217
 
 
218
DROP TABLE t1, t2;
 
219
 
 
220
CREATE TABLE t1( a INT, b INT, KEY(a), KEY(b) );
 
221
INSERT INTO t1 VALUES (1, 2), (1, 2), (1, 2), (1, 2);
 
222
SELECT * FROM t1 FORCE INDEX(a, b) WHERE a = 1 AND b = 2;
 
223
 
 
224
DROP TABLE t1;
 
225
 
 
226
--echo # Code coverage of fix.
 
227
CREATE TABLE t1 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b INT);
 
228
INSERT INTO t1 (b) VALUES (1);
 
229
UPDATE t1 SET b = 2 WHERE a = 1;
 
230
SELECT * FROM t1;
 
231
 
 
232
CREATE TABLE t2 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(1) );
 
233
INSERT INTO t2 (b) VALUES ('a');
 
234
UPDATE t2 SET b = 'b' WHERE a = 1;
 
235
SELECT * FROM t2;
 
236
 
 
237
DROP TABLE t1, t2;