mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge mysql.com:/home/jonas/src/mysql-5.0
into mysql.com:/home/jonas/src/wl2126
This commit is contained in:
@ -2,7 +2,7 @@ drop table if exists t1;
|
||||
set sql_mode="MySQL40";
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
NO_FIELD_OPTIONS,MYSQL40,BROKEN_NOT
|
||||
NO_FIELD_OPTIONS,MYSQL40,HIGH_NOT_PRECEDENCE
|
||||
set @@sql_mode="ANSI";
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
|
@ -33,7 +33,7 @@ a
|
||||
SELECT * FROM t1 where (1 AND a) IS NULL;
|
||||
a
|
||||
NULL
|
||||
set sql_mode='broken_not';
|
||||
set sql_mode='high_not_precedence';
|
||||
select * from t1 where not a between 2 and 3;
|
||||
a
|
||||
set sql_mode=default;
|
||||
|
@ -69,6 +69,6 @@ Error 1259 ZLIB: Input data corrupted
|
||||
Error 1256 Uncompressed data size too large; the maximum size is 1048576 (probably, length of uncompressed data was corrupted)
|
||||
drop table t1;
|
||||
set @@max_allowed_packet=1048576*100;
|
||||
select compress(repeat('aaaaaaaaaa', 10000000)) is null;
|
||||
compress(repeat('aaaaaaaaaa', 10000000)) is null
|
||||
select compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null;
|
||||
compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null
|
||||
0
|
||||
|
@ -218,17 +218,19 @@ grant select on test.* to drop_user3@localhost;
|
||||
grant select on *.* to drop_user4@localhost;
|
||||
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
||||
drop_user4@localhost;
|
||||
ERROR HY000: Can't drop one or more of the requested users
|
||||
revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
|
||||
drop_user3@localhost, drop_user4@localhost;
|
||||
ERROR HY000: Can't revoke all privileges, grant for one or more of the requested users
|
||||
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
||||
drop_user4@localhost;
|
||||
ERROR HY000: Operation DROP USER failed for 'drop_user1'@'localhost','drop_user2'@'localhost','drop_user3'@'localhost','drop_user4'@'localhost'
|
||||
drop table t1;
|
||||
grant usage on *.* to mysqltest_1@localhost identified by "password";
|
||||
grant select, update, insert on test.* to mysqltest@localhost;
|
||||
grant select, update, insert on test.* to mysqltest_1@localhost;
|
||||
show grants for mysqltest_1@localhost;
|
||||
Grants for mysqltest_1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'
|
||||
GRANT SELECT, INSERT, UPDATE ON `test`.* TO 'mysqltest_1'@'localhost'
|
||||
drop user mysqltest_1@localhost;
|
||||
SET NAMES koi8r;
|
||||
CREATE DATABASE <20><>;
|
||||
@ -252,6 +254,7 @@ Grants for
|
||||
GRANT USAGE ON *.* TO '<27><><EFBFBD><EFBFBD>'@'localhost'
|
||||
GRANT SELECT (<28><><EFBFBD>) ON `<60><>`.`<60><><EFBFBD>` TO '<27><><EFBFBD><EFBFBD>'@'localhost'
|
||||
REVOKE SELECT (<28><><EFBFBD>) ON <20><>.<2E><><EFBFBD> FROM <20><><EFBFBD><EFBFBD>@localhost;
|
||||
DROP USER <20><><EFBFBD><EFBFBD>@localhost;
|
||||
DROP DATABASE <20><>;
|
||||
SET NAMES latin1;
|
||||
USE test;
|
||||
|
@ -60,3 +60,165 @@ use test;
|
||||
delete from mysql.user where user like 'mysqltest\_%';
|
||||
delete from mysql.db where user like 'mysqltest\_%';
|
||||
flush privileges;
|
||||
set sql_mode='maxdb';
|
||||
drop table if exists t1, t2;
|
||||
create table t1(c1 int);
|
||||
create table t2(c1 int, c2 int);
|
||||
create user 'mysqltest_1';
|
||||
create user 'mysqltest_1';
|
||||
ERROR HY000: Operation CREATE USER failed for 'mysqltest_1'@'%'
|
||||
create user 'mysqltest_2' identified by 'Mysqltest-2';
|
||||
create user 'mysqltest_3' identified by password 'fffffffffffffffffffffffffffffffffffffffff';
|
||||
grant select on *.* to 'mysqltest_2';
|
||||
grant insert on test.* to 'mysqltest_2';
|
||||
grant update on test.t1 to 'mysqltest_2';
|
||||
grant update (c2) on test.t2 to 'mysqltest_2';
|
||||
select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
|
||||
host user password
|
||||
% mysqltest_1
|
||||
% mysqltest_2 *BD447CBA355AF58578D3AE33BA2E2CD388BA08D1
|
||||
% mysqltest_3 fffffffffffffffffffffffffffffffffffffffff
|
||||
select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
|
||||
host db user
|
||||
% test mysqltest_2
|
||||
select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
|
||||
host db user table_name
|
||||
% test mysqltest_2 t1
|
||||
% test mysqltest_2 t2
|
||||
select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
|
||||
host db user table_name column_name
|
||||
% test mysqltest_2 t2 c2
|
||||
show grants for 'mysqltest_1';
|
||||
Grants for mysqltest_1@%
|
||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'%'
|
||||
show grants for 'mysqltest_2';
|
||||
Grants for mysqltest_2@%
|
||||
GRANT SELECT ON *.* TO 'mysqltest_2'@'%' IDENTIFIED BY PASSWORD '*BD447CBA355AF58578D3AE33BA2E2CD388BA08D1'
|
||||
GRANT INSERT ON "test".* TO 'mysqltest_2'@'%'
|
||||
GRANT UPDATE (c2) ON "test"."t2" TO 'mysqltest_2'@'%'
|
||||
GRANT UPDATE ON "test"."t1" TO 'mysqltest_2'@'%'
|
||||
drop user 'mysqltest_1';
|
||||
select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
|
||||
host user password
|
||||
% mysqltest_2 *BD447CBA355AF58578D3AE33BA2E2CD388BA08D1
|
||||
% mysqltest_3 fffffffffffffffffffffffffffffffffffffffff
|
||||
select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
|
||||
host db user
|
||||
% test mysqltest_2
|
||||
select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
|
||||
host db user table_name
|
||||
% test mysqltest_2 t1
|
||||
% test mysqltest_2 t2
|
||||
select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
|
||||
host db user table_name column_name
|
||||
% test mysqltest_2 t2 c2
|
||||
show grants for 'mysqltest_1';
|
||||
ERROR 42000: There is no such grant defined for user 'mysqltest_1' on host '%'
|
||||
rename user 'mysqltest_2' to 'mysqltest_1';
|
||||
select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
|
||||
host user password
|
||||
% mysqltest_1 *BD447CBA355AF58578D3AE33BA2E2CD388BA08D1
|
||||
% mysqltest_3 fffffffffffffffffffffffffffffffffffffffff
|
||||
select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
|
||||
host db user
|
||||
% test mysqltest_1
|
||||
select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
|
||||
host db user table_name
|
||||
% test mysqltest_1 t1
|
||||
% test mysqltest_1 t2
|
||||
select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
|
||||
host db user table_name column_name
|
||||
% test mysqltest_1 t2 c2
|
||||
show grants for 'mysqltest_1';
|
||||
Grants for mysqltest_1@%
|
||||
GRANT SELECT ON *.* TO 'mysqltest_1'@'%' IDENTIFIED BY PASSWORD '*BD447CBA355AF58578D3AE33BA2E2CD388BA08D1'
|
||||
GRANT INSERT ON "test".* TO 'mysqltest_1'@'%'
|
||||
GRANT UPDATE (c2) ON "test"."t2" TO 'mysqltest_1'@'%'
|
||||
GRANT UPDATE ON "test"."t1" TO 'mysqltest_1'@'%'
|
||||
drop user 'mysqltest_1', 'mysqltest_3';
|
||||
grant all on test.t1 to 'mysqltest_1';
|
||||
ERROR 42000: 'root'@'localhost' is not allowed to create new users
|
||||
drop user 'mysqltest_1';
|
||||
ERROR HY000: Operation DROP USER failed for 'mysqltest_1'@'%'
|
||||
drop table t1, t2;
|
||||
insert into mysql.db set user='mysqltest_1', db='%', host='%';
|
||||
flush privileges;
|
||||
show grants for 'mysqltest_1';
|
||||
ERROR 42000: There is no such grant defined for user 'mysqltest_1' on host '%'
|
||||
revoke all privileges, grant option from 'mysqltest_1';
|
||||
ERROR HY000: Can't revoke all privileges, grant for one or more of the requested users
|
||||
drop user 'mysqltest_1';
|
||||
select host,db,user from mysql.db where user = 'mysqltest_1' order by host,db,user;
|
||||
host db user
|
||||
insert into mysql.tables_priv set host='%', db='test', user='mysqltest_1', table_name='t1';
|
||||
flush privileges;
|
||||
show grants for 'mysqltest_1';
|
||||
ERROR 42000: There is no such grant defined for user 'mysqltest_1' on host '%'
|
||||
drop user 'mysqltest_1';
|
||||
select host,db,user,table_name from mysql.tables_priv where user = 'mysqltest_1' order by host,db,user,table_name;
|
||||
host db user table_name
|
||||
insert into mysql.columns_priv set host='%', db='test', user='mysqltest_1', table_name='t1', column_name='c1';
|
||||
flush privileges;
|
||||
show grants for 'mysqltest_1';
|
||||
ERROR 42000: There is no such grant defined for user 'mysqltest_1' on host '%'
|
||||
drop user 'mysqltest_1';
|
||||
select host,db,user,table_name,column_name from mysql.columns_priv where user = 'mysqltest_1' order by host,db,user,table_name,column_name;
|
||||
host db user table_name column_name
|
||||
create user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
|
||||
drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
|
||||
create user 'mysqltest_1', 'mysqltest_2' identified by 'Mysqltest-2', 'mysqltest_3' identified by password 'fffffffffffffffffffffffffffffffffffffffff';
|
||||
rename user 'mysqltest_1' to 'mysqltest_1a', 'mysqltest_2' TO 'mysqltest_2a', 'mysqltest_3' TO 'mysqltest_3a';
|
||||
drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
|
||||
ERROR HY000: Operation DROP USER failed for 'mysqltest_1'@'%','mysqltest_2'@'%','mysqltest_3'@'%'
|
||||
drop user 'mysqltest_1a', 'mysqltest_2a', 'mysqltest_3a';
|
||||
create user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
|
||||
create user 'mysqltest_1a', 'mysqltest_2', 'mysqltest_3a';
|
||||
ERROR HY000: Operation CREATE USER failed for 'mysqltest_2'@'%'
|
||||
rename user 'mysqltest_1a' to 'mysqltest_1b', 'mysqltest_2a' TO 'mysqltest_2b', 'mysqltest_3a' TO 'mysqltest_3b';
|
||||
ERROR HY000: Operation RENAME USER failed for 'mysqltest_2a'@'%'
|
||||
drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
|
||||
drop user 'mysqltest_1b', 'mysqltest_2b', 'mysqltest_3b';
|
||||
ERROR HY000: Operation DROP USER failed for 'mysqltest_2b'@'%'
|
||||
create user 'mysqltest_2' identified by 'Mysqltest-2';
|
||||
drop user 'mysqltest_2' identified by 'Mysqltest-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 'identified by 'Mysqltest-2'' at line 1
|
||||
create user '%@b'@'b';
|
||||
show grants for '%@b'@'b';
|
||||
Grants for %@b@b
|
||||
GRANT USAGE ON *.* TO '%@b'@'b'
|
||||
grant select on mysql.* to '%@b'@'b';
|
||||
show grants for '%@b'@'b';
|
||||
Grants for %@b@b
|
||||
GRANT USAGE ON *.* TO '%@b'@'b'
|
||||
GRANT SELECT ON "mysql".* TO '%@b'@'b'
|
||||
rename user '%@b'@'b' to '%@a'@'a';
|
||||
show grants for '%@b'@'b';
|
||||
ERROR 42000: There is no such grant defined for user '%@b' on host 'b'
|
||||
show grants for '%@a'@'a';
|
||||
Grants for %@a@a
|
||||
GRANT USAGE ON *.* TO '%@a'@'a'
|
||||
GRANT SELECT ON "mysql".* TO '%@a'@'a'
|
||||
drop user '%@a'@'a';
|
||||
create user mysqltest_2@localhost;
|
||||
grant usage on *.* to mysqltest_2@localhost with grant option;
|
||||
select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
|
||||
ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysql'
|
||||
create user mysqltest_A@'%';
|
||||
rename user mysqltest_A@'%' to mysqltest_B@'%';
|
||||
drop user mysqltest_B@'%';
|
||||
drop user mysqltest_2@localhost;
|
||||
create user mysqltest_3@localhost;
|
||||
grant all privileges on mysql.* to mysqltest_3@localhost;
|
||||
select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
|
||||
host user password
|
||||
% mysqltest_2 *BD447CBA355AF58578D3AE33BA2E2CD388BA08D1
|
||||
localhost mysqltest_3
|
||||
insert into mysql.user set host='%', user='mysqltest_B';
|
||||
create user mysqltest_A@'%';
|
||||
ERROR 42000: Access denied for user 'mysqltest_3'@'localhost' to database 'mysql'
|
||||
rename user mysqltest_B@'%' to mysqltest_C@'%';
|
||||
ERROR 42000: Access denied for user 'mysqltest_3'@'localhost' to database 'mysql'
|
||||
drop user mysqltest_B@'%';
|
||||
ERROR 42000: Access denied for user 'mysqltest_3'@'localhost' to database 'mysql'
|
||||
drop user mysqltest_B@'%';
|
||||
drop user mysqltest_3@localhost;
|
||||
|
@ -252,7 +252,7 @@ sel2 sel2
|
||||
select count(*) from information_schema.ROUTINES;
|
||||
count(*)
|
||||
2
|
||||
create view v0 (c) as select schema_name from information_schema.SCHEMATA;
|
||||
create view v0 (c) as select schema_name from information_schema.schemata;
|
||||
select * from v0;
|
||||
c
|
||||
mysql
|
||||
@ -260,22 +260,22 @@ test
|
||||
explain select * from v0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY # ALL NULL NULL NULL NULL 2
|
||||
create view v1 (c) as select table_name from information_schema.TABLES
|
||||
create view v1 (c) as select table_name from information_schema.tables
|
||||
where table_name="v1";
|
||||
select * from v1;
|
||||
c
|
||||
v1
|
||||
create view v2 (c) as select column_name from information_schema.COLUMNS
|
||||
create view v2 (c) as select column_name from information_schema.columns
|
||||
where table_name="v2";
|
||||
select * from v2;
|
||||
c
|
||||
c
|
||||
create view v3 (c) as select CHARACTER_SET_NAME from information_schema.CHARACTER_SETS
|
||||
create view v3 (c) as select CHARACTER_SET_NAME from information_schema.character_sets
|
||||
where CHARACTER_SET_NAME like "latin1%";
|
||||
select * from v3;
|
||||
c
|
||||
latin1
|
||||
create view v4 (c) as select COLLATION_NAME from information_schema.COLLATIONS
|
||||
create view v4 (c) as select COLLATION_NAME from information_schema.collations
|
||||
where COLLATION_NAME like "latin1%";
|
||||
select * from v4;
|
||||
c
|
||||
@ -289,13 +289,13 @@ latin1_general_cs
|
||||
latin1_spanish_ci
|
||||
show keys from v4;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
select * from information_schema.VIEWS where TABLE_NAME like "v%";
|
||||
select * from information_schema.views where TABLE_NAME like "v%";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE
|
||||
NULL test v0 select `SCHEMATA`.`SCHEMA_NAME` AS `c` from `information_schema`.`SCHEMATA` NONE NO
|
||||
NULL test v1 select `TABLES`.`TABLE_NAME` AS `c` from `information_schema`.`TABLES` where (`TABLES`.`TABLE_NAME` = _utf8'v1') NONE NO
|
||||
NULL test v2 select `COLUMNS`.`COLUMN_NAME` AS `c` from `information_schema`.`COLUMNS` where (`COLUMNS`.`TABLE_NAME` = _utf8'v2') NONE NO
|
||||
NULL test v3 select `CHARACTER_SETS`.`CHARACTER_SET_NAME` AS `c` from `information_schema`.`CHARACTER_SETS` where (`CHARACTER_SETS`.`CHARACTER_SET_NAME` like _utf8'latin1%') NONE NO
|
||||
NULL test v4 select `COLLATIONS`.`COLLATION_NAME` AS `c` from `information_schema`.`COLLATIONS` where (`COLLATIONS`.`COLLATION_NAME` like _utf8'latin1%') NONE NO
|
||||
NULL test v0 select `schemata`.`SCHEMA_NAME` AS `c` from `information_schema`.`schemata` NONE NO
|
||||
NULL test v1 select `tables`.`TABLE_NAME` AS `c` from `information_schema`.`tables` where (`tables`.`TABLE_NAME` = _utf8'v1') NONE NO
|
||||
NULL test v2 select `columns`.`COLUMN_NAME` AS `c` from `information_schema`.`columns` where (`columns`.`TABLE_NAME` = _utf8'v2') NONE NO
|
||||
NULL test v3 select `character_sets`.`CHARACTER_SET_NAME` AS `c` from `information_schema`.`character_sets` where (`character_sets`.`CHARACTER_SET_NAME` like _utf8'latin1%') NONE NO
|
||||
NULL test v4 select `collations`.`COLLATION_NAME` AS `c` from `information_schema`.`collations` where (`collations`.`COLLATION_NAME` like _utf8'latin1%') NONE NO
|
||||
drop view v0, v1, v2, v3, v4;
|
||||
create table t1 (a int);
|
||||
grant select,update,insert on t1 to mysqltest_1@localhost;
|
||||
@ -434,18 +434,18 @@ information_schema.tables;
|
||||
s1
|
||||
9
|
||||
drop table t1;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.CHARACTER_SETS;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
|
||||
Table Create Table
|
||||
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
||||
character_sets CREATE TEMPORARY TABLE `character_sets` (
|
||||
`CHARACTER_SET_NAME` char(30) NOT NULL default '',
|
||||
`DESCRIPTION` char(60) NOT NULL default '',
|
||||
`DEFAULT_COLLATE_NAME` char(60) NOT NULL default '',
|
||||
`MAXLEN` bigint(3) NOT NULL default '0'
|
||||
) ENGINE=HEAP DEFAULT CHARSET=utf8 MAX_ROWS=2282
|
||||
set names latin2;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.CHARACTER_SETS;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
|
||||
Table Create Table
|
||||
CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
|
||||
character_sets CREATE TEMPORARY TABLE `character_sets` (
|
||||
`CHARACTER_SET_NAME` char(30) NOT NULL default '',
|
||||
`DESCRIPTION` char(60) NOT NULL default '',
|
||||
`DEFAULT_COLLATE_NAME` char(60) NOT NULL default '',
|
||||
@ -517,3 +517,19 @@ from information_schema.columns; open c; open c; end;//
|
||||
call p108()//
|
||||
ERROR 24000: Cursor is already open
|
||||
drop procedure p108;
|
||||
create view v1 as select A1.table_name from information_schema.TABLES A1
|
||||
where table_name= "user";
|
||||
select * from v1;
|
||||
table_name
|
||||
user
|
||||
drop view v1;
|
||||
create view vo as select 'a' union select 'a';
|
||||
show index from vo;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
select * from information_schema.TABLE_CONSTRAINTS where
|
||||
TABLE_NAME= "vo";
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE CONSTRAINT_METHOD
|
||||
select * from information_schema.KEY_COLUMN_USAGE where
|
||||
TABLE_NAME= "vo";
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
drop view vo;
|
||||
|
@ -31,8 +31,8 @@ begin;
|
||||
grant delete on mysqltest.* to mysqltest_1@localhost;
|
||||
commit;
|
||||
select * from mysql.user where user="mysqltest_1";
|
||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections
|
||||
localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N SPECIFIED EDH-RSA-DES-CBC3-SHA 0 0 0
|
||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections
|
||||
localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N 0 0 0
|
||||
show grants for mysqltest_1@localhost;
|
||||
Grants for mysqltest_1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA'
|
||||
@ -99,7 +99,7 @@ commit;
|
||||
show grants for mysqltest_1@localhost;
|
||||
Grants for mysqltest_1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, CREATE TEMPORARY TABLES ON `mysqltest`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW ON `mysqltest`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION
|
||||
begin;
|
||||
revoke all privileges on mysqltest.* from mysqltest_1@localhost;
|
||||
commit;
|
||||
@ -271,23 +271,26 @@ grant select on test.t1 to drop_user2@localhost;
|
||||
grant select on test.* to drop_user3@localhost;
|
||||
grant select on *.* to drop_user4@localhost;
|
||||
commit;
|
||||
flush privileges;
|
||||
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
||||
drop_user4@localhost;
|
||||
ERROR HY000: Can't drop one or more of the requested users
|
||||
begin;
|
||||
revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
|
||||
drop_user3@localhost, drop_user4@localhost;
|
||||
ERROR HY000: Can't revoke all privileges, grant for one or more of the requested users
|
||||
commit;
|
||||
flush privileges;
|
||||
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
||||
drop_user4@localhost;
|
||||
drop table t1;
|
||||
begin;
|
||||
grant usage on *.* to mysqltest_1@localhost identified by "password";
|
||||
grant select, update, insert on test.* to mysqltest@localhost;
|
||||
grant select, update, insert on test.* to mysqltest_1@localhost;
|
||||
commit;
|
||||
show grants for mysqltest_1@localhost;
|
||||
Grants for mysqltest_1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'
|
||||
GRANT SELECT, INSERT, UPDATE ON `test`.* TO 'mysqltest_1'@'localhost'
|
||||
drop user mysqltest_1@localhost;
|
||||
SET NAMES koi8r;
|
||||
CREATE DATABASE <20><>;
|
||||
@ -396,6 +399,31 @@ DROP DATABASE testdb7;
|
||||
DROP DATABASE testdb8;
|
||||
DROP DATABASE testdb9;
|
||||
DROP DATABASE testdb10;
|
||||
SHOW PRIVILEGES;
|
||||
Privilege Context Comment
|
||||
Alter Tables To alter the table
|
||||
Create Databases,Tables,Indexes To create new databases and tables
|
||||
Create temporary tables Databases To use CREATE TEMPORARY TABLE
|
||||
Create view Tables To create new views
|
||||
Delete Tables To delete existing rows
|
||||
Drop Databases,Tables To drop databases, tables, and views
|
||||
File File access on server To read and write files on the server
|
||||
Grant option Databases,Tables To give to other users those privileges you possess
|
||||
Index Tables To create or drop indexes
|
||||
Insert Tables To insert data into tables
|
||||
Lock tables Databases To use LOCK TABLES (together with SELECT privilege)
|
||||
Process Server Admin To view the plain text of currently executing queries
|
||||
References Databases,Tables To have references on tables
|
||||
Reload Server Admin To reload or refresh tables, logs and privileges
|
||||
Replication client Server Admin To ask where the slave or master servers are
|
||||
Replication slave Server Admin To read binary log events from the master
|
||||
Select Tables To retrieve rows from table
|
||||
Show databases Server Admin To see all databases with SHOW DATABASES
|
||||
Show view Tables To see views with SHOW CREATE VIEW
|
||||
Shutdown Server Admin To shut down the server
|
||||
Super Server Admin To use KILL thread, SET GLOBAL, CHANGE MASTER, etc.
|
||||
Update Tables To update existing rows
|
||||
Usage Server Admin No privileges - allow connect only
|
||||
use mysql;
|
||||
alter table columns_priv engine=myisam;
|
||||
alter table db engine=myisam;
|
||||
|
@ -733,3 +733,10 @@ xxxxxxxxxxxxxxxxxxxaa
|
||||
xxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxz
|
||||
drop table t1;
|
||||
create table t1 (a int not null, b int not null, c int not null);
|
||||
insert t1 values (1,1,1),(1,1,2),(1,2,1);
|
||||
select a, b from t1 group by a, b order by sum(c);
|
||||
a b
|
||||
1 2
|
||||
1 1
|
||||
drop table t1;
|
||||
|
@ -835,19 +835,19 @@ identified by 'looser' ;
|
||||
show grants for second_user@localhost ;
|
||||
Grants for second_user@localhost
|
||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
drop table mysqltest.t9 ;
|
||||
show grants for second_user@localhost ;
|
||||
Grants for second_user@localhost
|
||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
show grants for second_user@localhost ;
|
||||
Grants for second_user@localhost
|
||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
prepare s_t1 from 'select a as my_col from t1' ;
|
||||
execute s_t1 ;
|
||||
my_col
|
||||
|
12
mysql-test/r/rpl_start_stop_slave.result
Normal file
12
mysql-test/r/rpl_start_stop_slave.result
Normal file
@ -0,0 +1,12 @@
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
stop slave;
|
||||
create table t1(n int);
|
||||
start slave;
|
||||
stop slave io_thread;
|
||||
start slave io_thread;
|
||||
drop table t1;
|
@ -2321,6 +2321,27 @@ select * from t2,t3 where t2.s = t3.s;
|
||||
s s
|
||||
two two
|
||||
drop table t1, t2, t3;
|
||||
create table t1 (a integer, b integer, index(a), index(b));
|
||||
create table t2 (c integer, d integer, index(c), index(d));
|
||||
insert into t1 values (1,2), (2,2), (3,2), (4,2);
|
||||
insert into t2 values (1,3), (2,3), (3,4), (4,4);
|
||||
explain select * from t1 left join t2 on a=c where d in (4);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref c,d d 5 const 2 Using where
|
||||
1 SIMPLE t1 ALL a NULL NULL NULL 3 Using where
|
||||
select * from t1 left join t2 on a=c where d in (4);
|
||||
a b c d
|
||||
3 2 3 4
|
||||
4 2 4 4
|
||||
explain select * from t1 left join t2 on a=c where d = 4;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref c,d d 5 const 2 Using where
|
||||
1 SIMPLE t1 ALL a NULL NULL NULL 3 Using where
|
||||
select * from t1 left join t2 on a=c where d = 4;
|
||||
a b c d
|
||||
3 2 3 4
|
||||
4 2 4 4
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (
|
||||
i int(11) NOT NULL default '0',
|
||||
c char(10) NOT NULL default '',
|
||||
@ -2333,9 +2354,6 @@ INSERT INTO t1 VALUES (3,'c');
|
||||
EXPLAIN SELECT i FROM t1 WHERE i=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
|
||||
EXPLAIN SELECT i FROM t1 WHERE i=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
K2C4 varchar(4) character set latin1 collate latin1_bin NOT NULL default '',
|
||||
|
@ -460,4 +460,17 @@ end|
|
||||
call bug3294()|
|
||||
ERROR 42S02: Unknown table 't5'
|
||||
drop procedure bug3294|
|
||||
drop procedure if exists bug6807|
|
||||
create procedure bug6807()
|
||||
begin
|
||||
declare id int;
|
||||
set id = connection_id();
|
||||
kill query id;
|
||||
select 'Not reached';
|
||||
end|
|
||||
call bug6807()|
|
||||
ERROR 70100: Query execution was interrupted
|
||||
call bug6807()|
|
||||
ERROR 70100: Query execution was interrupted
|
||||
drop procedure bug6807|
|
||||
drop table t1|
|
||||
|
@ -61,7 +61,7 @@ t1 CREATE TABLE `t1` (
|
||||
set @@sql_mode="no_field_options,mysql323,mysql40";
|
||||
show variables like 'sql_mode';
|
||||
Variable_name Value
|
||||
sql_mode NO_FIELD_OPTIONS,MYSQL323,MYSQL40,BROKEN_NOT
|
||||
sql_mode NO_FIELD_OPTIONS,MYSQL323,MYSQL40,HIGH_NOT_PRECEDENCE
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -713,8 +713,8 @@ NULL
|
||||
-99.99
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (col1 FLOAT, col2 FLOAT UNSIGNED);
|
||||
INSERT INTO t1 VALUES (-1.1E-38,0),(+3.4E+38,+3.4E+38);
|
||||
INSERT INTO t1 VALUES ('-1.1E-38',0),('+3.4E+38','+3.4E+38');
|
||||
INSERT INTO t1 VALUES (-1.1E-37,0),(+3.4E+38,+3.4E+38);
|
||||
INSERT INTO t1 VALUES ('-1.1E-37',0),('+3.4E+38','+3.4E+38');
|
||||
INSERT INTO t1 (col1) VALUES (3E-46);
|
||||
INSERT INTO t1 (col1) VALUES (+3.4E+39);
|
||||
ERROR 22003: Out of range value adjusted for column 'col1' at row 1
|
||||
@ -752,9 +752,9 @@ Warning 1264 Out of range value adjusted for column 'col1' at row 1
|
||||
Warning 1264 Out of range value adjusted for column 'col2' at row 1
|
||||
SELECT * FROM t1;
|
||||
col1 col2
|
||||
-1.1e-38 0
|
||||
-1.1e-37 0
|
||||
3.4e+38 3.4e+38
|
||||
-1.1e-38 0
|
||||
-1.1e-37 0
|
||||
3.4e+38 3.4e+38
|
||||
0 NULL
|
||||
2 NULL
|
||||
@ -763,8 +763,8 @@ NULL NULL
|
||||
3.40282e+38 0
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (col1 DOUBLE PRECISION, col2 DOUBLE PRECISION UNSIGNED);
|
||||
INSERT INTO t1 VALUES (-2.2E-308,0),(+1.7E+308,+1.7E+308);
|
||||
INSERT INTO t1 VALUES ('-2.2E-308',0),('+1.7E+308','+1.7E+308');
|
||||
INSERT INTO t1 VALUES (-2.2E-307,0),(+1.7E+308,+1.7E+308);
|
||||
INSERT INTO t1 VALUES ('-2.2E-307',0),('+1.7E+308','+1.7E+308');
|
||||
INSERT INTO t1 (col1) VALUES (-2.2E-330);
|
||||
INSERT INTO t1 (col1) VALUES (+1.7E+309);
|
||||
ERROR 22007: Illegal double '1.7E+309' value found during parsing
|
||||
@ -801,9 +801,9 @@ Warning 1264 Out of range value adjusted for column 'col2' at row 1
|
||||
Warning 1264 Out of range value adjusted for column 'col2' at row 1
|
||||
SELECT * FROM t1;
|
||||
col1 col2
|
||||
-2.2e-308 0
|
||||
-2.2e-307 0
|
||||
1.7e+308 1.7e+308
|
||||
-2.2e-308 0
|
||||
-2.2e-307 0
|
||||
1.7e+308 1.7e+308
|
||||
0 NULL
|
||||
2 NULL
|
||||
|
@ -8,7 +8,7 @@ create temporary table t1 (a int, b int);
|
||||
create view v1 (c) as select b+1 from t1;
|
||||
ERROR HY000: View's SELECT contains a temporary table 't1'
|
||||
drop table t1;
|
||||
create table t1 (a int, b int);
|
||||
create table t1 (a int, b int) max_rows=1000000;
|
||||
insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
|
||||
create view v1 (c,d) as select a,b+@@global.max_user_connections from t1;
|
||||
ERROR HY000: View's SELECT contains a variable or parameter
|
||||
@ -149,7 +149,7 @@ v5 VIEW
|
||||
v6 VIEW
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 MyISAM 9 Fixed 5 9 45 38654705663 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
t1 MyISAM 9 Fixed 5 9 45 150994943 1024 0 NULL # # NULL latin1_swedish_ci NULL max_rows=1000000
|
||||
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
@ -1213,18 +1213,14 @@ select * from v1;
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
create function x1 () returns int return 5;
|
||||
create table t1 (s1 int);
|
||||
create table t1 (s1 int) max_rows=1000000;
|
||||
create view v1 as select x1() from t1;
|
||||
drop function x1;
|
||||
select * from v1;
|
||||
ERROR 42000: FUNCTION test.x1 does not exist
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 MyISAM 9 Fixed 0 0 0 21474836479 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL FUNCTION test.x1 does not exist
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 MyISAM 9 Fixed 0 0 0 21474836479 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
t1 MyISAM 9 Fixed 0 0 0 83886079 1024 0 NULL # # NULL latin1_swedish_ci NULL max_rows=1000000
|
||||
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL FUNCTION test.x1 does not exist
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
@ -21,7 +21,7 @@ SELECT * FROM t1 where (1 AND a)=1;
|
||||
SELECT * FROM t1 where (1 AND a) IS NULL;
|
||||
|
||||
# WL#638 - Behaviour of NOT does not follow SQL specification
|
||||
set sql_mode='broken_not';
|
||||
set sql_mode='high_not_precedence';
|
||||
select * from t1 where not a between 2 and 3;
|
||||
set sql_mode=default;
|
||||
select * from t1 where not a between 2 and 3;
|
||||
|
@ -38,7 +38,10 @@ drop table t1;
|
||||
|
||||
#
|
||||
# Bug #5497: a problem with large strings
|
||||
# note that when LOW_MEMORY is set the "test" below is meaningless
|
||||
#
|
||||
|
||||
set @@max_allowed_packet=1048576*100;
|
||||
select compress(repeat('aaaaaaaaaa', 10000000)) is null;
|
||||
--replace_result "''" XXX "'1'" XXX
|
||||
eval select compress(repeat('aaaaaaaaaa', IF('$LOW_MEMORY', 10, 10000000))) is null;
|
||||
|
||||
|
@ -162,16 +162,18 @@ grant select(a) on test.t1 to drop_user1@localhost;
|
||||
grant select on test.t1 to drop_user2@localhost;
|
||||
grant select on test.* to drop_user3@localhost;
|
||||
grant select on *.* to drop_user4@localhost;
|
||||
--error 1268
|
||||
# Drop user now implicitly revokes all privileges.
|
||||
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
||||
drop_user4@localhost;
|
||||
--error 1269
|
||||
revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
|
||||
drop_user3@localhost, drop_user4@localhost;
|
||||
--error 1396
|
||||
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
||||
drop_user4@localhost;
|
||||
drop table t1;
|
||||
grant usage on *.* to mysqltest_1@localhost identified by "password";
|
||||
grant select, update, insert on test.* to mysqltest@localhost;
|
||||
grant select, update, insert on test.* to mysqltest_1@localhost;
|
||||
show grants for mysqltest_1@localhost;
|
||||
drop user mysqltest_1@localhost;
|
||||
|
||||
@ -195,6 +197,9 @@ GRANT SELECT (
|
||||
SHOW GRANTS FOR <20><><EFBFBD><EFBFBD>@localhost;
|
||||
REVOKE SELECT (<28><><EFBFBD>) ON <20><>.<2E><><EFBFBD> FROM <20><><EFBFBD><EFBFBD>@localhost;
|
||||
|
||||
# Revoke does not drop user. Leave a clean user table for the next tests.
|
||||
DROP USER <20><><EFBFBD><EFBFBD>@localhost;
|
||||
|
||||
DROP DATABASE <20><>;
|
||||
SET NAMES latin1;
|
||||
|
||||
|
@ -78,3 +78,152 @@ use test;
|
||||
delete from mysql.user where user like 'mysqltest\_%';
|
||||
delete from mysql.db where user like 'mysqltest\_%';
|
||||
flush privileges;
|
||||
|
||||
#
|
||||
# Create and drop user
|
||||
#
|
||||
set sql_mode='maxdb';
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
create table t1(c1 int);
|
||||
create table t2(c1 int, c2 int);
|
||||
#
|
||||
# Three forms of CREATE USER
|
||||
create user 'mysqltest_1';
|
||||
--error 1396
|
||||
create user 'mysqltest_1';
|
||||
create user 'mysqltest_2' identified by 'Mysqltest-2';
|
||||
create user 'mysqltest_3' identified by password 'fffffffffffffffffffffffffffffffffffffffff';
|
||||
grant select on *.* to 'mysqltest_2';
|
||||
grant insert on test.* to 'mysqltest_2';
|
||||
grant update on test.t1 to 'mysqltest_2';
|
||||
grant update (c2) on test.t2 to 'mysqltest_2';
|
||||
select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
|
||||
select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
|
||||
select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
|
||||
select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
|
||||
show grants for 'mysqltest_1';
|
||||
show grants for 'mysqltest_2';
|
||||
#
|
||||
# Drop
|
||||
drop user 'mysqltest_1';
|
||||
select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
|
||||
select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
|
||||
select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
|
||||
select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
|
||||
--error 1141
|
||||
show grants for 'mysqltest_1';
|
||||
#
|
||||
# Rename
|
||||
rename user 'mysqltest_2' to 'mysqltest_1';
|
||||
select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
|
||||
select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
|
||||
select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
|
||||
select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
|
||||
show grants for 'mysqltest_1';
|
||||
drop user 'mysqltest_1', 'mysqltest_3';
|
||||
#
|
||||
# Grant must not create user
|
||||
--error 1211
|
||||
grant all on test.t1 to 'mysqltest_1';
|
||||
--error 1396
|
||||
drop user 'mysqltest_1';
|
||||
#
|
||||
# Cleanup
|
||||
drop table t1, t2;
|
||||
#
|
||||
# Add a stray record
|
||||
insert into mysql.db set user='mysqltest_1', db='%', host='%';
|
||||
flush privileges;
|
||||
--error 1141
|
||||
show grants for 'mysqltest_1';
|
||||
--error 1269
|
||||
revoke all privileges, grant option from 'mysqltest_1';
|
||||
drop user 'mysqltest_1';
|
||||
select host,db,user from mysql.db where user = 'mysqltest_1' order by host,db,user;
|
||||
#
|
||||
# Add a stray record
|
||||
insert into mysql.tables_priv set host='%', db='test', user='mysqltest_1', table_name='t1';
|
||||
flush privileges;
|
||||
--error 1141
|
||||
show grants for 'mysqltest_1';
|
||||
drop user 'mysqltest_1';
|
||||
select host,db,user,table_name from mysql.tables_priv where user = 'mysqltest_1' order by host,db,user,table_name;
|
||||
#
|
||||
# Add a stray record
|
||||
insert into mysql.columns_priv set host='%', db='test', user='mysqltest_1', table_name='t1', column_name='c1';
|
||||
flush privileges;
|
||||
--error 1141
|
||||
show grants for 'mysqltest_1';
|
||||
drop user 'mysqltest_1';
|
||||
select host,db,user,table_name,column_name from mysql.columns_priv where user = 'mysqltest_1' order by host,db,user,table_name,column_name;
|
||||
#
|
||||
# Handle multi user lists
|
||||
create user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
|
||||
drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
|
||||
create user 'mysqltest_1', 'mysqltest_2' identified by 'Mysqltest-2', 'mysqltest_3' identified by password 'fffffffffffffffffffffffffffffffffffffffff';
|
||||
rename user 'mysqltest_1' to 'mysqltest_1a', 'mysqltest_2' TO 'mysqltest_2a', 'mysqltest_3' TO 'mysqltest_3a';
|
||||
--error 1396
|
||||
drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
|
||||
drop user 'mysqltest_1a', 'mysqltest_2a', 'mysqltest_3a';
|
||||
#
|
||||
# Let one of multiple users fail
|
||||
create user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
|
||||
--error 1396
|
||||
create user 'mysqltest_1a', 'mysqltest_2', 'mysqltest_3a';
|
||||
--error 1396
|
||||
rename user 'mysqltest_1a' to 'mysqltest_1b', 'mysqltest_2a' TO 'mysqltest_2b', 'mysqltest_3a' TO 'mysqltest_3b';
|
||||
drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
|
||||
--error 1396
|
||||
drop user 'mysqltest_1b', 'mysqltest_2b', 'mysqltest_3b';
|
||||
#
|
||||
# Obsolete syntax has been dropped
|
||||
create user 'mysqltest_2' identified by 'Mysqltest-2';
|
||||
--error 1064
|
||||
drop user 'mysqltest_2' identified by 'Mysqltest-2';
|
||||
#
|
||||
# Strange user names
|
||||
create user '%@b'@'b';
|
||||
show grants for '%@b'@'b';
|
||||
grant select on mysql.* to '%@b'@'b';
|
||||
show grants for '%@b'@'b';
|
||||
rename user '%@b'@'b' to '%@a'@'a';
|
||||
--error 1141
|
||||
show grants for '%@b'@'b';
|
||||
show grants for '%@a'@'a';
|
||||
drop user '%@a'@'a';
|
||||
#
|
||||
# USAGE WITH GRANT OPTION is sufficient.
|
||||
create user mysqltest_2@localhost;
|
||||
grant usage on *.* to mysqltest_2@localhost with grant option;
|
||||
connect (user2,localhost,mysqltest_2,,);
|
||||
connection user2;
|
||||
--error 1044
|
||||
select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
|
||||
create user mysqltest_A@'%';
|
||||
rename user mysqltest_A@'%' to mysqltest_B@'%';
|
||||
drop user mysqltest_B@'%';
|
||||
disconnect user2;
|
||||
connection default;
|
||||
drop user mysqltest_2@localhost;
|
||||
#
|
||||
# ALL PRIVILEGES without GRANT OPTION is not sufficient.
|
||||
create user mysqltest_3@localhost;
|
||||
grant all privileges on mysql.* to mysqltest_3@localhost;
|
||||
connect (user3,localhost,mysqltest_3,,);
|
||||
connection user3;
|
||||
select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
|
||||
insert into mysql.user set host='%', user='mysqltest_B';
|
||||
--error 1044
|
||||
create user mysqltest_A@'%';
|
||||
--error 1044
|
||||
rename user mysqltest_B@'%' to mysqltest_C@'%';
|
||||
--error 1044
|
||||
drop user mysqltest_B@'%';
|
||||
disconnect user3;
|
||||
connection default;
|
||||
drop user mysqltest_B@'%';
|
||||
drop user mysqltest_3@localhost;
|
||||
#
|
||||
|
||||
|
@ -110,24 +110,24 @@ select count(*) from information_schema.ROUTINES;
|
||||
#
|
||||
# Test for views
|
||||
#
|
||||
create view v0 (c) as select schema_name from information_schema.SCHEMATA;
|
||||
create view v0 (c) as select schema_name from information_schema.schemata;
|
||||
select * from v0;
|
||||
--replace_column 3 #
|
||||
explain select * from v0;
|
||||
create view v1 (c) as select table_name from information_schema.TABLES
|
||||
create view v1 (c) as select table_name from information_schema.tables
|
||||
where table_name="v1";
|
||||
select * from v1;
|
||||
create view v2 (c) as select column_name from information_schema.COLUMNS
|
||||
create view v2 (c) as select column_name from information_schema.columns
|
||||
where table_name="v2";
|
||||
select * from v2;
|
||||
create view v3 (c) as select CHARACTER_SET_NAME from information_schema.CHARACTER_SETS
|
||||
create view v3 (c) as select CHARACTER_SET_NAME from information_schema.character_sets
|
||||
where CHARACTER_SET_NAME like "latin1%";
|
||||
select * from v3;
|
||||
create view v4 (c) as select COLLATION_NAME from information_schema.COLLATIONS
|
||||
create view v4 (c) as select COLLATION_NAME from information_schema.collations
|
||||
where COLLATION_NAME like "latin1%";
|
||||
select * from v4;
|
||||
show keys from v4;
|
||||
select * from information_schema.VIEWS where TABLE_NAME like "v%";
|
||||
select * from information_schema.views where TABLE_NAME like "v%";
|
||||
drop view v0, v1, v2, v3, v4;
|
||||
|
||||
#
|
||||
@ -222,9 +222,9 @@ information_schema.tables) union select version from
|
||||
information_schema.tables;
|
||||
drop table t1;
|
||||
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.CHARACTER_SETS;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
|
||||
set names latin2;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.CHARACTER_SETS;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
|
||||
set names latin1;
|
||||
|
||||
create table t1 select * from information_schema.CHARACTER_SETS
|
||||
@ -260,3 +260,16 @@ from information_schema.columns; open c; open c; end;//
|
||||
call p108()//
|
||||
delimiter ;//
|
||||
drop procedure p108;
|
||||
|
||||
create view v1 as select A1.table_name from information_schema.TABLES A1
|
||||
where table_name= "user";
|
||||
select * from v1;
|
||||
drop view v1;
|
||||
|
||||
create view vo as select 'a' union select 'a';
|
||||
show index from vo;
|
||||
select * from information_schema.TABLE_CONSTRAINTS where
|
||||
TABLE_NAME= "vo";
|
||||
select * from information_schema.KEY_COLUMN_USAGE where
|
||||
TABLE_NAME= "vo";
|
||||
drop view vo;
|
||||
|
@ -226,19 +226,23 @@ grant select on test.t1 to drop_user2@localhost;
|
||||
grant select on test.* to drop_user3@localhost;
|
||||
grant select on *.* to drop_user4@localhost;
|
||||
commit;
|
||||
--error 1268
|
||||
flush privileges;
|
||||
# Drop user now implicitly revokes all privileges.
|
||||
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
||||
drop_user4@localhost;
|
||||
begin;
|
||||
--error 1269
|
||||
revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
|
||||
drop_user3@localhost, drop_user4@localhost;
|
||||
commit;
|
||||
flush privileges;
|
||||
#--error 1268
|
||||
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
|
||||
drop_user4@localhost;
|
||||
drop table t1;
|
||||
begin;
|
||||
grant usage on *.* to mysqltest_1@localhost identified by "password";
|
||||
grant select, update, insert on test.* to mysqltest@localhost;
|
||||
grant select, update, insert on test.* to mysqltest_1@localhost;
|
||||
commit;
|
||||
show grants for mysqltest_1@localhost;
|
||||
drop user mysqltest_1@localhost;
|
||||
@ -351,6 +355,11 @@ DROP DATABASE testdb8;
|
||||
DROP DATABASE testdb9;
|
||||
DROP DATABASE testdb10;
|
||||
|
||||
#
|
||||
# just SHOW PRIVILEGES test
|
||||
#
|
||||
SHOW PRIVILEGES;
|
||||
|
||||
#
|
||||
# Alter mysql system tables back to myisam
|
||||
#
|
||||
|
@ -500,3 +500,9 @@ insert into t1 set a = concat(repeat('x', 19), 'aa');
|
||||
set max_sort_length=20;
|
||||
select a from t1 order by a;
|
||||
drop table t1;
|
||||
|
||||
create table t1 (a int not null, b int not null, c int not null);
|
||||
insert t1 values (1,1,1),(1,1,2),(1,2,1);
|
||||
select a, b from t1 group by a, b order by sum(c);
|
||||
drop table t1;
|
||||
|
||||
|
34
mysql-test/t/rpl_start_stop_slave.test
Normal file
34
mysql-test/t/rpl_start_stop_slave.test
Normal file
@ -0,0 +1,34 @@
|
||||
source include/master-slave.inc;
|
||||
|
||||
#
|
||||
# Bug#6148 ()
|
||||
#
|
||||
connection slave;
|
||||
stop slave;
|
||||
|
||||
# Let the master do lots of insertions
|
||||
connection master;
|
||||
create table t1(n int);
|
||||
let $1=5000;
|
||||
disable_query_log;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values($1);
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
save_master_pos;
|
||||
|
||||
connection slave;
|
||||
start slave;
|
||||
sleep 1;
|
||||
stop slave io_thread;
|
||||
start slave io_thread;
|
||||
sync_with_master;
|
||||
|
||||
connection master;
|
||||
drop table t1;
|
||||
save_master_pos;
|
||||
|
||||
connection slave;
|
||||
sync_with_master;
|
@ -1899,6 +1899,20 @@ select * from t1,t2 where t1.s = t2.s;
|
||||
select * from t2,t3 where t2.s = t3.s;
|
||||
drop table t1, t2, t3;
|
||||
|
||||
#
|
||||
# Bug #3759
|
||||
# Both queries should produce identical plans and results.
|
||||
#
|
||||
create table t1 (a integer, b integer, index(a), index(b));
|
||||
create table t2 (c integer, d integer, index(c), index(d));
|
||||
insert into t1 values (1,2), (2,2), (3,2), (4,2);
|
||||
insert into t2 values (1,3), (2,3), (3,4), (4,4);
|
||||
explain select * from t1 left join t2 on a=c where d in (4);
|
||||
select * from t1 left join t2 on a=c where d in (4);
|
||||
explain select * from t1 left join t2 on a=c where d = 4;
|
||||
select * from t1 left join t2 on a=c where d = 4;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Covering index is mentioned in EXPLAIN output for const tables (bug #5333)
|
||||
#
|
||||
@ -1916,8 +1930,6 @@ INSERT INTO t1 VALUES (3,'c');
|
||||
|
||||
EXPLAIN SELECT i FROM t1 WHERE i=1;
|
||||
|
||||
EXPLAIN SELECT i FROM t1 WHERE i=1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
|
@ -632,6 +632,28 @@ end|
|
||||
call bug3294()|
|
||||
drop procedure bug3294|
|
||||
|
||||
#
|
||||
# BUG#6807: Stored procedure crash if CREATE PROCEDURE ... KILL QUERY
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug6807|
|
||||
--enable_warnings
|
||||
create procedure bug6807()
|
||||
begin
|
||||
declare id int;
|
||||
|
||||
set id = connection_id();
|
||||
kill query id;
|
||||
select 'Not reached';
|
||||
end|
|
||||
|
||||
--error 1317
|
||||
call bug6807()|
|
||||
--error 1317
|
||||
call bug6807()|
|
||||
|
||||
drop procedure bug6807|
|
||||
|
||||
|
||||
drop table t1|
|
||||
|
||||
|
@ -493,8 +493,8 @@ DROP TABLE t1;
|
||||
# Test INSERT with FLOAT
|
||||
|
||||
CREATE TABLE t1 (col1 FLOAT, col2 FLOAT UNSIGNED);
|
||||
INSERT INTO t1 VALUES (-1.1E-38,0),(+3.4E+38,+3.4E+38);
|
||||
INSERT INTO t1 VALUES ('-1.1E-38',0),('+3.4E+38','+3.4E+38');
|
||||
INSERT INTO t1 VALUES (-1.1E-37,0),(+3.4E+38,+3.4E+38);
|
||||
INSERT INTO t1 VALUES ('-1.1E-37',0),('+3.4E+38','+3.4E+38');
|
||||
# We don't give warnings for underflow
|
||||
INSERT INTO t1 (col1) VALUES (3E-46);
|
||||
--error 1264
|
||||
@ -527,8 +527,8 @@ DROP TABLE t1;
|
||||
# Test INSERT with DOUBLE
|
||||
|
||||
CREATE TABLE t1 (col1 DOUBLE PRECISION, col2 DOUBLE PRECISION UNSIGNED);
|
||||
INSERT INTO t1 VALUES (-2.2E-308,0),(+1.7E+308,+1.7E+308);
|
||||
INSERT INTO t1 VALUES ('-2.2E-308',0),('+1.7E+308','+1.7E+308');
|
||||
INSERT INTO t1 VALUES (-2.2E-307,0),(+1.7E+308,+1.7E+308);
|
||||
INSERT INTO t1 VALUES ('-2.2E-307',0),('+1.7E+308','+1.7E+308');
|
||||
# We don't give warnings for underflow
|
||||
INSERT INTO t1 (col1) VALUES (-2.2E-330);
|
||||
--error 1367
|
||||
|
@ -9,20 +9,20 @@ use test;
|
||||
# some basic test of views and its functionality
|
||||
#
|
||||
|
||||
# create view on unexistence table
|
||||
# create view on nonexistent table
|
||||
-- error 1146
|
||||
create view v1 (c,d) as select a,b from t1;
|
||||
|
||||
create temporary table t1 (a int, b int);
|
||||
#view on temporary table
|
||||
# view on temporary table
|
||||
-- error 1352
|
||||
create view v1 (c) as select b+1 from t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1 (a int, b int);
|
||||
create table t1 (a int, b int) max_rows=1000000;
|
||||
insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
|
||||
|
||||
#view with variable
|
||||
# view with variable
|
||||
-- error 1351
|
||||
create view v1 (c,d) as select a,b+@@global.max_user_connections from t1;
|
||||
|
||||
@ -30,7 +30,7 @@ create view v1 (c,d) as select a,b+@@global.max_user_connections from t1;
|
||||
create view v1 (c) as select b+1 from t1;
|
||||
select c from v1;
|
||||
|
||||
#tamporary table should not shade (hide) table of view
|
||||
# temporary table should not hide table of view
|
||||
create temporary table t1 (a int, b int);
|
||||
# this is empty
|
||||
select * from t1;
|
||||
@ -42,7 +42,7 @@ show create view v1;
|
||||
show create view t1;
|
||||
drop table t1;
|
||||
|
||||
# try to use fields from underlaid table
|
||||
# try to use fields from underlying table
|
||||
-- error 1054
|
||||
select a from v1;
|
||||
-- error 1054
|
||||
@ -52,14 +52,14 @@ select b from v1;
|
||||
-- error 1054
|
||||
select v1.b from v1;
|
||||
|
||||
# view with different algorithms (explain out put are differ)
|
||||
# view with different algorithms (explain output differs)
|
||||
explain extended select c from v1;
|
||||
create algorithm=temptable view v2 (c) as select b+1 from t1;
|
||||
show create view v2;
|
||||
select c from v2;
|
||||
explain extended select c from v2;
|
||||
|
||||
# try to use underlaid table fields in VIEW creation process
|
||||
# try to use underlying table fields in VIEW creation process
|
||||
-- error 1054
|
||||
create view v3 (c) as select a+1 from v1;
|
||||
-- error 1054
|
||||
@ -127,19 +127,19 @@ show grants for test@localhost;
|
||||
revoke create view on test.* from test@localhost;
|
||||
show grants for test@localhost;
|
||||
|
||||
#try to drop unexisten VIEW
|
||||
# try to drop nonexistent VIEW
|
||||
-- error 1051
|
||||
drop view v100;
|
||||
|
||||
#try to drop table with DROP VIEW
|
||||
# try to drop table with DROP VIEW
|
||||
-- error 1347
|
||||
drop view t1;
|
||||
|
||||
#try to drop VIEW with DROP TABLE
|
||||
# try to drop VIEW with DROP TABLE
|
||||
-- error 1051
|
||||
drop table v1;
|
||||
|
||||
#try to drop table with DROP VIEW
|
||||
# try to drop table with DROP VIEW
|
||||
|
||||
drop view v1,v2;
|
||||
drop table t1;
|
||||
@ -213,7 +213,7 @@ grant select (c) on mysqltest.v1 to mysqltest_1@localhost;
|
||||
|
||||
connection user1;
|
||||
select c from mysqltest.v1;
|
||||
# there are not privilege ob column 'd'
|
||||
# there are no privileges on column 'd'
|
||||
-- error 1143
|
||||
select d from mysqltest.v1;
|
||||
|
||||
@ -233,7 +233,7 @@ grant select (c) on mysqltest.v1 to mysqltest_1@localhost;
|
||||
|
||||
connection user1;
|
||||
select c from mysqltest.v1;
|
||||
# there are not privilege ob column 'd'
|
||||
# there are no privileges on column 'd'
|
||||
-- error 1143
|
||||
select d from mysqltest.v1;
|
||||
|
||||
@ -288,7 +288,7 @@ explain select c from mysqltest.v4;
|
||||
-- error 1142
|
||||
show create view mysqltest.v4;
|
||||
|
||||
# allow to see one of underlaing table
|
||||
# allow to see one of underlying table
|
||||
connection root;
|
||||
grant select on mysqltest.t1 to mysqltest_1@localhost;
|
||||
connection user1;
|
||||
@ -328,7 +328,7 @@ delete from mysql.user where user='mysqltest_1';
|
||||
drop database mysqltest;
|
||||
|
||||
#
|
||||
# QUERY CHECHE options for VIEWs
|
||||
# QUERY CACHE options for VIEWs
|
||||
#
|
||||
set GLOBAL query_cache_size=1355776;
|
||||
flush status;
|
||||
@ -425,7 +425,7 @@ drop table t1;
|
||||
drop view v1,v2;
|
||||
|
||||
#
|
||||
# LIMIT clasuse test
|
||||
# LIMIT clause test
|
||||
#
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1), (2), (3), (4);
|
||||
@ -538,7 +538,7 @@ REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
|
||||
drop database mysqltest;
|
||||
|
||||
#
|
||||
# MEREGE VIEW with WHERE clause
|
||||
# MERGE VIEW with WHERE clause
|
||||
#
|
||||
create table t1 (a int, b int, primary key(b));
|
||||
insert into t1 values (1,20), (2,30), (3,40), (4,50), (5,100);
|
||||
@ -811,7 +811,7 @@ create view mysqltest.v1 as select * from mysqltest.t1;
|
||||
-- error 1143
|
||||
create view v3 as select a from mysqltest.t2;
|
||||
|
||||
# give CRETEA VIEW privileges (without any privileges for result colemn)
|
||||
# give CREATE VIEW privileges (without any privileges for result column)
|
||||
connection root;
|
||||
create table mysqltest.v3 (b int);
|
||||
grant create view on mysqltest.v3 to mysqltest_1@localhost;
|
||||
@ -826,7 +826,7 @@ drop view mysqltest.v3;
|
||||
connection user1;
|
||||
create view mysqltest.v3 as select b from mysqltest.t2;
|
||||
|
||||
# give UPDATE and INSERT privilege (to get more privileges then anderlying
|
||||
# give UPDATE and INSERT privilege (to get more privileges then underlying
|
||||
# table)
|
||||
connection root;
|
||||
grant create view, update, insert on mysqltest.v3 to mysqltest_1@localhost;
|
||||
@ -836,8 +836,8 @@ connection user1;
|
||||
create view mysqltest.v3 as select b from mysqltest.t2;
|
||||
|
||||
|
||||
# If give other privileges for VIEW then underlaying table have =>
|
||||
# creation prohibited
|
||||
# If we would get more privileges on VIEW then we have on
|
||||
# underlying tables => creation prohibited
|
||||
connection root;
|
||||
create table mysqltest.v3 (b int);
|
||||
grant select(b) on mysqltest.v3 to mysqltest_1@localhost;
|
||||
@ -897,7 +897,7 @@ drop view v1;
|
||||
drop table `t1a``b`;
|
||||
|
||||
#
|
||||
# Changing of underlaying table
|
||||
# Changing of underlying table
|
||||
#
|
||||
create table t1 (col1 char(5),col2 char(5));
|
||||
create view v1 as select * from t1;
|
||||
@ -927,7 +927,7 @@ call p1();
|
||||
drop procedure p1;
|
||||
|
||||
#
|
||||
# updateablity should be transitive
|
||||
# updatablity should be transitive
|
||||
#
|
||||
create table t1 (col1 int,col2 char(22));
|
||||
insert into t1 values(5,'Hello, world of views');
|
||||
@ -960,7 +960,7 @@ drop view v1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test of view updatebility in prepared statement
|
||||
# Test of view updatability in prepared statement
|
||||
#
|
||||
create table t1 (a int);
|
||||
create view v1 as select a from t1;
|
||||
@ -1162,23 +1162,21 @@ drop view v1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# VIEW over droped function
|
||||
# VIEW over dropped function
|
||||
#
|
||||
create function x1 () returns int return 5;
|
||||
create table t1 (s1 int);
|
||||
create table t1 (s1 int) max_rows=1000000;
|
||||
create view v1 as select x1() from t1;
|
||||
drop function x1;
|
||||
-- error 1305
|
||||
select * from v1;
|
||||
--replace_column 12 # 13 #
|
||||
show table status;
|
||||
--replace_column 12 # 13 #
|
||||
show table status;
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# VIEW with floating point (long bumber) as column
|
||||
# VIEW with floating point (long number) as column
|
||||
#
|
||||
create view v1 as select 99999999999999999999999999999999999999999999999999999 as col1;
|
||||
show create view v1;
|
||||
@ -1213,7 +1211,7 @@ select * from v1;
|
||||
drop view v1;
|
||||
|
||||
#
|
||||
# bug handlimg from VIEWs
|
||||
# bug handling from VIEWs
|
||||
#
|
||||
create view v1 as select 'a',1;
|
||||
create view v2 as select * from v1 union all select * from v1;
|
||||
|
Reference in New Issue
Block a user