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) 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;
61
UPDATE t1 SET str1='aaa', str2='bbb', str3=concat(key2, '-', key1 div 2, '_' ,if(key1 mod 2 = 0, 'a', 'A'));
63
ALTER TABLE t1 ADD PRIMARY KEY (str1, zeroval, str2, str3);
65
EXPLAIN SELECT * FROM t1 WHERE key1 < 5 OR key2 > 197;
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;
61
update t1 set str1='aaa', str2='bbb', str3=concat(key2, '-', key1 div 2, '_' ,if(key1 mod 2 = 0, 'a', 'A'));
63
alter table t1 add primary key (str1, zeroval, str2, str3);
65
explain select * from t1 where key1 < 5 or key2 > 197;
67
67
select * from t1 where key1 < 5 or key2 > 197;
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);
187
--echo # Bug#56423: Different count with SELECT and CREATE SELECT queries
200
INSERT INTO t1 VALUES
209
WHERE c = 1 AND b = 1 AND d = 1;
211
CREATE TABLE t2 ( a INT )
214
WHERE c = 1 AND b = 1 AND d = 1;
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;
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;
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;