mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-new mysql-test/mysql-test-run.pl: Auto merged mysql-test/mysql-test-run.sh: Auto merged mysql-test/r/grant.result: Auto merged mysql-test/r/heap_btree.result: Auto merged mysql-test/r/information_schema_db.result: Auto merged mysql-test/r/lock_multi.result: Auto merged mysql-test/r/sp.result: Auto merged mysql-test/r/subselect.result: Auto merged mysql-test/r/view_grant.result: Auto merged mysql-test/t/lock_multi.test: Auto merged mysql-test/t/sp.test: Auto merged mysql-test/t/view_grant.test: Auto merged mysys/default.c: Auto merged server-tools/instance-manager/guardian.cc: Auto merged sql/field.h: Auto merged sql/item.h: Auto merged sql/item_subselect.cc: Auto merged sql/item_timefunc.cc: Auto merged sql/lock.cc: Auto merged sql/mysql_priv.h: Auto merged sql/sql_acl.cc: Auto merged sql/sql_delete.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_load.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_update.cc: Auto merged sql/table.cc: Auto merged storage/heap/hp_write.c: Auto merged storage/ndb/src/ndbapi/DictCache.cpp: Auto merged storage/ndb/src/ndbapi/DictCache.hpp: Auto merged client/mysqlbinlog.cc: Manual merge from 5.0 client/mysqldump.c: Manual merge from 5.0 configure.in: Manual merge from 5.0 mysql-test/r/mysqldump.result: Manual merge from 5.0 mysql-test/t/mysqldump.test: Manual merge from 5.0 mysql-test/t/rpl_insert_id.test: Manual merge from 5.0 server-tools/instance-manager/manager.cc: Manual merge from 5.0 sql/field.cc: Manual merge from 5.0 sql/ha_ndbcluster.cc: Manual merge from 5.0 sql/mysqld.cc: Manual merge from 5.0 sql/sql_base.cc: Manual merge from 5.0 sql/sql_lex.cc: Manual merge from 5.0 sql/sql_select.cc: Manual merge from 5.0 sql/sql_table.cc: Manual merge from 5.0
This commit is contained in:
@ -48,3 +48,10 @@ lock table t1 read, t2 read, t3 read;
|
||||
flush tables with read lock;
|
||||
unlock tables;
|
||||
drop table t1, t2, t3;
|
||||
create table t1 (c1 int);
|
||||
create table t2 (c1 int);
|
||||
lock table t1 write;
|
||||
flush tables with read lock;
|
||||
insert into t2 values(1);
|
||||
unlock tables;
|
||||
drop table t1, t2;
|
||||
|
@ -357,12 +357,12 @@ show grants for grant_user@localhost;
|
||||
Grants for grant_user@localhost
|
||||
GRANT USAGE ON *.* TO 'grant_user'@'localhost'
|
||||
GRANT INSERT (a, d, c, b) ON `test`.`t1` TO 'grant_user'@'localhost'
|
||||
select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv;
|
||||
select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv order by Column_name;
|
||||
Host Db User Table_name Column_name Column_priv
|
||||
localhost test grant_user t1 b Insert
|
||||
localhost test grant_user t1 d Insert
|
||||
localhost test grant_user t1 a Insert
|
||||
localhost test grant_user t1 b Insert
|
||||
localhost test grant_user t1 c Insert
|
||||
localhost test grant_user t1 d Insert
|
||||
revoke ALL PRIVILEGES on t1 from grant_user@localhost;
|
||||
show grants for grant_user@localhost;
|
||||
Grants for grant_user@localhost
|
||||
@ -381,13 +381,27 @@ grant update (a) on mysqltest_1.t1 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 update (d) on mysqltest_2.t2 to mysqltest_3@localhost;
|
||||
show grants for mysqltest_3@localhost;
|
||||
Grants for mysqltest_3@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_3'@'localhost'
|
||||
GRANT SELECT (b) ON `mysqltest_1`.`t2` TO 'mysqltest_3'@'localhost'
|
||||
GRANT UPDATE (a) ON `mysqltest_1`.`t1` TO 'mysqltest_3'@'localhost'
|
||||
GRANT UPDATE (d) ON `mysqltest_2`.`t2` TO 'mysqltest_3'@'localhost'
|
||||
GRANT SELECT (c) ON `mysqltest_2`.`t1` TO 'mysqltest_3'@'localhost'
|
||||
SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
|
||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||
ORDER BY TABLE_NAME,COLUMN_NAME,PRIVILEGE_TYPE;
|
||||
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_2 t1 c SELECT NO
|
||||
'mysqltest_3'@'localhost' NULL mysqltest_1 t2 b SELECT NO
|
||||
'mysqltest_3'@'localhost' NULL mysqltest_2 t2 d UPDATE NO
|
||||
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
|
||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||
ORDER BY TABLE_NAME,PRIVILEGE_TYPE;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
SELECT * from INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
|
||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||
ORDER BY TABLE_SCHEMA,PRIVILEGE_TYPE;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
|
||||
SELECT * from INFORMATION_SCHEMA.USER_PRIVILEGES
|
||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||
ORDER BY TABLE_CATALOG,PRIVILEGE_TYPE;
|
||||
GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'mysqltest_3'@'localhost' NULL USAGE NO
|
||||
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
|
||||
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'q' in table 't1'
|
||||
update mysqltest_1.t2, mysqltest_2.t2 set d=20 where d=1;
|
||||
|
@ -1981,46 +1981,7 @@ a
|
||||
b
|
||||
c
|
||||
d
|
||||
create table t4 (
|
||||
pk_col int auto_increment primary key, a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
||||
) engine=innodb;
|
||||
insert into t4 (a1, a2, b, c, d, dummy) select * from t1;
|
||||
create index idx12672_0 on t4 (a1);
|
||||
create index idx12672_1 on t4 (a1,a2,b,c);
|
||||
create index idx12672_2 on t4 (a1,a2,b);
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Table is already up to date
|
||||
select distinct a1 from t4 where pk_col not in (1,2,3,4);
|
||||
a1
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
drop table t1,t2,t3,t4;
|
||||
create table t1 (
|
||||
a varchar(30), b varchar(30), primary key(a), key(b)
|
||||
) engine=innodb;
|
||||
select distinct a from t1;
|
||||
a
|
||||
drop table t1;
|
||||
create table t1(a int, key(a)) engine=innodb;
|
||||
insert into t1 values(1);
|
||||
select a, count(a) from t1 group by a with rollup;
|
||||
a count(a)
|
||||
1 1
|
||||
NULL 1
|
||||
drop table t1;
|
||||
create table t1 (f1 int, f2 char(1), primary key(f1,f2)) engine=innodb;
|
||||
insert into t1 values ( 1,"e"),(2,"a"),( 3,"c"),(4,"d");
|
||||
alter table t1 drop primary key, add primary key (f2, f1);
|
||||
explain select distinct f1 a, f1 b from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 5 NULL 4 Using index; Using temporary
|
||||
explain select distinct f1, f2 from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range NULL PRIMARY 5 NULL 3 Using index for group-by; Using temporary
|
||||
drop table t1;
|
||||
drop table t1,t2,t3;
|
||||
create table t1 (c1 int not null,c2 int not null, primary key(c1,c2));
|
||||
insert into t1 (c1,c2) values
|
||||
(10,1),(10,2),(10,3),(20,4),(20,5),(20,6),(30,7),(30,8),(30,9);
|
||||
|
@ -256,3 +256,6 @@ SELECT INDEX_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE()
|
||||
INDEX_LENGTH
|
||||
21
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY;
|
||||
INSERT INTO t1 VALUES(NULL),(NULL);
|
||||
DROP TABLE t1;
|
||||
|
@ -1,3 +1,7 @@
|
||||
drop table if exists t1,t2;
|
||||
drop view if exists v1,v2;
|
||||
drop function if exists f1;
|
||||
drop function if exists f2;
|
||||
use INFORMATION_SCHEMA;
|
||||
show tables;
|
||||
Tables_in_information_schema
|
||||
@ -31,10 +35,12 @@ TABLE_CONSTRAINTS
|
||||
TABLE_PRIVILEGES
|
||||
TRIGGERS
|
||||
create database `inf%`;
|
||||
create database mbase;
|
||||
use `inf%`;
|
||||
show tables;
|
||||
Tables_in_inf%
|
||||
grant all privileges on `inf%`.* to 'mysqltest_1'@'localhost';
|
||||
grant all privileges on `mbase`.* to 'mysqltest_1'@'localhost';
|
||||
create table t1 (f1 int);
|
||||
create function func1(curr_int int) returns int
|
||||
begin
|
||||
@ -43,9 +49,58 @@ select max(f1) from t1 into ret_val;
|
||||
return ret_val;
|
||||
end|
|
||||
create view v1 as select f1 from t1 where f1 = func1(f1);
|
||||
create function func2() returns int return 1;
|
||||
use mbase;
|
||||
create procedure p1 ()
|
||||
begin
|
||||
select table_name from information_schema.key_column_usage
|
||||
order by table_name;
|
||||
end|
|
||||
create table t1
|
||||
(f1 int(10) unsigned not null,
|
||||
f2 varchar(100) not null,
|
||||
primary key (f1), unique key (f2));
|
||||
select * from information_schema.tables;
|
||||
call mbase.p1();
|
||||
call mbase.p1();
|
||||
call mbase.p1();
|
||||
use `inf%`;
|
||||
drop user mysqltest_1@localhost;
|
||||
drop table t1;
|
||||
select table_name, table_type, table_comment from information_schema.tables
|
||||
where table_schema='inf%' and func2();
|
||||
table_name table_type table_comment
|
||||
v1 VIEW View 'inf%.v1' references invalid table(s) or column(s) or function(s) or define
|
||||
select table_name, table_type, table_comment from information_schema.tables
|
||||
where table_schema='inf%' and func2();
|
||||
table_name table_type table_comment
|
||||
v1 VIEW View 'inf%.v1' references invalid table(s) or column(s) or function(s) or define
|
||||
drop view v1;
|
||||
drop function func1;
|
||||
drop table t1;
|
||||
drop function func2;
|
||||
drop database `inf%`;
|
||||
drop procedure mbase.p1;
|
||||
drop database mbase;
|
||||
use test;
|
||||
create table t1 (i int);
|
||||
create function f1 () returns int return (select max(i) from t1);
|
||||
create view v1 as select f1();
|
||||
create table t2 (id int);
|
||||
create function f2 () returns int return (select max(i) from t2);
|
||||
create view v2 as select f2();
|
||||
drop table t2;
|
||||
select table_name, table_type, table_comment from information_schema.tables
|
||||
where table_schema='test';
|
||||
table_name table_type table_comment
|
||||
t1 BASE TABLE
|
||||
v1 VIEW VIEW
|
||||
v2 VIEW View 'test.v2' references invalid table(s) or column(s) or function(s) or define
|
||||
drop table t1;
|
||||
select table_name, table_type, table_comment from information_schema.tables
|
||||
where table_schema='test';
|
||||
table_name table_type table_comment
|
||||
v1 VIEW View 'test.v1' references invalid table(s) or column(s) or function(s) or define
|
||||
v2 VIEW View 'test.v2' references invalid table(s) or column(s) or function(s) or define
|
||||
drop function f1;
|
||||
drop function f2;
|
||||
drop view v1, v2;
|
||||
|
@ -192,3 +192,79 @@ select count(*), min(7), max(7) from t2m, t1i;
|
||||
count(*) min(7) max(7)
|
||||
0 NULL NULL
|
||||
drop table t1m, t1i, t2m, t2i;
|
||||
create table t1 (
|
||||
a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
||||
);
|
||||
insert into t1 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
||||
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
||||
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
||||
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
||||
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
||||
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
||||
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
||||
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
||||
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
|
||||
create table t4 (
|
||||
pk_col int auto_increment primary key, a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
||||
) engine=innodb;
|
||||
insert into t4 (a1, a2, b, c, d, dummy) select * from t1;
|
||||
create index idx12672_0 on t4 (a1);
|
||||
create index idx12672_1 on t4 (a1,a2,b,c);
|
||||
create index idx12672_2 on t4 (a1,a2,b);
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
select distinct a1 from t4 where pk_col not in (1,2,3,4);
|
||||
a1
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
drop table t1,t4;
|
||||
create table t1 (
|
||||
a varchar(30), b varchar(30), primary key(a), key(b)
|
||||
) engine=innodb;
|
||||
select distinct a from t1;
|
||||
a
|
||||
drop table t1;
|
||||
create table t1(a int, key(a)) engine=innodb;
|
||||
insert into t1 values(1);
|
||||
select a, count(a) from t1 group by a with rollup;
|
||||
a count(a)
|
||||
1 1
|
||||
NULL 1
|
||||
drop table t1;
|
||||
create table t1 (f1 int, f2 char(1), primary key(f1,f2)) engine=innodb;
|
||||
insert into t1 values ( 1,"e"),(2,"a"),( 3,"c"),(4,"d");
|
||||
alter table t1 drop primary key, add primary key (f2, f1);
|
||||
explain select distinct f1 a, f1 b from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 5 NULL 4 Using index; Using temporary
|
||||
explain select distinct f1, f2 from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range NULL PRIMARY 5 NULL 3 Using index for group-by; Using temporary
|
||||
drop table t1;
|
||||
|
@ -50,3 +50,19 @@ Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
unlock tables;
|
||||
drop table t1;
|
||||
use mysql;
|
||||
LOCK TABLES columns_priv WRITE, db WRITE, host WRITE, user WRITE;
|
||||
FLUSH TABLES;
|
||||
use mysql;
|
||||
SELECT user.Select_priv FROM user, db WHERE user.user = db.user LIMIT 1;
|
||||
OPTIMIZE TABLES columns_priv, db, host, user;
|
||||
Table Op Msg_type Msg_text
|
||||
mysql.columns_priv optimize status OK
|
||||
mysql.db optimize status OK
|
||||
mysql.host optimize status OK
|
||||
mysql.user optimize status OK
|
||||
UNLOCK TABLES;
|
||||
Select_priv
|
||||
N
|
||||
use test;
|
||||
use test;
|
||||
|
@ -1,4 +1,4 @@
|
||||
DROP TABLE IF EXISTS t1, `"t"1`, t1aa, t2, t2aa;
|
||||
DROP TABLE IF EXISTS t1, `"t"1`, t1aa, t2, t2aa, t3;
|
||||
drop database if exists mysqldump_test_db;
|
||||
drop database if exists db1;
|
||||
drop database if exists db2;
|
||||
@ -1509,6 +1509,7 @@ a b
|
||||
12 meg
|
||||
drop table t1, t2;
|
||||
drop database db1;
|
||||
--fields-optionally-enclosed-by="
|
||||
CREATE DATABASE mysqldump_test_db;
|
||||
USE mysqldump_test_db;
|
||||
CREATE TABLE t1 ( a INT );
|
||||
@ -1738,6 +1739,43 @@ t1 CREATE TABLE `t1` (
|
||||
KEY `t1_name` (`t1_name`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=1003 DEFAULT CHARSET=latin1
|
||||
drop table `t1`;
|
||||
create table t1(a int);
|
||||
create table t2(a int);
|
||||
create table t3(a int);
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
DROP TABLE IF EXISTS `t3`;
|
||||
CREATE TABLE `t3` (
|
||||
`a` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
DROP TABLE IF EXISTS `t1`;
|
||||
CREATE TABLE `t1` (
|
||||
`a` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
DROP TABLE IF EXISTS `t2`;
|
||||
CREATE TABLE `t2` (
|
||||
`a` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
drop table t1, t2, t3;
|
||||
End of 4.1 tests
|
||||
create table t1 (a binary(1), b blob);
|
||||
insert into t1 values ('','');
|
||||
|
@ -4970,4 +4970,34 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
DROP FUNCTION bug18589_f1|
|
||||
DROP PROCEDURE bug18589_p1|
|
||||
DROP PROCEDURE bug18589_p2|
|
||||
DROP FUNCTION IF EXISTS bug18037_f1|
|
||||
DROP PROCEDURE IF EXISTS bug18037_p1|
|
||||
DROP PROCEDURE IF EXISTS bug18037_p2|
|
||||
CREATE FUNCTION bug18037_f1() RETURNS INT
|
||||
BEGIN
|
||||
RETURN @@server_id;
|
||||
END|
|
||||
CREATE PROCEDURE bug18037_p1()
|
||||
BEGIN
|
||||
DECLARE v INT DEFAULT @@server_id;
|
||||
END|
|
||||
CREATE PROCEDURE bug18037_p2()
|
||||
BEGIN
|
||||
CASE @@server_id
|
||||
WHEN -1 THEN
|
||||
SELECT 0;
|
||||
ELSE
|
||||
SELECT 1;
|
||||
END CASE;
|
||||
END|
|
||||
SELECT bug18037_f1()|
|
||||
bug18037_f1()
|
||||
1
|
||||
CALL bug18037_p1()|
|
||||
CALL bug18037_p2()|
|
||||
1
|
||||
1
|
||||
DROP FUNCTION bug18037_f1|
|
||||
DROP PROCEDURE bug18037_p1|
|
||||
DROP PROCEDURE bug18037_p2|
|
||||
drop table t1,t2;
|
||||
|
@ -3183,3 +3183,24 @@ select * from (select min(i) from t1 where j=(select * from (select min(j) from
|
||||
min(i)
|
||||
1
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (i BIGINT UNSIGNED);
|
||||
INSERT INTO t1 VALUES (10000000000000000000);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
CREATE TABLE t2 (i BIGINT UNSIGNED);
|
||||
INSERT INTO t2 VALUES (10000000000000000000);
|
||||
INSERT INTO t2 VALUES (1);
|
||||
/* simple test */
|
||||
SELECT t1.i FROM t1 JOIN t2 ON t1.i = t2.i;
|
||||
i
|
||||
10000000000000000000
|
||||
1
|
||||
/* subquery test */
|
||||
SELECT t1.i FROM t1 WHERE t1.i = (SELECT MAX(i) FROM t2);
|
||||
i
|
||||
10000000000000000000
|
||||
/* subquery test with cast*/
|
||||
SELECT t1.i FROM t1 WHERE t1.i = CAST((SELECT MAX(i) FROM t2) AS UNSIGNED);
|
||||
i
|
||||
10000000000000000000
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
@ -535,3 +535,88 @@ View Create View
|
||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select 1 AS `1`
|
||||
drop view v1;
|
||||
drop view v2;
|
||||
CREATE DATABASE mysqltest1;
|
||||
CREATE USER readonly@localhost;
|
||||
CREATE TABLE mysqltest1.t1 (x INT);
|
||||
INSERT INTO mysqltest1.t1 VALUES (1), (2);
|
||||
CREATE SQL SECURITY INVOKER VIEW mysqltest1.v_t1 AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_ts AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_ti AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tu AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tus AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_td AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tds AS SELECT * FROM mysqltest1.t1;
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON mysqltest1.v_t1 TO readonly;
|
||||
GRANT SELECT ON mysqltest1.v_ts TO readonly;
|
||||
GRANT INSERT ON mysqltest1.v_ti TO readonly;
|
||||
GRANT UPDATE ON mysqltest1.v_tu TO readonly;
|
||||
GRANT UPDATE,SELECT ON mysqltest1.v_tus TO readonly;
|
||||
GRANT DELETE ON mysqltest1.v_td TO readonly;
|
||||
GRANT DELETE,SELECT ON mysqltest1.v_tds TO readonly;
|
||||
SELECT * FROM mysqltest1.v_t1;
|
||||
ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
INSERT INTO mysqltest1.v_t1 VALUES(4);
|
||||
ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
DELETE FROM mysqltest1.v_t1 WHERE x = 1;
|
||||
ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
UPDATE mysqltest1.v_t1 SET x = 3 WHERE x = 2;
|
||||
ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
UPDATE mysqltest1.v_t1 SET x = 3;
|
||||
ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
DELETE FROM mysqltest1.v_t1;
|
||||
ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
SELECT 1 FROM mysqltest1.v_t1;
|
||||
ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
SELECT * FROM mysqltest1.t1;
|
||||
ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table 't1'
|
||||
SELECT * FROM mysqltest1.v_ts;
|
||||
x
|
||||
1
|
||||
2
|
||||
SELECT * FROM mysqltest1.v_ts, mysqltest1.t1 WHERE mysqltest1.t1.x = mysqltest1.v_ts.x;
|
||||
ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table 't1'
|
||||
SELECT * FROM mysqltest1.v_ti;
|
||||
ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table 'v_ti'
|
||||
INSERT INTO mysqltest1.v_ts VALUES (100);
|
||||
ERROR 42000: INSERT command denied to user 'readonly'@'localhost' for table 'v_ts'
|
||||
INSERT INTO mysqltest1.v_ti VALUES (100);
|
||||
UPDATE mysqltest1.v_ts SET x= 200 WHERE x = 100;
|
||||
ERROR 42000: UPDATE command denied to user 'readonly'@'localhost' for table 'v_ts'
|
||||
UPDATE mysqltest1.v_ts SET x= 200;
|
||||
ERROR 42000: UPDATE command denied to user 'readonly'@'localhost' for table 'v_ts'
|
||||
UPDATE mysqltest1.v_tu SET x= 200 WHERE x = 100;
|
||||
UPDATE mysqltest1.v_tus SET x= 200 WHERE x = 100;
|
||||
UPDATE mysqltest1.v_tu SET x= 200;
|
||||
DELETE FROM mysqltest1.v_ts WHERE x= 200;
|
||||
ERROR 42000: DELETE command denied to user 'readonly'@'localhost' for table 'v_ts'
|
||||
DELETE FROM mysqltest1.v_ts;
|
||||
ERROR 42000: DELETE command denied to user 'readonly'@'localhost' for table 'v_ts'
|
||||
DELETE FROM mysqltest1.v_td WHERE x= 200;
|
||||
ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for column 'x' in table 'v_td'
|
||||
DELETE FROM mysqltest1.v_tds WHERE x= 200;
|
||||
DELETE FROM mysqltest1.v_td;
|
||||
DROP VIEW mysqltest1.v_tds;
|
||||
DROP VIEW mysqltest1.v_td;
|
||||
DROP VIEW mysqltest1.v_tus;
|
||||
DROP VIEW mysqltest1.v_tu;
|
||||
DROP VIEW mysqltest1.v_ti;
|
||||
DROP VIEW mysqltest1.v_ts;
|
||||
DROP VIEW mysqltest1.v_t1;
|
||||
DROP TABLE mysqltest1.t1;
|
||||
DROP USER readonly@localhost;
|
||||
DROP DATABASE mysqltest1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
CREATE DEFINER = 'no-such-user'@localhost VIEW v AS SELECT a from t1;
|
||||
Warnings:
|
||||
Note 1449 There is no 'no-such-user'@'localhost' registered
|
||||
SHOW CREATE VIEW v;
|
||||
View Create View
|
||||
v CREATE ALGORITHM=UNDEFINED DEFINER=`no-such-user`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select `t1`.`a` AS `a` from `t1`
|
||||
Warnings:
|
||||
Note 1449 There is no 'no-such-user'@'localhost' registered
|
||||
SELECT * FROM v;
|
||||
ERROR HY000: There is no 'no-such-user'@'localhost' registered
|
||||
DROP VIEW v;
|
||||
DROP TABLE t1;
|
||||
USE test;
|
||||
|
2
mysql-test/std_data/bug15328.cnf
Normal file
2
mysql-test/std_data/bug15328.cnf
Normal file
@ -0,0 +1,2 @@
|
||||
[mysqldump]
|
||||
fields-optionally-enclosed-by="
|
@ -102,3 +102,43 @@ unlock tables;
|
||||
drop table t1, t2, t3;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
# Test of deadlock problem when doing FLUSH TABLE with read lock
|
||||
# (Bug was in NTPL threads in Linux when using different mutex while
|
||||
# waiting for a condtion variable)
|
||||
|
||||
create table t1 (c1 int);
|
||||
create table t2 (c1 int);
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con3,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
lock table t1 write;
|
||||
|
||||
connection con2;
|
||||
send flush tables with read lock;
|
||||
--sleep 1
|
||||
|
||||
connection con3;
|
||||
send insert into t2 values(1);
|
||||
--sleep 1
|
||||
|
||||
connection con1;
|
||||
unlock tables;
|
||||
disconnect con1;
|
||||
|
||||
connection con2;
|
||||
reap;
|
||||
disconnect con2;
|
||||
|
||||
connection con3;
|
||||
# It hangs here (insert into t2 does not end).
|
||||
reap;
|
||||
disconnect con3;
|
||||
|
||||
connection default;
|
||||
drop table t1, t2;
|
||||
|
||||
# End of 5.0 tests
|
||||
|
@ -302,7 +302,7 @@ DROP DATABASE testdb10;
|
||||
create table t1(a int, b int, c int, d int);
|
||||
grant insert(b), insert(c), insert(d), insert(a) on t1 to grant_user@localhost;
|
||||
show grants for grant_user@localhost;
|
||||
select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv;
|
||||
select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv order by Column_name;
|
||||
revoke ALL PRIVILEGES on t1 from grant_user@localhost;
|
||||
show grants for grant_user@localhost;
|
||||
select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv;
|
||||
@ -326,7 +326,18 @@ grant select (c) on mysqltest_2.t1 to mysqltest_3@localhost;
|
||||
grant update (d) on mysqltest_2.t2 to mysqltest_3@localhost;
|
||||
connect (conn1,localhost,mysqltest_3,,);
|
||||
connection conn1;
|
||||
show grants for mysqltest_3@localhost;
|
||||
SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
|
||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||
ORDER BY TABLE_NAME,COLUMN_NAME,PRIVILEGE_TYPE;
|
||||
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
|
||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||
ORDER BY TABLE_NAME,PRIVILEGE_TYPE;
|
||||
SELECT * from INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
|
||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||
ORDER BY TABLE_SCHEMA,PRIVILEGE_TYPE;
|
||||
SELECT * from INFORMATION_SCHEMA.USER_PRIVILEGES
|
||||
WHERE GRANTEE = '''mysqltest_3''@''localhost'''
|
||||
ORDER BY TABLE_CATALOG,PRIVILEGE_TYPE;
|
||||
--error 1143
|
||||
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
|
||||
--error 1143
|
||||
|
@ -659,59 +659,7 @@ select a1 from t1 where a2 = 'b' group by a1;
|
||||
explain select distinct a1 from t1 where a2 = 'b';
|
||||
select distinct a1 from t1 where a2 = 'b';
|
||||
|
||||
#
|
||||
# Bug #12672: primary key implcitly included in every innodb index
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
create table t4 (
|
||||
pk_col int auto_increment primary key, a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
||||
) engine=innodb;
|
||||
--enable_warnings
|
||||
insert into t4 (a1, a2, b, c, d, dummy) select * from t1;
|
||||
|
||||
create index idx12672_0 on t4 (a1);
|
||||
create index idx12672_1 on t4 (a1,a2,b,c);
|
||||
create index idx12672_2 on t4 (a1,a2,b);
|
||||
analyze table t1;
|
||||
|
||||
select distinct a1 from t4 where pk_col not in (1,2,3,4);
|
||||
|
||||
drop table t1,t2,t3,t4;
|
||||
|
||||
#
|
||||
# Bug #6142: a problem with the empty innodb table
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
create table t1 (
|
||||
a varchar(30), b varchar(30), primary key(a), key(b)
|
||||
) engine=innodb;
|
||||
--enable_warnings
|
||||
select distinct a from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #9798: group by with rollup
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
create table t1(a int, key(a)) engine=innodb;
|
||||
--enable_warnings
|
||||
insert into t1 values(1);
|
||||
select a, count(a) from t1 group by a with rollup;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #13293 Wrongly used index results in endless loop.
|
||||
#
|
||||
create table t1 (f1 int, f2 char(1), primary key(f1,f2)) engine=innodb;
|
||||
insert into t1 values ( 1,"e"),(2,"a"),( 3,"c"),(4,"d");
|
||||
alter table t1 drop primary key, add primary key (f2, f1);
|
||||
explain select distinct f1 a, f1 b from t1;
|
||||
explain select distinct f1, f2 from t1;
|
||||
drop table t1;
|
||||
|
||||
drop table t1,t2,t3;
|
||||
#
|
||||
# Bug #14920 Ordering aggregated result sets with composite primary keys
|
||||
# corrupts resultset
|
||||
|
@ -176,4 +176,12 @@ UPDATE t1 SET val=1;
|
||||
SELECT INDEX_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='t1';
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# BUG#12873 - BTREE index on MEMORY table with multiple NULL values doesn't
|
||||
# work properly
|
||||
#
|
||||
CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY;
|
||||
INSERT INTO t1 VALUES(NULL),(NULL);
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@ -1,16 +1,25 @@
|
||||
-- source include/testdb_only.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
drop view if exists v1,v2;
|
||||
drop function if exists f1;
|
||||
drop function if exists f2;
|
||||
--enable_warnings
|
||||
|
||||
use INFORMATION_SCHEMA;
|
||||
--replace_result Tables_in_INFORMATION_SCHEMA Tables_in_information_schema
|
||||
show tables;
|
||||
--replace_result 'Tables_in_INFORMATION_SCHEMA (T%)' 'Tables_in_information_schema (T%)'
|
||||
show tables from INFORMATION_SCHEMA like 'T%';
|
||||
create database `inf%`;
|
||||
create database mbase;
|
||||
use `inf%`;
|
||||
show tables;
|
||||
|
||||
#
|
||||
# Bug#18113 SELECT * FROM information_schema.xxx crashes server
|
||||
# Bug#17204 second CALL to procedure crashes Server
|
||||
# Crash happened when one selected data from one of INFORMATION_SCHEMA
|
||||
# tables and in order to build its contents server had to open view which
|
||||
# used stored function and table or view on which one had not global or
|
||||
@ -18,6 +27,7 @@ show tables;
|
||||
# privileges at all).
|
||||
#
|
||||
grant all privileges on `inf%`.* to 'mysqltest_1'@'localhost';
|
||||
grant all privileges on `mbase`.* to 'mysqltest_1'@'localhost';
|
||||
create table t1 (f1 int);
|
||||
delimiter |;
|
||||
create function func1(curr_int int) returns int
|
||||
@ -28,15 +38,63 @@ begin
|
||||
end|
|
||||
delimiter ;|
|
||||
create view v1 as select f1 from t1 where f1 = func1(f1);
|
||||
create function func2() returns int return 1;
|
||||
|
||||
use mbase;
|
||||
delimiter |;
|
||||
create procedure p1 ()
|
||||
begin
|
||||
select table_name from information_schema.key_column_usage
|
||||
order by table_name;
|
||||
end|
|
||||
delimiter ;|
|
||||
|
||||
create table t1
|
||||
(f1 int(10) unsigned not null,
|
||||
f2 varchar(100) not null,
|
||||
primary key (f1), unique key (f2));
|
||||
|
||||
connect (user1,localhost,mysqltest_1,,);
|
||||
connection user1;
|
||||
--disable_result_log
|
||||
select * from information_schema.tables;
|
||||
call mbase.p1();
|
||||
call mbase.p1();
|
||||
call mbase.p1();
|
||||
--enable_result_log
|
||||
|
||||
connection default;
|
||||
use `inf%`;
|
||||
drop user mysqltest_1@localhost;
|
||||
drop table t1;
|
||||
select table_name, table_type, table_comment from information_schema.tables
|
||||
where table_schema='inf%' and func2();
|
||||
select table_name, table_type, table_comment from information_schema.tables
|
||||
where table_schema='inf%' and func2();
|
||||
drop view v1;
|
||||
drop function func1;
|
||||
drop table t1;
|
||||
drop function func2;
|
||||
|
||||
drop database `inf%`;
|
||||
drop procedure mbase.p1;
|
||||
drop database mbase;
|
||||
|
||||
#
|
||||
# Bug#18282 INFORMATION_SCHEMA.TABLES provides inconsistent info about invalid views
|
||||
#
|
||||
use test;
|
||||
create table t1 (i int);
|
||||
create function f1 () returns int return (select max(i) from t1);
|
||||
create view v1 as select f1();
|
||||
create table t2 (id int);
|
||||
create function f2 () returns int return (select max(i) from t2);
|
||||
create view v2 as select f2();
|
||||
drop table t2;
|
||||
select table_name, table_type, table_comment from information_schema.tables
|
||||
where table_schema='test';
|
||||
drop table t1;
|
||||
select table_name, table_type, table_comment from information_schema.tables
|
||||
where table_schema='test';
|
||||
drop function f1;
|
||||
drop function f2;
|
||||
drop view v1, v2;
|
||||
|
@ -129,3 +129,97 @@ select count(*), min(7), max(7) from t2m, t1i;
|
||||
|
||||
drop table t1m, t1i, t2m, t2i;
|
||||
|
||||
#
|
||||
# Bug #12672: primary key implcitly included in every innodb index
|
||||
# (was part of group_min_max.test)
|
||||
#
|
||||
|
||||
create table t1 (
|
||||
a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
||||
);
|
||||
|
||||
insert into t1 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
||||
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
||||
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
||||
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
||||
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
||||
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
||||
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
||||
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
||||
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
|
||||
--disable_warnings
|
||||
create table t4 (
|
||||
pk_col int auto_increment primary key, a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
||||
) engine=innodb;
|
||||
--enable_warnings
|
||||
insert into t4 (a1, a2, b, c, d, dummy) select * from t1;
|
||||
|
||||
create index idx12672_0 on t4 (a1);
|
||||
create index idx12672_1 on t4 (a1,a2,b,c);
|
||||
create index idx12672_2 on t4 (a1,a2,b);
|
||||
analyze table t1;
|
||||
|
||||
select distinct a1 from t4 where pk_col not in (1,2,3,4);
|
||||
|
||||
drop table t1,t4;
|
||||
|
||||
#
|
||||
# Bug #6142: a problem with the empty innodb table
|
||||
# (was part of group_min_max.test)
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
create table t1 (
|
||||
a varchar(30), b varchar(30), primary key(a), key(b)
|
||||
) engine=innodb;
|
||||
--enable_warnings
|
||||
select distinct a from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #9798: group by with rollup
|
||||
# (was part of group_min_max.test)
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
create table t1(a int, key(a)) engine=innodb;
|
||||
--enable_warnings
|
||||
insert into t1 values(1);
|
||||
select a, count(a) from t1 group by a with rollup;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #13293 Wrongly used index results in endless loop.
|
||||
# (was part of group_min_max.test)
|
||||
#
|
||||
create table t1 (f1 int, f2 char(1), primary key(f1,f2)) engine=innodb;
|
||||
insert into t1 values ( 1,"e"),(2,"a"),( 3,"c"),(4,"d");
|
||||
alter table t1 drop primary key, add primary key (f2, f1);
|
||||
explain select distinct f1 a, f1 b from t1;
|
||||
explain select distinct f1, f2 from t1;
|
||||
drop table t1;
|
||||
|
||||
|
@ -126,3 +126,35 @@ show columns from t1;
|
||||
connection locker;
|
||||
unlock tables;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#16986 - Deadlock condition with MyISAM tables
|
||||
#
|
||||
connection locker;
|
||||
use mysql;
|
||||
LOCK TABLES columns_priv WRITE, db WRITE, host WRITE, user WRITE;
|
||||
FLUSH TABLES;
|
||||
--sleep 1
|
||||
#
|
||||
connection reader;
|
||||
use mysql;
|
||||
#NOTE: This must be a multi-table select, otherwise the deadlock will not occur
|
||||
send SELECT user.Select_priv FROM user, db WHERE user.user = db.user LIMIT 1;
|
||||
--sleep 1
|
||||
#
|
||||
connection locker;
|
||||
# Make test case independent from earlier grants.
|
||||
--replace_result "Table is already up to date" "OK"
|
||||
OPTIMIZE TABLES columns_priv, db, host, user;
|
||||
UNLOCK TABLES;
|
||||
#
|
||||
connection reader;
|
||||
reap;
|
||||
use test;
|
||||
#
|
||||
connection locker;
|
||||
use test;
|
||||
#
|
||||
connection default;
|
||||
|
||||
# End of 5.0 tests
|
||||
|
@ -2,7 +2,7 @@
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1, `"t"1`, t1aa, t2, t2aa;
|
||||
DROP TABLE IF EXISTS t1, `"t"1`, t1aa, t2, t2aa, t3;
|
||||
drop database if exists mysqldump_test_db;
|
||||
drop database if exists db1;
|
||||
drop database if exists db2;
|
||||
@ -606,6 +606,13 @@ select * from t2 order by a;
|
||||
drop table t1, t2;
|
||||
drop database db1;
|
||||
|
||||
#
|
||||
# BUG#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
|
||||
#
|
||||
|
||||
--exec $MYSQL_MY_PRINT_DEFAULTS --defaults-extra-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
|
||||
|
||||
|
||||
#
|
||||
# Bug #9558 mysqldump --no-data db t1 t2 format still dumps data
|
||||
#
|
||||
@ -741,6 +748,17 @@ show create table `t1`;
|
||||
|
||||
drop table `t1`;
|
||||
|
||||
#
|
||||
# Bug #18536: wrong table order
|
||||
#
|
||||
|
||||
create table t1(a int);
|
||||
create table t2(a int);
|
||||
create table t3(a int);
|
||||
--error 6
|
||||
--exec $MYSQL_DUMP --skip-comments --force --no-data test t3 t1 non_existing t2
|
||||
drop table t1, t2, t3;
|
||||
|
||||
--echo End of 4.1 tests
|
||||
# Bug #13318: Bad result with empty field and --hex-blob
|
||||
#
|
||||
|
@ -5849,6 +5849,52 @@ DROP PROCEDURE bug18589_p1|
|
||||
DROP PROCEDURE bug18589_p2|
|
||||
|
||||
|
||||
#
|
||||
# BUG#18037: Server crash when returning system variable in stored procedures
|
||||
# BUG#19633: Stack corruption in fix_fields()/THD::rollback_item_tree_changes()
|
||||
#
|
||||
|
||||
# Prepare.
|
||||
|
||||
--disable_warnings
|
||||
DROP FUNCTION IF EXISTS bug18037_f1|
|
||||
DROP PROCEDURE IF EXISTS bug18037_p1|
|
||||
DROP PROCEDURE IF EXISTS bug18037_p2|
|
||||
--enable_warnings
|
||||
|
||||
# Test case.
|
||||
|
||||
CREATE FUNCTION bug18037_f1() RETURNS INT
|
||||
BEGIN
|
||||
RETURN @@server_id;
|
||||
END|
|
||||
|
||||
CREATE PROCEDURE bug18037_p1()
|
||||
BEGIN
|
||||
DECLARE v INT DEFAULT @@server_id;
|
||||
END|
|
||||
|
||||
CREATE PROCEDURE bug18037_p2()
|
||||
BEGIN
|
||||
CASE @@server_id
|
||||
WHEN -1 THEN
|
||||
SELECT 0;
|
||||
ELSE
|
||||
SELECT 1;
|
||||
END CASE;
|
||||
END|
|
||||
|
||||
SELECT bug18037_f1()|
|
||||
CALL bug18037_p1()|
|
||||
CALL bug18037_p2()|
|
||||
|
||||
# Cleanup.
|
||||
|
||||
DROP FUNCTION bug18037_f1|
|
||||
DROP PROCEDURE bug18037_p1|
|
||||
DROP PROCEDURE bug18037_p2|
|
||||
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
|
@ -2109,3 +2109,25 @@ insert into t1 values (1, 2), (2, 2), (3, 2);
|
||||
select * from (select min(i) from t1 where j=(select * from (select min(j) from t1) t2)) t3;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#19700: subselect returning BIGINT always returned it as SIGNED
|
||||
#
|
||||
CREATE TABLE t1 (i BIGINT UNSIGNED);
|
||||
INSERT INTO t1 VALUES (10000000000000000000); -- > MAX SIGNED BIGINT 9323372036854775807
|
||||
INSERT INTO t1 VALUES (1);
|
||||
|
||||
CREATE TABLE t2 (i BIGINT UNSIGNED);
|
||||
INSERT INTO t2 VALUES (10000000000000000000); -- same as first table
|
||||
INSERT INTO t2 VALUES (1);
|
||||
|
||||
/* simple test */
|
||||
SELECT t1.i FROM t1 JOIN t2 ON t1.i = t2.i;
|
||||
|
||||
/* subquery test */
|
||||
SELECT t1.i FROM t1 WHERE t1.i = (SELECT MAX(i) FROM t2);
|
||||
|
||||
/* subquery test with cast*/
|
||||
SELECT t1.i FROM t1 WHERE t1.i = CAST((SELECT MAX(i) FROM t2) AS UNSIGNED);
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
@ -718,3 +718,98 @@ show create view v1;
|
||||
show create view v2;
|
||||
drop view v1;
|
||||
drop view v2;
|
||||
|
||||
#
|
||||
# Bug#18681: View privileges are broken
|
||||
#
|
||||
CREATE DATABASE mysqltest1;
|
||||
CREATE USER readonly@localhost;
|
||||
CREATE TABLE mysqltest1.t1 (x INT);
|
||||
INSERT INTO mysqltest1.t1 VALUES (1), (2);
|
||||
CREATE SQL SECURITY INVOKER VIEW mysqltest1.v_t1 AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_ts AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_ti AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tu AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tus AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_td AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tds AS SELECT * FROM mysqltest1.t1;
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON mysqltest1.v_t1 TO readonly;
|
||||
GRANT SELECT ON mysqltest1.v_ts TO readonly;
|
||||
GRANT INSERT ON mysqltest1.v_ti TO readonly;
|
||||
GRANT UPDATE ON mysqltest1.v_tu TO readonly;
|
||||
GRANT UPDATE,SELECT ON mysqltest1.v_tus TO readonly;
|
||||
GRANT DELETE ON mysqltest1.v_td TO readonly;
|
||||
GRANT DELETE,SELECT ON mysqltest1.v_tds TO readonly;
|
||||
|
||||
CONNECT (n1,localhost,readonly,,);
|
||||
CONNECTION n1;
|
||||
|
||||
--error 1356
|
||||
SELECT * FROM mysqltest1.v_t1;
|
||||
--error 1356
|
||||
INSERT INTO mysqltest1.v_t1 VALUES(4);
|
||||
--error 1356
|
||||
DELETE FROM mysqltest1.v_t1 WHERE x = 1;
|
||||
--error 1356
|
||||
UPDATE mysqltest1.v_t1 SET x = 3 WHERE x = 2;
|
||||
--error 1356
|
||||
UPDATE mysqltest1.v_t1 SET x = 3;
|
||||
--error 1356
|
||||
DELETE FROM mysqltest1.v_t1;
|
||||
--error 1356
|
||||
SELECT 1 FROM mysqltest1.v_t1;
|
||||
--error 1142
|
||||
SELECT * FROM mysqltest1.t1;
|
||||
|
||||
SELECT * FROM mysqltest1.v_ts;
|
||||
--error 1142
|
||||
SELECT * FROM mysqltest1.v_ts, mysqltest1.t1 WHERE mysqltest1.t1.x = mysqltest1.v_ts.x;
|
||||
--error 1142
|
||||
SELECT * FROM mysqltest1.v_ti;
|
||||
|
||||
--error 1142
|
||||
INSERT INTO mysqltest1.v_ts VALUES (100);
|
||||
INSERT INTO mysqltest1.v_ti VALUES (100);
|
||||
|
||||
--error 1142
|
||||
UPDATE mysqltest1.v_ts SET x= 200 WHERE x = 100;
|
||||
--error 1142
|
||||
UPDATE mysqltest1.v_ts SET x= 200;
|
||||
UPDATE mysqltest1.v_tu SET x= 200 WHERE x = 100;
|
||||
UPDATE mysqltest1.v_tus SET x= 200 WHERE x = 100;
|
||||
UPDATE mysqltest1.v_tu SET x= 200;
|
||||
|
||||
--error 1142
|
||||
DELETE FROM mysqltest1.v_ts WHERE x= 200;
|
||||
--error 1142
|
||||
DELETE FROM mysqltest1.v_ts;
|
||||
--error 1143
|
||||
DELETE FROM mysqltest1.v_td WHERE x= 200;
|
||||
DELETE FROM mysqltest1.v_tds WHERE x= 200;
|
||||
DELETE FROM mysqltest1.v_td;
|
||||
|
||||
CONNECTION default;
|
||||
DROP VIEW mysqltest1.v_tds;
|
||||
DROP VIEW mysqltest1.v_td;
|
||||
DROP VIEW mysqltest1.v_tus;
|
||||
DROP VIEW mysqltest1.v_tu;
|
||||
DROP VIEW mysqltest1.v_ti;
|
||||
DROP VIEW mysqltest1.v_ts;
|
||||
DROP VIEW mysqltest1.v_t1;
|
||||
DROP TABLE mysqltest1.t1;
|
||||
DROP USER readonly@localhost;
|
||||
DROP DATABASE mysqltest1;
|
||||
|
||||
#
|
||||
# BUG#14875: Bad view DEFINER makes SHOW CREATE VIEW fail
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
CREATE DEFINER = 'no-such-user'@localhost VIEW v AS SELECT a from t1;
|
||||
--warning 1448
|
||||
SHOW CREATE VIEW v;
|
||||
--error 1449
|
||||
SELECT * FROM v;
|
||||
DROP VIEW v;
|
||||
DROP TABLE t1;
|
||||
USE test;
|
||||
|
Reference in New Issue
Block a user