Merge 5.0 -> 5.1
This commit is contained in:
commit
0ef6e2a5ab
@ -164,7 +164,7 @@ Warnings:
|
|||||||
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
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_issuer' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_subject' doesn't have a default value
|
Warning 1364 Field 'x509_subject' doesn't have a default value
|
||||||
insert into mysql.db (host, db, user, select_priv) values
|
insert into mysql.db (host, db, user, select_priv) values
|
||||||
('localhost', 'a%', 'test11', 'Y'), ('localhost', 'ab%', 'test11', 'Y');
|
('localhost', 'a%', 'test11', 'Y'), ('localhost', 'ab%', 'test11', 'Y');
|
||||||
alter table mysql.db order by db asc;
|
alter table mysql.db order by db asc;
|
||||||
flush privileges;
|
flush privileges;
|
||||||
@ -264,7 +264,7 @@ drop user mysqltest_1@localhost;
|
|||||||
SET NAMES koi8r;
|
SET NAMES koi8r;
|
||||||
CREATE DATABASE ÂÄ;
|
CREATE DATABASE ÂÄ;
|
||||||
USE ÂÄ;
|
USE ÂÄ;
|
||||||
CREATE TABLE ÔÁÂ (ËÏÌ int);
|
CREATE TABLE ÔÁÂ (ËÏÌ INT);
|
||||||
GRANT SELECT ON ÂÄ.* TO ÀÚÅÒ@localhost;
|
GRANT SELECT ON ÂÄ.* TO ÀÚÅÒ@localhost;
|
||||||
SHOW GRANTS FOR ÀÚÅÒ@localhost;
|
SHOW GRANTS FOR ÀÚÅÒ@localhost;
|
||||||
Grants for ÀÚÅÒ@localhost
|
Grants for ÀÚÅÒ@localhost
|
||||||
@ -383,21 +383,21 @@ grant update (a) on mysqltest_1.t1 to mysqltest_3@localhost;
|
|||||||
grant select (b) on mysqltest_1.t2 to mysqltest_3@localhost;
|
grant select (b) on mysqltest_1.t2 to mysqltest_3@localhost;
|
||||||
grant select (c) on mysqltest_2.t1 to mysqltest_3@localhost;
|
grant select (c) on mysqltest_2.t1 to mysqltest_3@localhost;
|
||||||
grant update (d) on mysqltest_2.t2 to mysqltest_3@localhost;
|
grant update (d) on mysqltest_2.t2 to mysqltest_3@localhost;
|
||||||
SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
|
SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
|
||||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||||
ORDER BY TABLE_NAME,COLUMN_NAME,PRIVILEGE_TYPE;
|
ORDER BY TABLE_NAME,COLUMN_NAME,PRIVILEGE_TYPE;
|
||||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
'mysqltest_3'@'localhost' NULL mysqltest_1 t1 a UPDATE NO
|
'mysqltest_3'@'localhost' NULL mysqltest_1 t1 a UPDATE NO
|
||||||
'mysqltest_3'@'localhost' NULL mysqltest_2 t1 c SELECT NO
|
'mysqltest_3'@'localhost' NULL mysqltest_2 t1 c SELECT NO
|
||||||
'mysqltest_3'@'localhost' NULL mysqltest_1 t2 b SELECT NO
|
'mysqltest_3'@'localhost' NULL mysqltest_1 t2 b SELECT NO
|
||||||
'mysqltest_3'@'localhost' NULL mysqltest_2 t2 d UPDATE NO
|
'mysqltest_3'@'localhost' NULL mysqltest_2 t2 d UPDATE NO
|
||||||
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
|
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
|
||||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||||
ORDER BY TABLE_NAME,PRIVILEGE_TYPE;
|
ORDER BY TABLE_NAME,PRIVILEGE_TYPE;
|
||||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
SELECT * from INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
|
SELECT * from INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
|
||||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||||
ORDER BY TABLE_SCHEMA,PRIVILEGE_TYPE;
|
ORDER BY TABLE_SCHEMA,PRIVILEGE_TYPE;
|
||||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
SELECT * from INFORMATION_SCHEMA.USER_PRIVILEGES
|
SELECT * from INFORMATION_SCHEMA.USER_PRIVILEGES
|
||||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||||
@ -884,11 +884,11 @@ flush privileges;
|
|||||||
drop table t2;
|
drop table t2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE DATABASE mysqltest3;
|
CREATE DATABASE mysqltest3;
|
||||||
use mysqltest3;
|
USE mysqltest3;
|
||||||
CREATE TABLE t_nn (c1 INT);
|
CREATE TABLE t_nn (c1 INT);
|
||||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||||
CREATE DATABASE mysqltest2;
|
CREATE DATABASE mysqltest2;
|
||||||
use mysqltest2;
|
USE mysqltest2;
|
||||||
CREATE TABLE t_nn (c1 INT);
|
CREATE TABLE t_nn (c1 INT);
|
||||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||||
CREATE VIEW v_yn AS SELECT * FROM t_nn;
|
CREATE VIEW v_yn AS SELECT * FROM t_nn;
|
||||||
@ -958,7 +958,7 @@ DROP TABLE mysqltest3.t_nn;
|
|||||||
DROP DATABASE mysqltest3;
|
DROP DATABASE mysqltest3;
|
||||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysqltest_1'@'localhost';
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysqltest_1'@'localhost';
|
||||||
DROP USER 'mysqltest_1'@'localhost';
|
DROP USER 'mysqltest_1'@'localhost';
|
||||||
use test;
|
USE test;
|
||||||
create user mysqltest1_thisisreallytoolong;
|
create user mysqltest1_thisisreallytoolong;
|
||||||
ERROR HY000: String 'mysqltest1_thisisreallytoolong' is too long for user name (should be no longer than 16)
|
ERROR HY000: String 'mysqltest1_thisisreallytoolong' is too long for user name (should be no longer than 16)
|
||||||
CREATE DATABASE mysqltest1;
|
CREATE DATABASE mysqltest1;
|
||||||
@ -1196,16 +1196,16 @@ DROP DATABASE mysqltest1;
|
|||||||
DROP DATABASE mysqltest2;
|
DROP DATABASE mysqltest2;
|
||||||
DROP USER mysqltest_1@localhost;
|
DROP USER mysqltest_1@localhost;
|
||||||
DROP USER mysqltest_2@localhost;
|
DROP USER mysqltest_2@localhost;
|
||||||
use test;
|
USE test;
|
||||||
CREATE TABLE t1 (f1 int, f2 int);
|
CREATE TABLE t1 (f1 int, f2 int);
|
||||||
INSERT INTO t1 VALUES(1,1), (2,2);
|
INSERT INTO t1 VALUES(1,1), (2,2);
|
||||||
CREATE DATABASE db27878;
|
CREATE DATABASE db27878;
|
||||||
GRANT UPDATE(f1) ON t1 TO 'mysqltest_1'@'localhost';
|
GRANT UPDATE(f1) ON t1 TO 'mysqltest_1'@'localhost';
|
||||||
GRANT SELECT ON `test`.* TO 'mysqltest_1'@'localhost';
|
GRANT SELECT ON `test`.* TO 'mysqltest_1'@'localhost';
|
||||||
GRANT ALL ON db27878.* TO 'mysqltest_1'@'localhost';
|
GRANT ALL ON db27878.* TO 'mysqltest_1'@'localhost';
|
||||||
use db27878;
|
USE db27878;
|
||||||
CREATE SQL SECURITY INVOKER VIEW db27878.v1 AS SELECT * FROM test.t1;
|
CREATE SQL SECURITY INVOKER VIEW db27878.v1 AS SELECT * FROM test.t1;
|
||||||
use db27878;
|
USE db27878;
|
||||||
UPDATE v1 SET f2 = 4;
|
UPDATE v1 SET f2 = 4;
|
||||||
ERROR HY000: View 'db27878.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
ERROR HY000: View 'db27878.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||||
SELECT * FROM test.t1;
|
SELECT * FROM test.t1;
|
||||||
@ -1217,7 +1217,7 @@ REVOKE SELECT ON `test`.* FROM 'mysqltest_1'@'localhost';
|
|||||||
REVOKE ALL ON db27878.* FROM 'mysqltest_1'@'localhost';
|
REVOKE ALL ON db27878.* FROM 'mysqltest_1'@'localhost';
|
||||||
DROP USER mysqltest_1@localhost;
|
DROP USER mysqltest_1@localhost;
|
||||||
DROP DATABASE db27878;
|
DROP DATABASE db27878;
|
||||||
use test;
|
USE test;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Bug#33275 Server crash when creating temporary table mysql.user
|
# Bug#33275 Server crash when creating temporary table mysql.user
|
||||||
@ -1355,6 +1355,6 @@ Warnings:
|
|||||||
Warning 1403 There is no such grant defined for user 'userbug33464' on host 'localhost' on routine 'fn2'
|
Warning 1403 There is no such grant defined for user 'userbug33464' on host 'localhost' on routine 'fn2'
|
||||||
DROP PROCEDURE sp3;
|
DROP PROCEDURE sp3;
|
||||||
DROP USER 'userbug33464'@'localhost';
|
DROP USER 'userbug33464'@'localhost';
|
||||||
use test;
|
USE test;
|
||||||
DROP DATABASE dbbug33464;
|
DROP DATABASE dbbug33464;
|
||||||
SET @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creators;
|
SET @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creators;
|
||||||
|
@ -99,7 +99,7 @@ t2
|
|||||||
t3
|
t3
|
||||||
t5
|
t5
|
||||||
v1
|
v1
|
||||||
select c,table_name from v1
|
select c,table_name from v1
|
||||||
inner join information_schema.TABLES v2 on (v1.c=v2.table_name)
|
inner join information_schema.TABLES v2 on (v1.c=v2.table_name)
|
||||||
where v1.c like "t%";
|
where v1.c like "t%";
|
||||||
c table_name
|
c table_name
|
||||||
@ -118,7 +118,7 @@ t4 t4
|
|||||||
t2 t2
|
t2 t2
|
||||||
t3 t3
|
t3 t3
|
||||||
t5 t5
|
t5 t5
|
||||||
select c,table_name from v1
|
select c,table_name from v1
|
||||||
left join information_schema.TABLES v2 on (v1.c=v2.table_name)
|
left join information_schema.TABLES v2 on (v1.c=v2.table_name)
|
||||||
where v1.c like "t%";
|
where v1.c like "t%";
|
||||||
c table_name
|
c table_name
|
||||||
@ -197,7 +197,7 @@ a int(11) YES NULL
|
|||||||
create view mysqltest.v1 (c) as select a from mysqltest.t1;
|
create view mysqltest.v1 (c) as select a from mysqltest.t1;
|
||||||
grant select (a) on mysqltest.t1 to mysqltest_2@localhost;
|
grant select (a) on mysqltest.t1 to mysqltest_2@localhost;
|
||||||
grant select on mysqltest.v1 to mysqltest_3;
|
grant select on mysqltest.v1 to mysqltest_3;
|
||||||
select table_name, column_name, privileges from information_schema.columns
|
select table_name, column_name, privileges from information_schema.columns
|
||||||
where table_schema = 'mysqltest' and table_name = 't1';
|
where table_schema = 'mysqltest' and table_name = 't1';
|
||||||
table_name column_name privileges
|
table_name column_name privileges
|
||||||
t1 a select
|
t1 a select
|
||||||
@ -275,7 +275,7 @@ begin
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
select * from t2;
|
select * from t2;
|
||||||
end|
|
end|
|
||||||
select parameter_style, sql_data_access, dtd_identifier
|
select parameter_style, sql_data_access, dtd_identifier
|
||||||
from information_schema.routines where routine_schema='test';
|
from information_schema.routines where routine_schema='test';
|
||||||
parameter_style sql_data_access dtd_identifier
|
parameter_style sql_data_access dtd_identifier
|
||||||
SQL CONTAINS SQL NULL
|
SQL CONTAINS SQL NULL
|
||||||
@ -560,7 +560,7 @@ drop view v1;
|
|||||||
create table t1(a NUMERIC(5,3), b NUMERIC(5,1), c float(5,2),
|
create table t1(a NUMERIC(5,3), b NUMERIC(5,1), c float(5,2),
|
||||||
d NUMERIC(6,4), e float, f DECIMAL(6,3), g int(11), h DOUBLE(10,3),
|
d NUMERIC(6,4), e float, f DECIMAL(6,3), g int(11), h DOUBLE(10,3),
|
||||||
i DOUBLE);
|
i DOUBLE);
|
||||||
select COLUMN_NAME,COLUMN_TYPE, CHARACTER_MAXIMUM_LENGTH,
|
select COLUMN_NAME,COLUMN_TYPE, CHARACTER_MAXIMUM_LENGTH,
|
||||||
CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE
|
CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE
|
||||||
from information_schema.columns where table_name= 't1';
|
from information_schema.columns where table_name= 't1';
|
||||||
COLUMN_NAME COLUMN_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE
|
COLUMN_NAME COLUMN_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE
|
||||||
@ -621,7 +621,7 @@ TABLE_NAME= "vo";
|
|||||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||||
drop view vo;
|
drop view vo;
|
||||||
select TABLE_NAME,TABLE_TYPE,ENGINE
|
select TABLE_NAME,TABLE_TYPE,ENGINE
|
||||||
from information_schema.tables
|
from information_schema.tables
|
||||||
where table_schema='information_schema' limit 2;
|
where table_schema='information_schema' limit 2;
|
||||||
TABLE_NAME TABLE_TYPE ENGINE
|
TABLE_NAME TABLE_TYPE ENGINE
|
||||||
CHARACTER_SETS SYSTEM VIEW MEMORY
|
CHARACTER_SETS SYSTEM VIEW MEMORY
|
||||||
@ -726,7 +726,7 @@ where table_schema="information_schema" and table_name="COLUMNS" and
|
|||||||
column_type
|
column_type
|
||||||
varchar(32)
|
varchar(32)
|
||||||
varchar(32)
|
varchar(32)
|
||||||
select TABLE_ROWS from information_schema.tables where
|
select TABLE_ROWS from information_schema.tables where
|
||||||
table_schema="information_schema" and table_name="COLUMNS";
|
table_schema="information_schema" and table_name="COLUMNS";
|
||||||
TABLE_ROWS
|
TABLE_ROWS
|
||||||
NULL
|
NULL
|
||||||
@ -760,7 +760,7 @@ count(*)
|
|||||||
drop view a2, a1;
|
drop view a2, a1;
|
||||||
drop table t_crashme;
|
drop table t_crashme;
|
||||||
select table_schema,table_name, column_name from
|
select table_schema,table_name, column_name from
|
||||||
information_schema.columns
|
information_schema.columns
|
||||||
where data_type = 'longtext';
|
where data_type = 'longtext';
|
||||||
table_schema table_name column_name
|
table_schema table_name column_name
|
||||||
information_schema COLUMNS COLUMN_DEFAULT
|
information_schema COLUMNS COLUMN_DEFAULT
|
||||||
@ -804,7 +804,7 @@ event last_executed datetime
|
|||||||
event starts datetime
|
event starts datetime
|
||||||
event ends datetime
|
event ends datetime
|
||||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES A
|
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES A
|
||||||
WHERE NOT EXISTS
|
WHERE NOT EXISTS
|
||||||
(SELECT * FROM INFORMATION_SCHEMA.COLUMNS B
|
(SELECT * FROM INFORMATION_SCHEMA.COLUMNS B
|
||||||
WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
|
WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
|
||||||
AND A.TABLE_NAME = B.TABLE_NAME);
|
AND A.TABLE_NAME = B.TABLE_NAME);
|
||||||
@ -833,7 +833,7 @@ x_float NULL NULL
|
|||||||
x_double_precision NULL NULL
|
x_double_precision NULL NULL
|
||||||
drop table t1;
|
drop table t1;
|
||||||
grant select on test.* to mysqltest_4@localhost;
|
grant select on test.* to mysqltest_4@localhost;
|
||||||
SELECT TABLE_NAME, COLUMN_NAME, PRIVILEGES FROM INFORMATION_SCHEMA.COLUMNS
|
SELECT TABLE_NAME, COLUMN_NAME, PRIVILEGES FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
where COLUMN_NAME='TABLE_NAME';
|
where COLUMN_NAME='TABLE_NAME';
|
||||||
TABLE_NAME COLUMN_NAME PRIVILEGES
|
TABLE_NAME COLUMN_NAME PRIVILEGES
|
||||||
COLUMNS TABLE_NAME select
|
COLUMNS TABLE_NAME select
|
||||||
@ -1079,7 +1079,7 @@ BEGIN
|
|||||||
SELECT 'foo' FROM DUAL;
|
SELECT 'foo' FROM DUAL;
|
||||||
END |
|
END |
|
||||||
ERROR 42000: Unknown database 'information_schema'
|
ERROR 42000: Unknown database 'information_schema'
|
||||||
select ROUTINE_NAME from routines where ROUTINE_SCHEMA='information_schema';
|
select ROUTINE_NAME from routines where ROUTINE_SCHEMA='information_schema';
|
||||||
ROUTINE_NAME
|
ROUTINE_NAME
|
||||||
grant all on information_schema.* to 'user1'@'localhost';
|
grant all on information_schema.* to 'user1'@'localhost';
|
||||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||||
@ -1634,7 +1634,7 @@ show events where Db= 'information_schema';
|
|||||||
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
||||||
use test;
|
use test;
|
||||||
#
|
#
|
||||||
# Bug#34166: Server crash in SHOW OPEN TABLES and prelocking
|
# Bug#34166 Server crash in SHOW OPEN TABLES and prelocking
|
||||||
#
|
#
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
drop function if exists f1;
|
drop function if exists f1;
|
||||||
|
@ -375,7 +375,7 @@ update t2, t1 set t2.field=t1.field
|
|||||||
where t1.id1=t2.id2 and 0=1;
|
where t1.id1=t2.id2 and 0=1;
|
||||||
delete t1, t2 from t2 inner join t1 on t1.id1=t2.id2
|
delete t1, t2 from t2 inner join t1 on t1.id1=t2.id2
|
||||||
where 0=1;
|
where 0=1;
|
||||||
delete t1, t2 from t2,t1
|
delete t1, t2 from t2,t1
|
||||||
where t1.id1=t2.id2 and 0=1;
|
where t1.id1=t2.id2 and 0=1;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
CREATE TABLE t1 ( a int );
|
CREATE TABLE t1 ( a int );
|
||||||
@ -443,12 +443,12 @@ delete t1 from t1,t2 where t1.col1 < (select max(col1) from t1) and t1.col1 = t2
|
|||||||
ERROR HY000: You can't specify target table 't1' for update in FROM clause
|
ERROR HY000: You can't specify target table 't1' for update in FROM clause
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
create table t1 (
|
create table t1 (
|
||||||
aclid bigint not null primary key,
|
aclid bigint not null primary key,
|
||||||
status tinyint(1) not null
|
status tinyint(1) not null
|
||||||
) engine = innodb;
|
) engine = innodb;
|
||||||
create table t2 (
|
create table t2 (
|
||||||
refid bigint not null primary key,
|
refid bigint not null primary key,
|
||||||
aclid bigint, index idx_acl(aclid)
|
aclid bigint, index idx_acl(aclid)
|
||||||
) engine = innodb;
|
) engine = innodb;
|
||||||
insert into t2 values(1,null);
|
insert into t2 values(1,null);
|
||||||
delete t2, t1 from t2 left join t1 on (t2.aclid=t1.aclid) where t2.refid='1';
|
delete t2, t1 from t2 left join t1 on (t2.aclid=t1.aclid) where t2.refid='1';
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
set @max_allowed_packet=@@global.max_allowed_packet;
|
||||||
|
set @net_buffer_length=@@global.net_buffer_length;
|
||||||
set global max_allowed_packet=100;
|
set global max_allowed_packet=100;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect max_allowed_packet value: '100'
|
Warning 1292 Truncated incorrect max_allowed_packet value: '100'
|
||||||
@ -23,3 +25,5 @@ len
|
|||||||
select length(repeat('a',2000));
|
select length(repeat('a',2000));
|
||||||
length(repeat('a',2000))
|
length(repeat('a',2000))
|
||||||
2000
|
2000
|
||||||
|
set global max_allowed_packet=@max_allowed_packet;
|
||||||
|
set global net_buffer_length=@net_buffer_length;
|
||||||
|
@ -375,6 +375,7 @@ id
|
|||||||
show status like 'Qcache_queries_in_cache';
|
show status like 'Qcache_queries_in_cache';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_queries_in_cache 1
|
Qcache_queries_in_cache 1
|
||||||
|
USE test;
|
||||||
DROP DATABASE bug30269;
|
DROP DATABASE bug30269;
|
||||||
DROP USER 'bug30269'@'localhost';
|
DROP USER 'bug30269'@'localhost';
|
||||||
set GLOBAL query_cache_type=default;
|
set GLOBAL query_cache_type=default;
|
||||||
|
@ -192,11 +192,11 @@ select (select a from t3 where a<t2.a*4 order by 1 desc limit 1), a from t2;
|
|||||||
(select a from t3 where a<t2.a*4 order by 1 desc limit 1) a
|
(select a from t3 where a<t2.a*4 order by 1 desc limit 1) a
|
||||||
3 1
|
3 1
|
||||||
7 2
|
7 2
|
||||||
select (select t3.a from t3 where a<8 order by 1 desc limit 1), a from
|
select (select t3.a from t3 where a<8 order by 1 desc limit 1), a from
|
||||||
(select * from t2 where a>1) as tt;
|
(select * from t2 where a>1) as tt;
|
||||||
(select t3.a from t3 where a<8 order by 1 desc limit 1) a
|
(select t3.a from t3 where a<8 order by 1 desc limit 1) a
|
||||||
7 2
|
7 2
|
||||||
explain extended select (select t3.a from t3 where a<8 order by 1 desc limit 1), a from
|
explain extended select (select t3.a from t3 where a<8 order by 1 desc limit 1), a from
|
||||||
(select * from t2 where a>1) as tt;
|
(select * from t2 where a>1) as tt;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY <derived3> system NULL NULL NULL NULL 1 100.00
|
1 PRIMARY <derived3> system NULL NULL NULL NULL 1 100.00
|
||||||
@ -2303,20 +2303,20 @@ drop table t1,t2;
|
|||||||
CREATE TABLE t1 ( a int, b int );
|
CREATE TABLE t1 ( a int, b int );
|
||||||
CREATE TABLE t2 ( c int, d int );
|
CREATE TABLE t2 ( c int, d int );
|
||||||
INSERT INTO t1 VALUES (1,2), (2,3), (3,4);
|
INSERT INTO t1 VALUES (1,2), (2,3), (3,4);
|
||||||
SELECT a AS abc, b FROM t1 outr WHERE b =
|
SELECT a AS abc, b FROM t1 outr WHERE b =
|
||||||
(SELECT MIN(b) FROM t1 WHERE a=outr.a);
|
(SELECT MIN(b) FROM t1 WHERE a=outr.a);
|
||||||
abc b
|
abc b
|
||||||
1 2
|
1 2
|
||||||
2 3
|
2 3
|
||||||
3 4
|
3 4
|
||||||
INSERT INTO t2 SELECT a AS abc, b FROM t1 outr WHERE b =
|
INSERT INTO t2 SELECT a AS abc, b FROM t1 outr WHERE b =
|
||||||
(SELECT MIN(b) FROM t1 WHERE a=outr.a);
|
(SELECT MIN(b) FROM t1 WHERE a=outr.a);
|
||||||
select * from t2;
|
select * from t2;
|
||||||
c d
|
c d
|
||||||
1 2
|
1 2
|
||||||
2 3
|
2 3
|
||||||
3 4
|
3 4
|
||||||
CREATE TABLE t3 SELECT a AS abc, b FROM t1 outr WHERE b =
|
CREATE TABLE t3 SELECT a AS abc, b FROM t1 outr WHERE b =
|
||||||
(SELECT MIN(b) FROM t1 WHERE a=outr.a);
|
(SELECT MIN(b) FROM t1 WHERE a=outr.a);
|
||||||
select * from t3;
|
select * from t3;
|
||||||
abc b
|
abc b
|
||||||
@ -2517,8 +2517,8 @@ INSERT INTO t1 VALUES ('ASM','American Samoa','Oceania','Polynesia',199.00,0,680
|
|||||||
INSERT INTO t1 VALUES ('ATF','French Southern territories','Antarctica','Antarctica',7780.00,0,0,NULL,0.00,NULL,'Terres australes françaises','Nonmetropolitan Territory of France','Jacques Chirac',NULL,'TF');
|
INSERT INTO t1 VALUES ('ATF','French Southern territories','Antarctica','Antarctica',7780.00,0,0,NULL,0.00,NULL,'Terres australes françaises','Nonmetropolitan Territory of France','Jacques Chirac',NULL,'TF');
|
||||||
INSERT INTO t1 VALUES ('UMI','United States Minor Outlying Islands','Oceania','Micronesia/Caribbean',16.00,0,0,NULL,0.00,NULL,'United States Minor Outlying Islands','Dependent Territory of the US','George W. Bush',NULL,'UM');
|
INSERT INTO t1 VALUES ('UMI','United States Minor Outlying Islands','Oceania','Micronesia/Caribbean',16.00,0,0,NULL,0.00,NULL,'United States Minor Outlying Islands','Dependent Territory of the US','George W. Bush',NULL,'UM');
|
||||||
/*!40000 ALTER TABLE t1 ENABLE KEYS */;
|
/*!40000 ALTER TABLE t1 ENABLE KEYS */;
|
||||||
SELECT DISTINCT Continent AS c FROM t1 outr WHERE
|
SELECT DISTINCT Continent AS c FROM t1 outr WHERE
|
||||||
Code <> SOME ( SELECT Code FROM t1 WHERE Continent = outr.Continent AND
|
Code <> SOME ( SELECT Code FROM t1 WHERE Continent = outr.Continent AND
|
||||||
Population < 200);
|
Population < 200);
|
||||||
c
|
c
|
||||||
Oceania
|
Oceania
|
||||||
@ -2628,32 +2628,32 @@ select
|
|||||||
count(distinct t2.userid) pass,
|
count(distinct t2.userid) pass,
|
||||||
groupstuff.*,
|
groupstuff.*,
|
||||||
count(t2.courseid) crse,
|
count(t2.courseid) crse,
|
||||||
t1.categoryid,
|
t1.categoryid,
|
||||||
t2.courseid,
|
t2.courseid,
|
||||||
date_format(date, '%b%y') as colhead
|
date_format(date, '%b%y') as colhead
|
||||||
from t2
|
from t2
|
||||||
join t1 on t2.courseid=t1.courseid
|
join t1 on t2.courseid=t1.courseid
|
||||||
join
|
join
|
||||||
(
|
(
|
||||||
select
|
select
|
||||||
t5.userid,
|
t5.userid,
|
||||||
parentid,
|
parentid,
|
||||||
parentgroup,
|
parentgroup,
|
||||||
childid,
|
childid,
|
||||||
groupname,
|
groupname,
|
||||||
grouptypeid
|
grouptypeid
|
||||||
from t5
|
from t5
|
||||||
join
|
join
|
||||||
(
|
(
|
||||||
select t4.id as parentid,
|
select t4.id as parentid,
|
||||||
t4.name as parentgroup,
|
t4.name as parentgroup,
|
||||||
t4.id as childid,
|
t4.id as childid,
|
||||||
t4.name as groupname,
|
t4.name as groupname,
|
||||||
t4.grouptypeid
|
t4.grouptypeid
|
||||||
from t4
|
from t4
|
||||||
) as gin on t5.groupid=gin.childid
|
) as gin on t5.groupid=gin.childid
|
||||||
) as groupstuff on t2.userid = groupstuff.userid
|
) as groupstuff on t2.userid = groupstuff.userid
|
||||||
group by
|
group by
|
||||||
groupstuff.groupname, colhead , t2.courseid;
|
groupstuff.groupname, colhead , t2.courseid;
|
||||||
pass userid parentid parentgroup childid groupname grouptypeid crse categoryid courseid colhead
|
pass userid parentid parentgroup childid groupname grouptypeid crse categoryid courseid colhead
|
||||||
1 5141 12 group2 12 group2 5 1 5 12 Aug04
|
1 5141 12 group2 12 group2 5 1 5 12 Aug04
|
||||||
@ -2929,9 +2929,9 @@ INSERT INTO t1 VALUES("0037", "1", "2005-12-06 12:18:56");
|
|||||||
INSERT INTO t1 VALUES("0037", "2", "2006-01-06 12:25:53");
|
INSERT INTO t1 VALUES("0037", "2", "2006-01-06 12:25:53");
|
||||||
INSERT INTO t1 VALUES("0048", "1", "2006-01-06 12:37:50");
|
INSERT INTO t1 VALUES("0048", "1", "2006-01-06 12:37:50");
|
||||||
INSERT INTO t1 VALUES("0059", "1", "2006-01-06 12:37:50");
|
INSERT INTO t1 VALUES("0059", "1", "2006-01-06 12:37:50");
|
||||||
select * from t1 r1
|
select * from t1 r1
|
||||||
where (r1.retailerID,(r1.changed)) in
|
where (r1.retailerID,(r1.changed)) in
|
||||||
(SELECT r2.retailerId,(max(changed)) from t1 r2
|
(SELECT r2.retailerId,(max(changed)) from t1 r2
|
||||||
group by r2.retailerId);
|
group by r2.retailerId);
|
||||||
retailerID statusID changed
|
retailerID statusID changed
|
||||||
0026 2 2006-01-06 12:25:53
|
0026 2 2006-01-06 12:25:53
|
||||||
@ -2943,41 +2943,41 @@ create table t1(a int, primary key (a));
|
|||||||
insert into t1 values (10);
|
insert into t1 values (10);
|
||||||
create table t2 (a int primary key, b varchar(32), c int, unique key b(c, b));
|
create table t2 (a int primary key, b varchar(32), c int, unique key b(c, b));
|
||||||
insert into t2(a, c, b) values (1,10,'359'), (2,10,'35988'), (3,10,'35989');
|
insert into t2(a, c, b) values (1,10,'359'), (2,10,'35988'), (3,10,'35989');
|
||||||
explain SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
explain SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
ORDER BY t2.c DESC, t2.b DESC LIMIT 1) WHERE t1.a = 10;
|
ORDER BY t2.c DESC, t2.b DESC LIMIT 1) WHERE t1.a = 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 system PRIMARY NULL NULL NULL 1
|
1 PRIMARY t1 system PRIMARY NULL NULL NULL 1
|
||||||
1 PRIMARY r const PRIMARY PRIMARY 4 const 1
|
1 PRIMARY r const PRIMARY PRIMARY 4 const 1
|
||||||
2 DEPENDENT SUBQUERY t2 range b b 40 NULL 2 Using where
|
2 DEPENDENT SUBQUERY t2 range b b 40 NULL 2 Using where
|
||||||
SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
ORDER BY t2.c DESC, t2.b DESC LIMIT 1) WHERE t1.a = 10;
|
ORDER BY t2.c DESC, t2.b DESC LIMIT 1) WHERE t1.a = 10;
|
||||||
a a b
|
a a b
|
||||||
10 3 35989
|
10 3 35989
|
||||||
explain SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
explain SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
ORDER BY t2.c, t2.b LIMIT 1) WHERE t1.a = 10;
|
ORDER BY t2.c, t2.b LIMIT 1) WHERE t1.a = 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 system PRIMARY NULL NULL NULL 1
|
1 PRIMARY t1 system PRIMARY NULL NULL NULL 1
|
||||||
1 PRIMARY r const PRIMARY PRIMARY 4 const 1
|
1 PRIMARY r const PRIMARY PRIMARY 4 const 1
|
||||||
2 DEPENDENT SUBQUERY t2 range b b 40 NULL 2 Using where
|
2 DEPENDENT SUBQUERY t2 range b b 40 NULL 2 Using where
|
||||||
SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
ORDER BY t2.c, t2.b LIMIT 1) WHERE t1.a = 10;
|
ORDER BY t2.c, t2.b LIMIT 1) WHERE t1.a = 10;
|
||||||
a a b
|
a a b
|
||||||
10 1 359
|
10 1 359
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
field1 int NOT NULL,
|
field1 int NOT NULL,
|
||||||
field2 int NOT NULL,
|
field2 int NOT NULL,
|
||||||
field3 int NOT NULL,
|
field3 int NOT NULL,
|
||||||
PRIMARY KEY (field1,field2,field3)
|
PRIMARY KEY (field1,field2,field3)
|
||||||
);
|
);
|
||||||
CREATE TABLE t2 (
|
CREATE TABLE t2 (
|
||||||
fieldA int NOT NULL,
|
fieldA int NOT NULL,
|
||||||
fieldB int NOT NULL,
|
fieldB int NOT NULL,
|
||||||
PRIMARY KEY (fieldA,fieldB)
|
PRIMARY KEY (fieldA,fieldB)
|
||||||
);
|
);
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1), (1,1,2), (1,2,1), (1,2,2), (1,2,3), (1,3,1);
|
(1,1,1), (1,1,2), (1,2,1), (1,2,2), (1,2,3), (1,3,1);
|
||||||
@ -2991,14 +2991,14 @@ field1 field2 COUNT(*)
|
|||||||
SELECT field1, field2
|
SELECT field1, field2
|
||||||
FROM t1
|
FROM t1
|
||||||
GROUP BY field1, field2
|
GROUP BY field1, field2
|
||||||
HAVING COUNT(*) >= ALL (SELECT fieldB
|
HAVING COUNT(*) >= ALL (SELECT fieldB
|
||||||
FROM t2 WHERE fieldA = field1);
|
FROM t2 WHERE fieldA = field1);
|
||||||
field1 field2
|
field1 field2
|
||||||
1 2
|
1 2
|
||||||
SELECT field1, field2
|
SELECT field1, field2
|
||||||
FROM t1
|
FROM t1
|
||||||
GROUP BY field1, field2
|
GROUP BY field1, field2
|
||||||
HAVING COUNT(*) < ANY (SELECT fieldB
|
HAVING COUNT(*) < ANY (SELECT fieldB
|
||||||
FROM t2 WHERE fieldA = field1);
|
FROM t2 WHERE fieldA = field1);
|
||||||
field1 field2
|
field1 field2
|
||||||
1 1
|
1 1
|
||||||
@ -3021,8 +3021,8 @@ a a IN (SELECT a FROM t1)
|
|||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (a DATETIME);
|
CREATE TABLE t1 (a DATETIME);
|
||||||
INSERT INTO t1 VALUES ('1998-09-23'), ('2003-03-25');
|
INSERT INTO t1 VALUES ('1998-09-23'), ('2003-03-25');
|
||||||
CREATE TABLE t2 AS SELECT
|
CREATE TABLE t2 AS SELECT
|
||||||
(SELECT a FROM t1 WHERE a < '2000-01-01') AS sub_a
|
(SELECT a FROM t1 WHERE a < '2000-01-01') AS sub_a
|
||||||
FROM t1 WHERE a > '2000-01-01';
|
FROM t1 WHERE a > '2000-01-01';
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -3188,7 +3188,7 @@ INSERT INTO t2 VALUES ( 6 );
|
|||||||
CREATE TABLE t3 ( c3 integer );
|
CREATE TABLE t3 ( c3 integer );
|
||||||
INSERT INTO t3 VALUES ( 7 );
|
INSERT INTO t3 VALUES ( 7 );
|
||||||
INSERT INTO t3 VALUES ( 8 );
|
INSERT INTO t3 VALUES ( 8 );
|
||||||
SELECT c1,c2 FROM t1 LEFT JOIN t2 ON c1 = c2
|
SELECT c1,c2 FROM t1 LEFT JOIN t2 ON c1 = c2
|
||||||
WHERE EXISTS (SELECT c3 FROM t3 WHERE c2 IS NULL );
|
WHERE EXISTS (SELECT c3 FROM t3 WHERE c2 IS NULL );
|
||||||
c1 c2
|
c1 c2
|
||||||
2 NULL
|
2 NULL
|
||||||
@ -3231,20 +3231,20 @@ E1
|
|||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1(select_id BIGINT, values_id BIGINT);
|
CREATE TABLE t1(select_id BIGINT, values_id BIGINT);
|
||||||
INSERT INTO t1 VALUES (1, 1);
|
INSERT INTO t1 VALUES (1, 1);
|
||||||
CREATE TABLE t2 (select_id BIGINT, values_id BIGINT,
|
CREATE TABLE t2 (select_id BIGINT, values_id BIGINT,
|
||||||
PRIMARY KEY(select_id,values_id));
|
PRIMARY KEY(select_id,values_id));
|
||||||
INSERT INTO t2 VALUES (0, 1), (0, 2), (0, 3), (1, 5);
|
INSERT INTO t2 VALUES (0, 1), (0, 2), (0, 3), (1, 5);
|
||||||
SELECT values_id FROM t1
|
SELECT values_id FROM t1
|
||||||
WHERE values_id IN (SELECT values_id FROM t2
|
WHERE values_id IN (SELECT values_id FROM t2
|
||||||
WHERE select_id IN (1, 0));
|
WHERE select_id IN (1, 0));
|
||||||
values_id
|
values_id
|
||||||
1
|
1
|
||||||
SELECT values_id FROM t1
|
SELECT values_id FROM t1
|
||||||
WHERE values_id IN (SELECT values_id FROM t2
|
WHERE values_id IN (SELECT values_id FROM t2
|
||||||
WHERE select_id BETWEEN 0 AND 1);
|
WHERE select_id BETWEEN 0 AND 1);
|
||||||
values_id
|
values_id
|
||||||
1
|
1
|
||||||
SELECT values_id FROM t1
|
SELECT values_id FROM t1
|
||||||
WHERE values_id IN (SELECT values_id FROM t2
|
WHERE values_id IN (SELECT values_id FROM t2
|
||||||
WHERE select_id = 0 OR select_id = 1);
|
WHERE select_id = 0 OR select_id = 1);
|
||||||
values_id
|
values_id
|
||||||
@ -3259,7 +3259,7 @@ drop table t1;
|
|||||||
CREATE TABLE t1 (a int, b int);
|
CREATE TABLE t1 (a int, b int);
|
||||||
CREATE TABLE t2 (c int, d int);
|
CREATE TABLE t2 (c int, d int);
|
||||||
CREATE TABLE t3 (e int);
|
CREATE TABLE t3 (e int);
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,10), (2,10), (1,20), (2,20), (3,20), (2,30), (4,40);
|
(1,10), (2,10), (1,20), (2,20), (3,20), (2,30), (4,40);
|
||||||
INSERT INTO t2 VALUES
|
INSERT INTO t2 VALUES
|
||||||
(2,10), (2,20), (4,10), (5,10), (3,20), (2,40);
|
(2,10), (2,20), (4,10), (5,10), (3,20), (2,40);
|
||||||
@ -3322,7 +3322,7 @@ a
|
|||||||
2
|
2
|
||||||
SELECT a FROM t1 GROUP BY a
|
SELECT a FROM t1 GROUP BY a
|
||||||
HAVING a IN (SELECT c FROM t2
|
HAVING a IN (SELECT c FROM t2
|
||||||
WHERE MIN(b) < d AND
|
WHERE MIN(b) < d AND
|
||||||
EXISTS(SELECT e FROM t3 WHERE MAX(b)=e AND e <= d));
|
EXISTS(SELECT e FROM t3 WHERE MAX(b)=e AND e <= d));
|
||||||
a
|
a
|
||||||
2
|
2
|
||||||
@ -3373,7 +3373,7 @@ a
|
|||||||
4
|
4
|
||||||
SELECT t1.a FROM t1 GROUP BY t1.a
|
SELECT t1.a FROM t1 GROUP BY t1.a
|
||||||
HAVING t1.a > ALL(SELECT t2.c FROM t2
|
HAVING t1.a > ALL(SELECT t2.c FROM t2
|
||||||
WHERE EXISTS(SELECT t3.e FROM t3
|
WHERE EXISTS(SELECT t3.e FROM t3
|
||||||
WHERE SUM(t1.a+t2.c) < t3.e/4));
|
WHERE SUM(t1.a+t2.c) < t3.e/4));
|
||||||
ERROR HY000: Invalid use of group function
|
ERROR HY000: Invalid use of group function
|
||||||
SELECT t1.a from t1 GROUP BY t1.a HAVING AVG(SUM(t1.b)) > 20;
|
SELECT t1.a from t1 GROUP BY t1.a HAVING AVG(SUM(t1.b)) > 20;
|
||||||
@ -3486,7 +3486,7 @@ mid bigint(20) unsigned NOT NULL,
|
|||||||
date date NOT NULL,
|
date date NOT NULL,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
INSERT INTO t2 VALUES
|
INSERT INTO t2 VALUES
|
||||||
(1, 1, '2006-03-30'), (2, 2, '2006-04-06'), (3, 3, '2006-04-13'),
|
(1, 1, '2006-03-30'), (2, 2, '2006-04-06'), (3, 3, '2006-04-13'),
|
||||||
(4, 2, '2006-04-20'), (5, 1, '2006-05-01');
|
(4, 2, '2006-04-20'), (5, 1, '2006-05-01');
|
||||||
SELECT *,
|
SELECT *,
|
||||||
@ -3524,7 +3524,7 @@ i2 int(11) NOT NULL default '0',
|
|||||||
t datetime NOT NULL default '0000-00-00 00:00:00',
|
t datetime NOT NULL default '0000-00-00 00:00:00',
|
||||||
PRIMARY KEY (i1,i2,t)
|
PRIMARY KEY (i1,i2,t)
|
||||||
);
|
);
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(24,1,'2005-03-03 16:31:31'),(24,1,'2005-05-27 12:40:07'),
|
(24,1,'2005-03-03 16:31:31'),(24,1,'2005-05-27 12:40:07'),
|
||||||
(24,1,'2005-05-27 12:40:08'),(24,1,'2005-05-27 12:40:10'),
|
(24,1,'2005-05-27 12:40:08'),(24,1,'2005-05-27 12:40:10'),
|
||||||
(24,1,'2005-05-27 12:40:25'),(24,1,'2005-05-27 12:40:30'),
|
(24,1,'2005-05-27 12:40:25'),(24,1,'2005-05-27 12:40:30'),
|
||||||
@ -3540,7 +3540,7 @@ PRIMARY KEY (i1)
|
|||||||
INSERT INTO t2 VALUES (24,1,'2006-06-20 12:29:40');
|
INSERT INTO t2 VALUES (24,1,'2006-06-20 12:29:40');
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1,t2
|
SELECT * FROM t1,t2
|
||||||
WHERE t1.t = (SELECT t1.t FROM t1
|
WHERE t1.t = (SELECT t1.t FROM t1
|
||||||
WHERE t1.t < t2.t AND t1.i2=1 AND t2.i1=t1.i1
|
WHERE t1.t < t2.t AND t1.i2=1 AND t2.i1=t1.i1
|
||||||
ORDER BY t1.t DESC LIMIT 1);
|
ORDER BY t1.t DESC LIMIT 1);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
@ -3548,7 +3548,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 PRIMARY t1 index NULL PRIMARY 16 NULL 11 Using where; Using index
|
1 PRIMARY t1 index NULL PRIMARY 16 NULL 11 Using where; Using index
|
||||||
2 DEPENDENT SUBQUERY t1 range PRIMARY PRIMARY 16 NULL 5 Using where; Using index
|
2 DEPENDENT SUBQUERY t1 range PRIMARY PRIMARY 16 NULL 5 Using where; Using index
|
||||||
SELECT * FROM t1,t2
|
SELECT * FROM t1,t2
|
||||||
WHERE t1.t = (SELECT t1.t FROM t1
|
WHERE t1.t = (SELECT t1.t FROM t1
|
||||||
WHERE t1.t < t2.t AND t1.i2=1 AND t2.i1=t1.i1
|
WHERE t1.t < t2.t AND t1.i2=1 AND t2.i1=t1.i1
|
||||||
ORDER BY t1.t DESC LIMIT 1);
|
ORDER BY t1.t DESC LIMIT 1);
|
||||||
i1 i2 t i1 i2 t
|
i1 i2 t i1 i2 t
|
||||||
@ -3557,22 +3557,22 @@ DROP TABLE t1, t2;
|
|||||||
CREATE TABLE t1 (i INT);
|
CREATE TABLE t1 (i INT);
|
||||||
(SELECT i FROM t1) UNION (SELECT i FROM t1);
|
(SELECT i FROM t1) UNION (SELECT i FROM t1);
|
||||||
i
|
i
|
||||||
SELECT sql_no_cache * FROM t1 WHERE NOT EXISTS
|
SELECT sql_no_cache * FROM t1 WHERE NOT EXISTS
|
||||||
(
|
(
|
||||||
(SELECT i FROM t1) UNION
|
(SELECT i FROM t1) UNION
|
||||||
(SELECT i FROM t1)
|
(SELECT i FROM t1)
|
||||||
);
|
);
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION
|
||||||
(SELECT i FROM t1)
|
(SELECT i FROM t1)
|
||||||
)' at line 3
|
)' at line 3
|
||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE NOT EXISTS (((SELECT i FROM t1) UNION (SELECT i FROM t1)));
|
WHERE NOT EXISTS (((SELECT i FROM t1) UNION (SELECT i FROM t1)));
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION (SELECT i FROM t1)))' at line 2
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION (SELECT i FROM t1)))' at line 2
|
||||||
explain select ((select t11.i from t1 t11) union (select t12.i from t1 t12))
|
explain select ((select t11.i from t1 t11) union (select t12.i from t1 t12))
|
||||||
from t1;
|
from t1;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union (select t12.i from t1 t12))
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union (select t12.i from t1 t12))
|
||||||
from t1' at line 1
|
from t1' at line 1
|
||||||
explain select * from t1 where not exists
|
explain select * from t1 where not exists
|
||||||
((select t11.i from t1 t11) union (select t12.i from t1 t12));
|
((select t11.i from t1 t11) union (select t12.i from t1 t12));
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union (select t12.i from t1 t12))' at line 2
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union (select t12.i from t1 t12))' at line 2
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
@ -3591,9 +3591,9 @@ insert into t1 (a) select FLOOR(rand() * 100) from t1;
|
|||||||
insert into t1 (a) select FLOOR(rand() * 100) from t1;
|
insert into t1 (a) select FLOOR(rand() * 100) from t1;
|
||||||
insert into t1 (a) select FLOOR(rand() * 100) from t1;
|
insert into t1 (a) select FLOOR(rand() * 100) from t1;
|
||||||
insert into t1 (a) select FLOOR(rand() * 100) from t1;
|
insert into t1 (a) select FLOOR(rand() * 100) from t1;
|
||||||
SELECT a,
|
SELECT a,
|
||||||
(SELECT REPEAT(' ',250) FROM t1 i1
|
(SELECT REPEAT(' ',250) FROM t1 i1
|
||||||
WHERE i1.b=t1.a ORDER BY RAND() LIMIT 1) AS a
|
WHERE i1.b=t1.a ORDER BY RAND() LIMIT 1) AS a
|
||||||
FROM t1 ORDER BY a LIMIT 5;
|
FROM t1 ORDER BY a LIMIT 5;
|
||||||
a a
|
a a
|
||||||
0 NULL
|
0 NULL
|
||||||
@ -3622,7 +3622,7 @@ COUNT(DISTINCT t1.b) (SELECT COUNT(DISTINCT t1.b))
|
|||||||
2 2
|
2 2
|
||||||
1 1
|
1 1
|
||||||
1 1
|
1 1
|
||||||
SELECT COUNT(DISTINCT t1.b),
|
SELECT COUNT(DISTINCT t1.b),
|
||||||
(SELECT COUNT(DISTINCT t1.b) union select 1 from DUAL where 12 < 3)
|
(SELECT COUNT(DISTINCT t1.b) union select 1 from DUAL where 12 < 3)
|
||||||
FROM t1 GROUP BY t1.a;
|
FROM t1 GROUP BY t1.a;
|
||||||
COUNT(DISTINCT t1.b) (SELECT COUNT(DISTINCT t1.b) union select 1 from DUAL where 12 < 3)
|
COUNT(DISTINCT t1.b) (SELECT COUNT(DISTINCT t1.b) union select 1 from DUAL where 12 < 3)
|
||||||
@ -3633,7 +3633,7 @@ SELECT (
|
|||||||
SELECT (
|
SELECT (
|
||||||
SELECT COUNT(DISTINCT t1.b)
|
SELECT COUNT(DISTINCT t1.b)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
FROM t1 GROUP BY t1.a;
|
FROM t1 GROUP BY t1.a;
|
||||||
(
|
(
|
||||||
SELECT (
|
SELECT (
|
||||||
@ -3648,8 +3648,8 @@ SELECT (
|
|||||||
SELECT (
|
SELECT (
|
||||||
SELECT COUNT(DISTINCT t1.b)
|
SELECT COUNT(DISTINCT t1.b)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
FROM t1 GROUP BY t1.a LIMIT 1)
|
FROM t1 GROUP BY t1.a LIMIT 1)
|
||||||
FROM t1 t2
|
FROM t1 t2
|
||||||
GROUP BY t2.a;
|
GROUP BY t2.a;
|
||||||
(
|
(
|
||||||
@ -3657,7 +3657,7 @@ SELECT (
|
|||||||
SELECT (
|
SELECT (
|
||||||
SELECT COUNT(DISTINCT t1.b)
|
SELECT COUNT(DISTINCT t1.b)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
FROM t1 GROUP BY t1.a LIMIT 1)
|
FROM t1 GROUP BY t1.a LIMIT 1)
|
||||||
2
|
2
|
||||||
2
|
2
|
||||||
@ -3669,13 +3669,13 @@ PRIMARY KEY (x), FOREIGN KEY (y) REFERENCES t1 (b));
|
|||||||
SET SESSION sort_buffer_size = 32 * 1024;
|
SET SESSION sort_buffer_size = 32 * 1024;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect sort_buffer_size value: '32768'
|
Warning 1292 Truncated incorrect sort_buffer_size value: '32768'
|
||||||
SELECT SQL_NO_CACHE COUNT(*)
|
SELECT SQL_NO_CACHE COUNT(*)
|
||||||
FROM (SELECT a, b, (SELECT x FROM t2 WHERE y=b ORDER BY z DESC LIMIT 1) c
|
FROM (SELECT a, b, (SELECT x FROM t2 WHERE y=b ORDER BY z DESC LIMIT 1) c
|
||||||
FROM t1) t;
|
FROM t1) t;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
3000
|
3000
|
||||||
SET SESSION sort_buffer_size = 8 * 1024 * 1024;
|
SET SESSION sort_buffer_size = 8 * 1024 * 1024;
|
||||||
SELECT SQL_NO_CACHE COUNT(*)
|
SELECT SQL_NO_CACHE COUNT(*)
|
||||||
FROM (SELECT a, b, (SELECT x FROM t2 WHERE y=b ORDER BY z DESC LIMIT 1) c
|
FROM (SELECT a, b, (SELECT x FROM t2 WHERE y=b ORDER BY z DESC LIMIT 1) c
|
||||||
FROM t1) t;
|
FROM t1) t;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
@ -3736,7 +3736,7 @@ sq
|
|||||||
2
|
2
|
||||||
4
|
4
|
||||||
DEALLOCATE PREPARE stmt1;
|
DEALLOCATE PREPARE stmt1;
|
||||||
SELECT f2, AVG(f21),
|
SELECT f2, AVG(f21),
|
||||||
(SELECT t.f3 FROM t2 AS t WHERE t2.f2=t.f2 AND t.f3=MAX(t2.f3)) AS test
|
(SELECT t.f3 FROM t2 AS t WHERE t2.f2=t.f2 AND t.f3=MAX(t2.f3)) AS test
|
||||||
FROM t2 GROUP BY f2;
|
FROM t2 GROUP BY f2;
|
||||||
f2 AVG(f21) test
|
f2 AVG(f21) test
|
||||||
@ -3744,12 +3744,12 @@ f2 AVG(f21) test
|
|||||||
2 2.0000 2004-02-29 11:11:11
|
2 2.0000 2004-02-29 11:11:11
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (a int, b INT, c CHAR(10) NOT NULL);
|
CREATE TABLE t1 (a int, b INT, c CHAR(10) NOT NULL);
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,'a'), (1,2,'b'), (1,3,'c'), (1,4,'d'), (1,5,'e'),
|
(1,1,'a'), (1,2,'b'), (1,3,'c'), (1,4,'d'), (1,5,'e'),
|
||||||
(2,1,'f'), (2,2,'g'), (2,3,'h'), (3,4,'i'), (3,3,'j'),
|
(2,1,'f'), (2,2,'g'), (2,3,'h'), (3,4,'i'), (3,3,'j'),
|
||||||
(3,2,'k'), (3,1,'l'), (1,9,'m');
|
(3,2,'k'), (3,1,'l'), (1,9,'m');
|
||||||
SELECT a, MAX(b),
|
SELECT a, MAX(b),
|
||||||
(SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b)) AS test
|
(SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b)) AS test
|
||||||
FROM t1 GROUP BY a;
|
FROM t1 GROUP BY a;
|
||||||
a MAX(b) test
|
a MAX(b) test
|
||||||
1 9 m
|
1 9 m
|
||||||
@ -3900,7 +3900,7 @@ COUNT(*) a (SELECT MIN(m) FROM t2 WHERE m = count(*))
|
|||||||
2 2 2
|
2 2 2
|
||||||
3 3 3
|
3 3 3
|
||||||
1 4 1
|
1 4 1
|
||||||
SELECT COUNT(*), a
|
SELECT COUNT(*), a
|
||||||
FROM t1 GROUP BY a
|
FROM t1 GROUP BY a
|
||||||
HAVING (SELECT MIN(m) FROM t2 WHERE m = count(*)) > 1;
|
HAVING (SELECT MIN(m) FROM t2 WHERE m = count(*)) > 1;
|
||||||
COUNT(*) a
|
COUNT(*) a
|
||||||
@ -3931,7 +3931,7 @@ INSERT INTO t1 VALUES (1,1,0,'a'), (1,2,0,'b'), (1,3,0,'c'), (1,4,0,'d'),
|
|||||||
(1,5,0,'e'), (2,1,0,'f'), (2,2,0,'g'), (2,3,0,'h'), (3,4,0,'i'), (3,3,0,'j'),
|
(1,5,0,'e'), (2,1,0,'f'), (2,2,0,'g'), (2,3,0,'h'), (3,4,0,'i'), (3,3,0,'j'),
|
||||||
(3,2,0,'k'), (3,1,0,'l'), (1,9,0,'m'), (1,0,10,'n'), (2,0,5,'o'), (3,0,7,'p');
|
(3,2,0,'k'), (3,1,0,'l'), (1,9,0,'m'), (1,0,10,'n'), (2,0,5,'o'), (3,0,7,'p');
|
||||||
SELECT a, MAX(b),
|
SELECT a, MAX(b),
|
||||||
(SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b + 0)) as test
|
(SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b + 0)) as test
|
||||||
FROM t1 GROUP BY a;
|
FROM t1 GROUP BY a;
|
||||||
a MAX(b) test
|
a MAX(b) test
|
||||||
1 9 m
|
1 9 m
|
||||||
@ -3953,7 +3953,7 @@ a AVG(b) test
|
|||||||
3 2.5000 NULL
|
3 2.5000 NULL
|
||||||
SELECT tt.a,
|
SELECT tt.a,
|
||||||
(SELECT (SELECT c FROM t1 as t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
|
(SELECT (SELECT c FROM t1 as t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
|
||||||
LIMIT 1) FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1) as test
|
LIMIT 1) FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1) as test
|
||||||
FROM t1 as tt;
|
FROM t1 as tt;
|
||||||
a test
|
a test
|
||||||
1 n
|
1 n
|
||||||
@ -3975,7 +3975,7 @@ a test
|
|||||||
SELECT tt.a,
|
SELECT tt.a,
|
||||||
(SELECT (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
|
(SELECT (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
|
||||||
LIMIT 1)
|
LIMIT 1)
|
||||||
FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1) as test
|
FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1) as test
|
||||||
FROM t1 as tt GROUP BY tt.a;
|
FROM t1 as tt GROUP BY tt.a;
|
||||||
a test
|
a test
|
||||||
1 n
|
1 n
|
||||||
@ -3984,7 +3984,7 @@ a test
|
|||||||
SELECT tt.a, MAX(
|
SELECT tt.a, MAX(
|
||||||
(SELECT (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
|
(SELECT (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
|
||||||
LIMIT 1)
|
LIMIT 1)
|
||||||
FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1)) as test
|
FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1)) as test
|
||||||
FROM t1 as tt GROUP BY tt.a;
|
FROM t1 as tt GROUP BY tt.a;
|
||||||
a test
|
a test
|
||||||
1 n
|
1 n
|
||||||
@ -4027,11 +4027,11 @@ COUNT(1)
|
|||||||
1
|
1
|
||||||
SELECT SUM( (SELECT AVG( (SELECT t1.a FROM t2) ) FROM DUAL) ) FROM t1;
|
SELECT SUM( (SELECT AVG( (SELECT t1.a FROM t2) ) FROM DUAL) ) FROM t1;
|
||||||
ERROR HY000: Invalid use of group function
|
ERROR HY000: Invalid use of group function
|
||||||
SELECT
|
SELECT
|
||||||
SUM( (SELECT AVG( (SELECT COUNT(*) FROM t1 t HAVING t1.a < 12) ) FROM t2) )
|
SUM( (SELECT AVG( (SELECT COUNT(*) FROM t1 t HAVING t1.a < 12) ) FROM t2) )
|
||||||
FROM t1;
|
FROM t1;
|
||||||
ERROR HY000: Invalid use of group function
|
ERROR HY000: Invalid use of group function
|
||||||
SELECT t1.a as XXA,
|
SELECT t1.a as XXA,
|
||||||
SUM( (SELECT AVG( (SELECT COUNT(*) FROM t1 t HAVING XXA < 12) ) FROM t2) )
|
SUM( (SELECT AVG( (SELECT COUNT(*) FROM t1 t HAVING XXA < 12) ) FROM t2) )
|
||||||
FROM t1;
|
FROM t1;
|
||||||
ERROR HY000: Invalid use of group function
|
ERROR HY000: Invalid use of group function
|
||||||
@ -4048,25 +4048,25 @@ INSERT INTO t1 VALUES
|
|||||||
(3,'FL'), (2,'GA'), (4,'FL'), (1,'GA'), (5,'NY'), (7,'FL'), (6,'NY');
|
(3,'FL'), (2,'GA'), (4,'FL'), (1,'GA'), (5,'NY'), (7,'FL'), (6,'NY');
|
||||||
CREATE TABLE t2 (id int NOT NULL, INDEX idx(id));
|
CREATE TABLE t2 (id int NOT NULL, INDEX idx(id));
|
||||||
INSERT INTO t2 VALUES (7), (5), (1), (3);
|
INSERT INTO t2 VALUES (7), (5), (1), (3);
|
||||||
SELECT id, st FROM t1
|
SELECT id, st FROM t1
|
||||||
WHERE st IN ('GA','FL') AND EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id);
|
WHERE st IN ('GA','FL') AND EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id);
|
||||||
id st
|
id st
|
||||||
3 FL
|
3 FL
|
||||||
1 GA
|
1 GA
|
||||||
7 FL
|
7 FL
|
||||||
SELECT id, st FROM t1
|
SELECT id, st FROM t1
|
||||||
WHERE st IN ('GA','FL') AND EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id)
|
WHERE st IN ('GA','FL') AND EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id)
|
||||||
GROUP BY id;
|
GROUP BY id;
|
||||||
id st
|
id st
|
||||||
1 GA
|
1 GA
|
||||||
3 FL
|
3 FL
|
||||||
7 FL
|
7 FL
|
||||||
SELECT id, st FROM t1
|
SELECT id, st FROM t1
|
||||||
WHERE st IN ('GA','FL') AND NOT EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id);
|
WHERE st IN ('GA','FL') AND NOT EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id);
|
||||||
id st
|
id st
|
||||||
2 GA
|
2 GA
|
||||||
4 FL
|
4 FL
|
||||||
SELECT id, st FROM t1
|
SELECT id, st FROM t1
|
||||||
WHERE st IN ('GA','FL') AND NOT EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id)
|
WHERE st IN ('GA','FL') AND NOT EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id)
|
||||||
GROUP BY id;
|
GROUP BY id;
|
||||||
id st
|
id st
|
||||||
@ -4237,7 +4237,7 @@ a b
|
|||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1(a INT, b INT);
|
CREATE TABLE t1(a INT, b INT);
|
||||||
INSERT INTO t1 VALUES (1,1), (1,2), (2,3), (2,4);
|
INSERT INTO t1 VALUES (1,1), (1,2), (2,3), (2,4);
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT a AS out_a, MIN(b) FROM t1
|
SELECT a AS out_a, MIN(b) FROM t1
|
||||||
WHERE b > (SELECT MIN(b) FROM t1 WHERE a = out_a)
|
WHERE b > (SELECT MIN(b) FROM t1 WHERE a = out_a)
|
||||||
GROUP BY a;
|
GROUP BY a;
|
||||||
@ -4246,7 +4246,7 @@ SELECT a AS out_a, MIN(b) FROM t1
|
|||||||
WHERE b > (SELECT MIN(b) FROM t1 WHERE a = out_a)
|
WHERE b > (SELECT MIN(b) FROM t1 WHERE a = out_a)
|
||||||
GROUP BY a;
|
GROUP BY a;
|
||||||
ERROR 42S22: Unknown column 'out_a' in 'where clause'
|
ERROR 42S22: Unknown column 'out_a' in 'where clause'
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT a AS out_a, MIN(b) FROM t1 t1_outer
|
SELECT a AS out_a, MIN(b) FROM t1 t1_outer
|
||||||
WHERE b > (SELECT MIN(b) FROM t1 WHERE a = t1_outer.a)
|
WHERE b > (SELECT MIN(b) FROM t1 WHERE a = t1_outer.a)
|
||||||
GROUP BY a;
|
GROUP BY a;
|
||||||
@ -4277,16 +4277,16 @@ Warnings:
|
|||||||
Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select 2 AS `2` from `test`.`t1` where exists(select 1 AS `1` from `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`))
|
Note 1003 select 2 AS `2` from `test`.`t1` where exists(select 1 AS `1` from `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`))
|
||||||
EXPLAIN EXTENDED
|
EXPLAIN EXTENDED
|
||||||
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a) UNION
|
SELECT 2 FROM t1 WHERE EXISTS ((SELECT 1 FROM t2 WHERE t1.a=t2.a) UNION
|
||||||
(SELECT 1 FROM t2 WHERE t1.a = t2.a));
|
(SELECT 1 FROM t2 WHERE t1.a = t2.a));
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION
|
||||||
(SELECT 1 FROM t2 WHERE t1.a = t2.a))' at line 2
|
(SELECT 1 FROM t2 WHERE t1.a = t2.a))' at line 2
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
create table t1(f11 int, f12 int);
|
create table t1(f11 int, f12 int);
|
||||||
create table t2(f21 int unsigned not null, f22 int, f23 varchar(10));
|
create table t2(f21 int unsigned not null, f22 int, f23 varchar(10));
|
||||||
insert into t1 values(1,1),(2,2), (3, 3);
|
insert into t1 values(1,1),(2,2), (3, 3);
|
||||||
set session sort_buffer_size= 33*1024;
|
set session sort_buffer_size= 33*1024;
|
||||||
select count(*) from t1 where f12 =
|
select count(*) from t1 where f12 =
|
||||||
(select f22 from t2 where f22 = f12 order by f21 desc, f22, f23 limit 1);
|
(select f22 from t2 where f22 = f12 order by f21 desc, f22, f23 limit 1);
|
||||||
count(*)
|
count(*)
|
||||||
3
|
3
|
||||||
@ -4327,12 +4327,12 @@ IF(
|
|||||||
FROM t2 VPC, t4 a2, t2 a3
|
FROM t2 VPC, t4 a2, t2 a3
|
||||||
WHERE
|
WHERE
|
||||||
VPC.f4 = a2.f10 AND a3.f2 = a4
|
VPC.f4 = a2.f10 AND a3.f2 = a4
|
||||||
LIMIT 1) IS NULL,
|
LIMIT 1) IS NULL,
|
||||||
0,
|
0,
|
||||||
t3.f5
|
t3.f5
|
||||||
)
|
)
|
||||||
) AS a6
|
) AS a6
|
||||||
FROM
|
FROM
|
||||||
t2, t3, t1 JOIN t2 a1 ON t1.f9 = a1.f4
|
t2, t3, t1 JOIN t2 a1 ON t1.f9 = a1.f4
|
||||||
GROUP BY a4;
|
GROUP BY a4;
|
||||||
a4 f3 a6
|
a4 f3 a6
|
||||||
@ -4341,7 +4341,7 @@ a4 f3 a6
|
|||||||
DROP TABLE t1, t2, t3, t4;
|
DROP TABLE t1, t2, t3, t4;
|
||||||
create table t1 (a float(5,4) zerofill);
|
create table t1 (a float(5,4) zerofill);
|
||||||
create table t2 (a float(5,4),b float(2,0));
|
create table t2 (a float(5,4),b float(2,0));
|
||||||
select t1.a from t1 where
|
select t1.a from t1 where
|
||||||
t1.a= (select b from t2 limit 1) and not
|
t1.a= (select b from t2 limit 1) and not
|
||||||
t1.a= (select a from t2 limit 1) ;
|
t1.a= (select a from t2 limit 1) ;
|
||||||
a
|
a
|
||||||
@ -4362,7 +4362,7 @@ Warnings:
|
|||||||
Note 1003 select 1 AS `1` from `test`.`t1` where <in_optimizer>(1,<exists>(select 1 AS `1` from `test`.`t1` where (`test`.`t1`.`a` > 3) group by `test`.`t1`.`a` having (<cache>(1) = <ref_null_helper>(1))))
|
Note 1003 select 1 AS `1` from `test`.`t1` where <in_optimizer>(1,<exists>(select 1 AS `1` from `test`.`t1` where (`test`.`t1`.`a` > 3) group by `test`.`t1`.`a` having (<cache>(1) = <ref_null_helper>(1))))
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
End of 5.0 tests.
|
End of 5.0 tests.
|
||||||
CREATE TABLE t1 (a int, b int);
|
CREATE TABLE t1 (a INT, b INT);
|
||||||
INSERT INTO t1 VALUES (2,22),(1,11),(2,22);
|
INSERT INTO t1 VALUES (2,22),(1,11),(2,22);
|
||||||
SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 0 GROUP BY a;
|
SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 0 GROUP BY a;
|
||||||
a
|
a
|
||||||
@ -4385,22 +4385,22 @@ WHERE (SELECT COUNT(t0.b) FROM t1 t WHERE t.b>20) GROUP BY a;
|
|||||||
ERROR HY000: Invalid use of group function
|
ERROR HY000: Invalid use of group function
|
||||||
SET @@sql_mode=default;
|
SET @@sql_mode=default;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (s1 char(1));
|
CREATE TABLE t1 (s1 CHAR(1));
|
||||||
INSERT INTO t1 VALUES ('a');
|
INSERT INTO t1 VALUES ('a');
|
||||||
SELECT * FROM t1 WHERE _utf8'a' = ANY (SELECT s1 FROM t1);
|
SELECT * FROM t1 WHERE _utf8'a' = ANY (SELECT s1 FROM t1);
|
||||||
s1
|
s1
|
||||||
a
|
a
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1(c int, KEY(c));
|
CREATE TABLE t1(c INT, KEY(c));
|
||||||
CREATE TABLE t2(a int, b int);
|
CREATE TABLE t2(a INT, b INT);
|
||||||
INSERT INTO t2 VALUES (1, 10), (2, NULL);
|
INSERT INTO t2 VALUES (1, 10), (2, NULL);
|
||||||
INSERT INTO t1 VALUES (1), (3);
|
INSERT INTO t1 VALUES (1), (3);
|
||||||
SELECT * FROM t2 WHERE b NOT IN (SELECT max(t.c) FROM t1, t1 t WHERE t.c>10);
|
SELECT * FROM t2 WHERE b NOT IN (SELECT max(t.c) FROM t1, t1 t WHERE t.c>10);
|
||||||
a b
|
a b
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1(pk int PRIMARY KEY, a int, INDEX idx(a));
|
CREATE TABLE t1(pk INT PRIMARY KEY, a INT, INDEX idx(a));
|
||||||
INSERT INTO t1 VALUES (1, 10), (3, 30), (2, 20);
|
INSERT INTO t1 VALUES (1, 10), (3, 30), (2, 20);
|
||||||
CREATE TABLE t2(pk int PRIMARY KEY, a int, b int, INDEX idxa(a));
|
CREATE TABLE t2(pk INT PRIMARY KEY, a INT, b INT, INDEX idxa(a));
|
||||||
INSERT INTO t2 VALUES (2, 20, 700), (1, 10, 200), (4, 10, 100);
|
INSERT INTO t2 VALUES (2, 20, 700), (1, 10, 200), (4, 10, 100);
|
||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE EXISTS (SELECT DISTINCT a FROM t2 WHERE t1.a < t2.a ORDER BY b);
|
WHERE EXISTS (SELECT DISTINCT a FROM t2 WHERE t1.a < t2.a ORDER BY b);
|
||||||
@ -4409,36 +4409,36 @@ pk a
|
|||||||
3 30
|
3 30
|
||||||
2 20
|
2 20
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY b (b));
|
CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), KEY b (b));
|
||||||
INSERT INTO t1 VALUES (1,NULL), (9,NULL);
|
INSERT INTO t1 VALUES (1,NULL), (9,NULL);
|
||||||
CREATE TABLE t2 (
|
CREATE TABLE t2 (
|
||||||
a int,
|
a INT,
|
||||||
b int,
|
b INT,
|
||||||
c int,
|
c INT,
|
||||||
d int,
|
d INT,
|
||||||
PRIMARY KEY (a),
|
PRIMARY KEY (a),
|
||||||
UNIQUE KEY b (b,c,d),
|
UNIQUE KEY b (b,c,d),
|
||||||
KEY b_2 (b),
|
KEY b_2 (b),
|
||||||
KEY c (c),
|
KEY c (c),
|
||||||
KEY d (d)
|
KEY d (d)
|
||||||
);
|
);
|
||||||
INSERT INTO t2 VALUES
|
INSERT INTO t2 VALUES
|
||||||
(43, 2, 11 ,30),
|
(43, 2, 11 ,30),
|
||||||
(44, 2, 12 ,30),
|
(44, 2, 12 ,30),
|
||||||
(45, 1, 1 ,10000),
|
(45, 1, 1 ,10000),
|
||||||
(46, 1, 2 ,10000),
|
(46, 1, 2 ,10000),
|
||||||
(556,1, 32 ,10000);
|
(556,1, 32 ,10000);
|
||||||
CREATE TABLE t3 (
|
CREATE TABLE t3 (
|
||||||
a int,
|
a INT,
|
||||||
b int,
|
b INT,
|
||||||
c int,
|
c INT,
|
||||||
PRIMARY KEY (a),
|
PRIMARY KEY (a),
|
||||||
UNIQUE KEY b (b,c),
|
UNIQUE KEY b (b,c),
|
||||||
KEY c (c),
|
KEY c (c),
|
||||||
KEY b_2 (b)
|
KEY b_2 (b)
|
||||||
);
|
);
|
||||||
INSERT INTO t3 VALUES (1,1,1), (2,32,1);
|
INSERT INTO t3 VALUES (1,1,1), (2,32,1);
|
||||||
explain
|
explain
|
||||||
SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
|
SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t3 index b,b_2 b 10 NULL 2 Using index
|
1 PRIMARY t3 index b,b_2 b 10 NULL 2 Using index
|
||||||
@ -4479,7 +4479,7 @@ DELETE FROM v3;
|
|||||||
DROP VIEW v1,v2,v3;
|
DROP VIEW v1,v2,v3;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
#
|
#
|
||||||
# BUG#37822: Correlated subquery with IN and IS UNKNOWN provides wrong result
|
# Bug#37822 Correlated subquery with IN and IS UNKNOWN provides wrong result
|
||||||
#
|
#
|
||||||
create table t1(id integer primary key, g integer, v integer, s char(1));
|
create table t1(id integer primary key, g integer, v integer, s char(1));
|
||||||
create table t2(id integer primary key, g integer, v integer, s char(1));
|
create table t2(id integer primary key, g integer, v integer, s char(1));
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
drop table if exists t1,t2;
|
DROP TABLE IF EXISTS t1,t2;
|
||||||
CREATE TABLE t1 (x1 int);
|
CREATE TABLE t1 (x1 INT);
|
||||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -8,7 +8,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -16,7 +16,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -24,7 +24,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -32,7 +32,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -40,7 +40,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -48,7 +48,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -56,7 +56,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -64,7 +64,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -72,7 +72,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -80,7 +80,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -88,7 +88,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -96,7 +96,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -104,7 +104,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -112,7 +112,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -120,7 +120,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -128,7 +128,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -136,7 +136,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -144,7 +144,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x1 x2 int;
|
ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -152,7 +152,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`xx` int(11) DEFAULT NULL
|
`xx` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE x2 x1 int;
|
ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
|
|
||||||
# The server need to be started in $MYSQLTEST_VARDIR since it
|
# The server need to be started in $MYSQLTEST_VARDIR since it
|
||||||
# uses ../../std_data/
|
# uses ../../std_data/
|
||||||
-- source include/uses_vardir.inc
|
--source include/uses_vardir.inc
|
||||||
|
|
||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# This test is a bit tricky as we can't use backup table to overwrite an old
|
# This test is a bit tricky as we can't use backup table to overwrite an old
|
||||||
@ -57,6 +60,9 @@ unlock tables;
|
|||||||
connection con1;
|
connection con1;
|
||||||
reap;
|
reap;
|
||||||
drop table t5;
|
drop table t5;
|
||||||
|
connection default;
|
||||||
|
disconnect con1;
|
||||||
|
disconnect con2;
|
||||||
remove_file $MYSQLTEST_VARDIR/tmp/t1.MYD;
|
remove_file $MYSQLTEST_VARDIR/tmp/t1.MYD;
|
||||||
remove_file $MYSQLTEST_VARDIR/tmp/t2.MYD;
|
remove_file $MYSQLTEST_VARDIR/tmp/t2.MYD;
|
||||||
remove_file $MYSQLTEST_VARDIR/tmp/t3.MYD;
|
remove_file $MYSQLTEST_VARDIR/tmp/t3.MYD;
|
||||||
@ -68,6 +74,7 @@ remove_file $MYSQLTEST_VARDIR/tmp/t3.frm;
|
|||||||
remove_file $MYSQLTEST_VARDIR/tmp/t4.frm;
|
remove_file $MYSQLTEST_VARDIR/tmp/t4.frm;
|
||||||
remove_file $MYSQLTEST_VARDIR/tmp/t5.frm;
|
remove_file $MYSQLTEST_VARDIR/tmp/t5.frm;
|
||||||
|
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
# End of 5.0 tests
|
# End of 5.0 tests
|
||||||
|
|
||||||
@ -87,4 +94,11 @@ DROP TABLE `t+1`;
|
|||||||
RESTORE TABLE `t+1` FROM '../../tmp';
|
RESTORE TABLE `t+1` FROM '../../tmp';
|
||||||
SELECT * FROM `t+1`;
|
SELECT * FROM `t+1`;
|
||||||
DROP TABLE `t+1`;
|
DROP TABLE `t+1`;
|
||||||
|
#
|
||||||
|
remove_file $MYSQLTEST_VARDIR/tmp/t@002b1.frm;
|
||||||
|
remove_file $MYSQLTEST_VARDIR/tmp/t@002b1.MYD;
|
||||||
|
|
||||||
|
|
||||||
|
# Wait till all disconnects are completed
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
connect (con1,localhost,root,,);
|
connect (con1,localhost,root,,);
|
||||||
connect (con2,localhost,root,,);
|
connect (con2,localhost,root,,);
|
||||||
connection con1;
|
connection con1;
|
||||||
@ -21,16 +24,18 @@ connection con2;
|
|||||||
insert into t1 values (200000);
|
insert into t1 values (200000);
|
||||||
connection con1;
|
connection con1;
|
||||||
reap;
|
reap;
|
||||||
|
connection default;
|
||||||
|
disconnect con1;
|
||||||
|
disconnect con2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #9897 Views: 'Check Table' crashes MySQL, with a view and a table
|
# Bug#9897 Views: 'Check Table' crashes MySQL, with a view and a table
|
||||||
# in the statement
|
# in the statement
|
||||||
#
|
#
|
||||||
|
|
||||||
connection default;
|
|
||||||
Create table t1(f1 int);
|
Create table t1(f1 int);
|
||||||
Create table t2(f1 int);
|
Create table t2(f1 int);
|
||||||
Create view v1 as Select * from t1;
|
Create view v1 as Select * from t1;
|
||||||
@ -38,11 +43,15 @@ Check Table v1,t2;
|
|||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#26325 - TEMPORARY TABLE "corrupt" after first read, according to CHECK
|
# Bug#26325 TEMPORARY TABLE "corrupt" after first read, according to CHECK TABLE
|
||||||
# TABLE
|
|
||||||
#
|
#
|
||||||
CREATE TEMPORARY TABLE t1(a INT);
|
CREATE TEMPORARY TABLE t1(a INT);
|
||||||
CHECK TABLE t1;
|
CHECK TABLE t1;
|
||||||
REPAIR TABLE t1;
|
REPAIR TABLE t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
# Wait till we reached the initial number of concurrent sessions
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -6,6 +6,10 @@
|
|||||||
|
|
||||||
-- source include/have_compress.inc
|
-- source include/have_compress.inc
|
||||||
|
|
||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
|
|
||||||
connect (comp_con,localhost,root,,,,,COMPRESS);
|
connect (comp_con,localhost,root,,,,,COMPRESS);
|
||||||
|
|
||||||
# Check compression turned on
|
# Check compression turned on
|
||||||
@ -17,3 +21,10 @@ select * from information_schema.session_status where variable_name= 'COMPRESSIO
|
|||||||
|
|
||||||
# Check compression turned on
|
# Check compression turned on
|
||||||
SHOW STATUS LIKE 'Compression';
|
SHOW STATUS LIKE 'Compression';
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
disconnect comp_con;
|
||||||
|
|
||||||
|
# Wait till all disconnects are completed
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
# Grant tests not performed with embedded server
|
# Grant tests not performed with embedded server
|
||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators;
|
SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators;
|
||||||
SET GLOBAL log_bin_trust_function_creators = 1;
|
SET GLOBAL log_bin_trust_function_creators = 1;
|
||||||
|
|
||||||
@ -81,7 +84,7 @@ delete from mysql.db where user='mysqltest_1';
|
|||||||
delete from mysql.tables_priv where user='mysqltest_1';
|
delete from mysql.tables_priv where user='mysqltest_1';
|
||||||
delete from mysql.columns_priv where user='mysqltest_1';
|
delete from mysql.columns_priv where user='mysqltest_1';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
--error 1141
|
--error ER_NONEXISTING_GRANT
|
||||||
show grants for mysqltest_1@localhost;
|
show grants for mysqltest_1@localhost;
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -119,15 +122,15 @@ drop table t1;
|
|||||||
#
|
#
|
||||||
# Test some error conditions
|
# Test some error conditions
|
||||||
#
|
#
|
||||||
--error 1221
|
--error ER_WRONG_USAGE
|
||||||
GRANT FILE on mysqltest.* to mysqltest_1@localhost;
|
GRANT FILE on mysqltest.* to mysqltest_1@localhost;
|
||||||
select 1; # To test that the previous command didn't cause problems
|
select 1; # To test that the previous command didn't cause problems
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #4898: User privileges depending on ORDER BY Settings of table db
|
# Bug#4898 User privileges depending on ORDER BY Settings of table db
|
||||||
#
|
#
|
||||||
insert into mysql.user (host, user) values ('localhost', 'test11');
|
insert into mysql.user (host, user) values ('localhost', 'test11');
|
||||||
insert into mysql.db (host, db, user, select_priv) values
|
insert into mysql.db (host, db, user, select_priv) values
|
||||||
('localhost', 'a%', 'test11', 'Y'), ('localhost', 'ab%', 'test11', 'Y');
|
('localhost', 'a%', 'test11', 'Y'), ('localhost', 'ab%', 'test11', 'Y');
|
||||||
alter table mysql.db order by db asc;
|
alter table mysql.db order by db asc;
|
||||||
flush privileges;
|
flush privileges;
|
||||||
@ -139,7 +142,7 @@ delete from mysql.user where user='test11';
|
|||||||
delete from mysql.db where user='test11';
|
delete from mysql.db where user='test11';
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#6123: GRANT USAGE inserts useless Db row
|
# Bug#6123 GRANT USAGE inserts useless Db row
|
||||||
#
|
#
|
||||||
create database mysqltest1;
|
create database mysqltest1;
|
||||||
grant usage on mysqltest1.* to test6123 identified by 'magic123';
|
grant usage on mysqltest1.* to test6123 identified by 'magic123';
|
||||||
@ -148,7 +151,7 @@ delete from mysql.user where user='test6123';
|
|||||||
drop database mysqltest1;
|
drop database mysqltest1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test for 'drop user', 'revoke privileges, grant'
|
# Test for 'drop user', 'revoke privileges, grant'
|
||||||
#
|
#
|
||||||
|
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
@ -163,7 +166,7 @@ grant select(a) on test.t1 to drop_user@localhost;
|
|||||||
show grants for drop_user@localhost;
|
show grants for drop_user@localhost;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug3086
|
# Bug#3086 SHOW GRANTS doesn't follow ANSI_QUOTES
|
||||||
#
|
#
|
||||||
set sql_mode=ansi_quotes;
|
set sql_mode=ansi_quotes;
|
||||||
show grants for drop_user@localhost;
|
show grants for drop_user@localhost;
|
||||||
@ -181,7 +184,7 @@ show grants for drop_user@localhost;
|
|||||||
revoke all privileges, grant option from drop_user@localhost;
|
revoke all privileges, grant option from drop_user@localhost;
|
||||||
show grants for drop_user@localhost;
|
show grants for drop_user@localhost;
|
||||||
drop user drop_user@localhost;
|
drop user drop_user@localhost;
|
||||||
--error 1269
|
--error ER_REVOKE_GRANTS
|
||||||
revoke all privileges, grant option from drop_user@localhost;
|
revoke all privileges, grant option from drop_user@localhost;
|
||||||
|
|
||||||
grant select(a) on test.t1 to drop_user1@localhost;
|
grant select(a) on test.t1 to drop_user1@localhost;
|
||||||
@ -191,10 +194,10 @@ grant select on *.* to drop_user4@localhost;
|
|||||||
# Drop user now implicitly revokes all privileges.
|
# Drop user now implicitly revokes all privileges.
|
||||||
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
||||||
drop_user4@localhost;
|
drop_user4@localhost;
|
||||||
--error 1269
|
--error ER_REVOKE_GRANTS
|
||||||
revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
|
revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
|
||||||
drop_user3@localhost, drop_user4@localhost;
|
drop_user3@localhost, drop_user4@localhost;
|
||||||
--error 1396
|
--error ER_CANNOT_USER
|
||||||
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
||||||
drop_user4@localhost;
|
drop_user4@localhost;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
@ -204,12 +207,12 @@ show grants for mysqltest_1@localhost;
|
|||||||
drop user mysqltest_1@localhost;
|
drop user mysqltest_1@localhost;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #3403 Wrong encodin in SHOW GRANTS output
|
# Bug#3403 Wrong encoding in SHOW GRANTS output
|
||||||
#
|
#
|
||||||
SET NAMES koi8r;
|
SET NAMES koi8r;
|
||||||
CREATE DATABASE 薩;
|
CREATE DATABASE 薩;
|
||||||
USE 薩;
|
USE 薩;
|
||||||
CREATE TABLE ÔÁÂ (ËÏÌ int);
|
CREATE TABLE ÔÁÂ (ËÏÌ INT);
|
||||||
|
|
||||||
GRANT SELECT ON 薩.* TO 濠籤@localhost;
|
GRANT SELECT ON 薩.* TO 濠籤@localhost;
|
||||||
SHOW GRANTS FOR 濠籤@localhost;
|
SHOW GRANTS FOR 濠籤@localhost;
|
||||||
@ -230,7 +233,7 @@ DROP DATABASE
|
|||||||
SET NAMES latin1;
|
SET NAMES latin1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #5831: REVOKE ALL PRIVILEGES, GRANT OPTION does not revoke everything
|
# Bug#5831 REVOKE ALL PRIVILEGES, GRANT OPTION does not revoke everything
|
||||||
#
|
#
|
||||||
USE test;
|
USE test;
|
||||||
CREATE TABLE t1 (a int );
|
CREATE TABLE t1 (a int );
|
||||||
@ -299,7 +302,7 @@ DROP DATABASE testdb9;
|
|||||||
DROP DATABASE testdb10;
|
DROP DATABASE testdb10;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #6932: a problem with 'revoke ALL PRIVILEGES'
|
# Bug#6932 a problem with 'revoke ALL PRIVILEGES'
|
||||||
#
|
#
|
||||||
|
|
||||||
create table t1(a int, b int, c int, d int);
|
create table t1(a int, b int, c int, d int);
|
||||||
@ -313,7 +316,7 @@ drop user grant_user@localhost;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#7391: Cross-database multi-table UPDATE security problem
|
# Bug#7391 Cross-database multi-table UPDATE security problem
|
||||||
#
|
#
|
||||||
create database mysqltest_1;
|
create database mysqltest_1;
|
||||||
create database mysqltest_2;
|
create database mysqltest_2;
|
||||||
@ -322,36 +325,36 @@ create table mysqltest_1.t2 select 1 b, 2 r;
|
|||||||
create table mysqltest_2.t1 select 1 c, 2 s;
|
create table mysqltest_2.t1 select 1 c, 2 s;
|
||||||
create table mysqltest_2.t2 select 1 d, 2 t;
|
create table mysqltest_2.t2 select 1 d, 2 t;
|
||||||
|
|
||||||
#test the column privileges
|
# test the column privileges
|
||||||
grant update (a) on mysqltest_1.t1 to mysqltest_3@localhost;
|
grant update (a) on mysqltest_1.t1 to mysqltest_3@localhost;
|
||||||
grant select (b) on mysqltest_1.t2 to mysqltest_3@localhost;
|
grant select (b) on mysqltest_1.t2 to mysqltest_3@localhost;
|
||||||
grant select (c) on mysqltest_2.t1 to mysqltest_3@localhost;
|
grant select (c) on mysqltest_2.t1 to mysqltest_3@localhost;
|
||||||
grant update (d) on mysqltest_2.t2 to mysqltest_3@localhost;
|
grant update (d) on mysqltest_2.t2 to mysqltest_3@localhost;
|
||||||
connect (conn1,localhost,mysqltest_3,,);
|
connect (conn1,localhost,mysqltest_3,,);
|
||||||
connection conn1;
|
connection conn1;
|
||||||
SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
|
SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
|
||||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||||
ORDER BY TABLE_NAME,COLUMN_NAME,PRIVILEGE_TYPE;
|
ORDER BY TABLE_NAME,COLUMN_NAME,PRIVILEGE_TYPE;
|
||||||
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
|
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
|
||||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||||
ORDER BY TABLE_NAME,PRIVILEGE_TYPE;
|
ORDER BY TABLE_NAME,PRIVILEGE_TYPE;
|
||||||
SELECT * from INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
|
SELECT * from INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
|
||||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||||
ORDER BY TABLE_SCHEMA,PRIVILEGE_TYPE;
|
ORDER BY TABLE_SCHEMA,PRIVILEGE_TYPE;
|
||||||
SELECT * from INFORMATION_SCHEMA.USER_PRIVILEGES
|
SELECT * from INFORMATION_SCHEMA.USER_PRIVILEGES
|
||||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||||
ORDER BY TABLE_CATALOG,PRIVILEGE_TYPE;
|
ORDER BY TABLE_CATALOG,PRIVILEGE_TYPE;
|
||||||
--error 1143
|
--error ER_COLUMNACCESS_DENIED_ERROR
|
||||||
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
|
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
|
||||||
--error 1143
|
--error ER_COLUMNACCESS_DENIED_ERROR
|
||||||
update mysqltest_1.t2, mysqltest_2.t2 set d=20 where d=1;
|
update mysqltest_1.t2, mysqltest_2.t2 set d=20 where d=1;
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1;
|
update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1;
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1;
|
update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1;
|
||||||
--error 1143
|
--error ER_COLUMNACCESS_DENIED_ERROR
|
||||||
update mysqltest_2.t1, mysqltest_2.t2 set d=10 where s=2;
|
update mysqltest_2.t1, mysqltest_2.t2 set d=10 where s=2;
|
||||||
#the following two should work
|
# the following two should work
|
||||||
update mysqltest_1.t1, mysqltest_2.t2 set a=10,d=10;
|
update mysqltest_1.t1, mysqltest_2.t2 set a=10,d=10;
|
||||||
update mysqltest_1.t1, mysqltest_2.t1 set a=20 where c=20;
|
update mysqltest_1.t1, mysqltest_2.t1 set a=20 where c=20;
|
||||||
connection master;
|
connection master;
|
||||||
@ -362,7 +365,7 @@ revoke all on mysqltest_1.t2 from mysqltest_3@localhost;
|
|||||||
revoke all on mysqltest_2.t1 from mysqltest_3@localhost;
|
revoke all on mysqltest_2.t1 from mysqltest_3@localhost;
|
||||||
revoke all on mysqltest_2.t2 from mysqltest_3@localhost;
|
revoke all on mysqltest_2.t2 from mysqltest_3@localhost;
|
||||||
|
|
||||||
#test the db/table level privileges
|
# test the db/table level privileges
|
||||||
grant all on mysqltest_2.* to mysqltest_3@localhost;
|
grant all on mysqltest_2.* to mysqltest_3@localhost;
|
||||||
grant select on *.* to mysqltest_3@localhost;
|
grant select on *.* to mysqltest_3@localhost;
|
||||||
# Next grant is needed to trigger bug#7391. Do not optimize!
|
# Next grant is needed to trigger bug#7391. Do not optimize!
|
||||||
@ -374,17 +377,17 @@ connection conn2;
|
|||||||
use mysqltest_1;
|
use mysqltest_1;
|
||||||
update mysqltest_2.t1, mysqltest_2.t2 set c=500,d=600;
|
update mysqltest_2.t1, mysqltest_2.t2 set c=500,d=600;
|
||||||
# the following failed before, should fail now.
|
# the following failed before, should fail now.
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
|
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
|
||||||
use mysqltest_2;
|
use mysqltest_2;
|
||||||
#the following used to succeed, it must fail now.
|
# the following used to succeed, it must fail now.
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
|
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
update mysqltest_2.t1, mysqltest_1.t2 set c=100,b=200;
|
update mysqltest_2.t1, mysqltest_1.t2 set c=100,b=200;
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
update mysqltest_1.t1, mysqltest_2.t2 set a=100,d=200;
|
update mysqltest_1.t1, mysqltest_2.t2 set a=100,d=200;
|
||||||
#lets see the result
|
# lets see the result
|
||||||
connection master;
|
connection master;
|
||||||
select t1.*,t2.* from mysqltest_1.t1,mysqltest_1.t2;
|
select t1.*,t2.* from mysqltest_1.t1,mysqltest_1.t2;
|
||||||
select t1.*,t2.* from mysqltest_2.t1,mysqltest_2.t2;
|
select t1.*,t2.* from mysqltest_2.t1,mysqltest_2.t2;
|
||||||
@ -396,6 +399,7 @@ delete from mysql.columns_priv where user="mysqltest_3";
|
|||||||
flush privileges;
|
flush privileges;
|
||||||
drop database mysqltest_1;
|
drop database mysqltest_1;
|
||||||
drop database mysqltest_2;
|
drop database mysqltest_2;
|
||||||
|
disconnect conn2;
|
||||||
|
|
||||||
#
|
#
|
||||||
# just SHOW PRIVILEGES test
|
# just SHOW PRIVILEGES test
|
||||||
@ -403,7 +407,7 @@ drop database mysqltest_2;
|
|||||||
SHOW PRIVILEGES;
|
SHOW PRIVILEGES;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Rights for renaming test (Bug #3270)
|
# Rights for renaming test (Bug#3270)
|
||||||
#
|
#
|
||||||
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
|
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
|
||||||
connection root;
|
connection root;
|
||||||
@ -414,16 +418,18 @@ create table mysqltest.t1 (a int,b int,c int);
|
|||||||
grant all on mysqltest.t1 to mysqltest_1@localhost;
|
grant all on mysqltest.t1 to mysqltest_1@localhost;
|
||||||
connect (user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK);
|
connect (user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK);
|
||||||
connection user1;
|
connection user1;
|
||||||
-- error 1142
|
-- error ER_TABLEACCESS_DENIED_ERROR
|
||||||
alter table t1 rename t2;
|
alter table t1 rename t2;
|
||||||
disconnect user1;
|
disconnect user1;
|
||||||
connection root;
|
connection root;
|
||||||
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
|
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
|
||||||
delete from mysql.user where user=_binary'mysqltest_1';
|
delete from mysql.user where user=_binary'mysqltest_1';
|
||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
|
connection default;
|
||||||
|
disconnect root;
|
||||||
|
|
||||||
#
|
#
|
||||||
# check all new table priveleges
|
# check all new table privileges
|
||||||
#
|
#
|
||||||
CREATE USER dummy@localhost;
|
CREATE USER dummy@localhost;
|
||||||
CREATE DATABASE mysqltest;
|
CREATE DATABASE mysqltest;
|
||||||
@ -488,7 +494,7 @@ REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
|
|||||||
DROP USER dummy@localhost;
|
DROP USER dummy@localhost;
|
||||||
DROP DATABASE mysqltest;
|
DROP DATABASE mysqltest;
|
||||||
#
|
#
|
||||||
# Bug #11330: Entry in tables_priv with host = '' causes crash
|
# Bug#11330 Entry in tables_priv with host = '' causes crash
|
||||||
#
|
#
|
||||||
connection default;
|
connection default;
|
||||||
use mysql;
|
use mysql;
|
||||||
@ -499,7 +505,7 @@ flush privileges;
|
|||||||
use test;
|
use test;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #10892 user variables not auto cast for comparisons
|
# Bug#10892 user variables not auto cast for comparisons
|
||||||
# Check that we don't get illegal mix of collations
|
# Check that we don't get illegal mix of collations
|
||||||
#
|
#
|
||||||
set @user123="non-existent";
|
set @user123="non-existent";
|
||||||
@ -518,18 +524,18 @@ show grants for root@localhost;
|
|||||||
set names latin1;
|
set names latin1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #15598 Server crashes in specific case during setting new password
|
# Bug#15598 Server crashes in specific case during setting new password
|
||||||
# - Caused by a user with host ''
|
# - Caused by a user with host ''
|
||||||
#
|
#
|
||||||
create user mysqltest_7@;
|
create user mysqltest_7@;
|
||||||
set password for mysqltest_7@ = password('systpass');
|
set password for mysqltest_7@ = password('systpass');
|
||||||
show grants for mysqltest_7@;
|
show grants for mysqltest_7@;
|
||||||
drop user mysqltest_7@;
|
drop user mysqltest_7@;
|
||||||
--error 1141
|
--error ER_NONEXISTING_GRANT
|
||||||
show grants for mysqltest_7@;
|
show grants for mysqltest_7@;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#14385: GRANT and mapping to correct user account problems
|
# Bug#14385 GRANT and mapping to correct user account problems
|
||||||
#
|
#
|
||||||
create database mysqltest;
|
create database mysqltest;
|
||||||
use mysqltest;
|
use mysqltest;
|
||||||
@ -545,7 +551,7 @@ flush privileges;
|
|||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #27515: DROP previlege is not required for RENAME TABLE
|
# Bug#27515 DROP previlege is not required for RENAME TABLE
|
||||||
#
|
#
|
||||||
connection master;
|
connection master;
|
||||||
create database db27515;
|
create database db27515;
|
||||||
@ -556,7 +562,7 @@ grant insert, create on db27515.t2 to user27515@localhost;
|
|||||||
|
|
||||||
connect (conn27515, localhost, user27515, , db27515);
|
connect (conn27515, localhost, user27515, , db27515);
|
||||||
connection conn27515;
|
connection conn27515;
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
rename table t1 to t2;
|
rename table t1 to t2;
|
||||||
disconnect conn27515;
|
disconnect conn27515;
|
||||||
|
|
||||||
@ -568,7 +574,7 @@ drop database db27515;
|
|||||||
--echo End of 4.1 tests
|
--echo End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #16297 In memory grant tables not flushed when users's hostname is ""
|
# Bug#16297 In memory grant tables not flushed when users's hostname is ""
|
||||||
#
|
#
|
||||||
use test;
|
use test;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
@ -585,11 +591,11 @@ create user mysqltest_8;
|
|||||||
create user mysqltest_8@host8;
|
create user mysqltest_8@host8;
|
||||||
|
|
||||||
# Try to create them again
|
# Try to create them again
|
||||||
--error 1396
|
--error ER_CANNOT_USER
|
||||||
create user mysqltest_8@'';
|
create user mysqltest_8@'';
|
||||||
--error 1396
|
--error ER_CANNOT_USER
|
||||||
create user mysqltest_8;
|
create user mysqltest_8;
|
||||||
--error 1396
|
--error ER_CANNOT_USER
|
||||||
create user mysqltest_8@host8;
|
create user mysqltest_8@host8;
|
||||||
|
|
||||||
select user, QUOTE(host) from mysql.user where user="mysqltest_8";
|
select user, QUOTE(host) from mysql.user where user="mysqltest_8";
|
||||||
@ -684,44 +690,43 @@ flush privileges;
|
|||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
drop user mysqltest_8@'';
|
drop user mysqltest_8@'';
|
||||||
--error 1141
|
--error ER_NONEXISTING_GRANT
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
select * from information_schema.user_privileges
|
select * from information_schema.user_privileges
|
||||||
where grantee like "'mysqltest_8'%";
|
where grantee like "'mysqltest_8'%";
|
||||||
drop user mysqltest_8;
|
drop user mysqltest_8;
|
||||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||||
--error 1045
|
--error ER_ACCESS_DENIED_ERROR
|
||||||
connect (conn6,localhost,mysqltest_8,,);
|
connect (conn6,localhost,mysqltest_8,,);
|
||||||
connection master;
|
connection master;
|
||||||
--error 1141
|
--error ER_NONEXISTING_GRANT
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
drop user mysqltest_8@host8;
|
drop user mysqltest_8@host8;
|
||||||
--error 1141
|
--error ER_NONEXISTING_GRANT
|
||||||
show grants for mysqltest_8@host8;
|
show grants for mysqltest_8@host8;
|
||||||
|
|
||||||
# Restore the anonymous users.
|
# Restore the anonymous users.
|
||||||
insert into mysql.user select * from t2;
|
insert into mysql.user select * from t2;
|
||||||
flush privileges;
|
flush privileges;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#20214: Incorrect error when user calls SHOW CREATE VIEW on non
|
# Bug#20214 Incorrect error when user calls SHOW CREATE VIEW on non
|
||||||
# privileged view
|
# privileged view
|
||||||
#
|
#
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
|
|
||||||
CREATE DATABASE mysqltest3;
|
CREATE DATABASE mysqltest3;
|
||||||
use mysqltest3;
|
USE mysqltest3;
|
||||||
|
|
||||||
CREATE TABLE t_nn (c1 INT);
|
CREATE TABLE t_nn (c1 INT);
|
||||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||||
|
|
||||||
CREATE DATABASE mysqltest2;
|
CREATE DATABASE mysqltest2;
|
||||||
use mysqltest2;
|
USE mysqltest2;
|
||||||
|
|
||||||
CREATE TABLE t_nn (c1 INT);
|
CREATE TABLE t_nn (c1 INT);
|
||||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||||
@ -743,24 +748,18 @@ SHOW CREATE VIEW mysqltest2.v_nn;
|
|||||||
--error ER_TABLEACCESS_DENIED_ERROR
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
SHOW CREATE TABLE mysqltest2.v_nn;
|
SHOW CREATE TABLE mysqltest2.v_nn;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# fail because of missing SHOW VIEW
|
# fail because of missing SHOW VIEW
|
||||||
--error ER_TABLEACCESS_DENIED_ERROR
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
SHOW CREATE VIEW mysqltest2.v_yn;
|
SHOW CREATE VIEW mysqltest2.v_yn;
|
||||||
--error ER_TABLEACCESS_DENIED_ERROR
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
SHOW CREATE TABLE mysqltest2.v_yn;
|
SHOW CREATE TABLE mysqltest2.v_yn;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# succeed (despite of missing SELECT, having SHOW VIEW bails us out)
|
# succeed (despite of missing SELECT, having SHOW VIEW bails us out)
|
||||||
SHOW CREATE TABLE mysqltest2.v_ny;
|
SHOW CREATE TABLE mysqltest2.v_ny;
|
||||||
|
|
||||||
# succeed (despite of missing SELECT, having SHOW VIEW bails us out)
|
# succeed (despite of missing SELECT, having SHOW VIEW bails us out)
|
||||||
SHOW CREATE VIEW mysqltest2.v_ny;
|
SHOW CREATE VIEW mysqltest2.v_ny;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# fail because of missing (specific or generic) SELECT
|
# fail because of missing (specific or generic) SELECT
|
||||||
--error ER_TABLEACCESS_DENIED_ERROR
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
SHOW CREATE TABLE mysqltest3.t_nn;
|
SHOW CREATE TABLE mysqltest3.t_nn;
|
||||||
@ -769,16 +768,12 @@ SHOW CREATE TABLE mysqltest3.t_nn;
|
|||||||
--error ER_TABLEACCESS_DENIED_ERROR
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
SHOW CREATE VIEW mysqltest3.t_nn;
|
SHOW CREATE VIEW mysqltest3.t_nn;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# fail because of missing missing (specific or generic) SELECT (and SHOW VIEW)
|
# fail because of missing missing (specific or generic) SELECT (and SHOW VIEW)
|
||||||
--error ER_TABLEACCESS_DENIED_ERROR
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
SHOW CREATE VIEW mysqltest3.v_nn;
|
SHOW CREATE VIEW mysqltest3.v_nn;
|
||||||
--error ER_TABLEACCESS_DENIED_ERROR
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
SHOW CREATE TABLE mysqltest3.v_nn;
|
SHOW CREATE TABLE mysqltest3.v_nn;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# succeed thanks to generic SELECT
|
# succeed thanks to generic SELECT
|
||||||
SHOW CREATE TABLE mysqltest2.t_nn;
|
SHOW CREATE TABLE mysqltest2.t_nn;
|
||||||
|
|
||||||
@ -786,17 +781,13 @@ SHOW CREATE TABLE mysqltest2.t_nn;
|
|||||||
--error ER_WRONG_OBJECT
|
--error ER_WRONG_OBJECT
|
||||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# succeed, have SELECT and SHOW VIEW
|
# succeed, have SELECT and SHOW VIEW
|
||||||
SHOW CREATE VIEW mysqltest2.v_yy;
|
SHOW CREATE VIEW mysqltest2.v_yy;
|
||||||
|
|
||||||
# succeed, have SELECT and SHOW VIEW
|
# succeed, have SELECT and SHOW VIEW
|
||||||
SHOW CREATE TABLE mysqltest2.v_yy;
|
SHOW CREATE TABLE mysqltest2.v_yy;
|
||||||
|
|
||||||
|
# clean-up
|
||||||
|
|
||||||
#clean-up
|
|
||||||
connection master;
|
connection master;
|
||||||
|
|
||||||
# succeed, we're root
|
# succeed, we're root
|
||||||
@ -809,38 +800,33 @@ SHOW CREATE TABLE mysqltest2.t_nn;
|
|||||||
--error ER_WRONG_OBJECT
|
--error ER_WRONG_OBJECT
|
||||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DROP VIEW mysqltest2.v_nn;
|
DROP VIEW mysqltest2.v_nn;
|
||||||
DROP VIEW mysqltest2.v_yn;
|
DROP VIEW mysqltest2.v_yn;
|
||||||
DROP VIEW mysqltest2.v_ny;
|
DROP VIEW mysqltest2.v_ny;
|
||||||
DROP VIEW mysqltest2.v_yy;
|
DROP VIEW mysqltest2.v_yy;
|
||||||
|
|
||||||
DROP TABLE mysqltest2.t_nn;
|
DROP TABLE mysqltest2.t_nn;
|
||||||
|
|
||||||
DROP DATABASE mysqltest2;
|
DROP DATABASE mysqltest2;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DROP VIEW mysqltest3.v_nn;
|
DROP VIEW mysqltest3.v_nn;
|
||||||
DROP TABLE mysqltest3.t_nn;
|
DROP TABLE mysqltest3.t_nn;
|
||||||
|
|
||||||
DROP DATABASE mysqltest3;
|
DROP DATABASE mysqltest3;
|
||||||
|
disconnect mysqltest_1;
|
||||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysqltest_1'@'localhost';
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysqltest_1'@'localhost';
|
||||||
DROP USER 'mysqltest_1'@'localhost';
|
DROP USER 'mysqltest_1'@'localhost';
|
||||||
|
|
||||||
# restore the original database
|
# restore the original database
|
||||||
use test;
|
USE test;
|
||||||
|
connection default;
|
||||||
|
disconnect master;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #10668: CREATE USER does not enforce username length limit
|
# Bug#10668 CREATE USER does not enforce username length limit
|
||||||
#
|
#
|
||||||
--error ER_WRONG_STRING_LENGTH
|
--error ER_WRONG_STRING_LENGTH
|
||||||
create user mysqltest1_thisisreallytoolong;
|
create user mysqltest1_thisisreallytoolong;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test for BUG#16899: Possible buffer overflow in handling of DEFINER-clause.
|
# Test for Bug#16899 Possible buffer overflow in handling of DEFINER-clause.
|
||||||
#
|
#
|
||||||
# These checks are intended to ensure that appropriate errors are risen when
|
# These checks are intended to ensure that appropriate errors are risen when
|
||||||
# illegal user name or hostname is specified in user-clause of GRANT/REVOKE
|
# illegal user name or hostname is specified in user-clause of GRANT/REVOKE
|
||||||
@ -848,7 +834,7 @@ create user mysqltest1_thisisreallytoolong;
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #22369: Alter table rename combined with other alterations causes lost tables
|
# Bug#22369 Alter table rename combined with other alterations causes lost tables
|
||||||
#
|
#
|
||||||
CREATE DATABASE mysqltest1;
|
CREATE DATABASE mysqltest1;
|
||||||
CREATE TABLE mysqltest1.t1 (
|
CREATE TABLE mysqltest1.t1 (
|
||||||
@ -968,7 +954,7 @@ REVOKE EXECUTE ON PROCEDURE t1 FROM some_user_name@1234567890abcdefghij123456789
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#23556: TRUNCATE TABLE still maps to DELETE
|
# Bug#23556 TRUNCATE TABLE still maps to DELETE
|
||||||
#
|
#
|
||||||
CREATE USER bug23556@localhost;
|
CREATE USER bug23556@localhost;
|
||||||
CREATE DATABASE bug23556;
|
CREATE DATABASE bug23556;
|
||||||
@ -1000,8 +986,12 @@ DROP TABLE t1;
|
|||||||
USE test;
|
USE test;
|
||||||
DROP DATABASE bug23556;
|
DROP DATABASE bug23556;
|
||||||
DROP USER bug23556@localhost;
|
DROP USER bug23556@localhost;
|
||||||
|
connection default;
|
||||||
|
disconnect bug23556;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #6774: Replication fails with Wrong usage of DB GRANT and GLOBAL PRIVILEGES
|
# Bug#6774 Replication fails with Wrong usage of DB GRANT and GLOBAL PRIVILEGES
|
||||||
#
|
#
|
||||||
# Check if GRANT ... ON * ... fails when no database is selected
|
# Check if GRANT ... ON * ... fails when no database is selected
|
||||||
connect (con1, localhost, root,,*NO-ONE*);
|
connect (con1, localhost, root,,*NO-ONE*);
|
||||||
@ -1013,7 +1003,7 @@ connection default;
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#9504: Stored procedures: execute privilege doesn't make 'use database'
|
# Bug#9504 Stored procedures: execute privilege doesn't make 'use database'
|
||||||
# okay.
|
# okay.
|
||||||
#
|
#
|
||||||
|
|
||||||
@ -1038,8 +1028,8 @@ CREATE PROCEDURE mysqltest2.p_inv() SQL SECURITY INVOKER
|
|||||||
SELECT 1;
|
SELECT 1;
|
||||||
|
|
||||||
CREATE FUNCTION mysqltest3.f_def() RETURNS INT SQL SECURITY DEFINER
|
CREATE FUNCTION mysqltest3.f_def() RETURNS INT SQL SECURITY DEFINER
|
||||||
RETURN 1;
|
RETURN 1;
|
||||||
|
|
||||||
CREATE FUNCTION mysqltest4.f_inv() RETURNS INT SQL SECURITY INVOKER
|
CREATE FUNCTION mysqltest4.f_inv() RETURNS INT SQL SECURITY INVOKER
|
||||||
RETURN 1;
|
RETURN 1;
|
||||||
|
|
||||||
@ -1095,7 +1085,7 @@ DROP USER mysqltest_1@localhost;
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#27337: Privileges are not restored properly.
|
# Bug#27337 Privileges are not restored properly.
|
||||||
#
|
#
|
||||||
# Actually, the patch for this bugs fixes two problems. So, here are two test
|
# Actually, the patch for this bugs fixes two problems. So, here are two test
|
||||||
# cases.
|
# cases.
|
||||||
@ -1157,7 +1147,7 @@ DROP DATABASE mysqltest2;
|
|||||||
|
|
||||||
DROP USER mysqltest_1@localhost;
|
DROP USER mysqltest_1@localhost;
|
||||||
|
|
||||||
# Test case 2: priveleges are not checked properly for prepared statements.
|
# Test case 2: privileges are not checked properly for prepared statements.
|
||||||
|
|
||||||
# Prepare.
|
# Prepare.
|
||||||
|
|
||||||
@ -1230,6 +1220,7 @@ EXECUTE stmt2;
|
|||||||
--echo
|
--echo
|
||||||
--echo ---> connection: default
|
--echo ---> connection: default
|
||||||
|
|
||||||
|
--disconnect bug27337_con1
|
||||||
--disconnect bug27337_con2
|
--disconnect bug27337_con2
|
||||||
|
|
||||||
DROP DATABASE mysqltest1;
|
DROP DATABASE mysqltest1;
|
||||||
@ -1239,21 +1230,21 @@ DROP USER mysqltest_1@localhost;
|
|||||||
DROP USER mysqltest_2@localhost;
|
DROP USER mysqltest_2@localhost;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#27878: Unchecked privileges on a view referring to a table from another
|
# Bug#27878 Unchecked privileges on a view referring to a table from another
|
||||||
# database.
|
# database.
|
||||||
#
|
#
|
||||||
use test;
|
USE test;
|
||||||
CREATE TABLE t1 (f1 int, f2 int);
|
CREATE TABLE t1 (f1 int, f2 int);
|
||||||
INSERT INTO t1 VALUES(1,1), (2,2);
|
INSERT INTO t1 VALUES(1,1), (2,2);
|
||||||
CREATE DATABASE db27878;
|
CREATE DATABASE db27878;
|
||||||
GRANT UPDATE(f1) ON t1 TO 'mysqltest_1'@'localhost';
|
GRANT UPDATE(f1) ON t1 TO 'mysqltest_1'@'localhost';
|
||||||
GRANT SELECT ON `test`.* TO 'mysqltest_1'@'localhost';
|
GRANT SELECT ON `test`.* TO 'mysqltest_1'@'localhost';
|
||||||
GRANT ALL ON db27878.* TO 'mysqltest_1'@'localhost';
|
GRANT ALL ON db27878.* TO 'mysqltest_1'@'localhost';
|
||||||
use db27878;
|
USE db27878;
|
||||||
CREATE SQL SECURITY INVOKER VIEW db27878.v1 AS SELECT * FROM test.t1;
|
CREATE SQL SECURITY INVOKER VIEW db27878.v1 AS SELECT * FROM test.t1;
|
||||||
connect (user1,localhost,mysqltest_1,,test);
|
connect (user1,localhost,mysqltest_1,,test);
|
||||||
connection user1;
|
connection user1;
|
||||||
use db27878;
|
USE db27878;
|
||||||
--error 1356
|
--error 1356
|
||||||
UPDATE v1 SET f2 = 4;
|
UPDATE v1 SET f2 = 4;
|
||||||
SELECT * FROM test.t1;
|
SELECT * FROM test.t1;
|
||||||
@ -1264,7 +1255,7 @@ REVOKE SELECT ON `test`.* FROM 'mysqltest_1'@'localhost';
|
|||||||
REVOKE ALL ON db27878.* FROM 'mysqltest_1'@'localhost';
|
REVOKE ALL ON db27878.* FROM 'mysqltest_1'@'localhost';
|
||||||
DROP USER mysqltest_1@localhost;
|
DROP USER mysqltest_1@localhost;
|
||||||
DROP DATABASE db27878;
|
DROP DATABASE db27878;
|
||||||
use test;
|
USE test;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -1273,8 +1264,10 @@ DROP TABLE t1;
|
|||||||
CREATE TEMPORARY TABLE mysql.user (id INT);
|
CREATE TEMPORARY TABLE mysql.user (id INT);
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
DROP TABLE mysql.user;
|
DROP TABLE mysql.user;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #33201 Crash occurs when granting update privilege on one column of a view
|
# Bug#33201 Crash occurs when granting update privilege on one column of a view
|
||||||
#
|
#
|
||||||
drop table if exists test;
|
drop table if exists test;
|
||||||
drop function if exists test_function;
|
drop function if exists test_function;
|
||||||
@ -1305,7 +1298,7 @@ SET PASSWORD FOR CURRENT_USER() = PASSWORD("");
|
|||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#21432: Database/Table name limited to 64 bytes, not chars, problems with multi-byte
|
# Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
|
||||||
#
|
#
|
||||||
set names utf8;
|
set names utf8;
|
||||||
grant select on test.* to <20>郱迮<E983B1>_<EFBFBD>郱迮<E983B1>@localhost;
|
grant select on test.* to <20>郱迮<E983B1>_<EFBFBD>郱迮<E983B1>@localhost;
|
||||||
@ -1317,7 +1310,7 @@ grant select on test.* to очень_длинный_юзер@localhost;
|
|||||||
set names default;
|
set names default;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #20901 - CREATE privilege is enough to insert into a table
|
# Bug#20901 CREATE privilege is enough to insert into a table
|
||||||
#
|
#
|
||||||
|
|
||||||
create database mysqltest;
|
create database mysqltest;
|
||||||
@ -1329,7 +1322,7 @@ create table t1 (i INT);
|
|||||||
connect (user1,localhost,mysqltest,,mysqltest);
|
connect (user1,localhost,mysqltest,,mysqltest);
|
||||||
connection user1;
|
connection user1;
|
||||||
# show we don't have INSERT
|
# show we don't have INSERT
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
# show we have CREATE
|
# show we have CREATE
|
||||||
create table t2 (i INT);
|
create table t2 (i INT);
|
||||||
@ -1348,11 +1341,11 @@ insert into t2 values (1);
|
|||||||
|
|
||||||
|
|
||||||
# CREATE IF NOT EXISTS...SELECT, t1 exists, no INSERT, must fail
|
# CREATE IF NOT EXISTS...SELECT, t1 exists, no INSERT, must fail
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
create table if not exists t1 select * from t2;
|
create table if not exists t1 select * from t2;
|
||||||
|
|
||||||
# CREATE IF NOT EXISTS...SELECT, no t3 yet, no INSERT, must fail
|
# CREATE IF NOT EXISTS...SELECT, no t3 yet, no INSERT, must fail
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
create table if not exists t3 select * from t2;
|
create table if not exists t3 select * from t2;
|
||||||
|
|
||||||
# CREATE IF NOT EXISTS...SELECT, t4 exists, have INSERT, must succeed
|
# CREATE IF NOT EXISTS...SELECT, t4 exists, have INSERT, must succeed
|
||||||
@ -1366,7 +1359,7 @@ create table if not exists t5 select * from t2;
|
|||||||
create table t6 select * from t2;
|
create table t6 select * from t2;
|
||||||
|
|
||||||
# CREATE...SELECT, no t7 yet, no INSERT, must fail
|
# CREATE...SELECT, no t7 yet, no INSERT, must fail
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
create table t7 select * from t2;
|
create table t7 select * from t2;
|
||||||
|
|
||||||
# CREATE...SELECT, t4 exists, have INSERT, must still fail (exists)
|
# CREATE...SELECT, t4 exists, have INSERT, must still fail (exists)
|
||||||
@ -1374,7 +1367,7 @@ create table t7 select * from t2;
|
|||||||
create table t4 select * from t2;
|
create table t4 select * from t2;
|
||||||
|
|
||||||
# CREATE...SELECT, t1 exists, no INSERT, must fail
|
# CREATE...SELECT, t1 exists, no INSERT, must fail
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
create table t1 select * from t2;
|
create table t1 select * from t2;
|
||||||
|
|
||||||
|
|
||||||
@ -1394,7 +1387,7 @@ use test;
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #16470 crash on grant if old grant tables
|
# Bug#16470 crash on grant if old grant tables
|
||||||
#
|
#
|
||||||
--echo FLUSH PRIVILEGES without procs_priv table.
|
--echo FLUSH PRIVILEGES without procs_priv table.
|
||||||
RENAME TABLE mysql.procs_priv TO mysql.procs_gone;
|
RENAME TABLE mysql.procs_priv TO mysql.procs_gone;
|
||||||
@ -1415,7 +1408,7 @@ FLUSH PRIVILEGES;
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#33464: DROP FUNCTION caused a crash.
|
# Bug#33464 DROP FUNCTION caused a crash.
|
||||||
#
|
#
|
||||||
CREATE DATABASE dbbug33464;
|
CREATE DATABASE dbbug33464;
|
||||||
CREATE USER 'userbug33464'@'localhost';
|
CREATE USER 'userbug33464'@'localhost';
|
||||||
@ -1472,8 +1465,11 @@ DROP PROCEDURE sp3;
|
|||||||
--error 0, ER_CANNOT_USER
|
--error 0, ER_CANNOT_USER
|
||||||
DROP USER 'userbug33464'@'localhost';
|
DROP USER 'userbug33464'@'localhost';
|
||||||
|
|
||||||
use test;
|
USE test;
|
||||||
DROP DATABASE dbbug33464;
|
DROP DATABASE dbbug33464;
|
||||||
|
|
||||||
|
|
||||||
SET @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creators;
|
SET @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creators;
|
||||||
|
|
||||||
|
# Wait till we reached the initial number of concurrent sessions
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -5,6 +5,10 @@
|
|||||||
# on the presence of the log tables (which are CSV-based).
|
# on the presence of the log tables (which are CSV-based).
|
||||||
--source include/have_csv.inc
|
--source include/have_csv.inc
|
||||||
|
|
||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
|
|
||||||
# Test for information_schema.schemata &
|
# Test for information_schema.schemata &
|
||||||
# show databases
|
# show databases
|
||||||
|
|
||||||
@ -44,11 +48,11 @@ create view v1 (c) as
|
|||||||
table_name<>'ndb_apply_status';
|
table_name<>'ndb_apply_status';
|
||||||
select * from v1;
|
select * from v1;
|
||||||
|
|
||||||
select c,table_name from v1
|
select c,table_name from v1
|
||||||
inner join information_schema.TABLES v2 on (v1.c=v2.table_name)
|
inner join information_schema.TABLES v2 on (v1.c=v2.table_name)
|
||||||
where v1.c like "t%";
|
where v1.c like "t%";
|
||||||
|
|
||||||
select c,table_name from v1
|
select c,table_name from v1
|
||||||
left join information_schema.TABLES v2 on (v1.c=v2.table_name)
|
left join information_schema.TABLES v2 on (v1.c=v2.table_name)
|
||||||
where v1.c like "t%";
|
where v1.c like "t%";
|
||||||
|
|
||||||
@ -77,16 +81,17 @@ grant select (a) on mysqltest.t1 to mysqltest_2@localhost;
|
|||||||
grant select on mysqltest.v1 to mysqltest_3;
|
grant select on mysqltest.v1 to mysqltest_3;
|
||||||
connect (user3,localhost,mysqltest_2,,);
|
connect (user3,localhost,mysqltest_2,,);
|
||||||
connection user3;
|
connection user3;
|
||||||
select table_name, column_name, privileges from information_schema.columns
|
select table_name, column_name, privileges from information_schema.columns
|
||||||
where table_schema = 'mysqltest' and table_name = 't1';
|
where table_schema = 'mysqltest' and table_name = 't1';
|
||||||
show columns from mysqltest.t1;
|
show columns from mysqltest.t1;
|
||||||
connect (user4,localhost,mysqltest_3,,mysqltest);
|
connect (user4,localhost,mysqltest_3,,mysqltest);
|
||||||
connection user4;
|
connection user4;
|
||||||
select table_name, column_name, privileges from information_schema.columns
|
select table_name, column_name, privileges from information_schema.columns
|
||||||
where table_schema = 'mysqltest' and table_name = 'v1';
|
where table_schema = 'mysqltest' and table_name = 'v1';
|
||||||
--error 1345
|
--error ER_VIEW_NO_EXPLAIN
|
||||||
explain select * from v1;
|
explain select * from v1;
|
||||||
connection default;
|
connection default;
|
||||||
|
disconnect user4;
|
||||||
|
|
||||||
drop view v1, mysqltest.v1;
|
drop view v1, mysqltest.v1;
|
||||||
drop tables mysqltest.t4, mysqltest.t1, t2, t3, t5;
|
drop tables mysqltest.t4, mysqltest.t1, t2, t3, t5;
|
||||||
@ -136,7 +141,7 @@ delimiter ;|
|
|||||||
#
|
#
|
||||||
# Bug#7222 information_schema: errors in "routines"
|
# Bug#7222 information_schema: errors in "routines"
|
||||||
#
|
#
|
||||||
select parameter_style, sql_data_access, dtd_identifier
|
select parameter_style, sql_data_access, dtd_identifier
|
||||||
from information_schema.routines where routine_schema='test';
|
from information_schema.routines where routine_schema='test';
|
||||||
|
|
||||||
--replace_column 5 # 6 #
|
--replace_column 5 # 6 #
|
||||||
@ -163,7 +168,7 @@ drop view v1;
|
|||||||
connect (user1,localhost,mysqltest_1,,);
|
connect (user1,localhost,mysqltest_1,,);
|
||||||
connection user1;
|
connection user1;
|
||||||
select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
|
select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
|
||||||
--error 1305
|
--error ER_SP_DOES_NOT_EXIST
|
||||||
show create function sub1;
|
show create function sub1;
|
||||||
connection user3;
|
connection user3;
|
||||||
select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
|
select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
|
||||||
@ -182,6 +187,7 @@ show create function sub2;
|
|||||||
show function status like "sub2";
|
show function status like "sub2";
|
||||||
connection default;
|
connection default;
|
||||||
disconnect user1;
|
disconnect user1;
|
||||||
|
disconnect user3;
|
||||||
drop function sub2;
|
drop function sub2;
|
||||||
show create procedure sel2;
|
show create procedure sel2;
|
||||||
|
|
||||||
@ -321,7 +327,7 @@ drop view v1;
|
|||||||
create table t1(a NUMERIC(5,3), b NUMERIC(5,1), c float(5,2),
|
create table t1(a NUMERIC(5,3), b NUMERIC(5,1), c float(5,2),
|
||||||
d NUMERIC(6,4), e float, f DECIMAL(6,3), g int(11), h DOUBLE(10,3),
|
d NUMERIC(6,4), e float, f DECIMAL(6,3), g int(11), h DOUBLE(10,3),
|
||||||
i DOUBLE);
|
i DOUBLE);
|
||||||
select COLUMN_NAME,COLUMN_TYPE, CHARACTER_MAXIMUM_LENGTH,
|
select COLUMN_NAME,COLUMN_TYPE, CHARACTER_MAXIMUM_LENGTH,
|
||||||
CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE
|
CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE
|
||||||
from information_schema.columns where table_name= 't1';
|
from information_schema.columns where table_name= 't1';
|
||||||
drop table t1;
|
drop table t1;
|
||||||
@ -334,7 +340,7 @@ drop table t115;
|
|||||||
delimiter //;
|
delimiter //;
|
||||||
create procedure p108 () begin declare c cursor for select data_type
|
create procedure p108 () begin declare c cursor for select data_type
|
||||||
from information_schema.columns; open c; open c; end;//
|
from information_schema.columns; open c; open c; end;//
|
||||||
--error 1325
|
--error ER_SP_CURSOR_ALREADY_OPEN
|
||||||
call p108()//
|
call p108()//
|
||||||
delimiter ;//
|
delimiter ;//
|
||||||
drop procedure p108;
|
drop procedure p108;
|
||||||
@ -344,24 +350,24 @@ where table_name= "user";
|
|||||||
select * from v1;
|
select * from v1;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
|
|
||||||
create view vo as select 'a' union select 'a';
|
create view vo as select 'a' union select 'a';
|
||||||
show index from vo;
|
show index from vo;
|
||||||
select * from information_schema.TABLE_CONSTRAINTS where
|
select * from information_schema.TABLE_CONSTRAINTS where
|
||||||
TABLE_NAME= "vo";
|
TABLE_NAME= "vo";
|
||||||
select * from information_schema.KEY_COLUMN_USAGE where
|
select * from information_schema.KEY_COLUMN_USAGE where
|
||||||
TABLE_NAME= "vo";
|
TABLE_NAME= "vo";
|
||||||
drop view vo;
|
drop view vo;
|
||||||
|
|
||||||
select TABLE_NAME,TABLE_TYPE,ENGINE
|
select TABLE_NAME,TABLE_TYPE,ENGINE
|
||||||
from information_schema.tables
|
from information_schema.tables
|
||||||
where table_schema='information_schema' limit 2;
|
where table_schema='information_schema' limit 2;
|
||||||
show tables from information_schema like "T%";
|
show tables from information_schema like "T%";
|
||||||
|
|
||||||
--error 1044
|
--error ER_DBACCESS_DENIED_ERROR
|
||||||
create database information_schema;
|
create database information_schema;
|
||||||
use information_schema;
|
use information_schema;
|
||||||
show full tables like "T%";
|
show full tables like "T%";
|
||||||
--error 1109
|
--error ER_UNKNOWN_TABLE
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
use test;
|
use test;
|
||||||
show tables;
|
show tables;
|
||||||
@ -369,15 +375,15 @@ use information_schema;
|
|||||||
show tables like "T%";
|
show tables like "T%";
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#7210: information_schema: can't access when table-name = reserved word
|
# Bug#7210 information_schema: can't access when table-name = reserved word
|
||||||
#
|
#
|
||||||
select table_name from tables where table_name='user';
|
select table_name from tables where table_name='user';
|
||||||
select column_name, privileges from columns
|
select column_name, privileges from columns
|
||||||
where table_name='user' and column_name like '%o%';
|
where table_name='user' and column_name like '%o%';
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#7212: information_schema: "Can't find file" errors if storage engine gone
|
# Bug#7212 information_schema: "Can't find file" errors if storage engine gone
|
||||||
# Bug#7211: information_schema: crash if bad view
|
# Bug#7211 information_schema: crash if bad view
|
||||||
#
|
#
|
||||||
use test;
|
use test;
|
||||||
create function sub1(i int) returns int
|
create function sub1(i int) returns int
|
||||||
@ -404,9 +410,9 @@ drop view v3;
|
|||||||
drop table t4;
|
drop table t4;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#7213: information_schema: redundant non-standard TABLE_NAMES table
|
# Bug#7213 information_schema: redundant non-standard TABLE_NAMES table
|
||||||
#
|
#
|
||||||
--error 1109
|
--error ER_UNKNOWN_TABLE
|
||||||
select * from information_schema.table_names;
|
select * from information_schema.table_names;
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -419,7 +425,7 @@ where table_schema="information_schema" and table_name="COLUMNS" and
|
|||||||
#
|
#
|
||||||
# Bug#2718 information_schema: errors in "tables"
|
# Bug#2718 information_schema: errors in "tables"
|
||||||
#
|
#
|
||||||
select TABLE_ROWS from information_schema.tables where
|
select TABLE_ROWS from information_schema.tables where
|
||||||
table_schema="information_schema" and table_name="COLUMNS";
|
table_schema="information_schema" and table_name="COLUMNS";
|
||||||
select table_type from information_schema.tables
|
select table_type from information_schema.tables
|
||||||
where table_schema="mysql" and table_name="user";
|
where table_schema="mysql" and table_name="user";
|
||||||
@ -432,14 +438,14 @@ show status where variable_name like "%database%";
|
|||||||
show variables where variable_name like "skip_show_databas";
|
show variables where variable_name like "skip_show_databas";
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #7981:SHOW GLOBAL STATUS crashes server
|
# Bug#7981 SHOW GLOBAL STATUS crashes server
|
||||||
#
|
#
|
||||||
# We don't actually care about the value, just that it doesn't crash.
|
# We don't actually care about the value, just that it doesn't crash.
|
||||||
--replace_column 2 #
|
--replace_column 2 #
|
||||||
show global status like "Threads_running";
|
show global status like "Threads_running";
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #7915 crash,JOIN VIEW, subquery,
|
# Bug#7915 crash,JOIN VIEW, subquery,
|
||||||
# SELECT .. FROM INFORMATION_SCHEMA.COLUMNS
|
# SELECT .. FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
#
|
#
|
||||||
create table t1(f1 int);
|
create table t1(f1 int);
|
||||||
@ -450,7 +456,7 @@ drop view v1;
|
|||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #7476: crash on SELECT * FROM INFORMATION_SCHEMA.TABLES
|
# Bug#7476 crash on SELECT * FROM INFORMATION_SCHEMA.TABLES
|
||||||
#
|
#
|
||||||
use test;
|
use test;
|
||||||
CREATE TABLE t_crashme ( f1 BIGINT);
|
CREATE TABLE t_crashme ( f1 BIGINT);
|
||||||
@ -478,26 +484,26 @@ drop view a2, a1;
|
|||||||
drop table t_crashme;
|
drop table t_crashme;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #7215 information_schema: columns are longtext instead of varchar
|
# Bug#7215 information_schema: columns are longtext instead of varchar
|
||||||
# Bug #7217 information_schema: columns are varbinary() instead of timestamp
|
# Bug#7217 information_schema: columns are varbinary() instead of timestamp
|
||||||
#
|
#
|
||||||
select table_schema,table_name, column_name from
|
select table_schema,table_name, column_name from
|
||||||
information_schema.columns
|
information_schema.columns
|
||||||
where data_type = 'longtext';
|
where data_type = 'longtext';
|
||||||
select table_name, column_name, data_type from information_schema.columns
|
select table_name, column_name, data_type from information_schema.columns
|
||||||
where data_type = 'datetime';
|
where data_type = 'datetime';
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #8164 subquery with INFORMATION_SCHEMA.COLUMNS, 100 % CPU
|
# Bug#8164 subquery with INFORMATION_SCHEMA.COLUMNS, 100 % CPU
|
||||||
#
|
#
|
||||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES A
|
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES A
|
||||||
WHERE NOT EXISTS
|
WHERE NOT EXISTS
|
||||||
(SELECT * FROM INFORMATION_SCHEMA.COLUMNS B
|
(SELECT * FROM INFORMATION_SCHEMA.COLUMNS B
|
||||||
WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
|
WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
|
||||||
AND A.TABLE_NAME = B.TABLE_NAME);
|
AND A.TABLE_NAME = B.TABLE_NAME);
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #9344 INFORMATION_SCHEMA, wrong content, numeric columns
|
# Bug#9344 INFORMATION_SCHEMA, wrong content, numeric columns
|
||||||
#
|
#
|
||||||
|
|
||||||
create table t1
|
create table t1
|
||||||
@ -515,21 +521,22 @@ WHERE TABLE_NAME= 't1';
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#10261 INFORMATION_SCHEMA.COLUMNS, incomplete result for non root user
|
# Bug#10261 INFORMATION_SCHEMA.COLUMNS, incomplete result for non root user
|
||||||
#
|
#
|
||||||
|
|
||||||
grant select on test.* to mysqltest_4@localhost;
|
grant select on test.* to mysqltest_4@localhost;
|
||||||
connect (user10261,localhost,mysqltest_4,,);
|
connect (user10261,localhost,mysqltest_4,,);
|
||||||
connection user10261;
|
connection user10261;
|
||||||
SELECT TABLE_NAME, COLUMN_NAME, PRIVILEGES FROM INFORMATION_SCHEMA.COLUMNS
|
SELECT TABLE_NAME, COLUMN_NAME, PRIVILEGES FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
where COLUMN_NAME='TABLE_NAME';
|
where COLUMN_NAME='TABLE_NAME';
|
||||||
connection default;
|
connection default;
|
||||||
|
disconnect user10261;
|
||||||
delete from mysql.user where user='mysqltest_4';
|
delete from mysql.user where user='mysqltest_4';
|
||||||
delete from mysql.db where user='mysqltest_4';
|
delete from mysql.db where user='mysqltest_4';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #9404 information_schema: Weird error messages
|
# Bug#9404 information_schema: Weird error messages
|
||||||
# with SELECT SUM() ... GROUP BY queries
|
# with SELECT SUM() ... GROUP BY queries
|
||||||
#
|
#
|
||||||
SELECT table_schema, count(*) FROM information_schema.TABLES WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') AND table_name<>'ndb_binlog_index' AND table_name<>'ndb_apply_status' GROUP BY TABLE_SCHEMA;
|
SELECT table_schema, count(*) FROM information_schema.TABLES WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') AND table_name<>'ndb_binlog_index' AND table_name<>'ndb_apply_status' GROUP BY TABLE_SCHEMA;
|
||||||
@ -570,7 +577,7 @@ drop table t1;
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #10964 Information Schema:Authorization check on privilege tables is improper
|
# Bug#10964 Information Schema:Authorization check on privilege tables is improper
|
||||||
#
|
#
|
||||||
|
|
||||||
create database mysqltest;
|
create database mysqltest;
|
||||||
@ -614,12 +621,16 @@ select * from information_schema.user_privileges where grantee like '%user%'
|
|||||||
order by grantee;
|
order by grantee;
|
||||||
show grants;
|
show grants;
|
||||||
connection default;
|
connection default;
|
||||||
|
disconnect con1;
|
||||||
|
disconnect con2;
|
||||||
|
disconnect con3;
|
||||||
|
disconnect con4;
|
||||||
drop user user1@localhost, user2@localhost, user3@localhost, user4@localhost;
|
drop user user1@localhost, user2@localhost, user3@localhost, user4@localhost;
|
||||||
use test;
|
use test;
|
||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #11055 information_schema: routines.sql_data_access has wrong value
|
# Bug#11055 information_schema: routines.sql_data_access has wrong value
|
||||||
#
|
#
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop procedure if exists p1;
|
drop procedure if exists p1;
|
||||||
@ -634,13 +645,13 @@ drop procedure p1;
|
|||||||
drop procedure p2;
|
drop procedure p2;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #9434 SHOW CREATE DATABASE information_schema;
|
# Bug#9434 SHOW CREATE DATABASE information_schema;
|
||||||
#
|
#
|
||||||
show create database information_schema;
|
show create database information_schema;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #11057 information_schema: columns table has some questionable contents
|
# Bug#11057 information_schema: columns table has some questionable contents
|
||||||
# Bug #12301 information_schema: NUMERIC_SCALE must be 0 for integer columns
|
# Bug#12301 information_schema: NUMERIC_SCALE must be 0 for integer columns
|
||||||
#
|
#
|
||||||
create table t1(f1 LONGBLOB, f2 LONGTEXT);
|
create table t1(f1 LONGBLOB, f2 LONGTEXT);
|
||||||
select column_name,data_type,CHARACTER_OCTET_LENGTH,
|
select column_name,data_type,CHARACTER_OCTET_LENGTH,
|
||||||
@ -656,7 +667,7 @@ where table_name='t1';
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #12127 triggers do not show in info_schema before they are used if set to the database
|
# Bug#12127 triggers do not show in info_schema before they are used if set to the database
|
||||||
#
|
#
|
||||||
create table t1 (f1 integer);
|
create table t1 (f1 integer);
|
||||||
create trigger tr1 after insert on t1 for each row set @test_var=42;
|
create trigger tr1 after insert on t1 for each row set @test_var=42;
|
||||||
@ -678,8 +689,8 @@ show columns from t1;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #12636: SHOW TABLE STATUS with where condition containing a subquery
|
# Bug#12636 SHOW TABLE STATUS with where condition containing a subquery
|
||||||
# over information schema
|
# over information schema
|
||||||
#
|
#
|
||||||
|
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int);
|
||||||
@ -693,7 +704,7 @@ SHOW TABLE STATUS FROM test
|
|||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #12905 show fields from view behaving erratically with current database
|
# Bug#12905 show fields from view behaving erratically with current database
|
||||||
#
|
#
|
||||||
create table t1(f1 int);
|
create table t1(f1 int);
|
||||||
create view v1 (c) as select f1 from t1;
|
create view v1 (c) as select f1 from t1;
|
||||||
@ -701,28 +712,29 @@ connect (con5,localhost,root,,*NO-ONE*);
|
|||||||
select database();
|
select database();
|
||||||
show fields from test.v1;
|
show fields from test.v1;
|
||||||
connection default;
|
connection default;
|
||||||
|
disconnect con5;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #9846 Inappropriate error displayed while dropping table from 'INFORMATION_SCHEMA'
|
# Bug#9846 Inappropriate error displayed while dropping table from 'INFORMATION_SCHEMA'
|
||||||
#
|
#
|
||||||
--error ER_PARSE_ERROR
|
--error ER_PARSE_ERROR
|
||||||
alter database information_schema;
|
alter database information_schema;
|
||||||
--error 1044
|
--error ER_DBACCESS_DENIED_ERROR
|
||||||
drop database information_schema;
|
drop database information_schema;
|
||||||
--error 1044
|
--error ER_DBACCESS_DENIED_ERROR
|
||||||
drop table information_schema.tables;
|
drop table information_schema.tables;
|
||||||
--error 1044
|
--error ER_DBACCESS_DENIED_ERROR
|
||||||
alter table information_schema.tables;
|
alter table information_schema.tables;
|
||||||
#
|
#
|
||||||
# Bug #9683 INFORMATION_SCH: Creation of temporary table allowed in Information_schema DB
|
# Bug#9683 INFORMATION_SCH: Creation of temporary table allowed in Information_schema DB
|
||||||
#
|
#
|
||||||
use information_schema;
|
use information_schema;
|
||||||
--error 1044
|
--error ER_DBACCESS_DENIED_ERROR
|
||||||
create temporary table schemata(f1 char(10));
|
create temporary table schemata(f1 char(10));
|
||||||
#
|
#
|
||||||
# Bug #10708 SP's can use INFORMATION_SCHEMA as ROUTINE_SCHEMA
|
# Bug#10708 SP's can use INFORMATION_SCHEMA as ROUTINE_SCHEMA
|
||||||
#
|
#
|
||||||
delimiter |;
|
delimiter |;
|
||||||
--error ER_BAD_DB_ERROR
|
--error ER_BAD_DB_ERROR
|
||||||
@ -731,13 +743,13 @@ BEGIN
|
|||||||
SELECT 'foo' FROM DUAL;
|
SELECT 'foo' FROM DUAL;
|
||||||
END |
|
END |
|
||||||
delimiter ;|
|
delimiter ;|
|
||||||
select ROUTINE_NAME from routines where ROUTINE_SCHEMA='information_schema';
|
select ROUTINE_NAME from routines where ROUTINE_SCHEMA='information_schema';
|
||||||
#
|
#
|
||||||
# Bug #10734 Grant of privileges other than 'select' and 'create view' should fail on schema
|
# Bug#10734 Grant of privileges other than 'select' and 'create view' should fail on schema
|
||||||
#
|
#
|
||||||
--error 1044
|
--error ER_DBACCESS_DENIED_ERROR
|
||||||
grant all on information_schema.* to 'user1'@'localhost';
|
grant all on information_schema.* to 'user1'@'localhost';
|
||||||
--error 1044
|
--error ER_DBACCESS_DENIED_ERROR
|
||||||
grant select on information_schema.* to 'user1'@'localhost';
|
grant select on information_schema.* to 'user1'@'localhost';
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -763,9 +775,9 @@ where table_name="v1";
|
|||||||
drop view v1;
|
drop view v1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #14387 SHOW COLUMNS doesn't work on temporary tables
|
# Bug#14387 SHOW COLUMNS doesn't work on temporary tables
|
||||||
# Bug #15224 SHOW INDEX from temporary table doesn't work
|
# Bug#15224 SHOW INDEX from temporary table doesn't work
|
||||||
# Bug #12770 DESC cannot display the info. about temporary table
|
# Bug#12770 DESC cannot display the info. about temporary table
|
||||||
#
|
#
|
||||||
create temporary table t1(f1 int, index(f1));
|
create temporary table t1(f1 int, index(f1));
|
||||||
show columns from t1;
|
show columns from t1;
|
||||||
@ -850,6 +862,7 @@ connection con16681;
|
|||||||
select * from information_schema.views
|
select * from information_schema.views
|
||||||
where table_name='v1' or table_name='v2';
|
where table_name='v1' or table_name='v2';
|
||||||
connection default;
|
connection default;
|
||||||
|
disconnect con16681;
|
||||||
drop view v1, v2;
|
drop view v1, v2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop user mysqltest_1@localhost;
|
drop user mysqltest_1@localhost;
|
||||||
@ -864,8 +877,9 @@ select concat(@a, table_name), @a, table_name
|
|||||||
from information_schema.tables where table_schema = 'test';
|
from information_schema.tables where table_schema = 'test';
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#20230: routine_definition is not null
|
# Bug#20230 routine_definition is not null
|
||||||
#
|
#
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP PROCEDURE IF EXISTS p1;
|
DROP PROCEDURE IF EXISTS p1;
|
||||||
@ -898,7 +912,7 @@ DROP PROCEDURE p1;
|
|||||||
DROP USER mysql_bug20230@localhost;
|
DROP USER mysql_bug20230@localhost;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#18925: subqueries with MIN/MAX functions on INFORMARTION_SCHEMA
|
# Bug#18925 subqueries with MIN/MAX functions on INFORMARTION_SCHEMA
|
||||||
#
|
#
|
||||||
|
|
||||||
SELECT t.table_name, c1.column_name
|
SELECT t.table_name, c1.column_name
|
||||||
@ -931,8 +945,8 @@ SELECT t.table_name, c1.column_name
|
|||||||
);
|
);
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#21231: query with a simple non-correlated subquery over
|
# Bug#2123 query with a simple non-correlated subquery over
|
||||||
# INFORMARTION_SCHEMA.TABLES
|
# INFORMARTION_SCHEMA.TABLES
|
||||||
#
|
#
|
||||||
|
|
||||||
SELECT MAX(table_name) FROM information_schema.tables WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test');
|
SELECT MAX(table_name) FROM information_schema.tables WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test');
|
||||||
@ -940,7 +954,7 @@ SELECT table_name from information_schema.tables
|
|||||||
WHERE table_name=(SELECT MAX(table_name)
|
WHERE table_name=(SELECT MAX(table_name)
|
||||||
FROM information_schema.tables WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test'));
|
FROM information_schema.tables WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test'));
|
||||||
#
|
#
|
||||||
# Bug #23037: Bug in field "Default" of query "SHOW COLUMNS FROM table"
|
# Bug#23037 Bug in field "Default" of query "SHOW COLUMNS FROM table"
|
||||||
#
|
#
|
||||||
# Note, MyISAM/InnoDB can't take more that 65532 chars, because the row
|
# Note, MyISAM/InnoDB can't take more that 65532 chars, because the row
|
||||||
# size is limited to 65535 bytes (BLOBs not counted)
|
# size is limited to 65535 bytes (BLOBs not counted)
|
||||||
@ -981,7 +995,7 @@ DROP TABLE bug23037;
|
|||||||
DROP FUNCTION get_value;
|
DROP FUNCTION get_value;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#22413: EXPLAIN SELECT FROM view with ORDER BY yield server crash
|
# Bug#22413 EXPLAIN SELECT FROM view with ORDER BY yield server crash
|
||||||
#
|
#
|
||||||
create view v1 as
|
create view v1 as
|
||||||
select table_schema as object_schema,
|
select table_schema as object_schema,
|
||||||
@ -1007,7 +1021,7 @@ drop table t1,t2;
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#24630 Subselect query crashes mysqld
|
# Bug#24630 Subselect query crashes mysqld
|
||||||
#
|
#
|
||||||
select 1 as f1 from information_schema.tables where "CHARACTER_SETS"=
|
select 1 as f1 from information_schema.tables where "CHARACTER_SETS"=
|
||||||
(select cast(table_name as char) from information_schema.tables
|
(select cast(table_name as char) from information_schema.tables
|
||||||
@ -1034,8 +1048,8 @@ group by t.table_name order by num1, t.table_name;
|
|||||||
#
|
#
|
||||||
create table t1(f1 int);
|
create table t1(f1 int);
|
||||||
create view v1 as select f1+1 as a from t1;
|
create view v1 as select f1+1 as a from t1;
|
||||||
create table t2 (f1 int, f2 int);
|
create table t2 (f1 int, f2 int);
|
||||||
create view v2 as select f1+1 as a, f2 as b from t2;
|
create view v2 as select f1+1 as a, f2 as b from t2;
|
||||||
select table_name, is_updatable from information_schema.views;
|
select table_name, is_updatable from information_schema.views;
|
||||||
#
|
#
|
||||||
# Note: we can perform 'delete' for non updatable view.
|
# Note: we can perform 'delete' for non updatable view.
|
||||||
@ -1045,7 +1059,7 @@ drop view v1,v2;
|
|||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#25859 ALTER DATABASE works w/o parameters
|
# Bug#25859 ALTER DATABASE works w/o parameters
|
||||||
#
|
#
|
||||||
--error ER_PARSE_ERROR
|
--error ER_PARSE_ERROR
|
||||||
alter database;
|
alter database;
|
||||||
@ -1074,6 +1088,7 @@ show triggers;
|
|||||||
select trigger_name from information_schema.triggers
|
select trigger_name from information_schema.triggers
|
||||||
where event_object_table='t1';
|
where event_object_table='t1';
|
||||||
connection default;
|
connection default;
|
||||||
|
disconnect con27629;
|
||||||
drop user mysqltest_1@localhost;
|
drop user mysqltest_1@localhost;
|
||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
|
|
||||||
@ -1097,13 +1112,13 @@ drop table t1;
|
|||||||
#
|
#
|
||||||
# Bug#30079 A check for "hidden" I_S tables is flawed
|
# Bug#30079 A check for "hidden" I_S tables is flawed
|
||||||
#
|
#
|
||||||
--error 1109
|
--error ER_UNKNOWN_TABLE
|
||||||
show fields from information_schema.table_names;
|
show fields from information_schema.table_names;
|
||||||
--error 1109
|
--error ER_UNKNOWN_TABLE
|
||||||
show keys from information_schema.table_names;
|
show keys from information_schema.table_names;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY
|
# Bug#34529 Crash on complex Falcon I_S select after ALTER .. PARTITION BY
|
||||||
#
|
#
|
||||||
USE information_schema;
|
USE information_schema;
|
||||||
SET max_heap_table_size = 16384;
|
SET max_heap_table_size = 16384;
|
||||||
@ -1112,9 +1127,9 @@ CREATE TABLE test.t1( a INT );
|
|||||||
|
|
||||||
# What we need to create here is a bit of a corner case:
|
# What we need to create here is a bit of a corner case:
|
||||||
# We need a star query with information_schema tables, where the first
|
# We need a star query with information_schema tables, where the first
|
||||||
# branch of the star join produces zero rows, so that reading of the
|
# branch of the star join produces zero rows, so that reading of the
|
||||||
# second branch never happens. At the same time we have to make sure
|
# second branch never happens. At the same time we have to make sure
|
||||||
# that data for at least the last table is swapped from MEMORY/HEAP to
|
# that data for at least the last table is swapped from MEMORY/HEAP to
|
||||||
# MyISAM. This and only this triggers the bug.
|
# MyISAM. This and only this triggers the bug.
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM tables ta
|
FROM tables ta
|
||||||
@ -1142,10 +1157,11 @@ connect (con3148,localhost,user3148,,test);
|
|||||||
connection con3148;
|
connection con3148;
|
||||||
select user,db from information_schema.processlist;
|
select user,db from information_schema.processlist;
|
||||||
connection default;
|
connection default;
|
||||||
|
disconnect con3148;
|
||||||
drop user user3148@localhost;
|
drop user user3148@localhost;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #26174 Server Crash: INSERT ... SELECT ... FROM I_S.GLOBAL_STATUS
|
# Bug#26174 Server Crash: INSERT ... SELECT ... FROM I_S.GLOBAL_STATUS
|
||||||
# in Event (see also openssl_1.test)
|
# in Event (see also openssl_1.test)
|
||||||
#
|
#
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
@ -1183,7 +1199,7 @@ SET GLOBAL event_scheduler=0;
|
|||||||
|
|
||||||
#
|
#
|
||||||
# WL#3732 Information schema optimization
|
# WL#3732 Information schema optimization
|
||||||
#
|
#
|
||||||
|
|
||||||
explain select table_name from information_schema.views where
|
explain select table_name from information_schema.views where
|
||||||
table_schema='test' and table_name='v1';
|
table_schema='test' and table_name='v1';
|
||||||
@ -1231,7 +1247,7 @@ DROP VIEW v1;
|
|||||||
#
|
#
|
||||||
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
|
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
|
||||||
WHERE SCHEMA_NAME ='information_schema';
|
WHERE SCHEMA_NAME ='information_schema';
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#31381 Error in retrieving Data from INFORMATION_SCHEMA
|
# Bug#31381 Error in retrieving Data from INFORMATION_SCHEMA
|
||||||
#
|
#
|
||||||
@ -1277,7 +1293,7 @@ show events where Db= 'information_schema';
|
|||||||
use test;
|
use test;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Bug#34166: Server crash in SHOW OPEN TABLES and prelocking
|
--echo # Bug#34166 Server crash in SHOW OPEN TABLES and prelocking
|
||||||
--echo #
|
--echo #
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
@ -1299,8 +1315,8 @@ drop table t1;
|
|||||||
drop function f1;
|
drop function f1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#34656 - KILL a query = Assertion failed: m_status == DA_ERROR ||
|
# Bug#34656 KILL a query = Assertion failed: m_status == DA_ERROR ||
|
||||||
# m_status == DA_OK
|
# m_status == DA_OK
|
||||||
#
|
#
|
||||||
connect (conn1, localhost, root,,);
|
connect (conn1, localhost, root,,);
|
||||||
connection conn1;
|
connection conn1;
|
||||||
@ -1378,13 +1394,13 @@ select * from information_schema.global_variables where variable_name='init_conn
|
|||||||
set global init_connect="";
|
set global init_connect="";
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #34517 SHOW GLOBAL STATUS does not work properly in embedded server.
|
# Bug#34517 SHOW GLOBAL STATUS does not work properly in embedded server.
|
||||||
#
|
#
|
||||||
|
|
||||||
create table t0 select * from information_schema.global_status where VARIABLE_NAME='COM_SELECT';
|
create table t0 select * from information_schema.global_status where VARIABLE_NAME='COM_SELECT';
|
||||||
SELECT 1;
|
SELECT 1;
|
||||||
select a.VARIABLE_VALUE - b.VARIABLE_VALUE from t0 b, information_schema.global_status a
|
select a.VARIABLE_VALUE - b.VARIABLE_VALUE from t0 b, information_schema.global_status a
|
||||||
where a.VARIABLE_NAME = b.VARIABLE_NAME;
|
where a.VARIABLE_NAME = b.VARIABLE_NAME;
|
||||||
drop table t0;
|
drop table t0;
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -1395,3 +1411,7 @@ SELECT CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1';
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo End of 5.1 tests.
|
--echo End of 5.1 tests.
|
||||||
|
|
||||||
|
# Wait till all disconnects are completed
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
|
||||||
|
@ -25,17 +25,17 @@ let $1 = 100;
|
|||||||
while ($1)
|
while ($1)
|
||||||
{
|
{
|
||||||
let $2 = 5;
|
let $2 = 5;
|
||||||
eval insert into t1(t) values ('$1');
|
eval insert into t1(t) values ('$1');
|
||||||
while ($2)
|
while ($2)
|
||||||
{
|
{
|
||||||
eval insert into t2(id2,t) values ($1,'$2');
|
eval insert into t2(id2,t) values ($1,'$2');
|
||||||
let $3 = 10;
|
let $3 = 10;
|
||||||
while ($3)
|
while ($3)
|
||||||
{
|
{
|
||||||
eval insert into t3(id3,t) values ($1,'$2');
|
eval insert into t3(id3,t) values ($1,'$2');
|
||||||
dec $3;
|
dec $3;
|
||||||
}
|
}
|
||||||
dec $2;
|
dec $2;
|
||||||
}
|
}
|
||||||
dec $1;
|
dec $1;
|
||||||
}
|
}
|
||||||
@ -80,11 +80,11 @@ let $1 = 1000;
|
|||||||
while ($1)
|
while ($1)
|
||||||
{
|
{
|
||||||
let $2 = 5;
|
let $2 = 5;
|
||||||
eval insert into t1 values ($1,'aaaaaaaaaaaaaaaaaaaa');
|
eval insert into t1 values ($1,'aaaaaaaaaaaaaaaaaaaa');
|
||||||
while ($2)
|
while ($2)
|
||||||
{
|
{
|
||||||
eval insert into t2(id2,t) values ($1,'bbbbbbbbbbbbbbbbb');
|
eval insert into t2(id2,t) values ($1,'bbbbbbbbbbbbbbbbb');
|
||||||
dec $2;
|
dec $2;
|
||||||
}
|
}
|
||||||
dec $1;
|
dec $1;
|
||||||
}
|
}
|
||||||
@ -318,7 +318,7 @@ update t2, t1 set t2.field=t1.field
|
|||||||
|
|
||||||
delete t1, t2 from t2 inner join t1 on t1.id1=t2.id2
|
delete t1, t2 from t2 inner join t1 on t1.id1=t2.id2
|
||||||
where 0=1;
|
where 0=1;
|
||||||
delete t1, t2 from t2,t1
|
delete t1, t2 from t2,t1
|
||||||
where t1.id1=t2.id2 and 0=1;
|
where t1.id1=t2.id2 and 0=1;
|
||||||
|
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
@ -352,7 +352,7 @@ create table `t2` (`c2_id` int(10) unsigned NULL auto_increment, `c2_p_id` int(1
|
|||||||
insert into t1 values (0,'A01-Comp',1);
|
insert into t1 values (0,'A01-Comp',1);
|
||||||
insert into t1 values (0,'B01-Comp',1);
|
insert into t1 values (0,'B01-Comp',1);
|
||||||
insert into t2 values (0,1,'A Note',1);
|
insert into t2 values (0,1,'A Note',1);
|
||||||
update t1 left join t2 on p_id = c2_p_id set c2_note = 'asdf-1' where p_id = 2;
|
update t1 left join t2 on p_id = c2_p_id set c2_note = 'asdf-1' where p_id = 2;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
select * from t2;
|
select * from t2;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
@ -380,6 +380,9 @@ revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
|
|||||||
revoke all privileges on mysqltest.* from mysqltest_1@localhost;
|
revoke all privileges on mysqltest.* from mysqltest_1@localhost;
|
||||||
delete from mysql.user where user=_binary'mysqltest_1';
|
delete from mysql.user where user=_binary'mysqltest_1';
|
||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
|
connection default;
|
||||||
|
disconnect user1;
|
||||||
|
disconnect root;
|
||||||
|
|
||||||
#
|
#
|
||||||
# multi delete wrong table check
|
# multi delete wrong table check
|
||||||
@ -394,7 +397,7 @@ drop table t1, t2, t3;
|
|||||||
#
|
#
|
||||||
# multi* unique updating table check
|
# multi* unique updating table check
|
||||||
#
|
#
|
||||||
create table t1 (col1 int);
|
create table t1 (col1 int);
|
||||||
create table t2 (col1 int);
|
create table t2 (col1 int);
|
||||||
-- error ER_UPDATE_TABLE_USED
|
-- error ER_UPDATE_TABLE_USED
|
||||||
update t1,t2 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
|
update t1,t2 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
|
||||||
@ -402,16 +405,16 @@ update t1,t2 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
|
|||||||
delete t1 from t1,t2 where t1.col1 < (select max(col1) from t1) and t1.col1 = t2.col1;
|
delete t1 from t1,t2 where t1.col1 < (select max(col1) from t1) and t1.col1 = t2.col1;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
# Test for BUG#5837 - delete with outer join and const tables
|
# Test for Bug#5837 delete with outer join and const tables
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
create table t1 (
|
create table t1 (
|
||||||
aclid bigint not null primary key,
|
aclid bigint not null primary key,
|
||||||
status tinyint(1) not null
|
status tinyint(1) not null
|
||||||
) engine = innodb;
|
) engine = innodb;
|
||||||
|
|
||||||
create table t2 (
|
create table t2 (
|
||||||
refid bigint not null primary key,
|
refid bigint not null primary key,
|
||||||
aclid bigint, index idx_acl(aclid)
|
aclid bigint, index idx_acl(aclid)
|
||||||
) engine = innodb;
|
) engine = innodb;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
insert into t2 values(1,null);
|
insert into t2 values(1,null);
|
||||||
@ -419,7 +422,7 @@ delete t2, t1 from t2 left join t1 on (t2.aclid=t1.aclid) where t2.refid='1';
|
|||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#19225: unchecked error leads to server crash
|
# Bug#19225 unchecked error leads to server crash
|
||||||
#
|
#
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
create table t2(a int);
|
create table t2(a int);
|
||||||
@ -429,7 +432,7 @@ drop table t1, t2;
|
|||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test for bug #1980.
|
# Test for Bug#1980.
|
||||||
#
|
#
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
create table t1 ( c char(8) not null ) engine=innodb;
|
create table t1 ( c char(8) not null ) engine=innodb;
|
||||||
@ -490,11 +493,22 @@ send alter table t1 add column c int default 100 after a;
|
|||||||
|
|
||||||
connect (updater,localhost,root,,test);
|
connect (updater,localhost,root,,test);
|
||||||
connection updater;
|
connection updater;
|
||||||
sleep 2;
|
# Wait till "alter table t1 ..." of session changer is in work.
|
||||||
|
# = There is one session is in state "Locked".
|
||||||
|
let $wait_condition= select count(*)= 1 from information_schema.processlist
|
||||||
|
where state= 'Locked';
|
||||||
|
--source include/wait_condition.inc
|
||||||
send update t1, v1 set t1.b=t1.a+t1.b+v1.b where t1.a=v1.a;
|
send update t1, v1 set t1.b=t1.a+t1.b+v1.b where t1.a=v1.a;
|
||||||
|
|
||||||
connection locker;
|
connection locker;
|
||||||
sleep 2;
|
# Wait till
|
||||||
|
# - "alter table t1 ..." of session changer and
|
||||||
|
# - "update t1, v1 ..." of session updater
|
||||||
|
# are in work.
|
||||||
|
# = There are two session is in state "Locked".
|
||||||
|
let $wait_condition= select count(*)= 2 from information_schema.processlist
|
||||||
|
where state= 'Locked';
|
||||||
|
--source include/wait_condition.inc
|
||||||
unlock tables;
|
unlock tables;
|
||||||
|
|
||||||
connection changer;
|
connection changer;
|
||||||
@ -507,6 +521,11 @@ select * from t2;
|
|||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
disconnect locker;
|
||||||
|
disconnect changer;
|
||||||
|
disconnect updater;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test multi updates and deletes using primary key and without.
|
# Test multi updates and deletes using primary key and without.
|
||||||
#
|
#
|
||||||
@ -538,8 +557,9 @@ select * from t2 order by id;
|
|||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#27716 multi-update did partially and has not binlogged
|
# Bug#27716 multi-update did partially and has not binlogged
|
||||||
#
|
#
|
||||||
|
|
||||||
CREATE TABLE `t1` (
|
CREATE TABLE `t1` (
|
||||||
`a` int(11) NOT NULL auto_increment,
|
`a` int(11) NOT NULL auto_increment,
|
||||||
`b` int(11) default NULL,
|
`b` int(11) default NULL,
|
||||||
@ -561,29 +581,29 @@ set @@session.binlog_format= mixed;
|
|||||||
insert into t1 values (1,1),(2,2);
|
insert into t1 values (1,1),(2,2);
|
||||||
insert into t2 values (1,1),(4,4);
|
insert into t2 values (1,1),(4,4);
|
||||||
reset master;
|
reset master;
|
||||||
error ER_DUP_ENTRY;
|
--error ER_DUP_ENTRY
|
||||||
UPDATE t2,t1 SET t2.a=t1.a+2;
|
UPDATE t2,t1 SET t2.a=t1.a+2;
|
||||||
# check
|
# check
|
||||||
select * from t2 /* must be (3,1), (4,4) */;
|
select * from t2 /* must be (3,1), (4,4) */;
|
||||||
show master status /* there must be the UPDATE query event */;
|
show master status /* there must be the UPDATE query event */;
|
||||||
|
|
||||||
# B. testing multi_update::send_error() ineffective update
|
# B. testing multi_update::send_error() ineffective update
|
||||||
# (as there is a policy described at mysql_update() still go to binlog)
|
# (as there is a policy described at mysql_update() still go to binlog)
|
||||||
delete from t1;
|
delete from t1;
|
||||||
delete from t2;
|
delete from t2;
|
||||||
insert into t1 values (1,2),(3,4),(4,4);
|
insert into t1 values (1,2),(3,4),(4,4);
|
||||||
insert into t2 values (1,2),(3,4),(4,4);
|
insert into t2 values (1,2),(3,4),(4,4);
|
||||||
reset master;
|
reset master;
|
||||||
error ER_DUP_ENTRY;
|
--error ER_DUP_ENTRY
|
||||||
UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a;
|
UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a;
|
||||||
show master status /* there must be the UPDATE query event */;
|
show master status /* there must be the UPDATE query event */;
|
||||||
|
|
||||||
# cleanup bug#27716
|
# cleanup
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
set @@session.binlog_format= @sav_binlog_format;
|
set @@session.binlog_format= @sav_binlog_format;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #29136 erred multi-delete on trans table does not rollback
|
# Bug#29136 erred multi-delete on trans table does not rollback
|
||||||
#
|
#
|
||||||
|
|
||||||
# prepare
|
# prepare
|
||||||
@ -610,7 +630,7 @@ delete t3.* from t2,t3 where t2.a=t3.a;
|
|||||||
select count(*) from t1 /* must be 1 */;
|
select count(*) from t1 /* must be 1 */;
|
||||||
select count(*) from t3 /* must be 1 */;
|
select count(*) from t3 /* must be 1 */;
|
||||||
|
|
||||||
# cleanup bug#29136
|
# cleanup
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1,6 +1,14 @@
|
|||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
connect (con1,localhost,root,,);
|
connect (con1,localhost,root,,);
|
||||||
connection con1;
|
connection con1;
|
||||||
-- error 1064,1102,1280
|
--error ER_PARSE_ERROR,ER_WRONG_DB_NAME,ER_WRONG_NAME_FOR_INDEX
|
||||||
drop database AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;
|
drop database AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;
|
||||||
|
connection default;
|
||||||
|
disconnect con1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
|
# Wait till we reached the initial number of concurrent sessions
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -4,10 +4,18 @@
|
|||||||
# swallowing them and returning an error
|
# swallowing them and returning an error
|
||||||
--source include/not_windows.inc
|
--source include/not_windows.inc
|
||||||
|
|
||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check protocol handling
|
# Check protocol handling
|
||||||
#
|
#
|
||||||
|
|
||||||
|
set @max_allowed_packet=@@global.max_allowed_packet;
|
||||||
|
set @net_buffer_length=@@global.net_buffer_length;
|
||||||
|
|
||||||
|
|
||||||
# setting values below minimum threshold of 1024 will cause truncating
|
# setting values below minimum threshold of 1024 will cause truncating
|
||||||
set global max_allowed_packet=100;
|
set global max_allowed_packet=100;
|
||||||
set global net_buffer_length=100;
|
set global net_buffer_length=100;
|
||||||
@ -22,8 +30,10 @@ select repeat('a',2000);
|
|||||||
connect (con1,localhost,root,,);
|
connect (con1,localhost,root,,);
|
||||||
connection con1;
|
connection con1;
|
||||||
select @@net_buffer_length, @@max_allowed_packet;
|
select @@net_buffer_length, @@max_allowed_packet;
|
||||||
--error 1153
|
--error ER_NET_PACKET_TOO_LARGE
|
||||||
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
||||||
|
connection default;
|
||||||
|
disconnect con1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Reset to default values and reconnect
|
# Reset to default values and reconnect
|
||||||
@ -34,5 +44,13 @@ connect (con2,localhost,root,,);
|
|||||||
connection con2;
|
connection con2;
|
||||||
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
|
||||||
select length(repeat('a',2000));
|
select length(repeat('a',2000));
|
||||||
|
connection default;
|
||||||
|
disconnect con2;
|
||||||
|
|
||||||
|
set global max_allowed_packet=@max_allowed_packet;
|
||||||
|
set global net_buffer_length=@net_buffer_length;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
|
# Wait till we reached the initial number of concurrent sessions
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
-- source include/have_query_cache.inc
|
-- source include/have_query_cache.inc
|
||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tests with query cache
|
# Tests with query cache
|
||||||
#
|
#
|
||||||
@ -79,7 +83,7 @@ show status like "Qcache_free_blocks";
|
|||||||
drop table t1, t2, t3, t11, t21;
|
drop table t1, t2, t3, t11, t21;
|
||||||
|
|
||||||
#
|
#
|
||||||
# do not use QC if tables locked (BUG#12385)
|
# do not use QC if tables locked (Bug#12385)
|
||||||
#
|
#
|
||||||
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
|
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
|
||||||
connection root;
|
connection root;
|
||||||
@ -96,10 +100,13 @@ SELECT * FROM t1;
|
|||||||
connection root;
|
connection root;
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection default;
|
||||||
|
disconnect root;
|
||||||
|
disconnect root2;
|
||||||
|
|
||||||
#
|
#
|
||||||
# query in QC from normal execution and SP (BUG#6897)
|
# query in QC from normal execution and SP (Bug#6897)
|
||||||
# improved to also test BUG#3583 and BUG#12990
|
# improved to also test Bug#3583 and Bug#12990
|
||||||
#
|
#
|
||||||
flush query cache;
|
flush query cache;
|
||||||
reset query cache;
|
reset query cache;
|
||||||
@ -181,7 +188,7 @@ drop procedure f4;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# bug#14767: INSERT in SF + concurrent SELECT with query cache
|
# Bug#14767 INSERT in SF + concurrent SELECT with query cache
|
||||||
#
|
#
|
||||||
connection default;
|
connection default;
|
||||||
SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators;
|
SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators;
|
||||||
@ -257,6 +264,7 @@ SELECT id FROM view1 WHERE id>2;
|
|||||||
show status like 'Qcache_queries_in_cache';
|
show status like 'Qcache_queries_in_cache';
|
||||||
|
|
||||||
connection default;
|
connection default;
|
||||||
|
USE test;
|
||||||
DROP DATABASE bug30269;
|
DROP DATABASE bug30269;
|
||||||
disconnect bug30269;
|
disconnect bug30269;
|
||||||
DROP USER 'bug30269'@'localhost';
|
DROP USER 'bug30269'@'localhost';
|
||||||
@ -266,3 +274,5 @@ set GLOBAL query_cache_limit=default;
|
|||||||
set GLOBAL query_cache_min_res_unit=default;
|
set GLOBAL query_cache_min_res_unit=default;
|
||||||
set GLOBAL query_cache_size=default;
|
set GLOBAL query_cache_size=default;
|
||||||
|
|
||||||
|
# Wait till we reached the initial number of concurrent sessions
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -5,6 +5,9 @@
|
|||||||
# except security/privilege tests, they go to sp-security.test
|
# except security/privilege tests, they go to sp-security.test
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
connect (con1root,localhost,root,,);
|
connect (con1root,localhost,root,,);
|
||||||
connect (con2root,localhost,root,,);
|
connect (con2root,localhost,root,,);
|
||||||
connect (con3root,localhost,root,,);
|
connect (con3root,localhost,root,,);
|
||||||
@ -17,7 +20,7 @@ drop table if exists t1;
|
|||||||
--enable_warnings
|
--enable_warnings
|
||||||
create table t1 (s1 int, s2 int, s3 int);
|
create table t1 (s1 int, s2 int, s3 int);
|
||||||
|
|
||||||
delimiter //;
|
delimiter //;
|
||||||
create procedure bug4934()
|
create procedure bug4934()
|
||||||
begin
|
begin
|
||||||
insert into t1 values (1,0,1);
|
insert into t1 values (1,0,1);
|
||||||
@ -38,7 +41,7 @@ drop table t1;
|
|||||||
create table t1 (s1 int, s2 int, s3 int);
|
create table t1 (s1 int, s2 int, s3 int);
|
||||||
|
|
||||||
drop procedure bug4934;
|
drop procedure bug4934;
|
||||||
delimiter //;
|
delimiter //;
|
||||||
create procedure bug4934()
|
create procedure bug4934()
|
||||||
begin
|
begin
|
||||||
end//
|
end//
|
||||||
@ -58,7 +61,7 @@ drop procedure bug4934;
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG #9486 "Can't perform multi-update in stored procedure"
|
# Bug#9486 Can't perform multi-update in stored procedure
|
||||||
#
|
#
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop procedure if exists bug9486;
|
drop procedure if exists bug9486;
|
||||||
@ -87,8 +90,9 @@ reap;
|
|||||||
drop procedure bug9486;
|
drop procedure bug9486;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#11158: Can't perform multi-delete in stored procedure
|
# Bug#11158 Can't perform multi-delete in stored procedure
|
||||||
#
|
#
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop procedure if exists bug11158;
|
drop procedure if exists bug11158;
|
||||||
@ -114,8 +118,9 @@ connection con1root;
|
|||||||
drop procedure bug11158;
|
drop procedure bug11158;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#11554: Server crashes on statement indirectly using non-cached function
|
# Bug#11554 Server crashes on statement indirectly using non-cached function
|
||||||
#
|
#
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop function if exists bug11554;
|
drop function if exists bug11554;
|
||||||
@ -134,7 +139,7 @@ drop table t1;
|
|||||||
drop view v1;
|
drop view v1;
|
||||||
|
|
||||||
|
|
||||||
# BUG#12228
|
# Bug#12228 Crash happens during calling specific SP in multithread environment
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop procedure if exists p1;
|
drop procedure if exists p1;
|
||||||
drop procedure if exists p2;
|
drop procedure if exists p2;
|
||||||
@ -168,18 +173,26 @@ connection con2root;
|
|||||||
unlock tables;
|
unlock tables;
|
||||||
|
|
||||||
connection con1root;
|
connection con1root;
|
||||||
# Crash will be here if we hit BUG#12228
|
# Crash will be here if we hit Bug#12228
|
||||||
reap;
|
reap;
|
||||||
|
|
||||||
drop procedure p1;
|
drop procedure p1;
|
||||||
drop procedure p2;
|
drop procedure p2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#NNNN: New bug synopsis
|
# Bug#NNNN New bug synopsis
|
||||||
#
|
#
|
||||||
#--disable_warnings
|
#--disable_warnings
|
||||||
#drop procedure if exists bugNNNN;
|
#drop procedure if exists bugNNNN;
|
||||||
#--enable_warnings
|
#--enable_warnings
|
||||||
#create procedure bugNNNN...
|
#create procedure bugNNNN...
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
disconnect con1root;
|
||||||
|
disconnect con2root;
|
||||||
|
disconnect con3root;
|
||||||
|
|
||||||
|
# Wait till we reached the initial number of concurrent sessions
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,13 @@
|
|||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test for Bug #2385 CREATE TABLE LIKE lacks locking on source and destination
|
# Test for Bug#2385 CREATE TABLE LIKE lacks locking on source and destination
|
||||||
# table
|
# table
|
||||||
#
|
#
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1,t2;
|
DROP TABLE IF EXISTS t1,t2;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
connect (con1,localhost,root,,);
|
connect (con1,localhost,root,,);
|
||||||
@ -12,12 +15,12 @@ connect (con2,localhost,root,,);
|
|||||||
|
|
||||||
# locking of source:
|
# locking of source:
|
||||||
|
|
||||||
CREATE TABLE t1 (x1 int);
|
CREATE TABLE t1 (x1 INT);
|
||||||
let $1= 10;
|
let $1= 10;
|
||||||
while ($1)
|
while ($1)
|
||||||
{
|
{
|
||||||
connection con1;
|
connection con1;
|
||||||
send ALTER TABLE t1 CHANGE x1 x2 int;
|
send ALTER TABLE t1 CHANGE x1 x2 INT;
|
||||||
connection con2;
|
connection con2;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
replace_result x1 xx x2 xx;
|
replace_result x1 xx x2 xx;
|
||||||
@ -25,7 +28,7 @@ while ($1)
|
|||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
connection con1;
|
connection con1;
|
||||||
reap;
|
reap;
|
||||||
send ALTER TABLE t1 CHANGE x2 x1 int;
|
send ALTER TABLE t1 CHANGE x2 x1 INT;
|
||||||
connection con2;
|
connection con2;
|
||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
replace_result x1 xx x2 xx;
|
replace_result x1 xx x2 xx;
|
||||||
@ -37,4 +40,11 @@ while ($1)
|
|||||||
}
|
}
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
disconnect con1;
|
||||||
|
disconnect con2;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
|
# Wait till we reached the initial number of concurrent sessions
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
# Embedded server testing does not support grants
|
# Embedded server testing does not support grants
|
||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
|
# Save the initial number of concurrent sessions
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop tables if exists t1, t2;
|
drop tables if exists t1, t2;
|
||||||
drop view if exists v1;
|
drop view if exists v1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test for bug #6116 "SET time_zone := ... requires access to mysql.time_zone
|
# Test for Bug#6116 SET time_zone := ... requires access to mysql.time_zone tables
|
||||||
# tables". We should allow implicit access to time zone description tables
|
# We should allow implicit access to time zone description tables even for
|
||||||
# even for unprivileged users.
|
# unprivileged users.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Let us prepare playground
|
# Let us prepare playground
|
||||||
@ -33,18 +36,20 @@ select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
|
|||||||
update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
|
update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
|
||||||
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
||||||
# But still these two statements should not work:
|
# But still these two statements should not work:
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
select * from mysql.time_zone_name;
|
select * from mysql.time_zone_name;
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name;
|
select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name;
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
disconnect tzuser;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test for bug #6765 "Implicit access to time zone description tables
|
# Bug#6765 Implicit access to time zone description tables requires privileges
|
||||||
# requires privileges for them if some table or column level grants
|
# for them if some table or column level grants present
|
||||||
# present"
|
|
||||||
#
|
#
|
||||||
connection default;
|
connection default;
|
||||||
# Let use some table-level grants instead of db-level
|
# Let use some table-level grants instead of db-level
|
||||||
# to make life more interesting
|
# to make life more interesting
|
||||||
delete from mysql.db where user like 'mysqltest\_%';
|
delete from mysql.db where user like 'mysqltest\_%';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
@ -61,14 +66,14 @@ select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
|
|||||||
update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC')
|
update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC')
|
||||||
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
||||||
# Again these two statements should not work (but with different errors):
|
# Again these two statements should not work (but with different errors):
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
select * from mysql.time_zone_name;
|
select * from mysql.time_zone_name;
|
||||||
--error 1142
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name;
|
select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #9979: Use of CONVERT_TZ in multiple-table UPDATE causes bogus
|
# Bug#9979 Use of CONVERT_TZ in multiple-table UPDATE causes bogus
|
||||||
# privilege error
|
# privilege error
|
||||||
#
|
#
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
create table t1 (a int, b datetime);
|
create table t1 (a int, b datetime);
|
||||||
@ -80,6 +85,7 @@ update t1 join t2 on (t1.a = t2.a) set t1.b = convert_tz('2005-01-01 10:00','UTC
|
|||||||
|
|
||||||
# Clean-up
|
# Clean-up
|
||||||
connection default;
|
connection default;
|
||||||
|
disconnect tzuser2;
|
||||||
delete from mysql.user where user like 'mysqltest\_%';
|
delete from mysql.user where user like 'mysqltest\_%';
|
||||||
delete from mysql.db where user like 'mysqltest\_%';
|
delete from mysql.db where user like 'mysqltest\_%';
|
||||||
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
||||||
@ -89,10 +95,9 @@ drop table t1, t2;
|
|||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
# Additional test for bug #15153: CONVERT_TZ() is not allowed in all
|
# Additional test for Bug#15153 CONVERT_TZ() is not allowed in all places in views.
|
||||||
# places in views.
|
|
||||||
#
|
#
|
||||||
# Let us check that usage of CONVERT_TZ() function in view does not
|
# Let us check that usage of CONVERT_TZ() function in view does not
|
||||||
# require additional privileges.
|
# require additional privileges.
|
||||||
|
|
||||||
# Let us rely on that previous tests done proper cleanups
|
# Let us rely on that previous tests done proper cleanups
|
||||||
@ -109,7 +114,11 @@ drop view v1;
|
|||||||
--error ER_TABLEACCESS_DENIED_ERROR
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
create view v1 as select a, convert_tz(b, 'UTC', 'Europe/Moscow') as lb from t1, mysql.time_zone;
|
create view v1 as select a, convert_tz(b, 'UTC', 'Europe/Moscow') as lb from t1, mysql.time_zone;
|
||||||
connection default;
|
connection default;
|
||||||
|
disconnect tzuser3;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop user mysqltest_1@localhost;
|
drop user mysqltest_1@localhost;
|
||||||
|
|
||||||
# End of 5.0 tests
|
# End of 5.0 tests
|
||||||
|
|
||||||
|
# Wait till we reached the initial number of concurrent sessions
|
||||||
|
--source include/wait_until_count_sessions.inc
|
||||||
|
Loading…
x
Reference in New Issue
Block a user