mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
5.5 merge
This commit is contained in:
File diff suppressed because one or more lines are too long
5
mysql-test/r/change_user_notembedded.result
Normal file
5
mysql-test/r/change_user_notembedded.result
Normal file
@ -0,0 +1,5 @@
|
||||
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: YES)
|
||||
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: NO)
|
||||
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: YES)
|
||||
ERROR 08S01: Unknown command
|
||||
ERROR 08S01: Unknown command
|
@ -3,3 +3,5 @@ Name Location Comment
|
||||
Ronald Bradford Brisbane, Australia EFF contribution for UC2006 Auction
|
||||
Sheeri Kritzer Boston, Mass. USA EFF contribution for UC2006 Auction
|
||||
Mark Shuttleworth London, UK. EFF contribution for UC2006 Auction
|
||||
Warnings:
|
||||
Warning 1681 'SHOW CONTRIBUTORS' is deprecated and will be removed in a future release.
|
||||
|
3
mysql-test/r/create_delayed.result
Normal file
3
mysql-test/r/create_delayed.result
Normal file
@ -0,0 +1,3 @@
|
||||
drop table if exists t1;
|
||||
Starting test
|
||||
# All done
|
@ -191,6 +191,32 @@ t1 CREATE TABLE `t1` (
|
||||
`r` varchar(10) CHARACTER SET ucs2 NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #51876 : crash/memory underrun when loading data with ucs2
|
||||
# and reverse() function
|
||||
#
|
||||
# Problem # 1 (original report): wrong parsing of ucs2 data
|
||||
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp.txt';
|
||||
CREATE TABLE t1(a INT);
|
||||
LOAD DATA INFILE 'tmpp.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||
(@b) SET a=REVERSE(@b);
|
||||
# should return 2 zeroes (as the value is truncated)
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
0
|
||||
1
|
||||
DROP TABLE t1;
|
||||
# Problem # 2 : if you write and read ucs2 data to a file they're lost
|
||||
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp2.txt' CHARACTER SET ucs2;
|
||||
CREATE TABLE t1(a INT);
|
||||
LOAD DATA INFILE 'tmpp2.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||
(@b) SET a=REVERSE(@b);
|
||||
# should return 0 and 1 (10 reversed)
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
0
|
||||
1
|
||||
DROP TABLE t1;
|
||||
create table t2(f1 Char(30));
|
||||
insert into t2 values ("103000"), ("22720000"), ("3401200"), ("78000");
|
||||
select lpad(f1, 12, "-o-/") from t2;
|
||||
|
@ -1140,6 +1140,14 @@ id l
|
||||
a 512
|
||||
Warnings:
|
||||
Warning 1260 Row 1 was cut by GROUP_CONCAT()
|
||||
SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l
|
||||
FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body
|
||||
UNION ALL
|
||||
SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1;
|
||||
id l
|
||||
a 512
|
||||
Warnings:
|
||||
Warning 1260 Row 1 was cut by GROUP_CONCAT()
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -5055,6 +5055,14 @@ id l
|
||||
a 1024
|
||||
Warnings:
|
||||
Warning 1260 Row 2 was cut by GROUP_CONCAT()
|
||||
SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l
|
||||
FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body
|
||||
UNION ALL
|
||||
SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1;
|
||||
id l
|
||||
a 1024
|
||||
Warnings:
|
||||
Warning 1260 Row 2 was cut by GROUP_CONCAT()
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -4,5 +4,5 @@ insert t1 values (addtime('9999-12-31 23:59:59', '00:00:01')),
|
||||
select * from t1;
|
||||
d
|
||||
NULL
|
||||
NULL
|
||||
0000-00-00 00:00:00
|
||||
drop table t1;
|
||||
|
@ -2115,6 +2115,55 @@ a
|
||||
4
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MDEV-3873: Wrong result (extra rows) with NOT IN and
|
||||
# a subquery from a MERGE view
|
||||
#
|
||||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (4),(7),(0);
|
||||
CREATE TABLE t2 (b INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
CREATE TABLE t3 (c INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES (4),(6),(3);
|
||||
CREATE TABLE t4 (d INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t4 VALUES (4),(5),(3);
|
||||
CREATE TABLE tv (e INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO tv VALUES (1),(3);
|
||||
CREATE ALGORITHM=TEMPTABLE VIEW v_temptable AS SELECT * FROM tv;
|
||||
CREATE ALGORITHM=MERGE VIEW v_merge AS SELECT * FROM tv;
|
||||
SELECT * FROM t1, t2
|
||||
WHERE a NOT IN ( SELECT e FROM t3 LEFT JOIN v_temptable ON (c = e) WHERE c <> b ) AND a < b;
|
||||
a b
|
||||
SELECT * FROM t1, t2
|
||||
WHERE a NOT IN ( SELECT e FROM t3 LEFT JOIN v_merge ON (c = e) WHERE c <> b ) AND a < b;
|
||||
a b
|
||||
SELECT * FROM t1, t2
|
||||
WHERE a NOT IN ( SELECT e FROM t3 LEFT JOIN (SELECT * FROM tv) as derived ON (c = e) WHERE c <> b ) AND a < b;
|
||||
a b
|
||||
drop view v_temptable, v_merge;
|
||||
drop table t1,t2,t3,t4,tv;
|
||||
#
|
||||
# MDEV-3912: Wrong result (extra rows) with FROM subquery inside
|
||||
# ALL subquery, LEFT JOIN, derived_merge.
|
||||
# (duplicate of MDEV-3873 (above))
|
||||
#
|
||||
SET @save3912_optimizer_switch=@@optimizer_switch;
|
||||
SET optimizer_switch = 'derived_merge=on,in_to_exists=on';
|
||||
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (4),(8);
|
||||
CREATE TABLE t2 (b INT) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (7),(0);
|
||||
CREATE TABLE t3 (c INT, d INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES (0,4),(8,6);
|
||||
SELECT * FROM t1
|
||||
WHERE a >= ALL (
|
||||
SELECT d FROM t2 LEFT JOIN ( SELECT * FROM t3 ) AS alias ON ( c = b )
|
||||
WHERE b >= a
|
||||
);
|
||||
a
|
||||
8
|
||||
set optimizer_switch=@save3912_optimizer_switch;
|
||||
drop table t1, t2, t3;
|
||||
#
|
||||
# end of 5.3 tests
|
||||
#
|
||||
set optimizer_switch=@exit_optimizer_switch;
|
||||
|
@ -847,6 +847,38 @@ time(f1)
|
||||
00:00:00.000200
|
||||
00:00:00.000300
|
||||
drop table t1;
|
||||
create table t1(i int, g int);
|
||||
insert into t1 values (null, 1), (0, 2);
|
||||
select distinct i from t1 group by g;
|
||||
i
|
||||
NULL
|
||||
0
|
||||
drop table t1;
|
||||
create table t1(i int, g blob);
|
||||
insert into t1 values (null, 1), (0, 2);
|
||||
select distinct i from t1 group by g;
|
||||
i
|
||||
NULL
|
||||
0
|
||||
drop table t1;
|
||||
create table t1 (a int) engine=myisam;
|
||||
insert into t1 values (0),(7);
|
||||
create table t2 (b int) engine=myisam;
|
||||
insert into t2 values (7),(0),(3);
|
||||
create algorithm=temptable view v as
|
||||
select distinct (select max(a) from t1 where alias.b = a) as field1 from t2 as alias group by field1;
|
||||
select * from v;
|
||||
field1
|
||||
NULL
|
||||
0
|
||||
7
|
||||
select distinct (select max(a) from t1 where alias.b = a) as field1 from t2 as alias group by field1;
|
||||
field1
|
||||
NULL
|
||||
0
|
||||
7
|
||||
drop view v;
|
||||
drop table t1, t2;
|
||||
#
|
||||
# Bug #11744875: 4082: integer lengths cause truncation with distinct concat and innodb
|
||||
#
|
||||
|
21
mysql-test/r/failed_auth_3909.result
Normal file
21
mysql-test/r/failed_auth_3909.result
Normal file
@ -0,0 +1,21 @@
|
||||
optimize table mysql.user;
|
||||
Table Op Msg_type Msg_text
|
||||
mysql.user optimize status OK
|
||||
insert mysql.user (user,plugin) values ('foo','bar'),('bar','bar'),('baz','bar');
|
||||
Warnings:
|
||||
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
||||
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
||||
Warning 1364 Field 'x509_subject' doesn't have a default value
|
||||
Warning 1364 Field 'authentication_string' doesn't have a default value
|
||||
flush privileges;
|
||||
connect(localhost,u1,,test,MASTER_PORT,MASTER_SOCKET);
|
||||
ERROR HY000: Plugin 'bar' is not loaded
|
||||
connect(localhost,u2,,test,MASTER_PORT,MASTER_SOCKET);
|
||||
ERROR 28000: Access denied for user 'u2'@'localhost' (using password: NO)
|
||||
connect(localhost,u2,password,test,MASTER_PORT,MASTER_SOCKET);
|
||||
ERROR 28000: Access denied for user 'u2'@'localhost' (using password: YES)
|
||||
ERROR HY000: Plugin 'bar' is not loaded
|
||||
ERROR 28000: Access denied for user 'u2'@'localhost' (using password: NO)
|
||||
ERROR 28000: Access denied for user 'u2'@'localhost' (using password: YES)
|
||||
delete from mysql.user where plugin = 'bar';
|
||||
flush privileges;
|
@ -1086,3 +1086,8 @@ ERROR HY000: Row 3 was cut by GROUP_CONCAT()
|
||||
SET group_concat_max_len = DEFAULT;
|
||||
SET @@sql_mode = @old_sql_mode;
|
||||
DROP TABLE t1, t2;
|
||||
create table t1 (a char(1) character set utf8);
|
||||
insert into t1 values ('a'),('b');
|
||||
select 1 from t1 where a in (select group_concat(a) from t1);
|
||||
1
|
||||
drop table t1;
|
||||
|
@ -305,6 +305,39 @@ SELECT 1 from t1 HAVING NAME_CONST('', a);
|
||||
ERROR HY000: Incorrect arguments to NAME_CONST
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Test or correct maybe_null of last_value
|
||||
#
|
||||
CREATE TABLE t1 (a char(2) not null );
|
||||
INSERT INTO t1 VALUES (4),(7),(1);
|
||||
set @optimizer_switch_save= @@optimizer_switch;
|
||||
set optimizer_switch='materialization=off';
|
||||
CREATE TABLE tv (e char(2) not null ) engine=mysql;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'mysql'
|
||||
Warning 1266 Using storage engine MyISAM for table 'tv'
|
||||
INSERT INTO tv VALUES (1);
|
||||
CREATE ALGORITHM=MERGE VIEW v_merge AS SELECT * FROM tv;
|
||||
CREATE ALGORITHM=MERGE VIEW vm AS SELECT * FROM tv;
|
||||
explain extended
|
||||
select a from t1 left join v_merge on (a=e) where last_value(NULL,e) not in (select last_value(NULL,e) from vm);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
||||
1 PRIMARY tv ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
2 DEPENDENT SUBQUERY tv system NULL NULL NULL NULL 1 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` left join (`test`.`tv`) on((`test`.`tv`.`e` = `test`.`t1`.`a`)) where (not(<expr_cache><last_value(NULL,`test`.`tv`.`e`)>(<in_optimizer>(last_value(NULL,`test`.`tv`.`e`),<exists>(select last_value(NULL,'1') from dual where trigcond((<cache>(last_value(NULL,`test`.`tv`.`e`)) = last_value(NULL,'1'))))))))
|
||||
explain extended
|
||||
select a from t1 left join v_merge on (a=e) where e not in (select last_value(NULL,e) from vm);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
||||
1 PRIMARY tv ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
2 DEPENDENT SUBQUERY tv system NULL NULL NULL NULL 1 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` left join (`test`.`tv`) on((`test`.`tv`.`e` = `test`.`t1`.`a`)) where (not(<expr_cache><`test`.`tv`.`e`>(<in_optimizer>(`test`.`tv`.`e`,<exists>(select last_value(NULL,'1') from dual where trigcond((<cache>(`test`.`tv`.`e`) = last_value(NULL,'1'))))))))
|
||||
set optimizer_switch=@optimizer_switch_save;
|
||||
drop view v_merge, vm;
|
||||
drop table t1,tv;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
@ -1423,7 +1423,7 @@ MAKEDATE(11111111,1)
|
||||
NULL
|
||||
SELECT WEEK(DATE_ADD(FROM_DAYS(1),INTERVAL 1 MONTH), 1);
|
||||
WEEK(DATE_ADD(FROM_DAYS(1),INTERVAL 1 MONTH), 1)
|
||||
NULL
|
||||
0
|
||||
#
|
||||
# Bug#12584302 AFTER FIX FOR #12403504: ASSERTION FAILED: DELSUM+(INT) Y/4-TEMP > 0,
|
||||
#
|
||||
|
14
mysql-test/r/gis2.result
Normal file
14
mysql-test/r/gis2.result
Normal file
@ -0,0 +1,14 @@
|
||||
CREATE TABLE t1 (
|
||||
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
point_data POINT NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_point_data(point_data)
|
||||
) ENGINE=MyISAM;
|
||||
INSERT t1 (point_data) VALUES
|
||||
(GeomFromText('Point(37.0248492 23.8512726)')),
|
||||
(GeomFromText('Point(38.0248492 23.8512726)'));
|
||||
SELECT id FROM t1
|
||||
WHERE ST_Contains(point_data, GeomFromText('Point(38.0248492 23.8512726)'));
|
||||
id
|
||||
2
|
||||
DROP TABLE t1;
|
20
mysql-test/r/grant_lowercase.result
Normal file
20
mysql-test/r/grant_lowercase.result
Normal file
@ -0,0 +1,20 @@
|
||||
grant file on *.* to user1@localhost with grant option;
|
||||
grant select on `a%`.* to user1@localhost with grant option;
|
||||
grant file on aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.* to 'user'@'%' identified by 'secret';
|
||||
ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
drop user user1@localhost;
|
||||
call mtr.add_suppression("Incorrect database name");
|
||||
alter table mysql.host modify Db varchar(200);
|
||||
alter table mysql.db modify Db varchar(200);
|
||||
insert mysql.host set db=concat('=>', repeat(_utf8 'й', 200));
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'Db' at row 1
|
||||
insert mysql.db set db=concat('=>', repeat(_utf8 'й', 200));
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'Db' at row 1
|
||||
flush privileges;
|
||||
delete from mysql.host where db like '=>%';
|
||||
delete from mysql.db where db like '=>%';
|
||||
alter table mysql.host modify Db char(64);
|
||||
alter table mysql.db modify Db char(64);
|
||||
flush privileges;
|
@ -2130,6 +2130,47 @@ the value below *must* be 1
|
||||
show status like 'Created_tmp_disk_tables';
|
||||
Variable_name Value
|
||||
Created_tmp_disk_tables 1
|
||||
#
|
||||
# Bug #1002146: Unneeded filesort if usage of join buffer is not allowed
|
||||
# (bug mdev-645)
|
||||
#
|
||||
CREATE TABLE t1 (pk int PRIMARY KEY, a int, INDEX idx(a));
|
||||
INSERT INTO t1 VALUES (3,2), (2,3), (5,3), (6,4);
|
||||
CREATE TABLE t2 (pk int PRIMARY KEY, a int, INDEX idx(a));
|
||||
INSERT INTO t2 VALUES (9,0), (10,3), (6,4), (1,6), (3,100), (5,200);
|
||||
set join_cache_level=0;
|
||||
EXPLAIN
|
||||
SELECT t2.a FROM t2 STRAIGHT_JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6
|
||||
GROUP BY t2.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx idx 5 NULL 5 Using where; Using index
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 4 Using index
|
||||
SELECT t2.a FROM t2 STRAIGHT_JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6
|
||||
GROUP BY t2.a;
|
||||
a
|
||||
3
|
||||
4
|
||||
100
|
||||
200
|
||||
set join_cache_level=default;
|
||||
set @save_optimizer_switch=@@optimizer_switch;
|
||||
set optimizer_switch='outer_join_with_cache=off';
|
||||
EXPLAIN
|
||||
SELECT t2.a FROM t2 LEFT JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6
|
||||
GROUP BY t2.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx idx 5 NULL 5 Using where; Using index
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 4 Using where; Using index
|
||||
SELECT t2.a FROM t2 LEFT JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6
|
||||
GROUP BY t2.a;
|
||||
a
|
||||
0
|
||||
3
|
||||
4
|
||||
100
|
||||
200
|
||||
set optimizer_switch=@save_optimizer_switch;
|
||||
DROP TABLE t1,t2;
|
||||
# End of 5.3 tests
|
||||
#
|
||||
# Bug#49771: Incorrect MIN (date) when minimum value is 0000-00-00
|
||||
@ -2161,6 +2202,51 @@ f1 MIN(f2) MAX(f2)
|
||||
DROP TABLE t1;
|
||||
#End of test#49771
|
||||
#
|
||||
# Test of bug in GROUP_CONCAT with ROLLUP
|
||||
#
|
||||
CREATE TABLE t1 ( b VARCHAR(8) NOT NULL, a INT NOT NULL ) ENGINE=MyISAM;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'c'),(2,'v');
|
||||
CREATE TABLE t2 ( c VARCHAR(8), d INT, KEY (c, d) ) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES ('v',6),('c',4),('v',3);
|
||||
SELECT b, GROUP_CONCAT( a, b ORDER BY a, b )
|
||||
FROM t1 JOIN t2 ON c = b GROUP BY b;
|
||||
b GROUP_CONCAT( a, b ORDER BY a, b )
|
||||
c 1c
|
||||
v 2v,2v
|
||||
SELECT b, GROUP_CONCAT( a, b ORDER BY a, b )
|
||||
FROM t1 JOIN t2 ON c = b GROUP BY b WITH ROLLUP;
|
||||
b GROUP_CONCAT( a, b ORDER BY a, b )
|
||||
c 1c
|
||||
v 2v,2v
|
||||
NULL 1c,2v,2v
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# Test of MDEV-4002
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
pk INT NOT NULL PRIMARY KEY,
|
||||
d1 DOUBLE,
|
||||
d2 DOUBLE,
|
||||
i INT NOT NULL DEFAULT '0',
|
||||
KEY (i)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1,1.0,1.1,1),(2,2.0,2.2,2);
|
||||
PREPARE stmt FROM "
|
||||
SELECT DISTINCT i, GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
FROM t1 a1 NATURAL JOIN t1 a2 GROUP BY i WITH ROLLUP
|
||||
";
|
||||
EXECUTE stmt;
|
||||
i GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
1 11.1
|
||||
2 22.2
|
||||
NULL 11.1,22.2
|
||||
EXECUTE stmt;
|
||||
i GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
1 11.1
|
||||
2 22.2
|
||||
NULL 11.1,22.2
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #58782
|
||||
# Missing rows with SELECT .. WHERE .. IN subquery
|
||||
# with full GROUP BY and no aggr
|
||||
|
30
mysql-test/r/group_by_innodb.result
Normal file
30
mysql-test/r/group_by_innodb.result
Normal file
@ -0,0 +1,30 @@
|
||||
#
|
||||
# MDEV-3992 Server crash or valgrind errors in test_if_skip_sort_order/test_if_cheaper_ordering
|
||||
# on GROUP BY with indexes on InnoDB table
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
pk INT PRIMARY KEY,
|
||||
a VARCHAR(1) NOT NULL,
|
||||
KEY (pk)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1,'a'),(2,'b');
|
||||
EXPLAIN
|
||||
SELECT COUNT(*), pk field1, pk AS field2
|
||||
FROM t1 WHERE a = 'r' OR pk = 183
|
||||
GROUP BY field1, field2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index PRIMARY,pk pk 4 NULL 2 Using where
|
||||
SELECT COUNT(*), pk field1, pk AS field2
|
||||
FROM t1 WHERE a = 'r' OR pk = 183
|
||||
GROUP BY field1, field2;
|
||||
COUNT(*) field1 field2
|
||||
EXPLAIN
|
||||
SELECT COUNT(*), pk field1 FROM t1
|
||||
WHERE a = 'r' OR pk = 183 GROUP BY field1, field1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index PRIMARY,pk pk 4 NULL 2 Using where
|
||||
SELECT COUNT(*), pk field1 FROM t1
|
||||
WHERE a = 'r' OR pk = 183 GROUP BY field1, field1;
|
||||
COUNT(*) field1
|
||||
drop table t1;
|
||||
End of 5.5 tests
|
@ -2933,6 +2933,13 @@ ORDER BY min_a;
|
||||
min_a
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
create table t1 (a int, b varchar(1), key(b,a)) engine=myisam;
|
||||
insert t1 values (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'f'),(7,'g'),(8,'h'),(null,'i');
|
||||
select min(a), b from t1 where a=7 or b='z' group by b;
|
||||
min(a) b
|
||||
7 g
|
||||
flush tables;
|
||||
drop table t1;
|
||||
#
|
||||
# LP BUG#888456 Wrong result with DISTINCT , ANY , subquery_cache=off , NOT NULL
|
||||
#
|
||||
|
@ -5,7 +5,7 @@ plugin_version 1.0
|
||||
plugin_status ACTIVE
|
||||
plugin_type DAEMON
|
||||
plugin_library handlersocket.so
|
||||
plugin_library_version 1.3
|
||||
plugin_library_version 1.4
|
||||
plugin_author higuchi dot akira at dena dot jp
|
||||
plugin_description Direct access into InnoDB
|
||||
plugin_license BSD
|
||||
|
8
mysql-test/r/information_schema2.result
Normal file
8
mysql-test/r/information_schema2.result
Normal file
@ -0,0 +1,8 @@
|
||||
select variable_name from information_schema.session_status where variable_name =
|
||||
(select variable_name from information_schema.session_status where variable_name = 'uptime');
|
||||
variable_name
|
||||
UPTIME
|
||||
select variable_name from information_schema.session_variables where variable_name =
|
||||
(select variable_name from information_schema.session_variables where variable_name = 'basedir');
|
||||
variable_name
|
||||
BASEDIR
|
@ -149,3 +149,25 @@ set @@join_cache_level= @save_join_cache_level;
|
||||
set storage_engine=@save_storage_engine;
|
||||
set optimizer_switch=@innodb_mrr_cpk_tmp;
|
||||
drop table t0;
|
||||
#
|
||||
# MDEV-3817: Wrong result with index_merge+index_merge_intersection, InnoDB table, join, AND and OR conditions
|
||||
#
|
||||
set @tmp_mdev3817=@@optimizer_switch;
|
||||
SET optimizer_switch='index_merge=on,index_merge_intersection=on';
|
||||
CREATE TABLE t1 (
|
||||
a INT PRIMARY KEY,
|
||||
b INT,
|
||||
c VARCHAR(1024) CHARACTER SET utf8,
|
||||
d INT,
|
||||
KEY (b)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES
|
||||
(1, 9, 'one', 11), (2, 6, 'two', 12), (3, 2, 'three', 13), (4, 5, 'four', 14);
|
||||
CREATE TABLE t2 (e INT, g INT) ENGINE=InnoDB;
|
||||
INSERT INTO t2 VALUES (1,9), (2,6) ;
|
||||
SELECT * FROM t1, t2 WHERE g = b AND ( a < 7 OR a > e );
|
||||
a b c d e g
|
||||
1 9 one 11 1 9
|
||||
2 6 two 12 2 6
|
||||
DROP TABLE t1, t2;
|
||||
set optimizer_switch=@tmp_mdev3817;
|
||||
|
@ -504,35 +504,6 @@ CREATE TABLE t1 (id INT NOT NULL);
|
||||
LOAD DATA LOCAL INFILE 'tb.txt' INTO TABLE t1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #51876 : crash/memory underrun when loading data with ucs2
|
||||
# and reverse() function
|
||||
#
|
||||
# Problem # 1 (original report): wrong parsing of ucs2 data
|
||||
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp.txt';
|
||||
CREATE TABLE t1(a INT);
|
||||
LOAD DATA INFILE 'tmpp.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||
(@b) SET a=REVERSE(@b);
|
||||
Warnings:
|
||||
Warning 1366 Incorrect integer value: '?' for column 'a' at row 1
|
||||
Warning 1366 Incorrect integer value: '?' for column 'a' at row 2
|
||||
# should return 2 zeroes (as the value is truncated)
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
0
|
||||
0
|
||||
DROP TABLE t1;
|
||||
# Problem # 2 : if you write and read ucs2 data to a file they're lost
|
||||
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp2.txt' CHARACTER SET ucs2;
|
||||
CREATE TABLE t1(a INT);
|
||||
LOAD DATA INFILE 'tmpp2.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||
(@b) SET a=REVERSE(@b);
|
||||
# should return 0 and 1 (10 reversed)
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
0
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#11765139 58069: LOAD DATA INFILE: VALGRIND REPORTS INVALID MEMORY READS AND WRITES WITH U
|
||||
#
|
||||
CREATE TABLE t1(f1 INT);
|
||||
|
0
mysql-test/r/lowercase_table4.result
Executable file → Normal file
0
mysql-test/r/lowercase_table4.result
Executable file → Normal file
@ -509,5 +509,9 @@ SHOW TABLES IN connected_db;
|
||||
Tables_in_connected_db
|
||||
table_in_connected_db
|
||||
DROP DATABASE connected_db;
|
||||
create database `aa``bb````cc`;
|
||||
DATABASE()
|
||||
aa`bb``cc
|
||||
drop database `aa``bb````cc`;
|
||||
|
||||
End of tests
|
||||
|
@ -1,19 +0,0 @@
|
||||
RESET MASTER;
|
||||
create table t3 (f text character set utf8);
|
||||
create table t4 (f text character set cp932);
|
||||
flush logs;
|
||||
rename table t3 to t03, t4 to t04;
|
||||
select HEX(f) from t03;
|
||||
HEX(f)
|
||||
E382BD
|
||||
select HEX(f) from t3;
|
||||
HEX(f)
|
||||
E382BD
|
||||
select HEX(f) from t04;
|
||||
HEX(f)
|
||||
835C
|
||||
select HEX(f) from t4;
|
||||
HEX(f)
|
||||
835C
|
||||
drop table t3, t4, t03, t04;
|
||||
End of 5.0 tests
|
File diff suppressed because it is too large
Load Diff
@ -1,121 +0,0 @@
|
||||
reset master;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1);
|
||||
insert into t1 values (2);
|
||||
insert into t1 values (3);
|
||||
update t1 set a=a+2 where a=2;
|
||||
update t1 set a=a+2 where a=3;
|
||||
create table t2 (word varchar(20));
|
||||
load data infile '../../std_data/words.dat' into table t2;
|
||||
flush logs;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
4
|
||||
5
|
||||
select * from t2;
|
||||
word
|
||||
Aarhus
|
||||
Aaron
|
||||
Ababa
|
||||
aback
|
||||
abaft
|
||||
abandon
|
||||
abandoned
|
||||
abandoning
|
||||
abandonment
|
||||
abandons
|
||||
Aarhus
|
||||
Aaron
|
||||
Ababa
|
||||
aback
|
||||
abaft
|
||||
abandon
|
||||
abandoned
|
||||
abandoning
|
||||
abandonment
|
||||
abandons
|
||||
abase
|
||||
abased
|
||||
abasement
|
||||
abasements
|
||||
abases
|
||||
abash
|
||||
abashed
|
||||
abashes
|
||||
abashing
|
||||
abasing
|
||||
abate
|
||||
abated
|
||||
abatement
|
||||
abatements
|
||||
abater
|
||||
abates
|
||||
abating
|
||||
Abba
|
||||
abbe
|
||||
abbey
|
||||
abbeys
|
||||
abbot
|
||||
abbots
|
||||
Abbott
|
||||
abbreviate
|
||||
abbreviated
|
||||
abbreviates
|
||||
abbreviating
|
||||
abbreviation
|
||||
abbreviations
|
||||
Abby
|
||||
abdomen
|
||||
abdomens
|
||||
abdominal
|
||||
abduct
|
||||
abducted
|
||||
abduction
|
||||
abductions
|
||||
abductor
|
||||
abductors
|
||||
abducts
|
||||
Abe
|
||||
abed
|
||||
Abel
|
||||
Abelian
|
||||
Abelson
|
||||
Aberdeen
|
||||
Abernathy
|
||||
aberrant
|
||||
aberration
|
||||
flush logs;
|
||||
drop table t2;
|
||||
create table t2 (word varchar(20));
|
||||
load data infile '../../std_data/words.dat' into table t2;
|
||||
insert into t2 select * from t2;
|
||||
insert into t2 select * from t2;
|
||||
insert into t2 select * from t2;
|
||||
insert into t2 select * from t2;
|
||||
insert into t2 select * from t2;
|
||||
insert into t2 select * from t2;
|
||||
insert into t2 select * from t2;
|
||||
insert into t2 select * from t2;
|
||||
insert into t2 select * from t2;
|
||||
select count(*) from t2;
|
||||
count(*)
|
||||
35840
|
||||
flush logs;
|
||||
select count(*) from t2;
|
||||
count(*)
|
||||
35840
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
RESET MASTER;
|
||||
USE test;
|
||||
SET @old_binlog_format= @@binlog_format;
|
||||
SET SESSION binlog_format=ROW;
|
||||
CREATE TABLE t1(c1 INT);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
FLUSH LOGS;
|
||||
DROP TABLE t1;
|
||||
SET SESSION binlog_format= @old_binlog_format;
|
||||
RESET MASTER;
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,471 +0,0 @@
|
||||
#
|
||||
# Preparatory cleanup.
|
||||
#
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
#
|
||||
# We need a fixed timestamp to avoid varying results.
|
||||
#
|
||||
SET timestamp=1000000000;
|
||||
#
|
||||
# Delete all existing binary logs.
|
||||
#
|
||||
RESET MASTER;
|
||||
#
|
||||
# Create test tables.
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 VARCHAR(20)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET latin1;
|
||||
CREATE TABLE t2 (
|
||||
c1 INT,
|
||||
c2 VARCHAR(20)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET latin1;
|
||||
#
|
||||
# Start transaction #1, transactional table only, commit.
|
||||
#
|
||||
START TRANSACTION;
|
||||
#
|
||||
# Do some statements.
|
||||
#
|
||||
INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3');
|
||||
UPDATE t1 SET c1 = c1 + 10;
|
||||
DELETE FROM t1 WHERE c1 = 12;
|
||||
#
|
||||
# Commit transaction.
|
||||
#
|
||||
COMMIT;
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
11 varchar-1
|
||||
13 varchar-3
|
||||
TRUNCATE TABLE t1;
|
||||
#
|
||||
# Start transaction #2, transactional table only, rollback.
|
||||
#
|
||||
START TRANSACTION;
|
||||
#
|
||||
# Do some statements.
|
||||
#
|
||||
INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3');
|
||||
UPDATE t1 SET c1 = c1 + 10;
|
||||
DELETE FROM t1 WHERE c1 = 12;
|
||||
#
|
||||
# Rollback transaction.
|
||||
#
|
||||
ROLLBACK;
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
TRUNCATE TABLE t1;
|
||||
#
|
||||
# Start transaction #3, both tables, commit.
|
||||
#
|
||||
START TRANSACTION;
|
||||
#
|
||||
# Do some statements on the transactional table.
|
||||
#
|
||||
INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3');
|
||||
UPDATE t1 SET c1 = c1 + 10;
|
||||
DELETE FROM t1 WHERE c1 = 12;
|
||||
#
|
||||
# Do some statements on the non-transactional table.
|
||||
#
|
||||
INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3');
|
||||
UPDATE t2 SET c1 = c1 + 10;
|
||||
DELETE FROM t2 WHERE c1 = 12;
|
||||
#
|
||||
# Commit transaction.
|
||||
#
|
||||
COMMIT;
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
11 varchar-1
|
||||
13 varchar-3
|
||||
SELECT * FROM t2;
|
||||
c1 c2
|
||||
11 varchar-1
|
||||
13 varchar-3
|
||||
TRUNCATE TABLE t1;
|
||||
TRUNCATE TABLE t2;
|
||||
#
|
||||
# Start transaction #4, both tables, rollback.
|
||||
#
|
||||
START TRANSACTION;
|
||||
#
|
||||
# Do some statements on the transactional table.
|
||||
#
|
||||
INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3');
|
||||
UPDATE t1 SET c1 = c1 + 10;
|
||||
DELETE FROM t1 WHERE c1 = 12;
|
||||
#
|
||||
# Do some statements on the non-transactional table.
|
||||
#
|
||||
INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3');
|
||||
UPDATE t2 SET c1 = c1 + 10;
|
||||
DELETE FROM t2 WHERE c1 = 12;
|
||||
#
|
||||
# Rollback transaction.
|
||||
#
|
||||
ROLLBACK;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
SELECT * FROM t2;
|
||||
c1 c2
|
||||
11 varchar-1
|
||||
13 varchar-3
|
||||
TRUNCATE TABLE t1;
|
||||
TRUNCATE TABLE t2;
|
||||
#
|
||||
# Flush all log buffers to the log file.
|
||||
#
|
||||
FLUSH LOGS;
|
||||
#
|
||||
# Call mysqlbinlog to display the log file contents.
|
||||
#
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup
|
||||
ROLLBACK/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Binlog checkpoint master-bin.000001
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
use `test`/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=#/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
SET @@session.lc_time_names=0/*!*/;
|
||||
SET @@session.collation_database=DEFAULT/*!*/;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 VARCHAR(20)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET latin1
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
CREATE TABLE t2 (
|
||||
c1 INT,
|
||||
c2 VARCHAR(20)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET latin1
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=11 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=13 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t1
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Xid = #
|
||||
COMMIT/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t1
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t1
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=11 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=13 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t2
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=11 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=13 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t1
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Xid = #
|
||||
COMMIT/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t1
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t2
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=11 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=13 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t2
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t1
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t2
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Rotate to master-bin.000002 pos: 4
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
#
|
||||
# Cleanup.
|
||||
#
|
||||
DROP TABLE t1, t2;
|
@ -935,9 +935,9 @@ a int(11) YES NULL
|
||||
b varchar(255) YES NULL
|
||||
c datetime YES NULL
|
||||
drop table t1;
|
||||
mysqltest: At line 1: change user failed: Unknown database 'inexistent'
|
||||
mysqltest: At line 1: change user failed: Access denied for user 'inexistent'@'localhost' (using password: NO)
|
||||
mysqltest: At line 1: change user failed: Access denied for user 'root'@'localhost' (using password: YES)
|
||||
mysqltest: At line 1: query 'change_user root,,inexistent' failed: 1049: Unknown database 'inexistent'
|
||||
mysqltest: At line 1: query 'change_user inexistent,,test' failed: 1045: Access denied for user 'inexistent'@'localhost' (using password: NO)
|
||||
mysqltest: At line 1: query 'change_user root,inexistent,test' failed: 1045: Access denied for user 'root'@'localhost' (using password: YES)
|
||||
REPLACED_FILE1.txt
|
||||
file1.txt
|
||||
file2.txt
|
||||
|
@ -574,4 +574,24 @@ a b
|
||||
1 2
|
||||
0 1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# BUG#12912171 - ASSERTION FAILED: QUICK->HEAD->READ_SET ==
|
||||
# SAVE_READ_SET
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
b INT,
|
||||
c INT,
|
||||
PRIMARY KEY (c,a), KEY (a),KEY (a)
|
||||
) ENGINE=INNODB PARTITION BY KEY () PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1,5,1),(2,4,1),(3,3,1),(4,2,1),(5,1,1);
|
||||
UPDATE t1 SET b = 0, c=1 WHERE a <=>0;
|
||||
SELECT * FROM t1;
|
||||
a b c
|
||||
1 5 1
|
||||
2 4 1
|
||||
3 3 1
|
||||
4 2 1
|
||||
5 1 1
|
||||
DROP TABLE t1;
|
||||
set global default_storage_engine=default;
|
||||
|
@ -15,7 +15,7 @@ PLUGIN_STATUS ACTIVE
|
||||
PLUGIN_TYPE STORAGE ENGINE
|
||||
PLUGIN_TYPE_VERSION #
|
||||
PLUGIN_LIBRARY ha_example.so
|
||||
PLUGIN_LIBRARY_VERSION 1.3
|
||||
PLUGIN_LIBRARY_VERSION 1.4
|
||||
PLUGIN_AUTHOR Brian Aker, MySQL AB
|
||||
PLUGIN_DESCRIPTION Example storage engine
|
||||
PLUGIN_LICENSE GPL
|
||||
@ -28,7 +28,7 @@ PLUGIN_STATUS ACTIVE
|
||||
PLUGIN_TYPE DAEMON
|
||||
PLUGIN_TYPE_VERSION #
|
||||
PLUGIN_LIBRARY ha_example.so
|
||||
PLUGIN_LIBRARY_VERSION 1.3
|
||||
PLUGIN_LIBRARY_VERSION 1.4
|
||||
PLUGIN_AUTHOR Sergei Golubchik
|
||||
PLUGIN_DESCRIPTION Unusable Daemon
|
||||
PLUGIN_LICENSE GPL
|
||||
@ -57,7 +57,7 @@ PLUGIN_STATUS DELETED
|
||||
PLUGIN_TYPE STORAGE ENGINE
|
||||
PLUGIN_TYPE_VERSION #
|
||||
PLUGIN_LIBRARY ha_example.so
|
||||
PLUGIN_LIBRARY_VERSION 1.3
|
||||
PLUGIN_LIBRARY_VERSION 1.4
|
||||
PLUGIN_AUTHOR Brian Aker, MySQL AB
|
||||
PLUGIN_DESCRIPTION Example storage engine
|
||||
PLUGIN_LICENSE GPL
|
||||
@ -69,6 +69,8 @@ UNINSTALL PLUGIN EXAMPLE;
|
||||
ERROR 42000: PLUGIN EXAMPLE does not exist
|
||||
UNINSTALL PLUGIN non_exist;
|
||||
ERROR 42000: PLUGIN non_exist does not exist
|
||||
UNINSTALL SONAME 'non_exist';
|
||||
ERROR 42000: SONAME non_exist.so does not exist
|
||||
#
|
||||
# Bug#32034: check_func_enum() does not check correct values but set it
|
||||
# to impossible int val
|
||||
|
@ -121,17 +121,20 @@ ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||
this should fail : not the same user
|
||||
GRANT PROXY ON grant_plug TO grant_plug_dest;
|
||||
ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||
this should fail : same user, but on a different host
|
||||
This is a valid grant
|
||||
GRANT PROXY ON grant_plug_dest TO grant_plug;
|
||||
ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||
this should work : same user
|
||||
GRANT PROXY ON grant_plug_dest@localhost TO grant_plug_dest2;
|
||||
REVOKE PROXY ON grant_plug_dest@localhost FROM grant_plug_dest2;
|
||||
REVOKE PROXY ON grant_plug_dest FROM grant_plug;
|
||||
this should work : same user
|
||||
GRANT PROXY ON grant_plug_dest TO grant_plug_dest2;
|
||||
REVOKE PROXY ON grant_plug_dest FROM grant_plug_dest2;
|
||||
this should fail : not the same user
|
||||
GRANT PROXY ON grant_plug_dest@localhost TO grant_plug WITH GRANT OPTION;
|
||||
ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||
this should fail : not the same user
|
||||
REVOKE PROXY ON grant_plug_dest@localhost FROM grant_plug;
|
||||
ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||
this should fail : can't create users
|
||||
GRANT PROXY ON grant_plug_dest@localhost TO grant_plug@localhost;
|
||||
GRANT PROXY ON grant_plug_dest TO grant_plug@localhost;
|
||||
ERROR 42000: You are not allowed to create a user with GRANT
|
||||
in default connection
|
||||
# test what root can grant
|
||||
@ -149,12 +152,12 @@ GRANT PROXY ON future_user TO grant_plug;
|
||||
in default connection
|
||||
SHOW GRANTS FOR grant_plug;
|
||||
Grants for grant_plug@%
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest' WITH GRANT OPTION
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest'
|
||||
GRANT PROXY ON 'future_user'@'%' TO 'grant_plug'@'%'
|
||||
REVOKE PROXY ON future_user FROM grant_plug;
|
||||
SHOW GRANTS FOR grant_plug;
|
||||
Grants for grant_plug@%
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest' WITH GRANT OPTION
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest'
|
||||
## testing drop user
|
||||
CREATE USER test_drop@localhost;
|
||||
GRANT PROXY ON future_user TO test_drop@localhost;
|
||||
|
@ -1953,3 +1953,49 @@ a b c d
|
||||
14 1 1 q
|
||||
9 7 1 s
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# BUG#13256446 - ASSERTION QUICK->HEAD->READ_SET ==
|
||||
# SAVE_READ_SET' FAILED IN OPT_RANGE.CC:1606
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
f1 INT AUTO_INCREMENT,
|
||||
f2 INT,
|
||||
f3 INT,
|
||||
f4 INT,
|
||||
PRIMARY KEY (f1),KEY(f2)
|
||||
) ENGINE=INNODB;
|
||||
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT f1,f2,f3,f4 FROM t1 WHERE f2=103;
|
||||
INSERT INTO t1 VALUES (154,0,NULL,0),(0,NULL,9,0),
|
||||
(NULL,102,NULL,3),(0,3,NULL,0), (9,0,NULL,0),(0,9,NULL,157);
|
||||
SELECT * FROM v2;
|
||||
f1 f2 f3 f4
|
||||
UPDATE v2 SET f4=0, f2=NULL, f1=NULL WHERE f1 > 16 ORDER BY f1;
|
||||
SELECT * FROM v2;
|
||||
f1 f2 f3 f4
|
||||
DROP TABLE t1;
|
||||
DROP VIEW v2;
|
||||
CREATE TABLE t1 (
|
||||
f1 INT AUTO_INCREMENT,
|
||||
f2 INT,
|
||||
f3 INT,
|
||||
f4 INT,
|
||||
PRIMARY KEY (f1),KEY(f2)
|
||||
) ENGINE=INNODB;
|
||||
INSERT INTO t1 VALUES(1,NULL,NULL,0), (2,2,0,3), (9,0,107,18),
|
||||
(10,0,0,0), (231,0,0,0), (232,0,8,0), (234,0,0,NULL), (235,8,0,3);
|
||||
CREATE ALGORITHM=MERGE VIEW v3 AS SELECT f1,f2,f3,f4 FROM t1 WHERE f1<=85 ;
|
||||
SELECT * FROM v3;
|
||||
f1 f2 f3 f4
|
||||
1 NULL NULL 0
|
||||
2 2 0 3
|
||||
9 0 107 18
|
||||
10 0 0 0
|
||||
UPDATE v3 SET f3=0, f4=4 WHERE f2=68 ORDER BY f1;
|
||||
SELECT * FROM v3;
|
||||
f1 f2 f3 f4
|
||||
1 NULL NULL 0
|
||||
2 2 0 3
|
||||
9 0 107 18
|
||||
10 0 0 0
|
||||
DROP TABLE t1;
|
||||
DROP VIEW v3;
|
||||
|
@ -1955,4 +1955,50 @@ a b c d
|
||||
9 7 1 s
|
||||
14 1 1 q
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# BUG#13256446 - ASSERTION QUICK->HEAD->READ_SET ==
|
||||
# SAVE_READ_SET' FAILED IN OPT_RANGE.CC:1606
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
f1 INT AUTO_INCREMENT,
|
||||
f2 INT,
|
||||
f3 INT,
|
||||
f4 INT,
|
||||
PRIMARY KEY (f1),KEY(f2)
|
||||
) ENGINE=INNODB;
|
||||
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT f1,f2,f3,f4 FROM t1 WHERE f2=103;
|
||||
INSERT INTO t1 VALUES (154,0,NULL,0),(0,NULL,9,0),
|
||||
(NULL,102,NULL,3),(0,3,NULL,0), (9,0,NULL,0),(0,9,NULL,157);
|
||||
SELECT * FROM v2;
|
||||
f1 f2 f3 f4
|
||||
UPDATE v2 SET f4=0, f2=NULL, f1=NULL WHERE f1 > 16 ORDER BY f1;
|
||||
SELECT * FROM v2;
|
||||
f1 f2 f3 f4
|
||||
DROP TABLE t1;
|
||||
DROP VIEW v2;
|
||||
CREATE TABLE t1 (
|
||||
f1 INT AUTO_INCREMENT,
|
||||
f2 INT,
|
||||
f3 INT,
|
||||
f4 INT,
|
||||
PRIMARY KEY (f1),KEY(f2)
|
||||
) ENGINE=INNODB;
|
||||
INSERT INTO t1 VALUES(1,NULL,NULL,0), (2,2,0,3), (9,0,107,18),
|
||||
(10,0,0,0), (231,0,0,0), (232,0,8,0), (234,0,0,NULL), (235,8,0,3);
|
||||
CREATE ALGORITHM=MERGE VIEW v3 AS SELECT f1,f2,f3,f4 FROM t1 WHERE f1<=85 ;
|
||||
SELECT * FROM v3;
|
||||
f1 f2 f3 f4
|
||||
1 NULL NULL 0
|
||||
2 2 0 3
|
||||
9 0 107 18
|
||||
10 0 0 0
|
||||
UPDATE v3 SET f3=0, f4=4 WHERE f2=68 ORDER BY f1;
|
||||
SELECT * FROM v3;
|
||||
f1 f2 f3 f4
|
||||
1 NULL NULL 0
|
||||
2 2 0 3
|
||||
9 0 107 18
|
||||
10 0 0 0
|
||||
DROP TABLE t1;
|
||||
DROP VIEW v3;
|
||||
set optimizer_switch=@mrr_icp_extra_tmp;
|
||||
|
@ -1552,3 +1552,14 @@ RELEASE_LOCK('t')
|
||||
óóóó
|
||||
1
|
||||
SET NAMES latin1;
|
||||
#
|
||||
# WL#6454: Deprecate SHOW AUTHORS and SHOW CONTRIBUTORS
|
||||
#
|
||||
SHOW AUTHORS;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1681 'SHOW AUTHORS' is deprecated and will be removed in a future release.
|
||||
SHOW CONTRIBUTORS;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1681 'SHOW CONTRIBUTORS' is deprecated and will be removed in a future release.
|
||||
|
@ -6530,16 +6530,16 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref c1 c1 5 const 1 Using index
|
||||
EXPLAIN SELECT * FROM t1 WHERE c1=f1();
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref c1 c1 5 const 0 Using where; Using index
|
||||
1 SIMPLE t1 ref c1 c1 5 const 1 Using where; Using index
|
||||
EXPLAIN SELECT * FROM v1 WHERE c1=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref c1 c1 5 const 1 Using index
|
||||
EXPLAIN SELECT * FROM v1 WHERE c1=f1();
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref c1 c1 5 const 0 Using where; Using index
|
||||
1 SIMPLE t1 ref c1 c1 5 const 1 Using where; Using index
|
||||
EXPLAIN SELECT * FROM t1 WHERE c1=f2(10);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref c1 c1 5 const 0 Using where; Using index
|
||||
1 SIMPLE t1 ref c1 c1 5 const 1 Using where; Using index
|
||||
EXPLAIN SELECT * FROM t1 WHERE c1=f2(c1);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL c1 5 NULL 5 Using where; Using index
|
||||
@ -7852,6 +7852,38 @@ c1 c2 count(c3)
|
||||
2012-03-01 01:00:00 3 1
|
||||
2012-03-01 02:00:00 3 1
|
||||
DROP PROCEDURE p1;
|
||||
|
||||
MDEV-3900 Optimizer difference between MySQL and MariaDB with stored functions in WHERE clause of UPDATE or DELETE statements
|
||||
|
||||
CREATE FUNCTION tdn() RETURNS int(7) DETERMINISTIC RETURN to_days(now());
|
||||
CREATE TABLE t1 (pk INT NOT NULL AUTO_INCREMENT PRIMARY KEY, daynum INT, a CHAR(1), INDEX(daynum), INDEX(a)) ENGINE=MyISAM;
|
||||
INSERT INTO t1 (daynum) VALUES (1),(2),(3),(4),(5),(TO_DAYS(NOW())),(7),(8);
|
||||
INSERT INTO t1 (daynum) SELECT a1.daynum FROM t1 a1, t1 a2, t1 a3, t1 a4, t1 a5;
|
||||
FLUSH TABLES;
|
||||
FLUSH STATUS;
|
||||
SHOW STATUS LIKE '%Handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 0
|
||||
Handler_read_last 0
|
||||
Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_deleted 0
|
||||
Handler_read_rnd_next 0
|
||||
UPDATE t1 SET a = '+' WHERE daynum=tdn();
|
||||
SHOW STATUS LIKE '%Handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 2
|
||||
Handler_read_last 0
|
||||
Handler_read_next 4097
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_deleted 0
|
||||
Handler_read_rnd_next 0
|
||||
drop function tdn;
|
||||
drop table t1;
|
||||
#
|
||||
# lp:1002157 : testing stored function
|
||||
# bug#62125 result for null incorrectly yields 1292 warning.
|
||||
|
@ -259,7 +259,6 @@ SELECT `my.db`.f1(2);
|
||||
# Switching to default connection.
|
||||
DROP DATABASE `my.db`;
|
||||
USE test;
|
||||
set @@global.concurrent_insert= @old_concurrent_insert;
|
||||
#
|
||||
# Bug#11763507 - 56224: FUNCTION NAME IS CASE-SENSITIVE
|
||||
#
|
||||
@ -280,3 +279,7 @@ Event sql_mode time_zone Create Event character_set_client collation_connection
|
||||
teste_bug11763507 SYSTEM # latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
DROP EVENT teste_bug11763507;
|
||||
#END OF BUG#11763507 test.
|
||||
# ------------------------------------------------------------------
|
||||
# -- End of 5.1 tests
|
||||
# ------------------------------------------------------------------
|
||||
set @@global.concurrent_insert= @old_concurrent_insert;
|
||||
|
@ -2248,6 +2248,53 @@ NULL NULL
|
||||
drop table t1, t2;
|
||||
set optimizer_switch=@subselect4_tmp;
|
||||
#
|
||||
# MDEV-3928 Assertion `example' failed in Item_cache::is_expensive_processor with a 2-level IN subquery
|
||||
#
|
||||
CREATE TABLE t1 (a1 INT, b1 TIME) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (4,'21:22:34'),(6,'10:50:38');
|
||||
CREATE TABLE t2 (a2 INT, b2 TIME) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (8, '06:17:39');
|
||||
CREATE TABLE t3 (a3 INT, b3 TIME) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES (1,'00:00:01'),(7,'00:00:02');
|
||||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE a1 IN (
|
||||
SELECT a2 FROM t2 WHERE a2 IN (
|
||||
SELECT a3 FROM t3 WHERE b2 = b1 AND b2 <= b1 ORDER BY b3
|
||||
)
|
||||
);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 system NULL NULL NULL NULL 1
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT * FROM t1 WHERE a1 IN (
|
||||
SELECT a2 FROM t2 WHERE a2 IN (
|
||||
SELECT a3 FROM t3 WHERE b2 = b1 AND b2 <= b1 ORDER BY b3
|
||||
)
|
||||
);
|
||||
a1 b1
|
||||
drop table t1, t2, t3;
|
||||
#
|
||||
# MDEV-4056:Server crashes in Item_func_trig_cond::val_int
|
||||
# with FROM and NOT IN subqueries, LEFT JOIN, derived_merge+in_to_exists
|
||||
#
|
||||
set @optimizer_switch_MDEV4056 = @@optimizer_switch;
|
||||
SET optimizer_switch = 'derived_merge=on,in_to_exists=on';
|
||||
CREATE TABLE t1 (a VARCHAR(1)) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ('x'),('d');
|
||||
CREATE TABLE t2 (pk INT PRIMARY KEY, b INT, c VARCHAR(1)) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (1,2,'v'),(2,150,'v');
|
||||
SELECT * FROM t1 LEFT JOIN (
|
||||
SELECT * FROM t2 WHERE ( pk, pk ) NOT IN (
|
||||
SELECT MIN(b), SUM(pk) FROM t1
|
||||
)
|
||||
) AS alias1 ON (a = c)
|
||||
WHERE b IS NULL OR a < 'u';
|
||||
a pk b c
|
||||
x NULL NULL NULL
|
||||
d NULL NULL NULL
|
||||
drop table t1,t2;
|
||||
set @@optimizer_switch = @optimizer_switch_MDEV4056;
|
||||
#
|
||||
# MDEV-3899 Valgrind warnings (blocks are definitely lost) in filesort on IN subquery with SUM and DISTINCT
|
||||
#
|
||||
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||
|
@ -432,4 +432,22 @@ select 1 from t1 where 1 like (select 1 from t1 where 1 <=> (select 1 from t1 gr
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-3988 crash in create_tmp_table
|
||||
#
|
||||
drop table if exists `t1`,`t2`;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
Note 1051 Unknown table 't2'
|
||||
create table `t1`(`a` char(1) character set utf8)engine=innodb;
|
||||
create table `t2`(`b` char(1) character set utf8)engine=memory;
|
||||
select distinct (select 1 from `t2` where `a`) `d2` from `t1`;
|
||||
d2
|
||||
select distinct (select 1 from `t2` where `a`) `d2`, a from `t1`;
|
||||
d2 a
|
||||
select distinct a, (select 1 from `t2` where `a`) `d2` from `t1`;
|
||||
a d2
|
||||
select distinct (1 + (select 1 from `t2` where `a`)) `d2` from `t1`;
|
||||
d2
|
||||
drop table t1,t2;
|
||||
set optimizer_switch=@subselect_innodb_tmp;
|
||||
|
@ -2767,4 +2767,79 @@ GROUP BY b
|
||||
HAVING t1sum <> 1;
|
||||
t1sum b
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# MDEV-3911: Assertion `fixed == 0' failed in Item_field::fix_fields
|
||||
# on 2nd execution of PS with semijoin=on and IN subquery
|
||||
#
|
||||
CREATE TABLE t1 (a INT, b INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (0,4),(8,6);
|
||||
CREATE TABLE t2 (c INT, d INT) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (7,1),(0,7);
|
||||
PREPARE stmt FROM ' SELECT * FROM t1 WHERE ( a, b ) IN ( SELECT c, d FROM t2 ) ';
|
||||
execute stmt;
|
||||
a b
|
||||
execute stmt;
|
||||
a b
|
||||
deallocate prepare stmt;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MySQL Bug#13340270: assertion table->sort.record_pointers == __null
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
pk int NOT NULL,
|
||||
col_int_key int DEFAULT NULL,
|
||||
col_varchar_key varchar(1) DEFAULT NULL,
|
||||
col_varchar_nokey varchar(1) DEFAULT NULL,
|
||||
PRIMARY KEY (pk),
|
||||
KEY col_int_key (col_int_key),
|
||||
KEY col_varchar_key (col_varchar_key, col_int_key)
|
||||
) ENGINE=InnoDB;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'InnoDB'
|
||||
Warning 1266 Using storage engine MyISAM for table 't1'
|
||||
INSERT INTO t1 VALUES
|
||||
(10,8,'x','x'),
|
||||
(11,7,'d','d'),
|
||||
(12,1,'r','r'),
|
||||
(13,7,'f','f'),
|
||||
(14,9,'y','y'),
|
||||
(15,NULL,'u','u'),
|
||||
(16,1,'m','m'),
|
||||
(17,9,NULL,NULL),
|
||||
(18,2,'o','o'),
|
||||
(19,9,'w','w'),
|
||||
(20,2,'m','m'),
|
||||
(21,4,'q','q');
|
||||
CREATE TABLE t2
|
||||
SELECT alias1.col_varchar_nokey AS field1
|
||||
FROM t1 AS alias1 JOIN t1 AS alias2
|
||||
ON alias2.col_int_key = alias1.pk OR
|
||||
alias2.col_int_key = alias1.col_int_key
|
||||
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
|
||||
|
||||
;
|
||||
EXPLAIN SELECT *
|
||||
FROM t2
|
||||
WHERE (field1) IN (SELECT alias1.col_varchar_nokey AS field1
|
||||
FROM t1 AS alias1 JOIN t1 AS alias2
|
||||
ON alias2.col_int_key = alias1.pk OR
|
||||
alias2.col_int_key = alias1.col_int_key
|
||||
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
|
||||
);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY alias1 index_merge PRIMARY,col_int_key,col_varchar_key PRIMARY,col_varchar_key 4,4 NULL 2 Using sort_union(PRIMARY,col_varchar_key); Using where
|
||||
1 PRIMARY alias2 ALL col_int_key NULL NULL NULL 12 Range checked for each record (index map: 0x2); FirstMatch(t2)
|
||||
SELECT *
|
||||
FROM t2
|
||||
WHERE (field1) IN (SELECT alias1.col_varchar_nokey AS field1
|
||||
FROM t1 AS alias1 JOIN t1 AS alias2
|
||||
ON alias2.col_int_key = alias1.pk OR
|
||||
alias2.col_int_key = alias1.col_int_key
|
||||
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
|
||||
);
|
||||
field1
|
||||
o
|
||||
o
|
||||
DROP TABLE t1, t2;
|
||||
set optimizer_switch=@subselect_sj_tmp;
|
||||
|
@ -2781,6 +2781,81 @@ GROUP BY b
|
||||
HAVING t1sum <> 1;
|
||||
t1sum b
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# MDEV-3911: Assertion `fixed == 0' failed in Item_field::fix_fields
|
||||
# on 2nd execution of PS with semijoin=on and IN subquery
|
||||
#
|
||||
CREATE TABLE t1 (a INT, b INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (0,4),(8,6);
|
||||
CREATE TABLE t2 (c INT, d INT) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (7,1),(0,7);
|
||||
PREPARE stmt FROM ' SELECT * FROM t1 WHERE ( a, b ) IN ( SELECT c, d FROM t2 ) ';
|
||||
execute stmt;
|
||||
a b
|
||||
execute stmt;
|
||||
a b
|
||||
deallocate prepare stmt;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MySQL Bug#13340270: assertion table->sort.record_pointers == __null
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
pk int NOT NULL,
|
||||
col_int_key int DEFAULT NULL,
|
||||
col_varchar_key varchar(1) DEFAULT NULL,
|
||||
col_varchar_nokey varchar(1) DEFAULT NULL,
|
||||
PRIMARY KEY (pk),
|
||||
KEY col_int_key (col_int_key),
|
||||
KEY col_varchar_key (col_varchar_key, col_int_key)
|
||||
) ENGINE=InnoDB;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'InnoDB'
|
||||
Warning 1266 Using storage engine MyISAM for table 't1'
|
||||
INSERT INTO t1 VALUES
|
||||
(10,8,'x','x'),
|
||||
(11,7,'d','d'),
|
||||
(12,1,'r','r'),
|
||||
(13,7,'f','f'),
|
||||
(14,9,'y','y'),
|
||||
(15,NULL,'u','u'),
|
||||
(16,1,'m','m'),
|
||||
(17,9,NULL,NULL),
|
||||
(18,2,'o','o'),
|
||||
(19,9,'w','w'),
|
||||
(20,2,'m','m'),
|
||||
(21,4,'q','q');
|
||||
CREATE TABLE t2
|
||||
SELECT alias1.col_varchar_nokey AS field1
|
||||
FROM t1 AS alias1 JOIN t1 AS alias2
|
||||
ON alias2.col_int_key = alias1.pk OR
|
||||
alias2.col_int_key = alias1.col_int_key
|
||||
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
|
||||
|
||||
;
|
||||
EXPLAIN SELECT *
|
||||
FROM t2
|
||||
WHERE (field1) IN (SELECT alias1.col_varchar_nokey AS field1
|
||||
FROM t1 AS alias1 JOIN t1 AS alias2
|
||||
ON alias2.col_int_key = alias1.pk OR
|
||||
alias2.col_int_key = alias1.col_int_key
|
||||
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
|
||||
);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY alias1 index_merge PRIMARY,col_int_key,col_varchar_key PRIMARY,col_varchar_key 4,4 NULL 2 Using sort_union(PRIMARY,col_varchar_key); Using where
|
||||
1 PRIMARY alias2 ALL col_int_key NULL NULL NULL 12 Range checked for each record (index map: 0x2); FirstMatch(t2)
|
||||
SELECT *
|
||||
FROM t2
|
||||
WHERE (field1) IN (SELECT alias1.col_varchar_nokey AS field1
|
||||
FROM t1 AS alias1 JOIN t1 AS alias2
|
||||
ON alias2.col_int_key = alias1.pk OR
|
||||
alias2.col_int_key = alias1.col_int_key
|
||||
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
|
||||
);
|
||||
field1
|
||||
o
|
||||
o
|
||||
DROP TABLE t1, t2;
|
||||
set optimizer_switch=@subselect_sj_tmp;
|
||||
#
|
||||
# BUG#49129: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off
|
||||
@ -2988,7 +3063,7 @@ EXPLAIN
|
||||
SELECT a FROM t1 t WHERE a IN (SELECT b FROM t1, t2 WHERE b = a)
|
||||
GROUP BY a HAVING a != 'z';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t index idx_a idx_a 4 NULL 3 Using index; Using temporary; Using filesort
|
||||
1 PRIMARY t index idx_a idx_a 4 NULL 3 Using index
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
2 MATERIALIZED t1 ref idx_a idx_a 4 test.t2.b 2 Using index
|
||||
@ -3002,7 +3077,7 @@ EXPLAIN
|
||||
SELECT a FROM t1 t WHERE a IN (SELECT b FROM t1, t2 WHERE b = a)
|
||||
GROUP BY a HAVING a != 'z';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t index idx_a idx_a 4 NULL 3 Using index; Using temporary; Using filesort
|
||||
1 PRIMARY t index idx_a idx_a 4 NULL 3 Using index
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
2 MATERIALIZED t1 ref idx_a idx_a 4 test.t2.b 2 Using index
|
||||
|
@ -103,5 +103,20 @@ sm
|
||||
10323810
|
||||
10325070
|
||||
10326330
|
||||
#
|
||||
# Bug mdev-4063: SUM(DISTINCT...) with small'max_heap_table_size
|
||||
# (bug #56927)
|
||||
#
|
||||
SET max_heap_table_size=default;
|
||||
INSERT INTO t1 SELECT id+16384 FROM t1;
|
||||
DELETE FROM t2;
|
||||
INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand();
|
||||
SELECT SUM(DISTINCT id) sm FROM t2;
|
||||
sm
|
||||
536887296
|
||||
SET max_heap_table_size=16384;
|
||||
SELECT SUM(DISTINCT id) sm FROM t2;
|
||||
sm
|
||||
536887296
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
@ -389,6 +389,7 @@ select a from t1 where a=(select 2000 from dual where 1);
|
||||
a
|
||||
select a from t1 where a=y2k();
|
||||
a
|
||||
00
|
||||
select a from t1 where a=b;
|
||||
a
|
||||
drop table t1;
|
||||
|
@ -561,3 +561,45 @@ ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function
|
||||
DROP VIEW v1;
|
||||
DROP FUNCTION f1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Verify that UPDATE does the same number of handler_update
|
||||
# operations, no matter if there is ORDER BY or not.
|
||||
#
|
||||
CREATE TABLE t1 (i INT) ENGINE=INNODB;
|
||||
INSERT INTO t1 VALUES (10),(11),(12),(13),(14),(15),(16),(17),(18),(19),
|
||||
(20),(21),(22),(23),(24),(25),(26),(27),(28),(29),
|
||||
(30),(31),(32),(33),(34),(35);
|
||||
CREATE TABLE t2 (a CHAR(2), b CHAR(2), c CHAR(2), d CHAR(2),
|
||||
INDEX idx (a,b(1),c)) ENGINE=INNODB;
|
||||
INSERT INTO t2 SELECT i, i, i, i FROM t1;
|
||||
FLUSH STATUS;
|
||||
START TRANSACTION;
|
||||
UPDATE t2 SET d = 10 WHERE b = 10 LIMIT 5;
|
||||
SHOW STATUS LIKE 'HANDLER_UPDATE';
|
||||
Variable_name Value
|
||||
Handler_update 1
|
||||
ROLLBACK;
|
||||
FLUSH STATUS;
|
||||
START TRANSACTION;
|
||||
UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;
|
||||
SHOW STATUS LIKE 'HANDLER_UPDATE';
|
||||
Variable_name Value
|
||||
Handler_update 1
|
||||
ROLLBACK;
|
||||
Same test with a different UPDATE.
|
||||
ALTER TABLE t2 DROP INDEX idx, ADD INDEX idx2 (a, b);
|
||||
FLUSH STATUS;
|
||||
START TRANSACTION;
|
||||
UPDATE t2 SET c = 10 LIMIT 5;
|
||||
SHOW STATUS LIKE 'HANDLER_UPDATE';
|
||||
Variable_name Value
|
||||
Handler_update 5
|
||||
ROLLBACK;
|
||||
FLUSH STATUS;
|
||||
START TRANSACTION;
|
||||
UPDATE t2 SET c = 10 ORDER BY a, b DESC LIMIT 5;
|
||||
SHOW STATUS LIKE 'HANDLER_UPDATE';
|
||||
Variable_name Value
|
||||
Handler_update 5
|
||||
ROLLBACK;
|
||||
DROP TABLE t1, t2;
|
||||
|
@ -4780,6 +4780,30 @@ id id bbb iddqd val1
|
||||
drop view v2;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MDEV-3914: Wrong result (NULLs instead of real values)
|
||||
# with INNER and RIGHT JOIN in a FROM subquery, derived_merge=on
|
||||
# (fix of above MDEV-486 fix)
|
||||
#
|
||||
SET @save_optimizer_switch_MDEV_3914=@@optimizer_switch;
|
||||
SET optimizer_switch = 'derived_merge=on';
|
||||
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
CREATE TABLE t2 (b INT) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (3),(4);
|
||||
CREATE TABLE t3 (c INT) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES (5),(6);
|
||||
SELECT * FROM ( SELECT c FROM ( t1 INNER JOIN t2 ) RIGHT JOIN t3 ON a = c ) AS alias;
|
||||
c
|
||||
5
|
||||
6
|
||||
SET optimizer_switch = 'derived_merge=off';
|
||||
SELECT * FROM ( SELECT c FROM ( t1 INNER JOIN t2 ) RIGHT JOIN t3 ON a = c ) AS alias;
|
||||
c
|
||||
5
|
||||
6
|
||||
SET optimizer_switch=@save_optimizer_switch_MDEV_3914;
|
||||
drop table t1,t2,t3;
|
||||
#
|
||||
# MDEV-589 (LP BUG#1007647) :
|
||||
# Assertion `vcol_table == 0 || vcol_table == table' failed in
|
||||
# fill_record(THD*, List<Item>&, List<Item>&, bool)
|
||||
@ -4822,6 +4846,23 @@ f2 f1
|
||||
7 NULL
|
||||
8 NULL
|
||||
drop tables t1,t2;
|
||||
#
|
||||
# MDEV-3876 Wrong result (extra rows) with ALL subquery
|
||||
# from a MERGE view (duplicate of MDEV-3873)
|
||||
#
|
||||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
CREATE TABLE t2 (b INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (1),(3);
|
||||
CREATE OR REPLACE ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t2;
|
||||
SELECT a FROM t1 AS alias
|
||||
WHERE a >= ALL (
|
||||
SELECT b FROM t1 LEFT JOIN v1 ON (a = b)
|
||||
WHERE a = alias.a );
|
||||
a
|
||||
1
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
# -----------------------------------------------------------------
|
||||
# -- End of 5.3 tests.
|
||||
# -----------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user