1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Merge branch '10.7' into 10.8

This commit is contained in:
Oleksandr Byelkin
2022-10-04 11:42:37 +02:00
347 changed files with 13406 additions and 5523 deletions

View File

@ -257,9 +257,11 @@ ENDIF()
INCLUDE(wsrep) INCLUDE(wsrep)
OPTION(WITH_DBUG_TRACE "Enable DBUG_ENTER()/DBUG_EXIT()" ON) OPTION(WITH_DBUG_TRACE "Enable DBUG_ENTER()/DBUG_RETURN()/DBUG_PRINT()" ON)
IF(WITH_DBUG_TRACE) IF(WITH_DBUG_TRACE)
ADD_DEFINITIONS(-DDBUG_TRACE) FOREACH(LANG C CXX)
SET(CMAKE_${LANG}_FLAGS_DEBUG "${CMAKE_${LANG}_FLAGS_DEBUG} -DDBUG_TRACE")
ENDFOREACH()
ENDIF() ENDIF()
# Always enable debug sync for debug builds. # Always enable debug sync for debug builds.

View File

@ -365,7 +365,7 @@ wsrep_forced_binlog_format=none
special value NONE, meaning that there is no forced binlog format in effect. special value NONE, meaning that there is no forced binlog format in effect.
This variable was introduced to support STATEMENT format replication during This variable was introduced to support STATEMENT format replication during
rolling schema upgrade processing. However, in most cases ROW replication rolling schema upgrade processing. However, in most cases ROW replication
is valid for asymmetrict schema replication. is valid for asymmetric schema replication.
State snapshot transfer options. State snapshot transfer options.
@ -416,7 +416,7 @@ wsrep_sst_donor=
6. ONLINE SCHEMA UPGRADE 6. ONLINE SCHEMA UPGRADE
Schema upgrades mean any data definition statements (DDL statemnents) run Schema upgrades mean any data definition statements (DDL statements) run
for the database. They change the database structure and are non- for the database. They change the database structure and are non-
transactional. transactional.
@ -429,7 +429,7 @@ wsrep_sst_donor=
With earlier releases, DDL processing happened always by Total Order With earlier releases, DDL processing happened always by Total Order
Isolation (TOI) method. With TOI, the DDL was scheduled to be processed in Isolation (TOI) method. With TOI, the DDL was scheduled to be processed in
same transaction seqeuncing 'slot' in each cluster node. same transaction sequencing 'slot' in each cluster node.
The processing is secured by locking the affected table from any other use. The processing is secured by locking the affected table from any other use.
With TOI method, the whole cluster has part of the database locked for the With TOI method, the whole cluster has part of the database locked for the
duration of the DDL processing. duration of the DDL processing.

View File

@ -177,7 +177,7 @@ HA_EXTRA_NO_KEYREAD=8 Normal read of records (def)
HA_EXTRA_NO_USER_CHANGE=9 No user is allowed to write HA_EXTRA_NO_USER_CHANGE=9 No user is allowed to write
HA_EXTRA_KEY_CACHE=10 HA_EXTRA_KEY_CACHE=10
HA_EXTRA_NO_KEY_CACHE=11 HA_EXTRA_NO_KEY_CACHE=11
HA_EXTRA_WAIT_LOCK=12 Wait until file is avalably (def) HA_EXTRA_WAIT_LOCK=12 Wait until file is available (def)
HA_EXTRA_NO_WAIT_LOCK=13 If file is locked, return quickly HA_EXTRA_NO_WAIT_LOCK=13 If file is locked, return quickly
HA_EXTRA_WRITE_CACHE=14 Use write cache in ha_write() HA_EXTRA_WRITE_CACHE=14 Use write cache in ha_write()
HA_EXTRA_FLUSH_CACHE=15 flush write_record_cache HA_EXTRA_FLUSH_CACHE=15 flush write_record_cache

View File

@ -935,7 +935,7 @@ static int run_mysqlcheck_upgrade(my_bool mysql_db_only)
return 0; return 0;
} }
verbose("Phase %d/%d: Checking and upgrading %s", ++phase, phases_total, what); verbose("Phase %d/%d: Checking and upgrading %s", ++phase, phases_total, what);
print_conn_args("mysqlcheck"); print_conn_args("mariadb-check");
retch= run_tool(mysqlcheck_path, retch= run_tool(mysqlcheck_path,
NULL, /* Send output from mysqlcheck directly to screen */ NULL, /* Send output from mysqlcheck directly to screen */
defaults_file, defaults_file,
@ -1451,7 +1451,7 @@ int main(int argc, char **argv)
} }
/* Find mysql */ /* Find mysql */
find_tool(mysql_path, IF_WIN("mysql.exe", "mysql"), self_name); find_tool(mysql_path, IF_WIN("mariadb.exe", "mariadb"), self_name);
open_mysql_upgrade_file(); open_mysql_upgrade_file();
@ -1459,7 +1459,7 @@ int main(int argc, char **argv)
exit(upgrade_already_done(0) == 0); exit(upgrade_already_done(0) == 0);
/* Find mysqlcheck */ /* Find mysqlcheck */
find_tool(mysqlcheck_path, IF_WIN("mysqlcheck.exe", "mysqlcheck"), self_name); find_tool(mysqlcheck_path, IF_WIN("mariadb-check.exe", "mariadb-check"), self_name);
if (opt_systables_only && !opt_silent) if (opt_systables_only && !opt_silent)
printf("The --upgrade-system-tables option was used, user tables won't be touched.\n"); printf("The --upgrade-system-tables option was used, user tables won't be touched.\n");

View File

@ -507,7 +507,7 @@ list_dbs(MYSQL *mysql,const char *wild)
MYSQL_RES *tresult = mysql_list_tables(mysql,(char*)NULL); MYSQL_RES *tresult = mysql_list_tables(mysql,(char*)NULL);
if (mysql_affected_rows(mysql) > 0) if (mysql_affected_rows(mysql) > 0)
{ {
sprintf(tables,"%6lu",(ulong) mysql_affected_rows(mysql)); snprintf(tables, sizeof(tables), "%6lu",(ulong) mysql_affected_rows(mysql));
rowcount = 0; rowcount = 0;
if (opt_verbose > 1) if (opt_verbose > 1)
{ {
@ -528,13 +528,13 @@ list_dbs(MYSQL *mysql,const char *wild)
} }
} }
} }
sprintf(rows,"%12lu",rowcount); snprintf(rows, sizeof(rows), "%12lu", rowcount);
} }
} }
else else
{ {
sprintf(tables,"%6d",0); snprintf(tables, sizeof(tables), "%6d" ,0);
sprintf(rows,"%12d",0); snprintf(rows, sizeof(rows), "%12d", 0);
} }
mysql_free_result(tresult); mysql_free_result(tresult);
} }
@ -652,7 +652,7 @@ list_tables(MYSQL *mysql,const char *db,const char *table)
} }
else else
{ {
sprintf(fields,"%8u",(uint) mysql_num_fields(rresult)); snprintf(fields, sizeof(fields), "%8u", (uint) mysql_num_fields(rresult));
mysql_free_result(rresult); mysql_free_result(rresult);
if (opt_verbose > 1) if (opt_verbose > 1)
@ -668,10 +668,10 @@ list_tables(MYSQL *mysql,const char *db,const char *table)
rowcount += (unsigned long) strtoull(rrow[0], (char**) 0, 10); rowcount += (unsigned long) strtoull(rrow[0], (char**) 0, 10);
mysql_free_result(rresult); mysql_free_result(rresult);
} }
sprintf(rows,"%10lu",rowcount); snprintf(rows, sizeof(rows), "%10lu", rowcount);
} }
else else
sprintf(rows,"%10d",0); snprintf(rows, sizeof(rows), "%10d", 0);
} }
} }
} }

View File

@ -77,6 +77,9 @@ extern int (*dbug_sanity)(void);
_db_stack_frame_.line= 0; \ _db_stack_frame_.line= 0; \
} while(0) } while(0)
#define DBUG_PRINT(keyword,arglist) \
do if (_db_pargs_(__LINE__,keyword)) _db_doprnt_ arglist; while(0)
#ifdef HAVE_ATTRIBUTE_CLEANUP #ifdef HAVE_ATTRIBUTE_CLEANUP
#define DBUG_ENTER(a) struct _db_stack_frame_ _db_stack_frame_ __attribute__((cleanup(_db_return_))); \ #define DBUG_ENTER(a) struct _db_stack_frame_ _db_stack_frame_ __attribute__((cleanup(_db_return_))); \
_db_enter_ (a,__FILE__,__LINE__,&_db_stack_frame_) _db_enter_ (a,__FILE__,__LINE__,&_db_stack_frame_)
@ -94,15 +97,15 @@ extern int (*dbug_sanity)(void);
#define DBUG_ENTER(a) #define DBUG_ENTER(a)
#define DBUG_RETURN(a1) return(a1) #define DBUG_RETURN(a1) return(a1)
#define DBUG_VOID_RETURN return #define DBUG_VOID_RETURN return
#define DBUG_PRINT(keyword,arglist) do{} while(0)
#endif #endif
#define DBUG_EXECUTE(keyword,a1) \ #define DBUG_EXECUTE(keyword,a1) \
do {if (_db_keyword_(0, (keyword), 0)) { a1 }} while(0) do {if (_db_keyword_(0, (keyword), 0)) { a1 }} while(0)
#define DBUG_EXECUTE_IF(keyword,a1) \ #define DBUG_EXECUTE_IF(keyword,a1) \
do {if (_db_keyword_(0, (keyword), 1)) { a1 }} while(0) do {if (_db_keyword_(0, (keyword), 1)) { a1 }} while(0)
#define DBUG_IF(keyword) _db_keyword_(0, (keyword), 1) #define DBUG_IF(keyword) _db_keyword_(0, (keyword), 1)
#define DBUG_PRINT(keyword,arglist) \
do if (_db_pargs_(__LINE__,keyword)) _db_doprnt_ arglist; while(0)
#define DBUG_PUSH_EMPTY if (_dbug_on_) { DBUG_PUSH(""); } #define DBUG_PUSH_EMPTY if (_dbug_on_) { DBUG_PUSH(""); }
#define DBUG_POP_EMPTY if (_dbug_on_) { DBUG_POP(); } #define DBUG_POP_EMPTY if (_dbug_on_) { DBUG_POP(); }
@ -167,6 +170,7 @@ extern void _db_suicide_(void);
#define DBUG_LEAVE #define DBUG_LEAVE
#define DBUG_RETURN(a1) do { return(a1); } while(0) #define DBUG_RETURN(a1) do { return(a1); } while(0)
#define DBUG_VOID_RETURN do { return; } while(0) #define DBUG_VOID_RETURN do { return; } while(0)
#define DBUG_PRINT(keyword, arglist) do { } while(0)
#define DBUG_EXECUTE(keyword,a1) do { } while(0) #define DBUG_EXECUTE(keyword,a1) do { } while(0)
#define DBUG_EXECUTE_IF(keyword,a1) do { } while(0) #define DBUG_EXECUTE_IF(keyword,a1) do { } while(0)
#define DBUG_IF(keyword) 0 #define DBUG_IF(keyword) 0

View File

@ -436,6 +436,7 @@ void safe_mutex_free_deadlock_data(safe_mutex_t *mp);
#define my_cond_wait(A,B) safe_cond_wait((A), (B), __FILE__, __LINE__) #define my_cond_wait(A,B) safe_cond_wait((A), (B), __FILE__, __LINE__)
#else #else
#define safe_mutex_is_owner(mp) (1)
#define safe_mutex_assert_owner(mp) do {} while (0) #define safe_mutex_assert_owner(mp) do {} while (0)
#define safe_mutex_assert_not_owner(mp) do {} while (0) #define safe_mutex_assert_not_owner(mp) do {} while (0)
#define safe_mutex_setflags(mp, F) do {} while (0) #define safe_mutex_setflags(mp, F) do {} while (0)

View File

@ -958,6 +958,17 @@ extern ulonglong my_getcputime(void);
#define hrtime_sec_part(X) ((ulong)((X).val % HRTIME_RESOLUTION)) #define hrtime_sec_part(X) ((ulong)((X).val % HRTIME_RESOLUTION))
#define my_time(X) hrtime_to_time(my_hrtime_coarse()) #define my_time(X) hrtime_to_time(my_hrtime_coarse())
/**
Make high resolution time from two parts.
*/
static inline my_hrtime_t make_hr_time(my_time_t time, ulong time_sec_part)
{
my_hrtime_t res= {((ulonglong) time)*1000000 + time_sec_part};
return res;
}
#if STACK_DIRECTION < 0 #if STACK_DIRECTION < 0
#define available_stack_size(CUR,END) (long) ((char*)(CUR) - (char*)(END)) #define available_stack_size(CUR,END) (long) ((char*)(CUR) - (char*)(END))
#else #else

View File

@ -5,6 +5,7 @@
--source include/big_test.inc --source include/big_test.inc
# We are using some debug-only features in this test # We are using some debug-only features in this test
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_debug_sync.inc
# Also we are using SBR to check that statements are executed # Also we are using SBR to check that statements are executed
# in proper order. # in proper order.
--source include/have_binlog_format_mixed_or_statement.inc --source include/have_binlog_format_mixed_or_statement.inc

View File

@ -11,11 +11,11 @@ CREATE USER u1@localhost;
grant ALL on db.v1 to u1@localhost; grant ALL on db.v1 to u1@localhost;
connect con1,localhost,u1,,; connect con1,localhost,u1,,;
select * from db.t1; select * from db.t1;
ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table `db`.`t1`
explain select * from db.t1; explain select * from db.t1;
ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table `db`.`t1`
analyze select * from db.t1; analyze select * from db.t1;
ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table `db`.`t1`
select * from db.v1; select * from db.v1;
i c i c
2 bar 2 bar

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ drop table if exists t1;
# Add the datadir to the bootstrap command # Add the datadir to the bootstrap command
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
let $MYSQLD_BOOTSTRAP_CMD= $MYSQLD_BOOTSTRAP_CMD --datadir=$MYSQLD_DATADIR --default-storage-engine=MyISAM --loose-skip-innodb --plugin-maturity=unknown; let $MYSQLD_BOOTSTRAP_CMD= $MYSQLD_BOOTSTRAP_CMD --datadir=$MYSQLD_DATADIR --tmpdir=$MYSQL_TMP_DIR --default-storage-engine=MyISAM --loose-skip-innodb --plugin-maturity=unknown;
# #
# Check that --bootstrap reads from stdin # Check that --bootstrap reads from stdin
# #

View File

@ -19,7 +19,7 @@ rollback to savepoint s1;
insert t1 values (5); insert t1 values (5);
commit; commit;
EOF EOF
exec $MYSQLD_BOOTSTRAP_CMD --datadir=$datadir --innodb < $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1; exec $MYSQLD_BOOTSTRAP_CMD --datadir=$datadir --tmpdir=$MYSQL_TMP_DIR --innodb < $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1;
remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql; remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql;
source include/start_mysqld.inc; source include/start_mysqld.inc;

View File

@ -32,7 +32,7 @@ CREATE OR REPLACE DATABASE db2;
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'db2' ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'db2'
USE db1; USE db1;
CREATE OR REPLACE TABLE t1(id INT); CREATE OR REPLACE TABLE t1(id INT);
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table `db1`.`t1`
CREATE OR REPLACE PROCEDURE proc1 (OUT cnt INT) BEGIN END; CREATE OR REPLACE PROCEDURE proc1 (OUT cnt INT) BEGIN END;
ERROR 42000: alter routine command denied to user 'mysqltest_1'@'localhost' for routine 'db1.proc1' ERROR 42000: alter routine command denied to user 'mysqltest_1'@'localhost' for routine 'db1.proc1'
CREATE OR REPLACE FUNCTION lookup RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; CREATE OR REPLACE FUNCTION lookup RETURNS STRING SONAME "UDF_EXAMPLE_LIB";

View File

@ -51,7 +51,7 @@ c
select d from mysqltest.v2; select d from mysqltest.v2;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'd' in table 'v2' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'd' in table 'v2'
select * from mysqltest.v3; select * from mysqltest.v3;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v3' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v3`
connection root; connection root;
grant select on mysqltest.v3 to mysqltest_1@localhost; grant select on mysqltest.v3 to mysqltest_1@localhost;
connection user1; connection user1;
@ -116,7 +116,7 @@ revoke SELECT on db.t1 from foo@localhost;
connection con1; connection con1;
with cte as (select * from t1 where i < 4) with cte as (select * from t1 where i < 4)
select * from cte; select * from cte;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db`.`t1`
disconnect con1; disconnect con1;
connection default; connection default;
drop database db; drop database db;

View File

@ -39,7 +39,7 @@ cte3 AS
cte4 AS cte4 AS
(SELECT cte2.a FROM t2,cte2 WHERE cte2.a = t2.a) (SELECT cte2.a FROM t2,cte2 WHERE cte2.a = t2.a)
SELECT * FROM cte4 as r; SELECT * FROM cte4 as r;
ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table `db`.`t2`
disconnect u1; disconnect u1;
connection default; connection default;
DROP USER 'u1'@'localhost'; DROP USER 'u1'@'localhost';

View File

@ -5116,6 +5116,592 @@ t2 CREATE TABLE `t2` (
set @@sql_mode=default; set @@sql_mode=default;
drop table t1,t2; drop table t1,t2;
# #
# MDEV-29361: Embedded recursive / non-recursive CTE within
# the scope of another embedded CTE with the same name
#
create table t1 (a int);
insert into t1 values (4), (5);
create table t2 (a int);
insert into t2 values (6), (8);
create table t3 (a int);
insert into t3 values (1), (9);
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1;
a
4
5
6
7
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2;
a
6
8
10
with
cte as
(
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
6
with
cte as
(
with recursive
x(a) as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select s1.a from x as s1, x
where s1.a = x.a and
x.a in (
with recursive
x(a) as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
6
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
6
7
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
with recursive
y as
(
select a from t1 union select a+1 from y as r1 where a < 7
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
with
y(a) as
(
select a+5 from t1
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a < 5 and
s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
select (
with recursive
x(a) as
(
select a+3 from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a < 8 and
s1.a in (
with recursive
x(a) as
(
select a-2 from t2
union
select a+1 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
r
7
7
with
cte as
(
select (
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
r
6
6
create table x (a int);
insert into x values (3), (7), (1), (5), (6);
with
cte as
(
select (
with
x as
(
select ( select a from x as r1 ) as a from t1
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x s2
)
) as r
from t3
)
select * from cte;
ERROR 21000: Subquery returns more than 1 row
with
cte as
(
select (
with
x as
(
select ( select a from x ) as a from t1
)
select exists (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x
)
) as r
from t3
)
select * from cte;
r
1
1
with
cte_e as
(
with
cte as
(
select (
with
x as
(
select ( select a from x ) from t1
)
select exists (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x
)
) as r
from t3
)
select * from cte
)
select s1.*, s2.* from cte_e as s1, cte_e as s2;
r r
1 1
1 1
1 1
1 1
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1;
a
4
5
2
6
7
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2;
a
6
8
5
9
3
7
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1;
a
4
5
6
7
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2;
a
6
8
10
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
6
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
4
6
7
with
cte as
(
with recursive
y as
(
select a from t1 union select a+1 from y as r1 where a < 7
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
5
6
7
with
cte as
(
with
y(a) as
(
select a+5 from t1
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
9
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a in (
with
recursive x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
r
6
6
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a < 5 and
s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
r
3
3
drop table t1,t2,t3,x;
#
# End of 10.3 tests # End of 10.3 tests
# #
# #

View File

@ -3209,6 +3209,670 @@ show create table t2;
set @@sql_mode=default; set @@sql_mode=default;
drop table t1,t2; drop table t1,t2;
--echo #
--echo # MDEV-29361: Embedded recursive / non-recursive CTE within
--echo # the scope of another embedded CTE with the same name
--echo #
create table t1 (a int);
insert into t1 values (4), (5);
create table t2 (a int);
insert into t2 values (6), (8);
create table t3 (a int);
insert into t3 values (1), (9);
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1;
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2;
# All recursive CTEs with name x are embedded in in the definition of 'cte',
# without this embedding CTE the bug could not be reproduced
# two recursive CTEs with name x, the second CTE is in the scope
# of the first one, but does not use it
# before fix of this bug: wrong result set
with
cte as
(
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# two recursive CTEs with name x, the second CTE is in the scope of the first
# one, but does not use it; there are two non-recursive references to the latter
# before fix of this bug: wrong result set
with
cte as
(
with recursive
x(a) as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select s1.a from x as s1, x
where s1.a = x.a and
x.a in (
with recursive
x(a) as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# x as r1 belongs to the definition of CTE x from non-RECURSIVE with clause
# before fix of this bug: infinite sequence of recursive calls
--error ER_NO_SUCH_TABLE
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# x as r2 belongs to the definition of CTE x from non-RECURSIVE with clause
# yet it is in the scope of another CTE with the same name
# before fix of this bug: crash in With_element::get_name()
with
cte as
(
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# x as r1 is in the definition of CTE x from non-RECURSIVE with clause, thus
# although x as r2 is in the scope of the first CTE x an error is expected
# before fix of this bug: crash in With_element::get_name()
--error ER_NO_SUCH_TABLE
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# x as r2 belongs to the definition of CTE x from non-RECURSIVE with clause
# and in the scope of recursive CTE y, but does not use the latter
# before fix of this bug: crash in With_element::get_name()
--error ER_NO_SUCH_TABLE
with
cte as
(
with recursive
y as
(
select a from t1 union select a+1 from y as r1 where a < 7
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# x as r2 belongs to the definition of CTE x from non-RECURSIVE with clause
# and in the scope of non-recursive CTE y, but does not use the latter
# before fix of this bug: crash in With_element::get_name()
--error ER_NO_SUCH_TABLE
with
cte as
(
with
y(a) as
(
select a+5 from t1
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# in the subquery of the embedding CTE cte:
# x as r1 is in the definition of CTE x from non-RECURSIVE with clause;
# x as t2 is in the definition of CTE x from RECURSIVE with clause;
# an error is expected to be reported for x as r1
# before fix of this bug: infinite sequence of recursive calls
--error ER_NO_SUCH_TABLE
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
# in the subquery of the embedding CTE cte:
# x as r1 is in the definition of CTE x from non-RECURSIVE with clause, thus
# although x as r2 is in the scope of the first CTE x an error is expected
# before fix of this bug: crash in With_element::get_name()
--error ER_NO_SUCH_TABLE
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a < 5 and
s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
# in the subquery of the embedding CTE cte:
# two recursive CTEs with name x, the second CTE is in the scope
# of the first one, but does not use it
# before fix of this bug: wrong result set
with
cte as
(
select (
with recursive
x(a) as
(
select a+3 from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a < 8 and
s1.a in (
with recursive
x(a) as
(
select a-2 from t2
union
select a+1 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
# in the subquery of the embedding CTE cte:
# two recursive CTEs with name x, the second CTE is in the scope
# of the first one, but does not use it
# before fix of this bug: Subquery returns more than 1 row
with
cte as
(
select (
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
create table x (a int);
insert into x values (3), (7), (1), (5), (6);
# in the subquery of the embedding CTE cte:
# one non-recursive CTEs with name x using table t in a subquery, the second
# CTE x is recursive and is in the scope of the first one, but does not use it;
# the query uses both CTE with name x.
# before fix of this bug: infinite sequence of recursive calls
--error ER_SUBQUERY_NO_1_ROW
with
cte as
(
select (
with
x as
(
select ( select a from x as r1 ) as a from t1
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x s2
)
) as r
from t3
)
select * from cte;
# in the subquery of the embedding CTE cte:
# one non-recursive CTEs with name x using table t, the second CTE x is
# recursive and is in the scope of the first one, but does not use it;
# the query uses only the second CTE with name x.
# before fix of this bug: Subquery returns more than 1 row
with
cte as
(
select (
with
x as
(
select ( select a from x ) as a from t1
)
select exists (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x
)
) as r
from t3
)
select * from cte;
# in the subquery of the embedding CTE cte embedded in the CTE cte_e
# one non-recursive CTEs with name x uses table t1, the second CTE x is
# recursive and is in the scope of the first one, but does not use it;
# CTE cte uses only the second CTE with name x;
# the query has two refeences to cte_e
# before fix of this bug: infinite sequence of recursive calls
with
cte_e as
(
with
cte as
(
select (
with
x as
(
select ( select a from x ) from t1
)
select exists (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x
)
) as r
from t3
)
select * from cte
)
select s1.*, s2.* from cte_e as s1, cte_e as s2;
# check : with base table x all queries abobe that returned error
# message ER_NO_SUCH_TABLE now return proper result sets
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1;
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2;
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1;
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2;
# x as r1 is bound to table x, x as s1 is bound to the first CTE x
# x as r2 and x as s2 are bound to the second CTE x
# before fix of this bug: infinite sequence of recursive calls
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# x as r1 is bound to table x, x as s1 is bound to the first CTE x
# x as r1 is bound to the first CTE x, x as s2 is bound to the second CTE x
# before fix of this bug: crash in With_element::get_name()
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# x as r2 is bound to table x, x as s2 is bound to CTE x
# before fix of this bug: crash in With_element::get_name()
with
cte as
(
with recursive
y as
(
select a from t1 union select a+1 from y as r1 where a < 7
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# x as r2 is bound to table x, x as s2 is bound to CTE x
# before fix of this bug: crash in With_element::get_name()
with
cte as
(
with
y(a) as
(
select a+5 from t1
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
# x as r1 is bound to table x, x as s1 is bound to the first CTE x
# x as r2 and x as s2 are bound to the second CTE x
# before fix of this bug: infinite sequence of recursive calls
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a in (
with
recursive x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
# x as r1 is bound to table x, x as s1 is bound to the first CTE x
# x as r2 is bound to the first CTE x, x as s2 is bound to the second CTE x
# before fix of this bug: crash in With_element::get_name()
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a < 5 and
s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
drop table t1,t2,t3,x;
--echo # --echo #
--echo # End of 10.3 tests --echo # End of 10.3 tests
--echo # --echo #

View File

@ -30,7 +30,7 @@ disconnect con1;
connection default; connection default;
connect con1, localhost, user5; connect con1, localhost, user5;
FLUSH TABLE db1.t1 FOR EXPORT; FLUSH TABLE db1.t1 FOR EXPORT;
ERROR 42000: SELECT command denied to user 'user5'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user5'@'localhost' for table `db1`.`t1`
disconnect con1; disconnect con1;
connection default; connection default;
DROP USER user1@localhost, user2@localhost, user3@localhost, DROP USER user1@localhost, user2@localhost, user3@localhost,

View File

@ -38,13 +38,13 @@ CREATE VIEW v2 AS SELECT * FROM performance_schema.accounts;
FLUSH TABLE information_schema.collations WITH READ LOCK; FLUSH TABLE information_schema.collations WITH READ LOCK;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
FLUSH TABLE performance_schema.accounts WITH READ LOCK; FLUSH TABLE performance_schema.accounts WITH READ LOCK;
ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table `performance_schema`.`accounts`
FLUSH TABLE information_schema.colums WITH READ LOCK; FLUSH TABLE information_schema.colums WITH READ LOCK;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
FLUSH TABLE information_schema.collations FOR EXPORT; FLUSH TABLE information_schema.collations FOR EXPORT;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
FLUSH TABLE performance_schema.accounts FOR EXPORT; FLUSH TABLE performance_schema.accounts FOR EXPORT;
ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table `performance_schema`.`accounts`
FLUSH TABLE information_schema.colums FOR EXPORT; FLUSH TABLE information_schema.colums FOR EXPORT;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
# #

View File

@ -39,7 +39,7 @@ create user foo@localhost;
grant execute on mysql.* to foo@localhost; grant execute on mysql.* to foo@localhost;
connect foo, localhost, foo; connect foo, localhost, foo;
call mysql.AddGeometryColumn('', 'mysql', 'proc', 'c', 10); call mysql.AddGeometryColumn('', 'mysql', 'proc', 'c', 10);
ERROR 42000: ALTER command denied to user 'foo'@'localhost' for table 'proc' ERROR 42000: ALTER command denied to user 'foo'@'localhost' for table `mysql`.`proc`
disconnect foo; disconnect foo;
connection default; connection default;
drop user foo@localhost; drop user foo@localhost;

View File

@ -545,9 +545,9 @@ ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column
update mysqltest_1.t2, mysqltest_2.t2 set d=20 where d=1; update mysqltest_1.t2, mysqltest_2.t2 set d=20 where d=1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'd' in table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'd' in table 't2'
update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1; update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest_1`.`t1`
update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1; update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1;
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table `mysqltest_2`.`t1`
update mysqltest_2.t1, mysqltest_2.t2 set d=10 where s=2; update mysqltest_2.t1, mysqltest_2.t2 set d=10 where s=2;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 's' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 's' in table 't1'
update mysqltest_1.t1, mysqltest_2.t2 set a=10,d=10; update mysqltest_1.t1, mysqltest_2.t2 set a=10,d=10;
@ -573,14 +573,14 @@ connection conn2;
use mysqltest_1; use mysqltest_1;
update mysqltest_2.t1, mysqltest_2.t2 set c=500,d=600; update mysqltest_2.t1, mysqltest_2.t2 set c=500,d=600;
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200; update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table `mysqltest_1`.`t1`
use mysqltest_2; use mysqltest_2;
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200; update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table `mysqltest_1`.`t1`
update mysqltest_2.t1, mysqltest_1.t2 set c=100,b=200; update mysqltest_2.t1, mysqltest_1.t2 set c=100,b=200;
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't2' ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table `mysqltest_1`.`t2`
update mysqltest_1.t1, mysqltest_2.t2 set a=100,d=200; update mysqltest_1.t1, mysqltest_2.t2 set a=100,d=200;
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table `mysqltest_1`.`t1`
connection master; connection master;
select t1.*,t2.* from mysqltest_1.t1,mysqltest_1.t2; select t1.*,t2.* from mysqltest_1.t1,mysqltest_1.t2;
a q b r a q b r
@ -647,7 +647,7 @@ grant all on mysqltest.t1 to mysqltest_1@localhost;
connect user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK; connect user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user1; connection user1;
alter table t1 rename t2; alter table t1 rename t2;
ERROR 42000: INSERT, CREATE command denied to user 'mysqltest_1'@'localhost' for table 't2' ERROR 42000: INSERT, CREATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`t2`
disconnect user1; disconnect user1;
connection root; connection root;
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost; revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
@ -836,7 +836,7 @@ grant insert, create on db27515.t2 to user27515@localhost;
connect conn27515, localhost, user27515, , db27515; connect conn27515, localhost, user27515, , db27515;
connection conn27515; connection conn27515;
rename table t1 to t2; rename table t1 to t2;
ERROR 42000: DROP command denied to user 'user27515'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'user27515'@'localhost' for table `db27515`.`t1`
disconnect conn27515; disconnect conn27515;
connection master; connection master;
revoke all privileges, grant option from user27515@localhost; revoke all privileges, grant option from user27515@localhost;
@ -1068,13 +1068,13 @@ GRANT SELECT ON mysqltest2.* TO 'mysqltest_1'@'localhost' IDENTIFIE
GRANT SHOW VIEW,SELECT ON mysqltest2.v_yy TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1'; GRANT SHOW VIEW,SELECT ON mysqltest2.v_yy TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
connect mysqltest_1, localhost, mysqltest_1, mysqltest_1,; connect mysqltest_1, localhost, mysqltest_1, mysqltest_1,;
SHOW CREATE VIEW mysqltest2.v_nn; SHOW CREATE VIEW mysqltest2.v_nn;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_nn' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest2`.`v_nn`
SHOW CREATE TABLE mysqltest2.v_nn; SHOW CREATE TABLE mysqltest2.v_nn;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_nn' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest2`.`v_nn`
SHOW CREATE VIEW mysqltest2.v_yn; SHOW CREATE VIEW mysqltest2.v_yn;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest2`.`v_yn`
SHOW CREATE TABLE mysqltest2.v_yn; SHOW CREATE TABLE mysqltest2.v_yn;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest2`.`v_yn`
SHOW CREATE TABLE mysqltest2.v_ny; SHOW CREATE TABLE mysqltest2.v_ny;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` latin1 latin1_swedish_ci v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` latin1 latin1_swedish_ci
@ -1082,13 +1082,13 @@ SHOW CREATE VIEW mysqltest2.v_ny;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` latin1 latin1_swedish_ci v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` latin1 latin1_swedish_ci
SHOW CREATE TABLE mysqltest3.t_nn; SHOW CREATE TABLE mysqltest3.t_nn;
ERROR 42000: SHOW command denied to user 'mysqltest_1'@'localhost' for table 't_nn' ERROR 42000: SHOW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest3`.`t_nn`
SHOW CREATE VIEW mysqltest3.t_nn; SHOW CREATE VIEW mysqltest3.t_nn;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't_nn' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest3`.`t_nn`
SHOW CREATE VIEW mysqltest3.v_nn; SHOW CREATE VIEW mysqltest3.v_nn;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v_nn' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest3`.`v_nn`
SHOW CREATE TABLE mysqltest3.v_nn; SHOW CREATE TABLE mysqltest3.v_nn;
ERROR 42000: SHOW command denied to user 'mysqltest_1'@'localhost' for table 'v_nn' ERROR 42000: SHOW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest3`.`v_nn`
SHOW CREATE TABLE mysqltest2.t_nn; SHOW CREATE TABLE mysqltest2.t_nn;
Table Create Table Table Create Table
t_nn CREATE TABLE `t_nn` ( t_nn CREATE TABLE `t_nn` (
@ -1153,17 +1153,17 @@ Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO `mysqltest_1`@`localhost` GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT ON `mysqltest1`.`t1` TO `mysqltest_1`@`localhost` GRANT SELECT ON `mysqltest1`.`t1` TO `mysqltest_1`@`localhost`
RENAME TABLE t1 TO t2; RENAME TABLE t1 TO t2;
ERROR 42000: DROP, ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP, ALTER command denied to user 'mysqltest_1'@'localhost' for table `mysqltest1`.`t1`
ALTER TABLE t1 RENAME TO t2; ALTER TABLE t1 RENAME TO t2;
ERROR 42000: DROP, ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP, ALTER command denied to user 'mysqltest_1'@'localhost' for table `mysqltest1`.`t1`
disconnect conn42; disconnect conn42;
connection default; connection default;
GRANT DROP ON mysqltest1.t1 TO mysqltest_1@localhost; GRANT DROP ON mysqltest1.t1 TO mysqltest_1@localhost;
connect conn42,localhost,mysqltest_1,,mysqltest1; connect conn42,localhost,mysqltest_1,,mysqltest1;
RENAME TABLE t1 TO t2; RENAME TABLE t1 TO t2;
ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table `mysqltest1`.`t1`
ALTER TABLE t1 RENAME TO t2; ALTER TABLE t1 RENAME TO t2;
ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table `mysqltest1`.`t1`
disconnect conn42; disconnect conn42;
connection default; connection default;
GRANT ALTER ON mysqltest1.t1 TO mysqltest_1@localhost; GRANT ALTER ON mysqltest1.t1 TO mysqltest_1@localhost;
@ -1173,9 +1173,9 @@ Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO `mysqltest_1`@`localhost` GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT, DROP, ALTER ON `mysqltest1`.`t1` TO `mysqltest_1`@`localhost` GRANT SELECT, DROP, ALTER ON `mysqltest1`.`t1` TO `mysqltest_1`@`localhost`
RENAME TABLE t1 TO t2; RENAME TABLE t1 TO t2;
ERROR 42000: INSERT, CREATE command denied to user 'mysqltest_1'@'localhost' for table 't2' ERROR 42000: INSERT, CREATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest1`.`t2`
ALTER TABLE t1 RENAME TO t2; ALTER TABLE t1 RENAME TO t2;
ERROR 42000: INSERT, CREATE command denied to user 'mysqltest_1'@'localhost' for table 't2' ERROR 42000: INSERT, CREATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest1`.`t2`
disconnect conn42; disconnect conn42;
connection default; connection default;
GRANT INSERT, CREATE ON mysqltest1.t1 TO mysqltest_1@localhost; GRANT INSERT, CREATE ON mysqltest1.t1 TO mysqltest_1@localhost;
@ -1209,9 +1209,9 @@ GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT, CREATE, ALTER ON `mysqltest1`.`t1` TO `mysqltest_1`@`localhost` GRANT SELECT, CREATE, ALTER ON `mysqltest1`.`t1` TO `mysqltest_1`@`localhost`
GRANT SELECT, CREATE, ALTER ON `mysqltest1`.`t2` TO `mysqltest_1`@`localhost` GRANT SELECT, CREATE, ALTER ON `mysqltest1`.`t2` TO `mysqltest_1`@`localhost`
RENAME TABLE t1 TO t2; RENAME TABLE t1 TO t2;
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table `mysqltest1`.`t1`
ALTER TABLE t1 RENAME TO t2; ALTER TABLE t1 RENAME TO t2;
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table `mysqltest1`.`t1`
disconnect conn42; disconnect conn42;
connection default; connection default;
DROP USER mysqltest_1@localhost; DROP USER mysqltest_1@localhost;
@ -1253,7 +1253,7 @@ GRANT DELETE ON t1 TO bug23556@localhost;
connection bug23556; connection bug23556;
USE bug23556; USE bug23556;
TRUNCATE t1; TRUNCATE t1;
ERROR 42000: DROP command denied to user 'bug23556'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'bug23556'@'localhost' for table `bug23556`.`t1`
connection default; connection default;
USE bug23556; USE bug23556;
REVOKE DELETE ON t1 FROM bug23556@localhost; REVOKE DELETE ON t1 FROM bug23556@localhost;
@ -1331,16 +1331,16 @@ CREATE PROCEDURE mysqltest1.p1() SQL SECURITY INVOKER
SELECT 1; SELECT 1;
connect bug27337_con1,localhost,mysqltest_1,,mysqltest2; connect bug27337_con1,localhost,mysqltest_1,,mysqltest2;
CREATE TABLE t1(c INT); CREATE TABLE t1(c INT);
ERROR 42000: CREATE command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: CREATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest2`.`t1`
CALL mysqltest1.p1(); CALL mysqltest1.p1();
1 1
1 1
CREATE TABLE t1(c INT); CREATE TABLE t1(c INT);
ERROR 42000: CREATE command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: CREATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest2`.`t1`
disconnect bug27337_con1; disconnect bug27337_con1;
connect bug27337_con2,localhost,mysqltest_1,,mysqltest2; connect bug27337_con2,localhost,mysqltest_1,,mysqltest2;
CREATE TABLE t1(c INT); CREATE TABLE t1(c INT);
ERROR 42000: CREATE command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: CREATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest2`.`t1`
SHOW TABLES; SHOW TABLES;
Tables_in_mysqltest2 Tables_in_mysqltest2
connection default; connection default;
@ -1382,9 +1382,9 @@ EXECUTE stmt1;
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest1' ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest1'
connection bug27337_con2; connection bug27337_con2;
SHOW COLUMNS FROM mysqltest2.t2; SHOW COLUMNS FROM mysqltest2.t2;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysqltest2`.`t2`
EXECUTE stmt2; EXECUTE stmt2;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysqltest2`.`t2`
connection default; connection default;
disconnect bug27337_con1; disconnect bug27337_con1;
disconnect bug27337_con2; disconnect bug27337_con2;
@ -1506,11 +1506,11 @@ CALL p1;
ERROR 42000: SELECT command denied to user 'testuser'@'localhost' for column 'b' in table 't1' ERROR 42000: SELECT command denied to user 'testuser'@'localhost' for column 'b' in table 't1'
# - Check table-level privileges... # - Check table-level privileges...
SELECT a FROM t2; SELECT a FROM t2;
ERROR 42000: SELECT command denied to user 'testuser'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'testuser'@'localhost' for table `mysqltest1`.`t2`
EXECUTE s2; EXECUTE s2;
ERROR 42000: SELECT command denied to user 'testuser'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'testuser'@'localhost' for table `mysqltest1`.`t2`
CALL p2; CALL p2;
ERROR 42000: SELECT command denied to user 'testuser'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'testuser'@'localhost' for table `mysqltest1`.`t2`
# - Check database-level privileges... # - Check database-level privileges...
SHOW TABLES FROM mysqltest2; SHOW TABLES FROM mysqltest2;
ERROR 42000: Access denied for user 'testuser'@'localhost' to database 'mysqltest2' ERROR 42000: Access denied for user 'testuser'@'localhost' to database 'mysqltest2'
@ -1645,9 +1645,9 @@ ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine
select mysqltest1.f1(); select mysqltest1.f1();
ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.f1' ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.f1'
select * from mysqltest1.t11; select * from mysqltest1.t11;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 't11' ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`t11`
select * from mysqltest1.t22; select * from mysqltest1.t22;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 't22' ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`t22`
disconnect bug36544_con2; disconnect bug36544_con2;
connection default; connection default;
# #
@ -1669,9 +1669,9 @@ ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine
select mysqltest1.f1(); select mysqltest1.f1();
ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.f1' ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.f1'
select * from mysqltest1.t11; select * from mysqltest1.t11;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 't11' ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`t11`
select * from mysqltest1.t22; select * from mysqltest1.t22;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 't22' ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`t22`
disconnect bug36544_con3; disconnect bug36544_con3;
connection default; connection default;
# #
@ -1722,7 +1722,7 @@ create table t1 (i INT);
connect user1,localhost,mysqltest,,mysqltest; connect user1,localhost,mysqltest,,mysqltest;
connection user1; connection user1;
insert into t1 values (1); insert into t1 values (1);
ERROR 42000: INSERT command denied to user 'mysqltest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'mysqltest'@'localhost' for table `mysqltest`.`t1`
create table t2 (i INT); create table t2 (i INT);
create table t4 (i INT); create table t4 (i INT);
connection default; connection default;
@ -1734,20 +1734,20 @@ flush privileges;
connection user1; connection user1;
insert into t2 values (1); insert into t2 values (1);
create table if not exists t1 select * from t2; create table if not exists t1 select * from t2;
ERROR 42000: INSERT command denied to user 'mysqltest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'mysqltest'@'localhost' for table `mysqltest`.`t1`
create table if not exists t3 select * from t2; create table if not exists t3 select * from t2;
ERROR 42000: INSERT command denied to user 'mysqltest'@'localhost' for table 't3' ERROR 42000: INSERT command denied to user 'mysqltest'@'localhost' for table `mysqltest`.`t3`
create table if not exists t4 select * from t2; create table if not exists t4 select * from t2;
Warnings: Warnings:
Note 1050 Table 't4' already exists Note 1050 Table 't4' already exists
create table if not exists t5 select * from t2; create table if not exists t5 select * from t2;
create table t6 select * from t2; create table t6 select * from t2;
create table t7 select * from t2; create table t7 select * from t2;
ERROR 42000: INSERT command denied to user 'mysqltest'@'localhost' for table 't7' ERROR 42000: INSERT command denied to user 'mysqltest'@'localhost' for table `mysqltest`.`t7`
create table t4 select * from t2; create table t4 select * from t2;
ERROR 42S01: Table 't4' already exists ERROR 42S01: Table 't4' already exists
create table t1 select * from t2; create table t1 select * from t2;
ERROR 42000: INSERT command denied to user 'mysqltest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'mysqltest'@'localhost' for table `mysqltest`.`t1`
connection default; connection default;
drop table t1,t2,t4,t5,t6; drop table t1,t2,t4,t5,t6;
revoke create on mysqltest.* from mysqltest@localhost; revoke create on mysqltest.* from mysqltest@localhost;
@ -1910,7 +1910,7 @@ connect con1,localhost,testbug,,db1;
SELECT * FROM `../db2/tb2`; SELECT * FROM `../db2/tb2`;
ERROR 42S02: Table 'db1.../db2/tb2' doesn't exist ERROR 42S02: Table 'db1.../db2/tb2' doesn't exist
SELECT * FROM `../db2`.tb2; SELECT * FROM `../db2`.tb2;
ERROR 42000: SELECT command denied to user 'testbug'@'localhost' for table 'tb2' ERROR 42000: SELECT command denied to user 'testbug'@'localhost' for table `../db2`.`tb2`
SELECT * FROM `#mysql50#/../db2/tb2`; SELECT * FROM `#mysql50#/../db2/tb2`;
ERROR 42000: Incorrect table name '#mysql50#/../db2/tb2' ERROR 42000: Incorrect table name '#mysql50#/../db2/tb2'
connection default; connection default;
@ -1976,7 +1976,7 @@ connect con1,localhost,mysqltest_u1,,mysqltest_db1;
connection con1; connection con1;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t1`
connection default; connection default;
disconnect con1; disconnect con1;
@ -2782,10 +2782,10 @@ CREATE DATABASE db;
CREATE TABLE db.t (a INT); CREATE TABLE db.t (a INT);
connect con1,localhost,foo,,; connect con1,localhost,foo,,;
GRANT ALL ON db.t TO foo; GRANT ALL ON db.t TO foo;
ERROR 42000: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW ... command denied to user 'foo'@'localhost' for table 't' ERROR 42000: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW ... command denied to user 'foo'@'localhost' for table `db`.`t`
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT OPTION, REFERENCES, GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT OPTION, REFERENCES,
INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER ON db.t TO foo; INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER ON db.t TO foo;
ERROR 42000: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW ... command denied to user 'foo'@'localhost' for table 't' ERROR 42000: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW ... command denied to user 'foo'@'localhost' for table `db`.`t`
connection default; connection default;
disconnect con1; disconnect con1;
DROP USER foo; DROP USER foo;

View File

@ -108,9 +108,9 @@ GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT, INSERT ON `mysqltest`.* TO `mysqltest_1`@`localhost` GRANT SELECT, INSERT ON `mysqltest`.* TO `mysqltest_1`@`localhost`
insert into t1 values (1, 'I can''t change it!'); insert into t1 values (1, 'I can''t change it!');
update t1 set data='I can change it!' where id = 1; update t1 set data='I can change it!' where id = 1;
ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`t1`
insert into t1 values (1, 'XXX') on duplicate key update data= 'I can change it!'; insert into t1 values (1, 'XXX') on duplicate key update data= 'I can change it!';
ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`t1`
select * from t1; select * from t1;
id data id data
1 I can't change it! 1 I can't change it!
@ -127,7 +127,7 @@ connection mrugly;
grant select (a,b) on t1 to mysqltest_2@localhost; grant select (a,b) on t1 to mysqltest_2@localhost;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 't1'
grant select on t1 to mysqltest_3@localhost; grant select on t1 to mysqltest_3@localhost;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`t1`
disconnect mrugly; disconnect mrugly;
connection default; connection default;
drop table t1; drop table t1;
@ -312,7 +312,7 @@ grant create user on *.* to mysqltest_2@localhost;
connect user3,localhost,mysqltest_2,,; connect user3,localhost,mysqltest_2,,;
connection user3; connection user3;
select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%' ; select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%' ;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 'user' ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysql`.`user`
create user mysqltest_A@'%'; create user mysqltest_A@'%';
rename user mysqltest_A@'%' to mysqltest_B@'%'; rename user mysqltest_A@'%' to mysqltest_B@'%';
drop user mysqltest_B@'%'; drop user mysqltest_B@'%';
@ -328,7 +328,7 @@ Grants for mysqltest_3@localhost
GRANT USAGE ON *.* TO `mysqltest_3`@`localhost` GRANT USAGE ON *.* TO `mysqltest_3`@`localhost`
GRANT INSERT, UPDATE, DELETE ON `mysql`.* TO `mysqltest_3`@`localhost` GRANT INSERT, UPDATE, DELETE ON `mysql`.* TO `mysqltest_3`@`localhost`
select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%' ; select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%' ;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 'user' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysql`.`user`
insert into mysql.global_priv set host='%', user='mysqltest_B'; insert into mysql.global_priv set host='%', user='mysqltest_B';
create user mysqltest_A@'%'; create user mysqltest_A@'%';
rename user mysqltest_B@'%' to mysqltest_C@'%'; rename user mysqltest_B@'%' to mysqltest_C@'%';
@ -476,9 +476,9 @@ create table t1 (i int);
connect user1,localhost,mysqltest_u1,,mysqltest_1; connect user1,localhost,mysqltest_u1,,mysqltest_1;
connection user1; connection user1;
show create table mysqltest_2.t1; show create table mysqltest_2.t1;
ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_2`.`t1`
create table t1 like mysqltest_2.t1; create table t1 like mysqltest_2.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_2`.`t1`
connection default; connection default;
grant select on mysqltest_2.t1 to mysqltest_u1@localhost; grant select on mysqltest_2.t1 to mysqltest_u1@localhost;
connection user1; connection user1;
@ -533,7 +533,7 @@ USE db1;
SELECT c FROM t2; SELECT c FROM t2;
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2' ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
SELECT * FROM t2; SELECT * FROM t2;
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for table `db1`.`t2`
SELECT * FROM t1 JOIN t2 USING (b); SELECT * FROM t1 JOIN t2 USING (b);
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2' ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
connection default; connection default;
@ -629,7 +629,7 @@ CREATE TEMPORARY TABLE t4 SELECT * FROM t1;
# temporary table without additional privileges. # temporary table without additional privileges.
CREATE TEMPORARY TABLE t5(a INT) ENGINE = MyISAM; CREATE TEMPORARY TABLE t5(a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE t6(a INT) ENGINE = MERGE UNION = (t5); CREATE TEMPORARY TABLE t6(a INT) ENGINE = MERGE UNION = (t5);
ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u1'@'localhost' for table 't5' ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t5`
# Check that we allow creation of MERGE table with no underlying table # Check that we allow creation of MERGE table with no underlying table
# without additional privileges. # without additional privileges.
CREATE TEMPORARY TABLE t6(a INT) ENGINE = MERGE UNION = (); CREATE TEMPORARY TABLE t6(a INT) ENGINE = MERGE UNION = ();
@ -657,7 +657,7 @@ ALTER TABLE t6 UNION = ();
# Check that we do *not* allow altering of MERGE table with underlying # Check that we do *not* allow altering of MERGE table with underlying
# temporary table without additional privileges. # temporary table without additional privileges.
ALTER TABLE t6 UNION = (t5); ALTER TABLE t6 UNION = (t5);
ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u1'@'localhost' for table 't5' ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t5`
# #
# Simple INSERT and INSERT ... SELECT. # Simple INSERT and INSERT ... SELECT.
# #
@ -902,7 +902,7 @@ CREATE TEMPORARY TABLE t9(a INT);
CREATE TEMPORARY TABLE t10(a INT) ENGINE = MERGE UNION = (t7, t8); CREATE TEMPORARY TABLE t10(a INT) ENGINE = MERGE UNION = (t7, t8);
ALTER TABLE t10 UNION = (t9); ALTER TABLE t10 UNION = (t9);
ALTER TABLE t10 UNION = (mysqltest_db2.t2_1); ALTER TABLE t10 UNION = (mysqltest_db2.t2_1);
ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u5'@'localhost' for table 't2_1' ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u5'@'localhost' for table `mysqltest_db2`.`t2_1`
CREATE TEMPORARY TABLE mysqltest_db2.t2_2(a INT) ENGINE = MERGE UNION = (t7, t8); CREATE TEMPORARY TABLE mysqltest_db2.t2_2(a INT) ENGINE = MERGE UNION = (t7, t8);
ALTER TABLE mysqltest_db2.t2_2 UNION = (t9); ALTER TABLE mysqltest_db2.t2_2 UNION = (t9);
ALTER TABLE mysqltest_db2.t2_2 UNION = (); ALTER TABLE mysqltest_db2.t2_2 UNION = ();

View File

@ -30,23 +30,23 @@ a int(11) YES NULL
** SHOW COLUMNS ** SHOW COLUMNS
** Should fail because there are no privileges on any column combination. ** Should fail because there are no privileges on any column combination.
show columns from mysqltest_db1.t_no_priv; show columns from mysqltest_db1.t_no_priv;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't_no_priv' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t_no_priv`
** However, select from I_S.COLUMNS will succeed but not show anything: ** However, select from I_S.COLUMNS will succeed but not show anything:
select column_name as 'Field',column_type as 'Type',is_nullable as 'Null',column_key as 'Key',column_default as 'Default',extra as 'Extra' from information_schema.columns where table_schema='mysqltest_db1' and table_name='t_no_priv'; select column_name as 'Field',column_type as 'Type',is_nullable as 'Null',column_key as 'Key',column_default as 'Default',extra as 'Extra' from information_schema.columns where table_schema='mysqltest_db1' and table_name='t_no_priv';
Field Type Null Key Default Extra Field Type Null Key Default Extra
** CREATE TABLE ... LIKE ... require SELECT privleges and will fail. ** CREATE TABLE ... LIKE ... require SELECT privleges and will fail.
create table test.t_no_priv like mysqltest_db1.column_priv_only; create table test.t_no_priv like mysqltest_db1.column_priv_only;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'column_priv_only' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`column_priv_only`
** Just to be sure... SELECT also fails. ** Just to be sure... SELECT also fails.
select * from mysqltest_db1.t_column_priv_only; select * from mysqltest_db1.t_column_priv_only;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't_column_priv_only' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t_column_priv_only`
** SHOW CREATE TABLE ... require any privileges on all columns (the entire table). ** SHOW CREATE TABLE ... require any privileges on all columns (the entire table).
** First we try and fail on a table with only one column privilege. ** First we try and fail on a table with only one column privilege.
show create table mysqltest_db1.t_column_priv_only; show create table mysqltest_db1.t_column_priv_only;
ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table 't_column_priv_only' ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t_column_priv_only`
** Now we do the same on a table with SELECT privileges. ** Now we do the same on a table with SELECT privileges.
@ -72,7 +72,7 @@ t_select_priv CREATE TABLE `t_select_priv` (
** SHOW CREATE TABLE will fail if there is no grants at all: ** SHOW CREATE TABLE will fail if there is no grants at all:
show create table mysqltest_db1.t_no_priv; show create table mysqltest_db1.t_no_priv;
ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table 't_no_priv' ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t_no_priv`
connection default; connection default;
use mysqltest_db1; use mysqltest_db1;
@ -97,7 +97,7 @@ SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='t5';
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
** SHOW INDEX FROM t5 will fail because we don't have any privileges on any column combination. ** SHOW INDEX FROM t5 will fail because we don't have any privileges on any column combination.
SHOW INDEX FROM t5; SHOW INDEX FROM t5;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't5' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t5`
** SHOW INDEX FROM t6 will succeed because there exist a privilege on a column combination on t6. ** SHOW INDEX FROM t6 will succeed because there exist a privilege on a column combination on t6.
SHOW INDEX FROM t6; SHOW INDEX FROM t6;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
@ -108,20 +108,20 @@ Table Op Msg_type Msg_text
mysqltest_db1.t6 check status OK mysqltest_db1.t6 check status OK
** With no privileges access is naturally denied: ** With no privileges access is naturally denied:
CHECK TABLE t5; CHECK TABLE t5;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't5' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t5`
** CHECKSUM TABLE requires SELECT privileges on the table. The following should fail: ** CHECKSUM TABLE requires SELECT privileges on the table. The following should fail:
CHECKSUM TABLE t6; CHECKSUM TABLE t6;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't6' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t6`
** And this should work: ** And this should work:
CHECKSUM TABLE t_select_priv; CHECKSUM TABLE t_select_priv;
Table Checksum Table Checksum
mysqltest_db1.t_select_priv 0 mysqltest_db1.t_select_priv 0
SHOW CREATE VIEW v5; SHOW CREATE VIEW v5;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`v5`
SHOW CREATE VIEW v6; SHOW CREATE VIEW v6;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'v6' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`v6`
SHOW CREATE VIEW v2; SHOW CREATE VIEW v2;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'v2' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`v2`
SHOW CREATE VIEW v3; SHOW CREATE VIEW v3;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t_select_priv`.`a` AS `a`,`t_select_priv`.`b` AS `b` from `t_select_priv` latin1 latin1_swedish_ci v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t_select_priv`.`a` AS `a`,`t_select_priv`.`b` AS `b` from `t_select_priv` latin1 latin1_swedish_ci
@ -193,10 +193,10 @@ mysqltest_db1.t1 check error Corrupt
# The below statement should fail before repairing t1. # The below statement should fail before repairing t1.
# Otherwise info about such repair will be missing from its result-set. # Otherwise info about such repair will be missing from its result-set.
repair table mysqltest_db1.t1, mysqltest_db1.t2; repair table mysqltest_db1.t1, mysqltest_db1.t2;
ERROR 42000: SELECT, INSERT command denied to user 'mysqltest_u1'@'localhost' for table 't2' ERROR 42000: SELECT, INSERT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t2`
# The same is true for CHECK TABLE statement. # The same is true for CHECK TABLE statement.
check table mysqltest_db1.t1, mysqltest_db1.t2; check table mysqltest_db1.t1, mysqltest_db1.t2;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t2`
check table mysqltest_db1.t1; check table mysqltest_db1.t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
mysqltest_db1.t1 check warning Table is marked as crashed mysqltest_db1.t1 check warning Table is marked as crashed

View File

@ -185,6 +185,67 @@ GRANT USAGE ON *.* TO `test-user`@`%`
SET DEFAULT ROLE `r``o'l"e` FOR `test-user`@`%` SET DEFAULT ROLE `r``o'l"e` FOR `test-user`@`%`
DROP ROLE `r``o'l"e`; DROP ROLE `r``o'l"e`;
DROP USER 'test-user'; DROP USER 'test-user';
#
# MDEV-28548: ER_TABLEACCESS_DENIED_ERROR is missing information about DB
#
create database db1;
create user foo@localhost;
grant create on db1.* to foo@localhost;
connect con1,localhost,foo,,db1;
create table t(t int);
show columns in t;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t`
show columns in db1.t;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t`
create view t_v as select * from t;
ERROR 42000: CREATE VIEW command denied to user 'foo'@'localhost' for table `db1`.`t_v`
show create view t_v;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t_v`
create table t2(id int primary key, b int);
create table t3(a int, b int, CONSTRAINT `fk_db2_db1_t1`
FOREIGN KEY (a)
REFERENCES `db1 `.t1 (a)
ON DELETE CASCADE
ON UPDATE RESTRICT);
ERROR 42000: Incorrect database name 'db1 '
create table t3(a int, b int, CONSTRAINT `fk_db2_db3_t1`
FOREIGN KEY (a)
REFERENCES db3.t1 (a)
ON DELETE CASCADE
ON UPDATE RESTRICT);
ERROR 42000: REFERENCES command denied to user 'foo'@'localhost' for table `db3`.`t1`
create table t1(a int, b int, CONSTRAINT `fk_db2_db3_t1`
FOREIGN KEY (a)
REFERENCES t2 (id)
ON DELETE CASCADE
ON UPDATE RESTRICT);
ERROR 42000: REFERENCES command denied to user 'foo'@'localhost' for table `db1`.`t2`
connection default;
disconnect con1;
grant create view, select on db1.* to foo@localhost;
connect con1,localhost,foo,,db1;
create view t_v as select * from t;
show grants;
Grants for foo@localhost
GRANT USAGE ON *.* TO `foo`@`localhost`
GRANT SELECT, CREATE, CREATE VIEW ON `db1`.* TO `foo`@`localhost`
show create view t_v;
ERROR 42000: SHOW VIEW command denied to user 'foo'@'localhost' for table `db1`.`t_v`
connection default;
disconnect con1;
grant show view on db1.* to foo@localhost;
connect con1,localhost,foo,,db1;
show grants;
Grants for foo@localhost
GRANT USAGE ON *.* TO `foo`@`localhost`
GRANT SELECT, CREATE, CREATE VIEW, SHOW VIEW ON `db1`.* TO `foo`@`localhost`
show create view t_v;
View Create View character_set_client collation_connection
t_v CREATE ALGORITHM=UNDEFINED DEFINER=`foo`@`localhost` SQL SECURITY DEFINER VIEW `t_v` AS select `t`.`t` AS `t` from `t` latin1 latin1_swedish_ci
connection default;
disconnect con1;
drop database db1;
drop user foo@localhost;
# End of 10.3 tests # End of 10.3 tests
create user u1@h identified with 'mysql_native_password' using 'pwd'; create user u1@h identified with 'mysql_native_password' using 'pwd';
ERROR HY000: Password hash should be a 41-digit hexadecimal number ERROR HY000: Password hash should be a 41-digit hexadecimal number

View File

@ -138,6 +138,78 @@ SHOW GRANTS FOR 'test-user';
DROP ROLE `r``o'l"e`; DROP ROLE `r``o'l"e`;
DROP USER 'test-user'; DROP USER 'test-user';
--echo #
--echo # MDEV-28548: ER_TABLEACCESS_DENIED_ERROR is missing information about DB
--echo #
create database db1;
create user foo@localhost;
grant create on db1.* to foo@localhost;
--connect (con1,localhost,foo,,db1)
create table t(t int);
--error ER_TABLEACCESS_DENIED_ERROR
show columns in t;
--error ER_TABLEACCESS_DENIED_ERROR
show columns in db1.t;
# CREATE_VIEW_ACL needed
--error ER_TABLEACCESS_DENIED_ERROR
create view t_v as select * from t;
# show create view needs to have SELECT_ACL and SHOW_VIEW_ACL
--error ER_TABLEACCESS_DENIED_ERROR
show create view t_v;
create table t2(id int primary key, b int);
# Reference non existing DB with wrong DB name
--error ER_WRONG_DB_NAME
create table t3(a int, b int, CONSTRAINT `fk_db2_db1_t1`
FOREIGN KEY (a)
REFERENCES `db1 `.t1 (a)
ON DELETE CASCADE
ON UPDATE RESTRICT);
# Reference non-existing DB (with qualified DB name)
--error ER_TABLEACCESS_DENIED_ERROR
create table t3(a int, b int, CONSTRAINT `fk_db2_db3_t1`
FOREIGN KEY (a)
REFERENCES db3.t1 (a)
ON DELETE CASCADE
ON UPDATE RESTRICT);
# Reference DB (with not qualified DB name)
--error ER_TABLEACCESS_DENIED_ERROR
create table t1(a int, b int, CONSTRAINT `fk_db2_db3_t1`
FOREIGN KEY (a)
REFERENCES t2 (id)
ON DELETE CASCADE
ON UPDATE RESTRICT);
--connection default
--disconnect con1
# Add CREATE_VIEW_ACL and SELECT_ACL
grant create view, select on db1.* to foo@localhost;
--connect (con1,localhost,foo,,db1)
create view t_v as select * from t;
show grants;
--error ER_TABLEACCESS_DENIED_ERROR
show create view t_v;
--connection default
--disconnect con1
# Add SHOW_VIEW_ACL
grant show view on db1.* to foo@localhost;
--connect (con1,localhost,foo,,db1)
show grants;
show create view t_v;
--connection default
--disconnect con1
drop database db1;
drop user foo@localhost;
--echo # End of 10.3 tests --echo # End of 10.3 tests
# #

View File

@ -154,7 +154,7 @@ a b c a
1 1 1 test.t1 1 1 1 test.t1
2 2 2 test.t1 2 2 2 test.t1
select * from t2; select * from t2;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysqltest`.`t2`
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
Variable_name Value Variable_name Value
Qcache_queries_in_cache 6 Qcache_queries_in_cache 6
@ -170,7 +170,7 @@ select "user3";
user3 user3
user3 user3
select * from t1; select * from t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t1`
select a from t1; select a from t1;
a a
1 1
@ -178,7 +178,7 @@ a
select c from t1; select c from t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
select * from t2; select * from t2;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t2`
select mysqltest.t1.c from test.t1,mysqltest.t1; select mysqltest.t1.c from test.t1,mysqltest.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";

View File

@ -154,7 +154,7 @@ a b c a
1 1 1 test.t1 1 1 1 test.t1
2 2 2 test.t1 2 2 2 test.t1
select * from t2; select * from t2;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysqltest`.`t2`
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
Variable_name Value Variable_name Value
Qcache_queries_in_cache 6 Qcache_queries_in_cache 6
@ -170,7 +170,7 @@ select "user3";
user3 user3
user3 user3
select * from t1; select * from t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t1`
select a from t1; select a from t1;
a a
1 1
@ -178,7 +178,7 @@ a
select c from t1; select c from t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
select * from t2; select * from t2;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t2`
select mysqltest.t1.c from test.t1,mysqltest.t1; select mysqltest.t1.c from test.t1,mysqltest.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";

View File

@ -10,13 +10,13 @@ connect con1,localhost,privtest,,;
connection con1; connection con1;
USE privtest_db; USE privtest_db;
EXPLAIN INSERT INTO t1 VALUES (10); EXPLAIN INSERT INTO t1 VALUES (10);
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
INSERT INTO t1 VALUES (10); INSERT INTO t1 VALUES (10);
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN INSERT INTO t1 SELECT * FROM t2; EXPLAIN INSERT INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
INSERT INTO t1 SELECT * FROM t2; INSERT INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT INSERT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT INSERT ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
@ -32,36 +32,36 @@ connection default;
REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN REPLACE INTO t1 VALUES (10); EXPLAIN REPLACE INTO t1 VALUES (10);
ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 VALUES (10); REPLACE INTO t1 VALUES (10);
ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN REPLACE INTO t1 SELECT * FROM t2; EXPLAIN REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 SELECT * FROM t2; REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT INSERT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT INSERT ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN REPLACE INTO t1 VALUES (10); EXPLAIN REPLACE INTO t1 VALUES (10);
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 VALUES (10); REPLACE INTO t1 VALUES (10);
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN REPLACE INTO t1 SELECT * FROM t2; EXPLAIN REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 SELECT * FROM t2; REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
REVOKE INSERT ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE INSERT ON privtest_db.t1 FROM 'privtest'@'localhost';
GRANT DELETE ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT DELETE ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN REPLACE INTO t1 VALUES (10); EXPLAIN REPLACE INTO t1 VALUES (10);
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 VALUES (10); REPLACE INTO t1 VALUES (10);
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN REPLACE INTO t1 SELECT * FROM t2; EXPLAIN REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 SELECT * FROM t2; REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT INSERT, DELETE ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT INSERT, DELETE ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
@ -77,13 +77,13 @@ connection default;
REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN UPDATE t1 SET a = a + 1; EXPLAIN UPDATE t1 SET a = a + 1;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
UPDATE t1 SET a = a + 1; UPDATE t1 SET a = a + 1;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a; EXPLAIN UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a; UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT UPDATE ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT UPDATE ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
@ -100,13 +100,13 @@ REVOKE UPDATE ON privtest_db.t1 FROM 'privtest'@'localhost';
GRANT SELECT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT SELECT ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN UPDATE t1 SET a = a + 1; EXPLAIN UPDATE t1 SET a = a + 1;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
UPDATE t1 SET a = a + 1; UPDATE t1 SET a = a + 1;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a; EXPLAIN UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a; UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT UPDATE, SELECT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT UPDATE, SELECT ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
@ -123,13 +123,13 @@ connection default;
REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN DELETE FROM t1 WHERE a = 10; EXPLAIN DELETE FROM t1 WHERE a = 10;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
DELETE FROM t1 WHERE a = 10; DELETE FROM t1 WHERE a = 10;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT DELETE ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT DELETE ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
@ -138,21 +138,21 @@ ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for column 'a'
DELETE FROM t1 WHERE a = 10; DELETE FROM t1 WHERE a = 10;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for column 'a' in table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for column 'a' in table 't1'
EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost';
GRANT SELECT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT SELECT ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN DELETE FROM t1 WHERE a = 10; EXPLAIN DELETE FROM t1 WHERE a = 10;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
DELETE FROM t1 WHERE a = 10; DELETE FROM t1 WHERE a = 10;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost';
GRANT DELETE, SELECT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT DELETE, SELECT ON privtest_db.t1 TO 'privtest'@'localhost';

View File

@ -6,12 +6,12 @@ GRANT SELECT ON db1.* to USER_1@localhost;
connect con1,localhost,user_1,,db1; connect con1,localhost,user_1,,db1;
CREATE TABLE t1(f1 int); CREATE TABLE t1(f1 int);
SELECT * FROM t1; SELECT * FROM t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db1`.`t1`
connect con2,localhost,USER_1,,db1; connect con2,localhost,USER_1,,db1;
SELECT * FROM t1; SELECT * FROM t1;
f1 f1
CREATE TABLE t2(f1 int); CREATE TABLE t2(f1 int);
ERROR 42000: CREATE command denied to user 'USER_1'@'localhost' for table 't2' ERROR 42000: CREATE command denied to user 'USER_1'@'localhost' for table `db1`.`t2`
connection default; connection default;
disconnect con1; disconnect con1;
disconnect con2; disconnect con2;

View File

@ -163,17 +163,17 @@ use testdb_1;
revoke select,show view on v6 from testdb_2@localhost; revoke select,show view on v6 from testdb_2@localhost;
connection testdb_2; connection testdb_2;
show fields from testdb_1.v5; show fields from testdb_1.v5;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v5`
show create view testdb_1.v5; show create view testdb_1.v5;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v5`
show fields from testdb_1.v6; show fields from testdb_1.v6;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v6' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v6`
show create view testdb_1.v6; show create view testdb_1.v6;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v6' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v6`
show fields from testdb_1.v7; show fields from testdb_1.v7;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v7' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v7`
show create view testdb_1.v7; show create view testdb_1.v7;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v7' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v7`
show create view v4; show create view v4;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v4 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `v3`.`f1` AS `f1`,`v3`.`f2` AS `f2` from `testdb_1`.`v3` latin1 latin1_swedish_ci v4 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `v3`.`f1` AS `f1`,`v3`.`f2` AS `f2` from `testdb_1`.`v3` latin1 latin1_swedish_ci
@ -191,7 +191,7 @@ show create view v2;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `v1`.`f1` AS `f1` from `testdb_1`.`v1` latin1 latin1_swedish_ci v2 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `v1`.`f1` AS `f1` from `testdb_1`.`v1` latin1 latin1_swedish_ci
show create view testdb_1.v1; show create view testdb_1.v1;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v1`
select table_name from information_schema.columns a select table_name from information_schema.columns a
where a.table_name = 'v2'; where a.table_name = 'v2';
table_name table_name
@ -238,7 +238,7 @@ where table_name='v1';
table_schema table_name view_definition table_schema table_name view_definition
testdb_1 v1 testdb_1 v1
show create view testdb_1.v1; show create view testdb_1.v1;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `testdb_1`.`v1`
connection default; connection default;
drop user mysqltest_1@localhost; drop user mysqltest_1@localhost;
drop database testdb_1; drop database testdb_1;

View File

@ -38,7 +38,7 @@ INNER JOIN view_stations AS stations
ON table_source.id = stations.icao ON table_source.id = stations.icao
LEFT JOIN table_target AS old LEFT JOIN table_target AS old
USING (mexs_id); USING (mexs_id);
ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table 'table_target' ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table `meow`.`table_target`
REPLACE INTO view_target2 REPLACE INTO view_target2
SELECT stations.mexs_id AS mexs_id, datetime AS messzeit SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
FROM table_source FROM table_source
@ -46,7 +46,7 @@ INNER JOIN view_stations AS stations
ON table_source.id = stations.icao ON table_source.id = stations.icao
LEFT JOIN view_target2 AS old LEFT JOIN view_target2 AS old
USING (mexs_id); USING (mexs_id);
ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table 'view_target2' ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table `meow`.`view_target2`
REPLACE INTO view_target3 REPLACE INTO view_target3
SELECT stations.mexs_id AS mexs_id, datetime AS messzeit SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
FROM table_source FROM table_source
@ -70,7 +70,7 @@ ON table_source.id = stations.icao
LEFT JOIN table_target AS old LEFT JOIN table_target AS old
USING (mexs_id); USING (mexs_id);
REPLACE INTO table_target2 VALUES ('00X45Y78','2006-07-12 07:50:00'); REPLACE INTO table_target2 VALUES ('00X45Y78','2006-07-12 07:50:00');
ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table 'table_target2' ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table `meow`.`table_target2`
REPLACE INTO view_target2 VALUES ('12X45Y78','2006-07-12 07:50:00'); REPLACE INTO view_target2 VALUES ('12X45Y78','2006-07-12 07:50:00');
SELECT stations.mexs_id AS mexs_id, datetime AS messzeit SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
FROM table_source FROM table_source

View File

@ -400,10 +400,10 @@ f(id2)
14 14
EXPLAIN INSERT INTO t2 SELECT * FROM t1 WHERE id1=8 RETURNING id2; EXPLAIN INSERT INTO t2 SELECT * FROM t1 WHERE id1=8 RETURNING id2;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 const PRIMARY PRIMARY 4 const 1 1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
EXPLAIN EXTENDED INSERT INTO t1 SELECT * FROM t1 WHERE id1=9 RETURNING val1; EXPLAIN EXTENDED INSERT INTO t1 SELECT * FROM t1 WHERE id1=9 RETURNING val1;
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
EXPLAIN FORMAT="json" INSERT INTO t1 SELECT * FROM t1 WHERE id1=10 RETURNING val1; EXPLAIN FORMAT="json" INSERT INTO t1 SELECT * FROM t1 WHERE id1=10 RETURNING val1;
EXPLAIN EXPLAIN
{ {
@ -433,7 +433,7 @@ Warning 1062 Duplicate entry '7' for key 'PRIMARY'
Warning 1062 Duplicate entry '8' for key 'PRIMARY' Warning 1062 Duplicate entry '8' for key 'PRIMARY'
ANALYZE INSERT INTO t2 SELECT * FROM t1 WHERE id1=11 RETURNING *; ANALYZE INSERT INTO t2 SELECT * FROM t1 WHERE id1=11 RETURNING *;
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL no matching row in const table 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL no matching row in const table
SELECT * FROM t2; SELECT * FROM t2;
id2 val2 id2 val2
1 a 1 a
@ -615,3 +615,61 @@ DROP TABLE ins_duplicate;
DROP VIEW v1; DROP VIEW v1;
DROP VIEW v2; DROP VIEW v2;
DROP FUNCTION f; DROP FUNCTION f;
#
# MDEV-25028: ASAN use-after-poison in base_list_iterator::next or
# Assertion `sl->join == 0' upon INSERT .. RETURNING via PS
#
CREATE TABLE t1 (a INT);
CREATE TABLE t2 (b INT);
PREPARE stmt1 FROM "INSERT INTO t1 SELECT * FROM t1 WHERE a IN (SELECT b FROM t2) RETURNING a";
EXECUTE stmt1;
a
PREPARE stmt2 FROM "INSERT INTO t1 SELECT * FROM t1 WHERE a IN (SELECT b FROM t2) RETURNING (SELECT b FROM t2)";
EXECUTE stmt2;
(SELECT b FROM t2)
DROP TABLE t1, t2;
#
# MDEV-25187: Assertion `inited == NONE || table->open_by_handler'
# failed or Direct leak in init_dynamic_array2 upon INSERT .. RETURNING
# and memory leak in init_dynamic_array2
#
CREATE TABLE t (a INT, KEY (a));
CREATE TABLE t1 (f INT);
INSERT INTO t VALUES (1),(2);
INSERT INTO t1 SELECT a FROM t WHERE 1 NOT IN (SELECT a FROM t) RETURNING f;
f
DROP TABLE t, t1;
#
# MDEV-28740: crash in INSERT RETURNING subquery in prepared statements
#
CREATE TABLE t1 (
id INTEGER NOT NULL,
data VARCHAR(30),
PRIMARY KEY (id)
)ENGINE=MyISAM;
EXECUTE IMMEDIATE 'INSERT INTO t1 (id, data) VALUES ((SELECT CAST(1 AS SIGNED INTEGER) AS anon_1), ?) RETURNING t1.id' using 'hi';
id
1
DROP TABLE t1;
#
# MDEV-27165: crash in base_list_iterator::next
#
CREATE TABLE t1 ( id int, a int);
CREATE TABLE t2 ( id int);
INSERT INTO t1 VALUES (( SELECT 1 from t2),999999999999) RETURNING id;
ERROR 22003: Out of range value for column 'a' at row 1
EXECUTE immediate "INSERT INTO t1 VALUES (( SELECT 1 from t2),999999999999) RETURNING id ";
ERROR 22003: Out of range value for column 'a' at row 1
EXECUTE immediate "INSERT INTO t1 VALUES (( SELECT 1 from t2),9) RETURNING id ";
id
NULL
DROP TABLE t1, t2;
#
# MDEV-29686: Assertion `slave == 0' failed in
# st_select_lex_node::attach_single
#
CREATE TABLE t (a INT);
INSERT t WITH cte AS (SELECT 1) SELECT * FROM cte RETURNING *;
a
1
DROP TABLE t;

View File

@ -326,3 +326,73 @@ DROP TABLE ins_duplicate;
DROP VIEW v1; DROP VIEW v1;
DROP VIEW v2; DROP VIEW v2;
DROP FUNCTION f; DROP FUNCTION f;
--echo #
--echo # MDEV-25028: ASAN use-after-poison in base_list_iterator::next or
--echo # Assertion `sl->join == 0' upon INSERT .. RETURNING via PS
--echo #
CREATE TABLE t1 (a INT);
CREATE TABLE t2 (b INT);
PREPARE stmt1 FROM "INSERT INTO t1 SELECT * FROM t1 WHERE a IN (SELECT b FROM t2) RETURNING a";
EXECUTE stmt1;
PREPARE stmt2 FROM "INSERT INTO t1 SELECT * FROM t1 WHERE a IN (SELECT b FROM t2) RETURNING (SELECT b FROM t2)";
EXECUTE stmt2;
DROP TABLE t1, t2;
--echo #
--echo # MDEV-25187: Assertion `inited == NONE || table->open_by_handler'
--echo # failed or Direct leak in init_dynamic_array2 upon INSERT .. RETURNING
--echo # and memory leak in init_dynamic_array2
--echo #
CREATE TABLE t (a INT, KEY (a));
CREATE TABLE t1 (f INT);
INSERT INTO t VALUES (1),(2);
INSERT INTO t1 SELECT a FROM t WHERE 1 NOT IN (SELECT a FROM t) RETURNING f;
# Cleanup
DROP TABLE t, t1;
--echo #
--echo # MDEV-28740: crash in INSERT RETURNING subquery in prepared statements
--echo #
CREATE TABLE t1 (
id INTEGER NOT NULL,
data VARCHAR(30),
PRIMARY KEY (id)
)ENGINE=MyISAM;
EXECUTE IMMEDIATE 'INSERT INTO t1 (id, data) VALUES ((SELECT CAST(1 AS SIGNED INTEGER) AS anon_1), ?) RETURNING t1.id' using 'hi';
DROP TABLE t1;
--echo #
--echo # MDEV-27165: crash in base_list_iterator::next
--echo #
CREATE TABLE t1 ( id int, a int);
CREATE TABLE t2 ( id int);
--error ER_WARN_DATA_OUT_OF_RANGE
INSERT INTO t1 VALUES (( SELECT 1 from t2),999999999999) RETURNING id;
--error ER_WARN_DATA_OUT_OF_RANGE
EXECUTE immediate "INSERT INTO t1 VALUES (( SELECT 1 from t2),999999999999) RETURNING id ";
EXECUTE immediate "INSERT INTO t1 VALUES (( SELECT 1 from t2),9) RETURNING id ";
DROP TABLE t1, t2;
--echo #
--echo # MDEV-29686: Assertion `slave == 0' failed in
--echo # st_select_lex_node::attach_single
--echo #
CREATE TABLE t (a INT);
INSERT t WITH cte AS (SELECT 1) SELECT * FROM cte RETURNING *;
DROP TABLE t;

View File

@ -51,9 +51,9 @@ connection default;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1;
connection con1; connection con1;
select * from t1; select * from t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1`
select invisible from t1; select invisible from t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1`
disconnect con1; disconnect con1;
#Final Cleanup #Final Cleanup

View File

@ -57,9 +57,9 @@ connection default;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1;
connection con1; connection con1;
select * from t1; select * from t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1`
select count(row_start) from t1; select count(row_start) from t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1`
disconnect con1; disconnect con1;
#Cleanup #Cleanup

View File

@ -1,225 +1,7 @@
set local sql_mode=""; set local sql_mode="";
set global sql_mode=""; set global sql_mode="";
SET DEBUG_SYNC = 'RESET'; connect con1, localhost, root;
DROP TABLE IF EXISTS t1, t2, t3; connect con2, localhost, root;
DROP FUNCTION IF EXISTS MY_KILL;
CREATE FUNCTION MY_KILL(tid INT) RETURNS INT
BEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
KILL tid;
RETURN (SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = tid);
END|
connect con1, localhost, root,,;
connect con2, localhost, root,,;
connection con1;
connection con2;
connection con1;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
SET DEBUG_SYNC= 'before_do_command_net_read SIGNAL con1_read';
connection con2;
SET DEBUG_SYNC='now WAIT_FOR con1_read';
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
SET DEBUG_SYNC = 'RESET';
connection con1;
SELECT 1;
Got one of the listed errors
SELECT 1;
1
1
SELECT @id != CONNECTION_ID();
@id != CONNECTION_ID()
1
connection con2;
SELECT 4;
4
4
connection default;
KILL (SELECT COUNT(*) FROM mysql.user);
ERROR 42000: KILL does not support subqueries or stored functions
connection con1;
connection con2;
connection con1;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
SET DEBUG_SYNC= 'before_do_command_net_read SIGNAL con1_read WAIT_FOR kill';
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR con1_read';
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
SET DEBUG_SYNC = 'RESET';
connection con1;
SELECT 1;
Got one of the listed errors
SELECT 1;
1
1
SELECT @id != CONNECTION_ID();
@id != CONNECTION_ID()
1
connection con2;
SELECT 4;
4
4
connection default;
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT);
CREATE TABLE t2 (id INT UNSIGNED NOT NULL);
INSERT INTO t1 VALUES
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0);
INSERT t1 SELECT 0 FROM t1 AS a1, t1 AS a2 LIMIT 4032;
INSERT INTO t2 SELECT id FROM t1;
connection con1;
connection con2;
connection con1;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
SET DEBUG_SYNC= 'before_acos_function SIGNAL in_sync';
SELECT id FROM t1 WHERE id IN
(SELECT DISTINCT a.id FROM t2 a, t2 b, t2 c, t2 d
GROUP BY ACOS(1/a.id), b.id, c.id, d.id
HAVING a.id BETWEEN 10 AND 20);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL @id;
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
connection con1;
Got one of the listed errors
SELECT 1;
1
1
connection default;
SET DEBUG_SYNC = 'RESET';
DROP TABLE t1, t2;
connection con1;
connection con2;
connection con1;
SET DEBUG_SYNC= 'before_acos_function SIGNAL in_sync WAIT_FOR kill';
SELECT ACOS(0);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ACOS(0)
1.5707963267948966
SELECT 1;
1
1
SELECT @id = CONNECTION_ID();
@id = CONNECTION_ID()
1
connection default;
SET DEBUG_SYNC = 'RESET';
CREATE TABLE t1 (f1 INT);
CREATE FUNCTION bug27563() RETURNS INT(11)
DETERMINISTIC
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '70100' SET @a:= 'killed';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
SET DEBUG_SYNC= 'now SIGNAL in_sync WAIT_FOR kill';
RETURN 1;
END|
connection con1;
connection con2;
connection con1;
INSERT INTO t1 VALUES (bug27563());
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ERROR 70100: Query execution was interrupted
SELECT * FROM t1;
f1
connection default;
SET DEBUG_SYNC = 'RESET';
INSERT INTO t1 VALUES(0);
connection con1;
UPDATE t1 SET f1= bug27563();
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ERROR 70100: Query execution was interrupted
SELECT * FROM t1;
f1
0
connection default;
SET DEBUG_SYNC = 'RESET';
INSERT INTO t1 VALUES(1);
connection con1;
DELETE FROM t1 WHERE bug27563() IS NULL;
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ERROR 70100: Query execution was interrupted
SELECT * FROM t1;
f1
0
1
connection default;
SET DEBUG_SYNC = 'RESET';
connection con1;
SELECT * FROM t1 WHERE f1= bug27563();
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ERROR 70100: Query execution was interrupted
SELECT * FROM t1;
f1
0
1
connection default;
SET DEBUG_SYNC = 'RESET';
DROP FUNCTION bug27563;
CREATE TABLE t2 (f2 INT);
CREATE TRIGGER trg27563 BEFORE INSERT ON t1 FOR EACH ROW
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '70100' SET @a:= 'killed';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
INSERT INTO t2 VALUES(0);
SET DEBUG_SYNC= 'now SIGNAL in_sync WAIT_FOR kill';
INSERT INTO t2 VALUES(1);
END|
connection con1;
INSERT INTO t1 VALUES(2),(3);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ERROR 70100: Query execution was interrupted
SELECT * FROM t1;
f1
0
1
SELECT * FROM t2;
f2
0
connection default;
SET DEBUG_SYNC = 'RESET';
DROP TABLE t1, t2;
#
# Bug#19723: kill of active connection yields different error code
# depending on platform.
#
connection con1;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
KILL @id;
ERROR 70100: Connection was killed
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
connection con1;
# ER_SERVER_SHUTDOWN, CR_SERVER_GONE_ERROR, CR_SERVER_LOST,
# depending on the timing of close of the connection socket
SELECT 1;
Got one of the listed errors
SELECT 1;
1
1
SELECT @id != CONNECTION_ID();
@id != CONNECTION_ID()
1
connection default;
SET DEBUG_SYNC = 'RESET';
# #
# Additional test for WL#3726 "DDL locking for all metadata objects" # Additional test for WL#3726 "DDL locking for all metadata objects"
# Check that DDL and DML statements waiting for metadata locks can # Check that DDL and DML statements waiting for metadata locks can
@ -227,7 +9,6 @@ SET DEBUG_SYNC = 'RESET';
# can be tricky to write test case for some of them (e.g. REPAIR or # can be tricky to write test case for some of them (e.g. REPAIR or
# ALTER and other statements under LOCK TABLES). # ALTER and other statements under LOCK TABLES).
# #
drop tables if exists t1, t2, t3;
create table t1 (i int primary key); create table t1 (i int primary key);
connect blocker, localhost, root, , ; connect blocker, localhost, root, , ;
connect dml, localhost, root, , ; connect dml, localhost, root, , ;
@ -380,9 +161,9 @@ connection default;
ERROR 70100: Query execution was interrupted ERROR 70100: Query execution was interrupted
disconnect con5; disconnect con5;
DROP USER u1@localhost; DROP USER u1@localhost;
SET DEBUG_SYNC = 'RESET';
DROP FUNCTION MY_KILL;
set global sql_mode=default; set global sql_mode=default;
disconnect con1;
disconnect con2;
# #
# MDEV-17998 # MDEV-17998
# Deadlock and eventual Assertion `!table->pos_in_locked_tables' failed # Deadlock and eventual Assertion `!table->pos_in_locked_tables' failed

View File

@ -8,294 +8,11 @@
# #
-- source include/not_embedded.inc -- source include/not_embedded.inc
-- source include/have_debug_sync.inc
set local sql_mode=""; set local sql_mode="";
set global sql_mode=""; set global sql_mode="";
--disable_warnings connect con1, localhost, root;
SET DEBUG_SYNC = 'RESET'; connect con2, localhost, root;
DROP TABLE IF EXISTS t1, t2, t3;
DROP FUNCTION IF EXISTS MY_KILL;
--enable_warnings
delimiter |;
# Helper function used to repeatedly kill a session.
CREATE FUNCTION MY_KILL(tid INT) RETURNS INT
BEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
KILL tid;
RETURN (SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = tid);
END|
delimiter ;|
connect (con1, localhost, root,,);
connect (con2, localhost, root,,);
# Save id of con1
connection con1;
--disable_reconnect
let $ID= `SELECT @id := CONNECTION_ID()`;
connection con2;
let $ignore= `SELECT @id := $ID`;
connection con1;
# Signal when this connection is terminating.
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
# See if we can kill read().
# Run into read() immediately after hitting 'before_do_command_net_read'.
SET DEBUG_SYNC= 'before_do_command_net_read SIGNAL con1_read';
# Kill con1
connection con2;
SET DEBUG_SYNC='now WAIT_FOR con1_read';
# At this point we have no way to figure out, when con1 is blocked in
# reading from the socket. Sending KILL to early would not terminate
# con1. So we repeat KILL until con1 terminates.
let $wait_condition= SELECT MY_KILL(@id);
--source include/wait_condition.inc
# If KILL missed the read(), sync point wait will time out.
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
SET DEBUG_SYNC = 'RESET';
connection con1;
--error 1053,2006,2013,5014
SELECT 1;
--enable_reconnect
# this should work, and we should have a new connection_id()
SELECT 1;
let $ignore= `SELECT @id := $ID`;
SELECT @id != CONNECTION_ID();
#make sure the server is still alive
connection con2;
SELECT 4;
connection default;
--error ER_SUBQUERIES_NOT_SUPPORTED
KILL (SELECT COUNT(*) FROM mysql.user);
connection con1;
let $ID= `SELECT @id := CONNECTION_ID()`;
connection con2;
let $ignore= `SELECT @id := $ID`;
connection con1;
disable_reconnect;
# Signal when this connection is terminating.
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
# See if we can kill the sync point itself.
# Wait in 'before_do_command_net_read' until killed.
# It doesn't wait for a signal 'kill' but for to be killed.
# The signal name doesn't matter here.
SET DEBUG_SYNC= 'before_do_command_net_read SIGNAL con1_read WAIT_FOR kill';
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR con1_read';
# Repeat KILL until con1 terminates.
let $wait_condition= SELECT MY_KILL(@id);
--source include/wait_condition.inc
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
SET DEBUG_SYNC = 'RESET';
connection con1;
--error 1053,2006,2013,5014
SELECT 1;
enable_reconnect;
SELECT 1;
let $ignore= `SELECT @id := $ID`;
SELECT @id != CONNECTION_ID();
connection con2;
SELECT 4;
connection default;
#
# BUG#14851: killing long running subquery processed via a temporary table.
#
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT);
CREATE TABLE t2 (id INT UNSIGNED NOT NULL);
INSERT INTO t1 VALUES
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0);
INSERT t1 SELECT 0 FROM t1 AS a1, t1 AS a2 LIMIT 4032;
INSERT INTO t2 SELECT id FROM t1;
connection con1;
let $ID= `SELECT @id := CONNECTION_ID()`;
connection con2;
let $ignore= `SELECT @id := $ID`;
connection con1;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
SET DEBUG_SYNC= 'before_acos_function SIGNAL in_sync';
# This is a very long running query. If this test start failing,
# it may be necessary to change to an even longer query.
send SELECT id FROM t1 WHERE id IN
(SELECT DISTINCT a.id FROM t2 a, t2 b, t2 c, t2 d
GROUP BY ACOS(1/a.id), b.id, c.id, d.id
HAVING a.id BETWEEN 10 AND 20);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL @id;
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
connection con1;
--error 1317,1053,2006,2013,5014
reap;
SELECT 1;
connection default;
SET DEBUG_SYNC = 'RESET';
DROP TABLE t1, t2;
#
# Test of blocking of sending ERROR after OK or EOF
#
connection con1;
let $ID= `SELECT @id := CONNECTION_ID()`;
connection con2;
let $ignore= `SELECT @id := $ID`;
connection con1;
SET DEBUG_SYNC= 'before_acos_function SIGNAL in_sync WAIT_FOR kill';
send SELECT ACOS(0);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
reap;
SELECT 1;
SELECT @id = CONNECTION_ID();
connection default;
SET DEBUG_SYNC = 'RESET';
#
# Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
#
CREATE TABLE t1 (f1 INT);
delimiter |;
CREATE FUNCTION bug27563() RETURNS INT(11)
DETERMINISTIC
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '70100' SET @a:= 'killed';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
SET DEBUG_SYNC= 'now SIGNAL in_sync WAIT_FOR kill';
RETURN 1;
END|
delimiter ;|
# Test stored functions
# Test INSERT
connection con1;
let $ID= `SELECT @id := CONNECTION_ID()`;
connection con2;
let $ignore= `SELECT @id := $ID`;
connection con1;
send INSERT INTO t1 VALUES (bug27563());
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
--error 1317
reap;
SELECT * FROM t1;
connection default;
SET DEBUG_SYNC = 'RESET';
# Test UPDATE
INSERT INTO t1 VALUES(0);
connection con1;
send UPDATE t1 SET f1= bug27563();
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
--error 1317
reap;
SELECT * FROM t1;
connection default;
SET DEBUG_SYNC = 'RESET';
# Test DELETE
INSERT INTO t1 VALUES(1);
connection con1;
send DELETE FROM t1 WHERE bug27563() IS NULL;
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
--error 1317
reap;
SELECT * FROM t1;
connection default;
SET DEBUG_SYNC = 'RESET';
# Test SELECT
connection con1;
send SELECT * FROM t1 WHERE f1= bug27563();
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
--error 1317
reap;
SELECT * FROM t1;
connection default;
SET DEBUG_SYNC = 'RESET';
DROP FUNCTION bug27563;
# Test TRIGGERS
CREATE TABLE t2 (f2 INT);
delimiter |;
CREATE TRIGGER trg27563 BEFORE INSERT ON t1 FOR EACH ROW
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '70100' SET @a:= 'killed';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
INSERT INTO t2 VALUES(0);
SET DEBUG_SYNC= 'now SIGNAL in_sync WAIT_FOR kill';
INSERT INTO t2 VALUES(1);
END|
delimiter ;|
connection con1;
send INSERT INTO t1 VALUES(2),(3);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
--error 1317
reap;
SELECT * FROM t1;
SELECT * FROM t2;
connection default;
SET DEBUG_SYNC = 'RESET';
DROP TABLE t1, t2;
--echo #
--echo # Bug#19723: kill of active connection yields different error code
--echo # depending on platform.
--echo #
--connection con1
let $ID= `SELECT @id := CONNECTION_ID()`;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
--disable_reconnect
--error ER_CONNECTION_KILLED
KILL @id;
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
connection con1;
--echo # ER_SERVER_SHUTDOWN, CR_SERVER_GONE_ERROR, CR_SERVER_LOST,
--echo # depending on the timing of close of the connection socket
--error 1053,2006,2013,5014
SELECT 1;
--enable_reconnect
SELECT 1;
let $ignore= `SELECT @id := $ID`;
SELECT @id != CONNECTION_ID();
connection default;
SET DEBUG_SYNC = 'RESET';
--echo # --echo #
--echo # Additional test for WL#3726 "DDL locking for all metadata objects" --echo # Additional test for WL#3726 "DDL locking for all metadata objects"
@ -304,9 +21,6 @@ SET DEBUG_SYNC = 'RESET';
--echo # can be tricky to write test case for some of them (e.g. REPAIR or --echo # can be tricky to write test case for some of them (e.g. REPAIR or
--echo # ALTER and other statements under LOCK TABLES). --echo # ALTER and other statements under LOCK TABLES).
--echo # --echo #
--disable_warnings
drop tables if exists t1, t2, t3;
--enable_warnings
create table t1 (i int primary key); create table t1 (i int primary key);
connect (blocker, localhost, root, , ); connect (blocker, localhost, root, , );
@ -503,6 +217,7 @@ drop table t2;
--echo # --echo #
--echo # Test kill USER --echo # Test kill USER
--echo # --echo #
--source include/count_sessions.inc
grant ALL on test.* to test@localhost; grant ALL on test.* to test@localhost;
grant ALL on test.* to test2@localhost; grant ALL on test.* to test2@localhost;
connect (con3, localhost, test,,); connect (con3, localhost, test,,);
@ -527,6 +242,7 @@ connection con4;
--error 2013,2006,5014 --error 2013,2006,5014
select 1; select 1;
connection default; connection default;
--source include/wait_until_count_sessions.inc
--echo # --echo #
--echo # MDEV-4911 - add KILL query id, and add query id information to --echo # MDEV-4911 - add KILL query id, and add query id information to
@ -570,11 +286,9 @@ reap;
disconnect con5; disconnect con5;
DROP USER u1@localhost; DROP USER u1@localhost;
SET DEBUG_SYNC = 'RESET';
DROP FUNCTION MY_KILL;
set global sql_mode=default; set global sql_mode=default;
disconnect con1;
disconnect con2;
--echo # --echo #
--echo # MDEV-17998 --echo # MDEV-17998

View File

@ -0,0 +1,239 @@
set local sql_mode="";
set global sql_mode="";
CREATE FUNCTION MY_KILL(tid INT) RETURNS INT
BEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
KILL tid;
RETURN (SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = tid);
END|
connect con1, localhost, root;
connect con2, localhost, root;
connection con1;
connection con2;
connection con1;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
SET DEBUG_SYNC= 'before_do_command_net_read SIGNAL con1_read';
connection con2;
SET DEBUG_SYNC='now WAIT_FOR con1_read';
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
SET DEBUG_SYNC = 'RESET';
connection con1;
SELECT 1;
Got one of the listed errors
SELECT 1;
1
1
SELECT @id != CONNECTION_ID();
@id != CONNECTION_ID()
1
connection con2;
SELECT 4;
4
4
connection default;
KILL (SELECT COUNT(*) FROM mysql.user);
ERROR 42000: KILL does not support subqueries or stored functions
connection con1;
connection con2;
connection con1;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
SET DEBUG_SYNC= 'before_do_command_net_read SIGNAL con1_read WAIT_FOR kill';
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR con1_read';
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
SET DEBUG_SYNC = 'RESET';
connection con1;
SELECT 1;
Got one of the listed errors
SELECT 1;
1
1
SELECT @id != CONNECTION_ID();
@id != CONNECTION_ID()
1
connection con2;
SELECT 4;
4
4
connection default;
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT);
CREATE TABLE t2 (id INT UNSIGNED NOT NULL);
INSERT INTO t1 VALUES
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0);
INSERT t1 SELECT 0 FROM t1 AS a1, t1 AS a2 LIMIT 4032;
INSERT INTO t2 SELECT id FROM t1;
connection con1;
connection con2;
connection con1;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
SET DEBUG_SYNC= 'before_acos_function SIGNAL in_sync';
SELECT id FROM t1 WHERE id IN
(SELECT DISTINCT a.id FROM t2 a, t2 b, t2 c, t2 d
GROUP BY ACOS(1/a.id), b.id, c.id, d.id
HAVING a.id BETWEEN 10 AND 20);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL @id;
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
connection con1;
Got one of the listed errors
SELECT 1;
1
1
connection default;
SET DEBUG_SYNC = 'RESET';
DROP TABLE t1, t2;
connection con1;
connection con2;
connection con1;
SET DEBUG_SYNC= 'before_acos_function SIGNAL in_sync WAIT_FOR kill';
SELECT ACOS(0);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ACOS(0)
1.5707963267948966
SELECT 1;
1
1
SELECT @id = CONNECTION_ID();
@id = CONNECTION_ID()
1
connection default;
SET DEBUG_SYNC = 'RESET';
CREATE TABLE t1 (f1 INT);
CREATE FUNCTION bug27563() RETURNS INT(11)
DETERMINISTIC
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '70100' SET @a:= 'killed';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
SET DEBUG_SYNC= 'now SIGNAL in_sync WAIT_FOR kill';
RETURN 1;
END|
connection con1;
connection con2;
connection con1;
INSERT INTO t1 VALUES (bug27563());
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ERROR 70100: Query execution was interrupted
SELECT * FROM t1;
f1
connection default;
SET DEBUG_SYNC = 'RESET';
INSERT INTO t1 VALUES(0);
connection con1;
UPDATE t1 SET f1= bug27563();
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ERROR 70100: Query execution was interrupted
SELECT * FROM t1;
f1
0
connection default;
SET DEBUG_SYNC = 'RESET';
INSERT INTO t1 VALUES(1);
connection con1;
DELETE FROM t1 WHERE bug27563() IS NULL;
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ERROR 70100: Query execution was interrupted
SELECT * FROM t1;
f1
0
1
connection default;
SET DEBUG_SYNC = 'RESET';
connection con1;
SELECT * FROM t1 WHERE f1= bug27563();
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ERROR 70100: Query execution was interrupted
SELECT * FROM t1;
f1
0
1
connection default;
SET DEBUG_SYNC = 'RESET';
DROP FUNCTION bug27563;
CREATE TABLE t2 (f2 INT);
CREATE TRIGGER trg27563 BEFORE INSERT ON t1 FOR EACH ROW
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '70100' SET @a:= 'killed';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
INSERT INTO t2 VALUES(0);
SET DEBUG_SYNC= 'now SIGNAL in_sync WAIT_FOR kill';
INSERT INTO t2 VALUES(1);
END|
connection con1;
INSERT INTO t1 VALUES(2),(3);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
ERROR 70100: Query execution was interrupted
SELECT * FROM t1;
f1
0
1
SELECT * FROM t2;
f2
0
connection default;
SET DEBUG_SYNC = 'RESET';
DROP TABLE t1, t2;
#
# Bug#19723: kill of active connection yields different error code
# depending on platform.
#
connection con1;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
KILL @id;
ERROR 70100: Connection was killed
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
connection con1;
# ER_SERVER_SHUTDOWN, CR_SERVER_GONE_ERROR, CR_SERVER_LOST,
# depending on the timing of close of the connection socket
SELECT 1;
Got one of the listed errors
SELECT 1;
1
1
SELECT @id != CONNECTION_ID();
@id != CONNECTION_ID()
1
connection default;
SET DEBUG_SYNC = 'RESET';
DROP FUNCTION MY_KILL;
set global sql_mode=default;
disconnect con1;
disconnect con2;
#
# MDEV-29368 Assertion `trx->mysql_thd == thd' failed in innobase_kill_query from process_timers/timer_handler and use-after-poison in innobase_kill_query
#
connect foo,localhost,root;
create table t1 (a int) engine=innodb;
insert t1 values (1);
set debug_sync='THD_cleanup_after_set_killed SIGNAL go0 WAIT_FOR go1';
set debug_sync='innobase_connection_closed SIGNAL go2 WAIT_FOR go3';
disconnect foo;
connection default;
set debug_sync='now WAIT_FOR go0';
set debug_sync='found_killee SIGNAL go1 WAIT_FOR go2';
kill $id;
set debug_sync='now SIGNAL go3';
drop table t1;
set debug_sync='reset';

View File

@ -0,0 +1,318 @@
#
# Test KILL and KILL QUERY statements.
#
# Killing a connection in an embedded server does not work like in a normal
# server, if it is waiting for a new statement. In an embedded server, the
# connection does not read() from a socket, but returns control to the
# application. 'mysqltest' does not handle the kill request.
#
-- source include/not_embedded.inc
-- source include/have_debug_sync.inc
-- source include/have_innodb.inc
set local sql_mode="";
set global sql_mode="";
delimiter |;
# Helper function used to repeatedly kill a session.
CREATE FUNCTION MY_KILL(tid INT) RETURNS INT
BEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
KILL tid;
RETURN (SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = tid);
END|
delimiter ;|
connect con1, localhost, root;
connect con2, localhost, root;
# Save id of con1
connection con1;
--disable_reconnect
let $ID= `SELECT @id := CONNECTION_ID()`;
connection con2;
let $ignore= `SELECT @id := $ID`;
connection con1;
# Signal when this connection is terminating.
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
# See if we can kill read().
# Run into read() immediately after hitting 'before_do_command_net_read'.
SET DEBUG_SYNC= 'before_do_command_net_read SIGNAL con1_read';
# Kill con1
connection con2;
SET DEBUG_SYNC='now WAIT_FOR con1_read';
# At this point we have no way to figure out, when con1 is blocked in
# reading from the socket. Sending KILL to early would not terminate
# con1. So we repeat KILL until con1 terminates.
let $wait_condition= SELECT MY_KILL(@id);
--source include/wait_condition.inc
# If KILL missed the read(), sync point wait will time out.
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
SET DEBUG_SYNC = 'RESET';
connection con1;
--error 1053,2006,2013,5014
SELECT 1;
--enable_reconnect
# this should work, and we should have a new connection_id()
SELECT 1;
let $ignore= `SELECT @id := $ID`;
SELECT @id != CONNECTION_ID();
#make sure the server is still alive
connection con2;
SELECT 4;
connection default;
--error ER_SUBQUERIES_NOT_SUPPORTED
KILL (SELECT COUNT(*) FROM mysql.user);
connection con1;
let $ID= `SELECT @id := CONNECTION_ID()`;
connection con2;
let $ignore= `SELECT @id := $ID`;
connection con1;
disable_reconnect;
# Signal when this connection is terminating.
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
# See if we can kill the sync point itself.
# Wait in 'before_do_command_net_read' until killed.
# It doesn't wait for a signal 'kill' but for to be killed.
# The signal name doesn't matter here.
SET DEBUG_SYNC= 'before_do_command_net_read SIGNAL con1_read WAIT_FOR kill';
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR con1_read';
# Repeat KILL until con1 terminates.
let $wait_condition= SELECT MY_KILL(@id);
--source include/wait_condition.inc
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
SET DEBUG_SYNC = 'RESET';
connection con1;
--error 1053,2006,2013,5014
SELECT 1;
enable_reconnect;
SELECT 1;
let $ignore= `SELECT @id := $ID`;
SELECT @id != CONNECTION_ID();
connection con2;
SELECT 4;
connection default;
#
# BUG#14851: killing long running subquery processed via a temporary table.
#
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT);
CREATE TABLE t2 (id INT UNSIGNED NOT NULL);
INSERT INTO t1 VALUES
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0),
(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0);
INSERT t1 SELECT 0 FROM t1 AS a1, t1 AS a2 LIMIT 4032;
INSERT INTO t2 SELECT id FROM t1;
connection con1;
let $ID= `SELECT @id := CONNECTION_ID()`;
connection con2;
let $ignore= `SELECT @id := $ID`;
connection con1;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
SET DEBUG_SYNC= 'before_acos_function SIGNAL in_sync';
# This is a very long running query. If this test start failing,
# it may be necessary to change to an even longer query.
send SELECT id FROM t1 WHERE id IN
(SELECT DISTINCT a.id FROM t2 a, t2 b, t2 c, t2 d
GROUP BY ACOS(1/a.id), b.id, c.id, d.id
HAVING a.id BETWEEN 10 AND 20);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL @id;
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
connection con1;
--error 1317,1053,2006,2013,5014
reap;
SELECT 1;
connection default;
SET DEBUG_SYNC = 'RESET';
DROP TABLE t1, t2;
#
# Test of blocking of sending ERROR after OK or EOF
#
connection con1;
let $ID= `SELECT @id := CONNECTION_ID()`;
connection con2;
let $ignore= `SELECT @id := $ID`;
connection con1;
SET DEBUG_SYNC= 'before_acos_function SIGNAL in_sync WAIT_FOR kill';
send SELECT ACOS(0);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
reap;
SELECT 1;
SELECT @id = CONNECTION_ID();
connection default;
SET DEBUG_SYNC = 'RESET';
#
# Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
#
CREATE TABLE t1 (f1 INT);
delimiter |;
CREATE FUNCTION bug27563() RETURNS INT(11)
DETERMINISTIC
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '70100' SET @a:= 'killed';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
SET DEBUG_SYNC= 'now SIGNAL in_sync WAIT_FOR kill';
RETURN 1;
END|
delimiter ;|
# Test stored functions
# Test INSERT
connection con1;
let $ID= `SELECT @id := CONNECTION_ID()`;
connection con2;
let $ignore= `SELECT @id := $ID`;
connection con1;
send INSERT INTO t1 VALUES (bug27563());
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
--error 1317
reap;
SELECT * FROM t1;
connection default;
SET DEBUG_SYNC = 'RESET';
# Test UPDATE
INSERT INTO t1 VALUES(0);
connection con1;
send UPDATE t1 SET f1= bug27563();
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
--error 1317
reap;
SELECT * FROM t1;
connection default;
SET DEBUG_SYNC = 'RESET';
# Test DELETE
INSERT INTO t1 VALUES(1);
connection con1;
send DELETE FROM t1 WHERE bug27563() IS NULL;
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
--error 1317
reap;
SELECT * FROM t1;
connection default;
SET DEBUG_SYNC = 'RESET';
# Test SELECT
connection con1;
send SELECT * FROM t1 WHERE f1= bug27563();
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
--error 1317
reap;
SELECT * FROM t1;
connection default;
SET DEBUG_SYNC = 'RESET';
DROP FUNCTION bug27563;
# Test TRIGGERS
CREATE TABLE t2 (f2 INT);
delimiter |;
CREATE TRIGGER trg27563 BEFORE INSERT ON t1 FOR EACH ROW
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '70100' SET @a:= 'killed';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
INSERT INTO t2 VALUES(0);
SET DEBUG_SYNC= 'now SIGNAL in_sync WAIT_FOR kill';
INSERT INTO t2 VALUES(1);
END|
delimiter ;|
connection con1;
send INSERT INTO t1 VALUES(2),(3);
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
KILL QUERY @id;
connection con1;
--error 1317
reap;
SELECT * FROM t1;
SELECT * FROM t2;
connection default;
SET DEBUG_SYNC = 'RESET';
DROP TABLE t1, t2;
--echo #
--echo # Bug#19723: kill of active connection yields different error code
--echo # depending on platform.
--echo #
--connection con1
let $ID= `SELECT @id := CONNECTION_ID()`;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
--disable_reconnect
--error ER_CONNECTION_KILLED
KILL @id;
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR con1_end';
connection con1;
--echo # ER_SERVER_SHUTDOWN, CR_SERVER_GONE_ERROR, CR_SERVER_LOST,
--echo # depending on the timing of close of the connection socket
--error 1053,2006,2013,5014
SELECT 1;
--enable_reconnect
SELECT 1;
let $ignore= `SELECT @id := $ID`;
SELECT @id != CONNECTION_ID();
connection default;
SET DEBUG_SYNC = 'RESET';
DROP FUNCTION MY_KILL;
set global sql_mode=default;
disconnect con1;
disconnect con2;
--echo #
--echo # MDEV-29368 Assertion `trx->mysql_thd == thd' failed in innobase_kill_query from process_timers/timer_handler and use-after-poison in innobase_kill_query
--echo #
connect foo,localhost,root;
let $id=`select connection_id()`;
create table t1 (a int) engine=innodb;
insert t1 values (1);
set debug_sync='THD_cleanup_after_set_killed SIGNAL go0 WAIT_FOR go1';
set debug_sync='innobase_connection_closed SIGNAL go2 WAIT_FOR go3';
disconnect foo;
connection default;
set debug_sync='now WAIT_FOR go0';
set debug_sync='found_killee SIGNAL go1 WAIT_FOR go2';
evalp kill $id;
set debug_sync='now SIGNAL go3';
drop table t1;
set debug_sync='reset';

View File

@ -27,9 +27,9 @@ current_user()
user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345 user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345
# check global privileges # check global privileges
select * from mariadbtestdb.t1; select * from mariadbtestdb.t1;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't1' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
select * from mariadbtestdb2.t2; select * from mariadbtestdb2.t2;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't2' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
connection default; connection default;
grant SELECT ON *.* TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345; grant SELECT ON *.* TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
disconnect con1; disconnect con1;
@ -46,9 +46,9 @@ disconnect con1;
connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,; connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,;
connection con1; connection con1;
select * from mariadbtestdb.t1; select * from mariadbtestdb.t1;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't1' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
select * from mariadbtestdb2.t2; select * from mariadbtestdb2.t2;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't2' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
# check data base privileges # check data base privileges
connection default; connection default;
grant SELECT ON mariadbtestdb.* TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345; grant SELECT ON mariadbtestdb.* TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
@ -58,7 +58,7 @@ connection con1;
select * from mariadbtestdb.t1; select * from mariadbtestdb.t1;
a b a b
select * from mariadbtestdb2.t2; select * from mariadbtestdb2.t2;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't2' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
select * from mariadbtestdb.t3; select * from mariadbtestdb.t3;
a a
# check table privileges # check table privileges
@ -71,9 +71,9 @@ connection con1;
select * from mariadbtestdb.t1; select * from mariadbtestdb.t1;
a b a b
select * from mariadbtestdb2.t2; select * from mariadbtestdb2.t2;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't2' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
select * from mariadbtestdb.t3; select * from mariadbtestdb.t3;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't3' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t3`
# check column privileges # check column privileges
connection default; connection default;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
@ -82,11 +82,11 @@ disconnect con1;
connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,; connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,;
connection con1; connection con1;
select * from mariadbtestdb.t1; select * from mariadbtestdb.t1;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't1' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
select * from mariadbtestdb2.t2; select * from mariadbtestdb2.t2;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't2' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
select * from mariadbtestdb.t3; select * from mariadbtestdb.t3;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't3' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t3`
select a from mariadbtestdb.t1; select a from mariadbtestdb.t1;
a a
# check role # check role
@ -101,13 +101,13 @@ disconnect con1;
connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,; connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,;
connection con1; connection con1;
select * from mariadbtestdb.t1; select * from mariadbtestdb.t1;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't1' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
select * from mariadbtestdb2.t2; select * from mariadbtestdb2.t2;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't2' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
select * from mariadbtestdb.t3; select * from mariadbtestdb.t3;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't3' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t3`
select a from mariadbtestdb.t1; select a from mariadbtestdb.t1;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't1' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
SELECT CURRENT_ROLE; SELECT CURRENT_ROLE;
CURRENT_ROLE CURRENT_ROLE
NULL NULL
@ -116,11 +116,11 @@ SELECT CURRENT_ROLE;
CURRENT_ROLE CURRENT_ROLE
role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678 role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678
select * from mariadbtestdb.t1; select * from mariadbtestdb.t1;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't1' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
select * from mariadbtestdb2.t2; select * from mariadbtestdb2.t2;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't2' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
select * from mariadbtestdb.t3; select * from mariadbtestdb.t3;
ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table 't3' ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t3`
select a from mariadbtestdb.t1; select a from mariadbtestdb.t1;
a a
# check procedure # check procedure

View File

@ -27,7 +27,7 @@ CREATE TABLE t1(f1 INT);
GRANT SELECT ON T1 to user_1@localhost; GRANT SELECT ON T1 to user_1@localhost;
connect con1,localhost,user_1,,d1; connect con1,localhost,user_1,,d1;
select * from t1; select * from t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d1`.`t1`
select * from T1; select * from T1;
f1 f1
connection default; connection default;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,64 @@
--source include/have_debug.inc
--echo #
--echo # MDEV-29672 Add MTR tests covering key and key segment flags and types
--echo #
SET debug_dbug='+d,key';
CREATE TABLE types (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
type TEXT NOT NULL,
prefix_length INT NOT NULL
);
INSERT INTO types (type, prefix_length) VALUES
('INT', 0),
('BIGINT', 0),
('DOUBLE', 0),
('DECIMAL(20,10)', 0),
('CHAR(4)', 0),
('CHAR(10)', 0),
('VARCHAR(4)', 0),
('VARCHAR(6)', 0),
('VARCHAR(8)', 0),
('VARCHAR(12)', 0),
('VARCHAR(16)', 0),
('VARCHAR(100)', 0),
('TEXT', 4),
('TEXT', 6),
('TEXT', 8),
('TEXT', 12),
('TEXT', 16),
('TEXT', 100);
DELIMITER $$;
BEGIN NOT ATOMIC
DECLARE create2_template TEXT
DEFAULT 'CREATE TABLE t1 (a TYPE1 NOT NULL, b TYPE2 NOT NULL, KEY(SEG1,SEG2))';
DECLARE cur2 CURSOR FOR
SELECT t1.type AS type1,
t2.type AS type2,
t1.prefix_length AS prefix_length1,
t2.prefix_length AS prefix_length2
FROM types AS t1, types AS t2
ORDER BY t1.id, t2.id;
FOR rec IN cur2 DO
BEGIN
DECLARE tabledef TEXT DEFAULT REPLACE(create2_template,'TYPE1', rec.type1);
SET tabledef=REPLACE(tabledef, 'TYPE2', rec.type2);
SET tabledef=REPLACE(tabledef, 'SEG1',
IF(rec.prefix_length1,
CONCAT('a(',rec.prefix_length1,')'), 'a'));
SET tabledef=REPLACE(tabledef, 'SEG2',
IF(rec.prefix_length2,
CONCAT('b(',rec.prefix_length2,')'), 'b'));
SELECT tabledef AS ``;
EXECUTE IMMEDIATE tabledef;
SHOW WARNINGS;
SHOW CREATE TABLE t1;
DROP TABLE t1;
END;
END FOR;
END;
$$
DELIMITER ;$$
DROP TABLE types;
SET debug_dbug='';

View File

@ -8,7 +8,7 @@ CREATE TABLE time_zone_leap_second LIKE mysql.time_zone_leap_second;
# #
# Verbose run # Verbose run
set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on'); set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC; SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode'); set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0'); execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0'); execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0');
@ -57,7 +57,7 @@ execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_t
# #
# Run on zoneinfo directory # Run on zoneinfo directory
set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on'); set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC; SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode'); set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0'); execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0'); execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0');
@ -117,7 +117,7 @@ COUNT(*)
# Run on zoneinfo directory --skip-write-binlog # Run on zoneinfo directory --skip-write-binlog
# #
set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on'); set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC; SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode'); set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0'); execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0');
SET @save_sql_log_bin=@@SQL_LOG_BIN; SET @save_sql_log_bin=@@SQL_LOG_BIN;
@ -189,7 +189,7 @@ TRUNCATE TABLE time_zone_leap_second;
# Testing with explicit timezonefile # Testing with explicit timezonefile
# #
set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on'); set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC; SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode'); set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0'); execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0'); execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0');
@ -253,7 +253,7 @@ TRUNCATE TABLE time_zone_leap_second;
# Testing with explicit timezonefile --skip-write-binlog # Testing with explicit timezonefile --skip-write-binlog
# #
set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on'); set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC; SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode'); set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0'); execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0');
SET @save_sql_log_bin=@@SQL_LOG_BIN; SET @save_sql_log_bin=@@SQL_LOG_BIN;
@ -311,7 +311,7 @@ TRUNCATE TABLE time_zone_leap_second;
# Testing --leap # Testing --leap
# #
set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on'); set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC; SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode'); set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0'); execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0'); execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0');
@ -374,7 +374,7 @@ TRUNCATE TABLE time_zone_leap_second;
# Testing --skip-write-binlog --leap # Testing --skip-write-binlog --leap
# #
set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on'); set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC; SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode'); set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0'); execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0');
SET @save_sql_log_bin=@@SQL_LOG_BIN; SET @save_sql_log_bin=@@SQL_LOG_BIN;
@ -426,7 +426,7 @@ COM_TRUNCATE 1
# Testing --skip-write-binlog # Testing --skip-write-binlog
# #
set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on'); set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC; SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode'); set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0'); execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0');
SET @save_sql_log_bin=@@SQL_LOG_BIN; SET @save_sql_log_bin=@@SQL_LOG_BIN;
@ -448,7 +448,7 @@ COMMIT;
SET SESSION SQL_LOG_BIN=@save_sql_log_bin; SET SESSION SQL_LOG_BIN=@save_sql_log_bin;
execute immediate if(@wsrep_is_on, 'SET SESSION WSREP_ON=@save_wsrep_on', 'do 0'); execute immediate if(@wsrep_is_on, 'SET SESSION WSREP_ON=@save_wsrep_on', 'do 0');
set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on'); set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC; SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode'); set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0'); execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0');
SET @save_sql_log_bin=@@SQL_LOG_BIN; SET @save_sql_log_bin=@@SQL_LOG_BIN;
@ -469,10 +469,33 @@ execute immediate if(@wsrep_is_on, 'SET SESSION WSREP_ON=@save_wsrep_on', 'do 0'
# End of 10.2 tests # End of 10.2 tests
# #
# #
# MDEV-29347 MariaDB 10.6.8 fails to start when ONLY_FULL_GROUP_BY gets provided
#
set sql_mode=only_full_group_by;
SELECT COUNT(*) FROM time_zone;
COUNT(*)
2
SELECT COUNT(*) FROM time_zone_name;
COUNT(*)
2
SELECT COUNT(*) FROM time_zone_transition;
COUNT(*)
0
SELECT COUNT(*) FROM time_zone_transition_type;
COUNT(*)
2
SELECT COUNT(*) FROM time_zone_leap_second;
COUNT(*)
0
select @@sql_mode;
@@sql_mode
ONLY_FULL_GROUP_BY
set sql_mode=default;
#
# MDEV-6236 - [PATCH] mysql_tzinfo_to_sql may produce invalid SQL # MDEV-6236 - [PATCH] mysql_tzinfo_to_sql may produce invalid SQL
# #
set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on'); set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC; SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode'); set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0'); execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0');
execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0'); execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0');

View File

@ -214,6 +214,23 @@ SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
--echo # End of 10.2 tests --echo # End of 10.2 tests
--echo # --echo #
--echo #
--echo # MDEV-29347 MariaDB 10.6.8 fails to start when ONLY_FULL_GROUP_BY gets provided
--echo #
--exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo > $MYSQL_TMP_DIR/tz.sql
set sql_mode=only_full_group_by;
--disable_query_log
--source $MYSQL_TMP_DIR/tz.sql
--enable_query_log
SELECT COUNT(*) FROM time_zone;
SELECT COUNT(*) FROM time_zone_name;
SELECT COUNT(*) FROM time_zone_transition;
SELECT COUNT(*) FROM time_zone_transition_type;
SELECT COUNT(*) FROM time_zone_leap_second;
select @@sql_mode;
set sql_mode=default;
--echo # --echo #
--echo # MDEV-6236 - [PATCH] mysql_tzinfo_to_sql may produce invalid SQL --echo # MDEV-6236 - [PATCH] mysql_tzinfo_to_sql may produce invalid SQL
--echo # --echo #

View File

@ -1901,18 +1901,18 @@ FLUSH PRIVILEGES;
# #
This installation of MariaDB is already upgraded to MariaDB . This installation of MariaDB is already upgraded to MariaDB .
There is no need to run mysql_upgrade again for MariaDB . There is no need to run mysql_upgrade again for MariaDB .
Looking for 'mysql' as: mysql Looking for 'mariadb' as: mariadb
This installation of MariaDB is already upgraded to MariaDB . This installation of MariaDB is already upgraded to MariaDB .
There is no need to run mysql_upgrade again for MariaDB . There is no need to run mysql_upgrade again for MariaDB .
# #
# MDEV-27279: mariadb_upgrade check-if-upgrade absence is do it # MDEV-27279: mariadb_upgrade check-if-upgrade absence is do it
# #
Looking for 'mysql' as: mysql Looking for 'mariadb' as: mariadb
Empty or non existent ...mysql_upgrade_info. Assuming mysql_upgrade has to be run! Empty or non existent ...mysql_upgrade_info. Assuming mysql_upgrade has to be run!
# #
# MDEV-27279: mariadb_upgrade check-if-upgrade with minor version change # MDEV-27279: mariadb_upgrade check-if-upgrade with minor version change
# #
Looking for 'mysql' as: mysql Looking for 'mariadb' as: mariadb
This installation of MariaDB is already upgraded to MariaDB . This installation of MariaDB is already upgraded to MariaDB .
There is no need to run mysql_upgrade again for MariaDB . There is no need to run mysql_upgrade again for MariaDB .
This installation of MariaDB is already upgraded to MariaDB . This installation of MariaDB is already upgraded to MariaDB .

View File

@ -56,7 +56,7 @@ DROP USER mysqltest1@'%';
--echo Run mysql_upgrade with a non existing server socket --echo Run mysql_upgrade with a non existing server socket
--replace_result $MYSQLTEST_VARDIR var --replace_result $MYSQLTEST_VARDIR var
--replace_regex /.*mysqlcheck.*: Got/mysqlcheck: Got/ /\([0-9|-]*\)/(errno)/ --replace_regex /.*mariadb-check.*: Got/mariadb-check: Got/ /\([0-9|-]*\)/(errno)/
--error 1 --error 1
# NC: Added --skip-version-check, as the version check would fail when # NC: Added --skip-version-check, as the version check would fail when
# mysql_upgrade tries to get the server version. # mysql_upgrade tries to get the server version.
@ -140,7 +140,7 @@ let $MYSQLD_DATADIR= `select @@datadir`;
--echo Run mysql_upgrade with unauthorized access --echo Run mysql_upgrade with unauthorized access
--error 1 --error 1
--exec $MYSQL_UPGRADE --skip-verbose --user=root --password=wrong_password 2>&1 --exec $MYSQL_UPGRADE --skip-verbose --user=root --password=wrong_password 2>&1
--replace_regex /.*mysqlcheck.*: Got/mysqlcheck: Got/ /\([0-9|-]*\)/(errno)/ --replace_regex /.*mariadb-check.*: Got/mariadb-check: Got/ /\([0-9|-]*\)/(errno)/
--error 1 --error 1
--exec $MYSQL_UPGRADE --skip-verbose --skip-version-check --user=root --password=wrong_password 2>&1 --exec $MYSQL_UPGRADE --skip-verbose --skip-version-check --user=root --password=wrong_password 2>&1
@ -291,7 +291,7 @@ FLUSH PRIVILEGES;
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / --replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
--error 1 --error 1
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --exec $MYSQL_UPGRADE --check-if-upgrade-is-needed
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mysql.* as:[^\n]*/'mysql' as: mysql/ --replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/
--error 1 --error 1
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose --exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose
@ -303,7 +303,7 @@ FLUSH PRIVILEGES;
--replace_regex /[^ ]*mysql_upgrade_info/...mysql_upgrade_info/ --replace_regex /[^ ]*mysql_upgrade_info/...mysql_upgrade_info/
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --exec $MYSQL_UPGRADE --check-if-upgrade-is-needed
--replace_regex /'mysql.* as:[^\n]*/'mysql' as: mysql/ /open .* Assuming/open XXX. Assuming/ /[^ ]*mysql_upgrade_info/...mysql_upgrade_info/ --replace_regex /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/ /open .* Assuming/open XXX. Assuming/ /[^ ]*mysql_upgrade_info/...mysql_upgrade_info/
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose --exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose
--echo # --echo #
@ -325,7 +325,7 @@ EOF
--error 1 --error 1
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --silent --exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --silent
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mysql.* as:[^\n]*/'mysql' as: mysql/ --replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/
--error 1 --error 1
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose --exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / --replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
@ -352,7 +352,7 @@ EOF
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --silent --exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --silent
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / --replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --exec $MYSQL_UPGRADE --check-if-upgrade-is-needed
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mysql.* as:[^\n]*/'mysql' as: mysql/ --replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mariadb.* as:[^\n]*/'mysql' as: mysql/
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose --exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info --remove_file $MYSQLD_DATADIR/mysql_upgrade_info
drop table mysql.global_priv; drop table mysql.global_priv;

View File

@ -666,7 +666,7 @@ connect unsecure,localhost,untrusted,,mysqltest1;
mysql mysqltest1 -uuntrusted < var/tmp/bug31611.sql mysql mysqltest1 -uuntrusted < var/tmp/bug31611.sql
connection unsecure; connection unsecure;
INSERT INTO t1 VALUES (1,USER()); INSERT INTO t1 VALUES (1,USER());
ERROR 42000: INSERT command denied to user 'untrusted'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'untrusted'@'localhost' for table `mysqltest1`.`t1`
SELECT * FROM t1; SELECT * FROM t1;
a b a b
1 root@localhost 1 root@localhost

View File

@ -1929,6 +1929,7 @@ drop table `t1`;
create table t1(a int); create table t1(a int);
create table t2(a int); create table t2(a int);
create table t3(a int); create table t3(a int);
mysqldump: Couldn't find table: "non_existing"
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@ -3549,6 +3550,8 @@ create table t1 ( id serial );
create view v1 as select * from t1; create view v1 as select * from t1;
drop table t1; drop table t1;
mysqldump { mysqldump {
mysqldump: Got error: 1356: "View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them" when using LOCK TABLES
mysqldump: Couldn't execute 'SHOW FIELDS FROM `v1`': View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)
-- failed on view `v1`: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1` -- failed on view `v1`: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1`
@ -3846,6 +3849,9 @@ DROP TABLE t1;
CREATE TABLE t1(a int); CREATE TABLE t1(a int);
INSERT INTO t1 VALUES (1), (2); INSERT INTO t1 VALUES (1), (2);
mysqldump: Input filename too long: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa mysqldump: Input filename too long: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t2 (a INT) ENGINE=MyISAM; CREATE TABLE t2 (a INT) ENGINE=MyISAM;
CREATE TABLE t3 (a INT) ENGINE=MyISAM; CREATE TABLE t3 (a INT) ENGINE=MyISAM;
@ -3939,6 +3945,7 @@ grant all privileges on mysqldump_test_db.* to user2;
connect user27293,localhost,user1,,mysqldump_test_db,$MASTER_MYPORT,$MASTER_MYSOCK; connect user27293,localhost,user1,,mysqldump_test_db,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user27293; connection user27293;
create procedure mysqldump_test_db.sp1() select 'hello'; create procedure mysqldump_test_db.sp1() select 'hello';
mysqldump: user2 has insufficient privileges to SHOW CREATE PROCEDURE `sp1`!
-- insufficient privileges to SHOW CREATE PROCEDURE `sp1` -- insufficient privileges to SHOW CREATE PROCEDURE `sp1`
-- does user2 have permissions on mysql.proc? -- does user2 have permissions on mysql.proc?
@ -4171,6 +4178,7 @@ UNLOCK TABLES;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
mysqldump: Got error: 1146: "Table 'test.???????????????????????' doesn't exist" when using LOCK TABLES
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */; /*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
@ -4398,6 +4406,7 @@ Abernathy
aberrant aberrant
aberration aberration
drop table words; drop table words;
mysqlimport: Error: 1146, Table 'test.words' doesn't exist, when using table: words
drop table t1; drop table t1;
drop table t2; drop table t2;
drop table words2; drop table words2;
@ -4722,6 +4731,8 @@ CREATE TABLE t1 (a INT, b CHAR(10) CHARSET koi8r, c CHAR(10) CHARSET latin1);
CREATE TABLE t2 LIKE t1; CREATE TABLE t2 LIKE t1;
INSERT INTO t1 VALUES (1, 'ABC-АБВ', 'DEF-ÂÃÄ'), (2, NULL, NULL); INSERT INTO t1 VALUES (1, 'ABC-АБВ', 'DEF-ÂÃÄ'), (2, NULL, NULL);
# error on multi-character ENCLOSED/ESCAPED BY # error on multi-character ENCLOSED/ESCAPED BY
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
# default '--default-charset' (binary): # default '--default-charset' (binary):
################################################## ##################################################
1 ABC-<2D><><EFBFBD> DEF-<2D><><EFBFBD> 1 ABC-<2D><><EFBFBD> DEF-<2D><><EFBFBD>
@ -5208,6 +5219,7 @@ connection conn_1;
<field name="c1">3</field> <field name="c1">3</field>
</row> </row>
</table_data> </table_data>
mysqldump: user1 has insufficient privileges to SHOW CREATE FUNCTION `hello1`!
<triggers name="t2"> <triggers name="t2">
<trigger Trigger="trig1" sql_mode="" character_set_client="latin1" collation_connection="latin1_swedish_ci" Database_Collation="latin1_swedish_ci" Created="--TIME--"> <trigger Trigger="trig1" sql_mode="" character_set_client="latin1" collation_connection="latin1_swedish_ci" Database_Collation="latin1_swedish_ci" Created="--TIME--">
<![CDATA[ <![CDATA[
@ -5511,6 +5523,8 @@ ROUTINE_NAME
proc proc
one one
DROP DATABASE bug25717383; DROP DATABASE bug25717383;
mysqldump: Got error: 2005: "Unknown server host 'unknownhost'" when trying to connect
mysqldump: Couldn't execute 'SHOW SLAVE STATUS': Server has gone away (2006)
Usage: mysqldump [OPTIONS] database [tables] Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --databases DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases OR mysqldump [OPTIONS] --all-databases
@ -5758,6 +5772,7 @@ t1_id int,
CONSTRAINT fk CONSTRAINT fk
FOREIGN KEY (t1_id) REFERENCES t1 (id) FOREIGN KEY (t1_id) REFERENCES t1 (id)
) ENGINE = InnoDB; ) ENGINE = InnoDB;
mysqlimport: Error: 1452, Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `fk` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`)), when using table: t2
select count(*) from t2; select count(*) from t2;
count(*) count(*)
1 1
@ -6448,6 +6463,7 @@ j integer
INSERT INTO t VALUES (1,1),(2,2),(3,3),(4,4); INSERT INTO t VALUES (1,1),(2,2),(3,3),(4,4);
# Dump database 1 # Dump database 1
# Restore from database 1 to database 2 # Restore from database 1 to database 2
ERROR 1100 (HY000) at line 45: Table 'seq_t_i' was not locked with LOCK TABLES
SETVAL(`seq_t_i`, 1, 0) SETVAL(`seq_t_i`, 1, 0)
1 1
DROP DATABASE IF EXISTS test1; DROP DATABASE IF EXISTS test1;

View File

@ -739,7 +739,7 @@ create table t2(a int);
create table t3(a int); create table t3(a int);
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 6 --error 6
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --force --no-data test t3 t1 non_existing t2 --exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --force --no-data test t3 t1 non_existing t2 2>&1
drop table t1, t2, t3; drop table t1, t2, t3;
@ -1290,7 +1290,7 @@ drop table t1;
--echo mysqldump { --echo mysqldump {
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 2 --error 2
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --force -N --compact --skip-comments test --exec $MYSQL_DUMP --default-character-set=utf8mb4 --force -N --compact --skip-comments test 2>&1
--echo } mysqldump --echo } mysqldump
drop view v1; drop view v1;
@ -1528,13 +1528,13 @@ INSERT INTO t1 VALUES (1), (2);
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test --exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 2 --error 2
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test --exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 2 --error 2
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-optionally-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test --exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-optionally-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 2 --error 2
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test --exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --lines-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test --exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --lines-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
--remove_file $MYSQLTEST_VARDIR/tmp/t1.sql --remove_file $MYSQLTEST_VARDIR/tmp/t1.sql
@ -1608,7 +1608,7 @@ create procedure mysqldump_test_db.sp1() select 'hello';
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 2 --error 2
--exec $MYSQL_DUMP -f --compact --user=user2 --password= -h 127.0.0.1 -P $MASTER_MYPORT --routines mysqldump_test_db --exec $MYSQL_DUMP -f --compact --user=user2 --password= -h 127.0.0.1 -P $MASTER_MYPORT --routines mysqldump_test_db 2>&1
--exec $MYSQL_DUMP -f --compact --user=user1 --password= -h 127.0.0.1 -P $MASTER_MYPORT --routines mysqldump_test_db --exec $MYSQL_DUMP -f --compact --user=user1 --password= -h 127.0.0.1 -P $MASTER_MYPORT --routines mysqldump_test_db
@ -1714,7 +1714,7 @@ CREATE TABLE `כדשגכחךלדגכחשךדגחכךלדגכ` ( f1 INT );
--exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --default-character-set=utf8 --compatible=mysql323 test --exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --default-character-set=utf8 --compatible=mysql323 test
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 2 --error 2
--exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --default-character-set=latin1 --compatible=mysql323 test --exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --default-character-set=latin1 --compatible=mysql323 test 2>&1
DROP TABLE `כדשגכחךלדגכחשךדגחכךלדגכ`; DROP TABLE `כדשגכחךלדגכחשךדגחכךלדגכ`;
SET NAMES latin1; SET NAMES latin1;
@ -1768,9 +1768,8 @@ select * from words2;
# Drop table "words" and run with threads, should fail # Drop table "words" and run with threads, should fail
drop table words; drop table words;
--replace_regex /.*mysqlimport(\.exe)*/mysqlimport/ --replace_regex /.*mysqlimport(\.exe)*/mysqlimport/
--replace_result mysqldump.exe mysqldump
--error 1 --error 1
--exec $MYSQL_IMPORT --silent --use-threads=2 test $MYSQLTEST_VARDIR/tmp/t1.txt $MYSQLTEST_VARDIR/tmp/t2.txt $MYSQLTEST_VARDIR/std_data/words.dat $MYSQLTEST_VARDIR/std_data/words2.dat --exec $MYSQL_IMPORT --silent --use-threads=2 test $MYSQLTEST_VARDIR/tmp/t1.txt $MYSQLTEST_VARDIR/tmp/t2.txt $MYSQLTEST_VARDIR/std_data/words.dat $MYSQLTEST_VARDIR/std_data/words2.dat 2>&1
drop table t1; drop table t1;
drop table t2; drop table t2;
@ -2121,12 +2120,12 @@ INSERT INTO t1 VALUES (1, 'ABC-АБВ', 'DEF-ÂÃÄ'), (2, NULL, NULL);
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 2 --error 2
--exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by='12345' test t1 --exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by='12345' test t1 2>&1
--remove_file $file --remove_file $file
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 2 --error 2
--exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by='12345' test t1 --exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by='12345' test t1 2>&1
--remove_file $file --remove_file $file
--echo # default '--default-charset' (binary): --echo # default '--default-charset' (binary):
@ -2340,7 +2339,7 @@ connection conn_1;
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 2 --error 2
--exec $MYSQL_DUMP --user=user1 -R -E --triggers -X BUG52792 --exec $MYSQL_DUMP --user=user1 -R -E --triggers -X BUG52792 2>&1
connection default; connection default;
disconnect conn_1; disconnect conn_1;
@ -2548,16 +2547,17 @@ DROP DATABASE bug25717383;
# #
# MDEV-6091 mysqldump goes in a loop and segfaults if --dump-slave is specified and it cannot connect to the server # MDEV-6091 mysqldump goes in a loop and segfaults if --dump-slave is specified and it cannot connect to the server
# #
--replace_regex /mysqldump\.exe/mysqldump/ /'unknownhost' \(.*\)/'unknownhost'/
--error 2 --error 2
--exec $MYSQL_DUMP --default-character-set=utf8mb4 -hunknownhost --dump-slave nulldb --exec $MYSQL_DUMP --default-character-set=utf8mb4 -hunknownhost --dump-slave nulldb 2>&1
# #
# MDEV-6056 [PATCH] mysqldump writes usage to stdout even when not explicitly requested # MDEV-6056 [PATCH] mysqldump writes usage to stdout even when not explicitly requested
# #
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 1 --error 1
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --user=foo 2>&1 > $MYSQLTEST_VARDIR/tmp/bug6056.out --exec $MYSQL_DUMP --default-character-set=utf8mb4 --user=foo 2>&1
--exec $MYSQL_DUMP --help > $MYSQLTEST_VARDIR/tmp/bug6056.out --exec $MYSQL_DUMP --help 2>&1 > $MYSQLTEST_VARDIR/tmp/bug6056.out
--echo # --echo #
--echo # MDEV-9001 - [PATCH] Fix DB name quoting in mysqldump --routine --echo # MDEV-9001 - [PATCH] Fix DB name quoting in mysqldump --routine
@ -2677,8 +2677,9 @@ create table t2 (
0 0
EOF EOF
--replace_regex /.*mysqlimport(\.exe)*/mysqlimport/
--error 1 --error 1
--exec $MYSQL_IMPORT --silent test $MYSQLTEST_VARDIR/tmp/t2.txt --exec $MYSQL_IMPORT --silent test $MYSQLTEST_VARDIR/tmp/t2.txt 2>&1
--exec $MYSQL_IMPORT --silent -k test $MYSQLTEST_VARDIR/tmp/t2.txt --exec $MYSQL_IMPORT --silent -k test $MYSQLTEST_VARDIR/tmp/t2.txt
select count(*) from t2; select count(*) from t2;
@ -2881,7 +2882,7 @@ INSERT INTO t VALUES (1,1),(2,2),(3,3),(4,4);
--echo # Restore from database 1 to database 2 --echo # Restore from database 1 to database 2
--error 1 --error 1
--exec $MYSQL test2 < $MYSQLTEST_VARDIR/tmp/dumptest1.sql --exec $MYSQL test2 < $MYSQLTEST_VARDIR/tmp/dumptest1.sql 2>&1
--remove_file $MYSQLTEST_VARDIR/tmp/dumptest1.sql --remove_file $MYSQLTEST_VARDIR/tmp/dumptest1.sql
DROP DATABASE IF EXISTS test1; DROP DATABASE IF EXISTS test1;

View File

@ -22,7 +22,7 @@ select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
ERROR 42000: DELETE command denied to user 'ssl_user1'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'ssl_user1'@'localhost' for table `test`.`t1`
connection con3; connection con3;
SELECT VARIABLE_VALUE <> '' AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher'; SELECT VARIABLE_VALUE <> '' AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher';
have_ssl have_ssl
@ -31,7 +31,7 @@ select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
ERROR 42000: DELETE command denied to user 'ssl_user3'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'ssl_user3'@'localhost' for table `test`.`t1`
connection con4; connection con4;
SELECT VARIABLE_VALUE <> '' AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher'; SELECT VARIABLE_VALUE <> '' AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher';
have_ssl have_ssl
@ -40,7 +40,7 @@ select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
ERROR 42000: DELETE command denied to user 'ssl_user4'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'ssl_user4'@'localhost' for table `test`.`t1`
connection default; connection default;
disconnect con1; disconnect con1;
disconnect con3; disconnect con3;

View File

@ -13,7 +13,7 @@ return a+1;
END| END|
set optimizer_trace="enabled=on"; set optimizer_trace="enabled=on";
select * from db1.t1; select * from db1.t1;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t1`
select * from information_schema.OPTIMIZER_TRACE; select * from information_schema.OPTIMIZER_TRACE;
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
0 1 0 1

View File

@ -1897,7 +1897,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
SELECT * FROM t1 PARTITION (p0); SELECT * FROM t1 PARTITION (p0);
i i
UNLOCK TABLES; UNLOCK TABLES;
DROP TABLE t1; DROP TABLE t1, t2;
# #
# MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause. # MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause.
# #
@ -1915,7 +1915,88 @@ a b
4 3 4 3
8 2 8 2
2 6 2 6
DROP TABLE t1, t2; DROP TABLE t1;
#
# MDEV-21134 Crash with partitioned table, PARTITION syntax, and index_merge.
#
create table t1 (
pk int primary key,
a int,
b int,
filler char(32),
key (a),
key (b)
) engine=myisam partition by range(pk) (
partition p0 values less than (10),
partition p1 values less than MAXVALUE
) ;
insert into t1 select
seq,
MOD(seq, 100),
MOD(seq, 100),
'filler-data-filler-data'
from
seq_1_to_5000;
explain select * from t1 partition (p1) where a=10 and b=10;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index_merge a,b a,b 5,5 NULL 1 Using intersect(a,b); Using where
flush tables;
select * from t1 partition (p1)where a=10 and b=10;
pk a b filler
10 10 10 filler-data-filler-data
110 10 10 filler-data-filler-data
210 10 10 filler-data-filler-data
310 10 10 filler-data-filler-data
410 10 10 filler-data-filler-data
510 10 10 filler-data-filler-data
610 10 10 filler-data-filler-data
710 10 10 filler-data-filler-data
810 10 10 filler-data-filler-data
910 10 10 filler-data-filler-data
1010 10 10 filler-data-filler-data
1110 10 10 filler-data-filler-data
1210 10 10 filler-data-filler-data
1310 10 10 filler-data-filler-data
1410 10 10 filler-data-filler-data
1510 10 10 filler-data-filler-data
1610 10 10 filler-data-filler-data
1710 10 10 filler-data-filler-data
1810 10 10 filler-data-filler-data
1910 10 10 filler-data-filler-data
2010 10 10 filler-data-filler-data
2110 10 10 filler-data-filler-data
2210 10 10 filler-data-filler-data
2310 10 10 filler-data-filler-data
2410 10 10 filler-data-filler-data
2510 10 10 filler-data-filler-data
2610 10 10 filler-data-filler-data
2710 10 10 filler-data-filler-data
2810 10 10 filler-data-filler-data
2910 10 10 filler-data-filler-data
3010 10 10 filler-data-filler-data
3110 10 10 filler-data-filler-data
3210 10 10 filler-data-filler-data
3310 10 10 filler-data-filler-data
3410 10 10 filler-data-filler-data
3510 10 10 filler-data-filler-data
3610 10 10 filler-data-filler-data
3710 10 10 filler-data-filler-data
3810 10 10 filler-data-filler-data
3910 10 10 filler-data-filler-data
4010 10 10 filler-data-filler-data
4110 10 10 filler-data-filler-data
4210 10 10 filler-data-filler-data
4310 10 10 filler-data-filler-data
4410 10 10 filler-data-filler-data
4510 10 10 filler-data-filler-data
4610 10 10 filler-data-filler-data
4710 10 10 filler-data-filler-data
4810 10 10 filler-data-filler-data
4910 10 10 filler-data-filler-data
DROP TABLE t1;
#
# End of 10.3 tests
#
# #
# MDEV-18982: INSERT using explicit patition pruning with column list # MDEV-18982: INSERT using explicit patition pruning with column list
# #
@ -1925,3 +2006,6 @@ select * from t1;
a a
1 1
drop table t1; drop table t1;
#
# End of 10.4 tests
#

View File

@ -1,5 +1,6 @@
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_partition.inc --source include/have_partition.inc
--source include/have_sequence.inc
# Helper statement # Helper statement
let $get_handler_status_counts= SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS let $get_handler_status_counts= SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS
@ -876,7 +877,7 @@ SELECT * FROM t1 PARTITION (p0);
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
SELECT * FROM t1 PARTITION (p0); SELECT * FROM t1 PARTITION (p0);
UNLOCK TABLES; UNLOCK TABLES;
DROP TABLE t1; DROP TABLE t1, t2;
--echo # --echo #
--echo # MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause. --echo # MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause.
@ -887,10 +888,41 @@ INSERT INTO t1 VALUES (3,0),(8,2),(7,8),(3,4),(2,4),(0,7),(4,3),(3,6);
FLUSH TABLES; FLUSH TABLES;
UPDATE t1 PARTITION (p3,p1) SET a = 2 WHERE a = 3; UPDATE t1 PARTITION (p3,p1) SET a = 2 WHERE a = 3;
SELECT * FROM t1; SELECT * FROM t1;
DROP TABLE t1;
--echo #
--echo # MDEV-21134 Crash with partitioned table, PARTITION syntax, and index_merge.
--echo #
# Cleanup create table t1 (
DROP TABLE t1, t2; pk int primary key,
a int,
b int,
filler char(32),
key (a),
key (b)
) engine=myisam partition by range(pk) (
partition p0 values less than (10),
partition p1 values less than MAXVALUE
) ;
insert into t1 select
seq,
MOD(seq, 100),
MOD(seq, 100),
'filler-data-filler-data'
from
seq_1_to_5000;
explain select * from t1 partition (p1) where a=10 and b=10;
flush tables;
select * from t1 partition (p1)where a=10 and b=10;
DROP TABLE t1;
--echo #
--echo # End of 10.3 tests
--echo #
--echo # --echo #
--echo # MDEV-18982: INSERT using explicit patition pruning with column list --echo # MDEV-18982: INSERT using explicit patition pruning with column list
@ -900,3 +932,8 @@ create table t1 (a int) partition by hash(a);
insert into t1 partition (p0) (a) values (1); insert into t1 partition (p0) (a) values (1);
select * from t1; select * from t1;
drop table t1; drop table t1;
--echo #
--echo # End of 10.4 tests
--echo #

View File

@ -14,7 +14,7 @@ GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT, ALTER ON `mysqltest_1`.* TO `mysqltest_1`@`localhost` GRANT SELECT, ALTER ON `mysqltest_1`.* TO `mysqltest_1`@`localhost`
alter table t1 add b int; alter table t1 add b int;
alter table t1 drop partition p2; alter table t1 drop partition p2;
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table `mysqltest_1`.`t1`
disconnect conn1; disconnect conn1;
connection default; connection default;
grant drop on mysqltest_1.* to mysqltest_1@localhost; grant drop on mysqltest_1.* to mysqltest_1@localhost;
@ -25,7 +25,7 @@ connection default;
revoke alter on mysqltest_1.* from mysqltest_1@localhost; revoke alter on mysqltest_1.* from mysqltest_1@localhost;
connect conn3,localhost,mysqltest_1,,mysqltest_1; connect conn3,localhost,mysqltest_1,,mysqltest_1;
alter table t1 drop partition p3; alter table t1 drop partition p3;
ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table `mysqltest_1`.`t1`
disconnect conn3; disconnect conn3;
connection default; connection default;
revoke select,alter,drop on mysqltest_1.* from mysqltest_1@localhost; revoke select,alter,drop on mysqltest_1.* from mysqltest_1@localhost;

View File

@ -6,7 +6,7 @@ GRANT INSERT ON mysql.plugin TO bug51770@localhost;
connect con1,localhost,bug51770,,; connect con1,localhost,bug51770,,;
INSTALL PLUGIN example SONAME 'ha_example.so'; INSTALL PLUGIN example SONAME 'ha_example.so';
UNINSTALL PLUGIN example; UNINSTALL PLUGIN example;
ERROR 42000: DELETE command denied to user 'bug51770'@'localhost' for table 'plugin' ERROR 42000: DELETE command denied to user 'bug51770'@'localhost' for table `mysql`.`plugin`
connection default; connection default;
GRANT DELETE ON mysql.plugin TO bug51770@localhost; GRANT DELETE ON mysql.plugin TO bug51770@localhost;
connection con1; connection con1;

View File

@ -216,7 +216,7 @@ new trigger: 10
drop trigger t1_bd; drop trigger t1_bd;
set @val=11; set @val=11;
execute stmt using @val; execute stmt using @val;
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
SUCCESS SUCCESS
select @message; select @message;
@ -226,7 +226,7 @@ Test 6-e: removing a relevant trigger
drop trigger t1_bi; drop trigger t1_bi;
set @val=12; set @val=12;
execute stmt using @val; execute stmt using @val;
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
SUCCESS SUCCESS
select @message; select @message;
@ -386,7 +386,7 @@ a
flush table t1; flush table t1;
set @var=9; set @var=9;
execute stmt using @var; execute stmt using @var;
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
SUCCESS SUCCESS
select * from t2; select * from t2;
@ -834,7 +834,7 @@ a b c
10 20 50 10 20 50
20 40 100 20 40 100
30 60 150 30 60 150
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
SUCCESS SUCCESS
# Check that we properly handle ALTER VIEW statements. # Check that we properly handle ALTER VIEW statements.
@ -1214,7 +1214,7 @@ drop trigger v2_bi;
set @message=null; set @message=null;
set @var=9; set @var=9;
execute stmt using @var; execute stmt using @var;
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
SUCCESS SUCCESS
select @message; select @message;
@ -2588,7 +2588,7 @@ SELECT * FROM t1;
a a
2048 2048
1025 1025
1024 2048
DROP TABLE t1; DROP TABLE t1;
# #
# End of 10.1 tests # End of 10.1 tests

View File

@ -252,7 +252,8 @@ drop trigger t1_bd;
set @val=11; set @val=11;
execute stmt using @val; execute stmt using @val;
call p_verify_reprepare_count(1); # No trigger in opened table => nothing to check => no reprepare
call p_verify_reprepare_count(0);
select @message; select @message;
--echo Test 6-e: removing a relevant trigger --echo Test 6-e: removing a relevant trigger
@ -261,7 +262,8 @@ drop trigger t1_bi;
set @val=12; set @val=12;
execute stmt using @val; execute stmt using @val;
call p_verify_reprepare_count(1); # No trigger in opened table => nothing to check => no reprepare
call p_verify_reprepare_count(0);
select @message; select @message;
set @val=13; set @val=13;
execute stmt using @val; execute stmt using @val;
@ -376,7 +378,8 @@ select * from t3;
flush table t1; flush table t1;
set @var=9; set @var=9;
execute stmt using @var; execute stmt using @var;
call p_verify_reprepare_count(1); # flush tables now do not mean reprepare
call p_verify_reprepare_count(0);
select * from t2; select * from t2;
select * from t3; select * from t3;
drop view v1; drop view v1;
@ -745,7 +748,7 @@ call p_verify_reprepare_count(1);
flush table t2; flush table t2;
execute stmt; execute stmt;
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
--echo # Check that we properly handle ALTER VIEW statements. --echo # Check that we properly handle ALTER VIEW statements.
execute stmt; execute stmt;
@ -973,7 +976,8 @@ drop trigger v2_bi;
set @message=null; set @message=null;
set @var=9; set @var=9;
execute stmt using @var; execute stmt using @var;
call p_verify_reprepare_count(1); # No trigger in opened table => nothing to check => no reprepare
call p_verify_reprepare_count(0);
select @message; select @message;
create trigger v2_bi after insert on v2 for each row set @message="v2_ai"; create trigger v2_bi after insert on v2 for each row set @message="v2_ai";
set @var= 10; set @var= 10;

View File

@ -28,7 +28,7 @@ execute s_t9 ;
my_col my_col
1 1
select a as my_col from t1; select a as my_col from t1;
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table `mysqltest`.`t1`
connection default; connection default;
grant select on mysqltest.t1 to second_user@localhost grant select on mysqltest.t1 to second_user@localhost
identified by 'looser' ; identified by 'looser' ;
@ -71,7 +71,7 @@ Grants for second_user@localhost
GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost` GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
execute s_t1 ; execute s_t1 ;
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table `mysqltest`.`t1`
connection default; connection default;
disconnect con3; disconnect con3;
revoke all privileges, grant option from second_user@localhost ; revoke all privileges, grant option from second_user@localhost ;

View File

@ -541,25 +541,25 @@ show create database mysqltest;
Database Create Database Database Create Database
mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */ mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */
drop table t1; drop table t1;
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`t1`
drop database mysqltest; drop database mysqltest;
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest' ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest'
disconnect con1; disconnect con1;
connect con2,localhost,mysqltest_2,,test; connect con2,localhost,mysqltest_2,,test;
connection con2; connection con2;
select * from mysqltest.t1; select * from mysqltest.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysqltest`.`t1`
show create database mysqltest; show create database mysqltest;
ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest' ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest'
drop table mysqltest.t1; drop table mysqltest.t1;
ERROR 42000: DROP command denied to user 'mysqltest_2'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_2'@'localhost' for table `mysqltest`.`t1`
drop database mysqltest; drop database mysqltest;
ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest' ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest'
disconnect con2; disconnect con2;
connect con3,localhost,mysqltest_3,,test; connect con3,localhost,mysqltest_3,,test;
connection con3; connection con3;
select * from mysqltest.t1; select * from mysqltest.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t1`
show create database mysqltest; show create database mysqltest;
Database Create Database Database Create Database
mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */ mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */

View File

@ -21,9 +21,9 @@ user1@localhost
# Making sure that user1 does not have privileges to db1.t1 # Making sure that user1 does not have privileges to db1.t1
# #
SHOW CREATE TABLE db1.t1; SHOW CREATE TABLE db1.t1;
ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table `db1`.`t1`
SHOW FIELDS IN db1.t1; SHOW FIELDS IN db1.t1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
# #
# Trigger: using TYPE OF with a table we don't have access to # Trigger: using TYPE OF with a table we don't have access to
# #
@ -39,7 +39,7 @@ SET NEW.b = 10;
END END
$$ $$
INSERT INTO t1 (a) VALUES (10); INSERT INTO t1 (a) VALUES (10);
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
SELECT * FROM t1; SELECT * FROM t1;
a b a b
10 20 10 20
@ -56,7 +56,7 @@ SELECT a;
END; END;
$$ $$
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
# #
# Stored procedure: Using TYPE OF for with a table that we don't have access to # Stored procedure: Using TYPE OF for with a table that we don't have access to
@ -72,7 +72,7 @@ END;
$$ $$
connection conn1; connection conn1;
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
connection default; connection default;
CREATE PROCEDURE p1() CREATE PROCEDURE p1()
@ -84,7 +84,7 @@ END;
$$ $$
connection conn1; connection conn1;
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
# #
# Stored procedure: Using TYPE OF for with a table that we don't have access to # Stored procedure: Using TYPE OF for with a table that we don't have access to
@ -129,7 +129,7 @@ RETURN OCTET_LENGTH(a);
END; END;
$$ $$
SELECT f1(); SELECT f1();
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP FUNCTION f1; DROP FUNCTION f1;
DROP TABLE t1; DROP TABLE t1;
# #
@ -147,7 +147,7 @@ END;
$$ $$
connection conn1; connection conn1;
SELECT f1(); SELECT f1();
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP FUNCTION f1; DROP FUNCTION f1;
DROP TABLE t1; DROP TABLE t1;
# #
@ -176,7 +176,7 @@ connection conn1;
# Making sure that user1 has access to db1.t1.a, but not to db1.t1.b # Making sure that user1 has access to db1.t1.a, but not to db1.t1.b
# #
SHOW CREATE TABLE db1.t1; SHOW CREATE TABLE db1.t1;
ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table `db1`.`t1`
SHOW FIELDS IN db1.t1; SHOW FIELDS IN db1.t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) YES NULL a int(11) YES NULL

View File

@ -50,7 +50,7 @@ select db1_secret.db();
db1_secret.db() db1_secret.db()
test test
select * from db1_secret.t1; select * from db1_secret.t1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1_secret`.`t1`
create procedure db1_secret.dummy() begin end; create procedure db1_secret.dummy() begin end;
ERROR 42000: Access denied for user 'user1'@'localhost' to database 'db1_secret' ERROR 42000: Access denied for user 'user1'@'localhost' to database 'db1_secret'
drop procedure db1_secret.dummy; drop procedure db1_secret.dummy;
@ -65,7 +65,7 @@ select db1_secret.db();
db1_secret.db() db1_secret.db()
test test
select * from db1_secret.t1; select * from db1_secret.t1;
ERROR 42000: SELECT command denied to user ''@'localhost' for table 't1' ERROR 42000: SELECT command denied to user ''@'localhost' for table `db1_secret`.`t1`
create procedure db1_secret.dummy() begin end; create procedure db1_secret.dummy() begin end;
ERROR 42000: Access denied for user ''@'%' to database 'db1_secret' ERROR 42000: Access denied for user ''@'%' to database 'db1_secret'
drop procedure db1_secret.dummy; drop procedure db1_secret.dummy;
@ -102,14 +102,14 @@ db()
test test
connection con2user1; connection con2user1;
call db1_secret.stamp(5); call db1_secret.stamp(5);
ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table `db1_secret`.`t1`
select db1_secret.db(); select db1_secret.db();
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1_secret`.`t1`
connection con3anon; connection con3anon;
call db1_secret.stamp(6); call db1_secret.stamp(6);
ERROR 42000: INSERT command denied to user ''@'localhost' for table 't1' ERROR 42000: INSERT command denied to user ''@'localhost' for table `db1_secret`.`t1`
select db1_secret.db(); select db1_secret.db();
ERROR 42000: SELECT command denied to user ''@'localhost' for table 't1' ERROR 42000: SELECT command denied to user ''@'localhost' for table `db1_secret`.`t1`
connection con1root; connection con1root;
drop database if exists db2; drop database if exists db2;
create database db2; create database db2;
@ -127,7 +127,7 @@ connection con2user1;
use db2; use db2;
create procedure p () insert into t2 values (1); create procedure p () insert into t2 values (1);
call p(); call p();
ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table 't2' ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table `db2`.`t2`
connect con4user2,localhost,user2,,; connect con4user2,localhost,user2,,;
connection con4user2; connection con4user2;
use db2; use db2;
@ -405,9 +405,9 @@ id int(11) YES NULL
call db_bug14533.bug14533_2(); call db_bug14533.bug14533_2();
id id
desc db_bug14533.t1; desc db_bug14533.t1;
ERROR 42000: SELECT command denied to user 'user_bug14533'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_bug14533'@'localhost' for table `db_bug14533`.`t1`
select * from db_bug14533.t1; select * from db_bug14533.t1;
ERROR 42000: SELECT command denied to user 'user_bug14533'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_bug14533'@'localhost' for table `db_bug14533`.`t1`
connection default; connection default;
disconnect user_bug14533; disconnect user_bug14533;
drop user user_bug14533@localhost; drop user user_bug14533@localhost;
@ -567,24 +567,24 @@ END|
CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT f_evil(); CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT f_evil();
connect conn1, localhost, mysqltest_u1,,; connect conn1, localhost, mysqltest_u1,,;
SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `test`.`t1`
SELECT f_evil(); SELECT f_evil();
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `test`.`t1`
SELECT @a, @b; SELECT @a, @b;
@a @b @a @b
mysqltest_u1@localhost NULL mysqltest_u1@localhost NULL
SELECT f_suid(f_evil()); SELECT f_suid(f_evil());
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `test`.`t1`
SELECT @a, @b; SELECT @a, @b;
@a @b @a @b
mysqltest_u1@localhost NULL mysqltest_u1@localhost NULL
CALL p_suid(f_evil()); CALL p_suid(f_evil());
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `test`.`t1`
SELECT @a, @b; SELECT @a, @b;
@a @b @a @b
mysqltest_u1@localhost NULL mysqltest_u1@localhost NULL
SELECT * FROM v1; SELECT * FROM v1;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `test`.`v1`
SELECT @a, @b; SELECT @a, @b;
@a @b @a @b
mysqltest_u1@localhost NULL mysqltest_u1@localhost NULL

View File

@ -243,13 +243,13 @@ return (select * from db37908.t1 limit 1)|
connect user1,localhost,mysqltest_1,,test; connect user1,localhost,mysqltest_1,,test;
connection user1; connection user1;
select * from db37908.t1; select * from db37908.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `db37908`.`t1`
show status where variable_name ='uptime' and 2 in (select * from db37908.t1); show status where variable_name ='uptime' and 2 in (select * from db37908.t1);
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `db37908`.`t1`
show procedure status where name ='proc37908' and 1 in (select f1 from db37908.t1); show procedure status where name ='proc37908' and 1 in (select f1 from db37908.t1);
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `db37908`.`t1`
show function status where name ='func37908' and 1 in (select func37908()); show function status where name ='func37908' and 1 in (select func37908());
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `db37908`.`t1`
connection default; connection default;
disconnect user1; disconnect user1;
disconnect root; disconnect root;

View File

@ -25,9 +25,9 @@ convert_tz(b, 'Europe/Moscow', 'UTC')
update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC') update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
where t1.a = t2.c and t2.d = (select max(d) from t2); where t1.a = t2.c and t2.d = (select max(d) from t2);
select * from mysql.time_zone_name; select * from mysql.time_zone_name;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone_name`
select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name; select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone_name`
connection default; connection default;
disconnect tzuser; disconnect tzuser;
connection default; connection default;
@ -54,9 +54,9 @@ convert_tz(b, 'Europe/Moscow', 'UTC')
update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC') update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC')
where t1.a = t2.c and t2.d = (select max(d) from t2); where t1.a = t2.c and t2.d = (select max(d) from t2);
select * from mysql.time_zone_name; select * from mysql.time_zone_name;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone_name`
select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name; select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone_name`
drop table t1, t2; drop table t1, t2;
create table t1 (a int, b datetime); create table t1 (a int, b datetime);
create table t2 (a int, b varchar(40)); create table t2 (a int, b varchar(40));
@ -82,10 +82,10 @@ a lb
1 2001-01-01 03:00:00 1 2001-01-01 03:00:00
2 2002-01-01 03:00:00 2 2002-01-01 03:00:00
select * from v1, mysql.time_zone; select * from v1, mysql.time_zone;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone`
drop view v1; drop view v1;
create view v1 as select a, convert_tz(b, 'UTC', 'Europe/Moscow') as lb from t1, mysql.time_zone; create view v1 as select a, convert_tz(b, 'UTC', 'Europe/Moscow') as lb from t1, mysql.time_zone;
ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for table 'time_zone' ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone`
connection default; connection default;
disconnect tzuser3; disconnect tzuser3;
drop table t1; drop table t1;

View File

@ -23,7 +23,7 @@ connection wl2818_definer_con;
CREATE TRIGGER trg1 AFTER INSERT ON t1 CREATE TRIGGER trg1 AFTER INSERT ON t1
FOR EACH ROW FOR EACH ROW
INSERT INTO t2 VALUES(CURRENT_USER()); INSERT INTO t2 VALUES(CURRENT_USER());
ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table `mysqltest_db1`.`t1`
disconnect wl2818_definer_con; disconnect wl2818_definer_con;
connection default; connection default;
GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost; GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost;
@ -38,12 +38,12 @@ REVOKE TRIGGER ON mysqltest_db1.t1 FROM mysqltest_dfn@localhost;
connect wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1; connect wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1;
connection wl2818_definer_con; connection wl2818_definer_con;
DROP TRIGGER trg1; DROP TRIGGER trg1;
ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table `mysqltest_db1`.`t1`
disconnect wl2818_definer_con; disconnect wl2818_definer_con;
connect wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1; connect wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1;
connection wl2818_definer_con; connection wl2818_definer_con;
INSERT INTO t1 VALUES(0); INSERT INTO t1 VALUES(0);
ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table `mysqltest_db1`.`t1`
disconnect wl2818_definer_con; disconnect wl2818_definer_con;
connection default; connection default;
GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost; GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost;
@ -95,7 +95,7 @@ REVOKE INSERT ON mysqltest_db1.t2 FROM mysqltest_dfn@localhost;
connection wl2818_invoker_con; connection wl2818_invoker_con;
use mysqltest_db1; use mysqltest_db1;
INSERT INTO t1 VALUES(3); INSERT INTO t1 VALUES(3);
ERROR 42000: INSERT command denied to user 'mysqltest_dfn'@'localhost' for table 't2' ERROR 42000: INSERT command denied to user 'mysqltest_dfn'@'localhost' for table `mysqltest_db1`.`t2`
SELECT * FROM t1; SELECT * FROM t1;
num_value num_value
1 1
@ -563,7 +563,7 @@ INSERT INTO t2 VALUES (2);
connection default; connection default;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_u1@localhost; REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_u1@localhost;
UPDATE IGNORE t1, t2 SET t1.a1 = 2, t2.a1 = 3 WHERE t1.a1 = 1 AND t2.a1 = 2; UPDATE IGNORE t1, t2 SET t1.a1 = 2, t2.a1 = 3 WHERE t1.a1 = 1 AND t2.a1 = 2;
ERROR 42000: TRIGGER command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t1`
DROP DATABASE mysqltest_db1; DROP DATABASE mysqltest_db1;
DROP USER mysqltest_u1@localhost; DROP USER mysqltest_u1@localhost;
disconnect con1; disconnect con1;

View File

@ -2679,5 +2679,90 @@ ALTER TABLE t4 ADD INDEX (`NULL`);
DROP TABLE t1, t2, t3, t4; DROP TABLE t1, t2, t3, t4;
set @@default_storage_engine=@save_default_storage_engine; set @@default_storage_engine=@save_default_storage_engine;
# #
# MDEV-29022: add_slave destroy child list and has dead code
# (test added to be sure that ordering by several subqueries works)
#
create table t1 (aa int);
insert into t1 values (-1),(0),(1),(2),(3),(4),(5),(6),(98),(99),(100),(102);
create table t2 (a int, b int);
insert into t2 values (2,2),(2,3),(3,4),(3,5);
select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select max(aa) from t1 where aa < t2.b) as d
from t2
union select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 100) as d
union select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 99) as d
order by (select max(aa) from t1 where aa < a),
(select max(aa) from t1 where aa < b);
a b c d
0 99 -1 98
0 100 -1 99
2 2 1 1
2 3 1 2
3 4 2 3
3 5 2 4
select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select 200 - max(aa) from t1 where aa < t2.b) as d
from t2
union select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 100) as d
union select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 99) as d
order by (select max(aa) from t1 where aa < a),
(select 200 - max(aa) from t1 where aa < b);
a b c d
0 100 -1 101
0 99 -1 102
2 3 1 198
2 2 1 199
3 5 2 196
3 4 2 197
(select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select max(aa) from t1 where aa < t2.b) as d
from t2)
union (select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 100) as d)
union (select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 99) as d)
order by (select max(aa) from t1 where aa < a),
(select max(aa) from t1 where aa < b);
a b c d
0 99 -1 98
0 100 -1 99
2 2 1 1
2 3 1 2
3 4 2 3
3 5 2 4
(select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select 200 - max(aa) from t1 where aa < t2.b) as d
from t2)
union (select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 100) as d)
union (select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 99) as d)
order by (select max(aa) from t1 where aa < a),
(select 200 - max(aa) from t1 where aa < b);
a b c d
0 100 -1 101
0 99 -1 102
2 3 1 198
2 2 1 199
3 5 2 196
3 4 2 197
drop table t1,t2;
#
# End of 10.3 tests # End of 10.3 tests
# #

View File

@ -1913,6 +1913,76 @@ DROP TABLE t1, t2, t3, t4;
set @@default_storage_engine=@save_default_storage_engine; set @@default_storage_engine=@save_default_storage_engine;
--echo #
--echo # MDEV-29022: add_slave destroy child list and has dead code
--echo # (test added to be sure that ordering by several subqueries works)
--echo #
create table t1 (aa int);
insert into t1 values (-1),(0),(1),(2),(3),(4),(5),(6),(98),(99),(100),(102);
create table t2 (a int, b int);
insert into t2 values (2,2),(2,3),(3,4),(3,5);
select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select max(aa) from t1 where aa < t2.b) as d
from t2
union select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 100) as d
union select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 99) as d
order by (select max(aa) from t1 where aa < a),
(select max(aa) from t1 where aa < b);
select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select 200 - max(aa) from t1 where aa < t2.b) as d
from t2
union select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 100) as d
union select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 99) as d
order by (select max(aa) from t1 where aa < a),
(select 200 - max(aa) from t1 where aa < b);
(select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select max(aa) from t1 where aa < t2.b) as d
from t2)
union (select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 100) as d)
union (select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 99) as d)
order by (select max(aa) from t1 where aa < a),
(select max(aa) from t1 where aa < b);
(select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select 200 - max(aa) from t1 where aa < t2.b) as d
from t2)
union (select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 100) as d)
union (select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 99) as d)
order by (select max(aa) from t1 where aa < a),
(select 200 - max(aa) from t1 where aa < b);
drop table t1,t2;
--echo # --echo #
--echo # End of 10.3 tests --echo # End of 10.3 tests
--echo # --echo #

View File

@ -6823,6 +6823,34 @@ r
drop view v1; drop view v1;
drop table t1; drop table t1;
# #
# MDEV-17124: mariadb 10.1.34, views and prepared statements:
# ERROR 1615 (HY000): Prepared statement needs to be re-prepared
#
set @tdc= @@table_definition_cache, @tc= @@table_open_cache;
set global table_definition_cache= 400, table_open_cache= 400;
create table tt (a int, primary key(a)) engine=MyISAM;
create view v as select * from tt;
insert into tt values(1),(2),(3),(4);
prepare stmt from 'select * from tt';
#fill table definition cache
execute stmt;
a
1
2
3
4
prepare stmt from 'select * from v';
execute stmt;
a
1
2
3
4
drop database db;
drop view v;
drop table tt;
set global table_definition_cache= @tdc, table_open_cache= @tc;
#
# End of 10.2 tests # End of 10.2 tests
# #
# #

View File

@ -6539,6 +6539,46 @@ select * from (select sum((select * from cte)) as r) dt2;
drop view v1; drop view v1;
drop table t1; drop table t1;
--echo #
--echo # MDEV-17124: mariadb 10.1.34, views and prepared statements:
--echo # ERROR 1615 (HY000): Prepared statement needs to be re-prepared
--echo #
set @tdc= @@table_definition_cache, @tc= @@table_open_cache;
set global table_definition_cache= 400, table_open_cache= 400;
create table tt (a int, primary key(a)) engine=MyISAM;
create view v as select * from tt;
insert into tt values(1),(2),(3),(4);
prepare stmt from 'select * from tt';
--echo #fill table definition cache
--disable_query_log
--disable_result_log
create database db;
use db;
--let $tables=401
while ($tables)
{
--eval create table t$tables (i int) engine=MyISAM
--eval select * from t$tables
--dec $tables
}
use test;
--enable_query_log
--enable_result_log
execute stmt;
prepare stmt from 'select * from v';
execute stmt;
# Cleanup
drop database db;
drop view v;
drop table tt;
set global table_definition_cache= @tdc, table_open_cache= @tc;
--echo # --echo #
--echo # End of 10.2 tests --echo # End of 10.2 tests
--echo # --echo #

View File

@ -25,13 +25,13 @@ create definer=root@localhost view v1 as select * from mysqltest.t1;
ERROR 42000: Access denied; you need (at least one of) the SUPER, SET USER privilege(s) for this operation ERROR 42000: Access denied; you need (at least one of) the SUPER, SET USER privilege(s) for this operation
create view v1 as select * from mysqltest.t1; create view v1 as select * from mysqltest.t1;
alter view v1 as select * from mysqltest.t1; alter view v1 as select * from mysqltest.t1;
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 'v1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table `test`.`v1`
create or replace view v1 as select * from mysqltest.t1; create or replace view v1 as select * from mysqltest.t1;
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 'v1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table `test`.`v1`
create view mysqltest.v2 as select * from mysqltest.t1; create view mysqltest.v2 as select * from mysqltest.t1;
ERROR 42000: CREATE VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v2' ERROR 42000: CREATE VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v2`
create view v2 as select * from mysqltest.t2; create view v2 as select * from mysqltest.t2;
ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for table 't2' ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`t2`
connection root; connection root;
show create view v1; show create view v1;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
@ -98,7 +98,7 @@ c
select c from mysqltest.v4; select c from mysqltest.v4;
c c
select c from mysqltest.v5; select c from mysqltest.v5;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v5`
show columns from mysqltest.v1; show columns from mysqltest.v1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
c bigint(12) YES NULL c bigint(12) YES NULL
@ -110,23 +110,23 @@ d bigint(12) YES NULL
explain select c from mysqltest.v1; explain select c from mysqltest.v1;
ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
show create view mysqltest.v1; show create view mysqltest.v1;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v1`
explain select c from mysqltest.v2; explain select c from mysqltest.v2;
ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
show create view mysqltest.v2; show create view mysqltest.v2;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v2' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v2`
explain select c from mysqltest.v3; explain select c from mysqltest.v3;
ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
show create view mysqltest.v3; show create view mysqltest.v3;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v3' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v3`
explain select c from mysqltest.v4; explain select c from mysqltest.v4;
ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
show create view mysqltest.v4; show create view mysqltest.v4;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v4' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v4`
explain select c from mysqltest.v5; explain select c from mysqltest.v5;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v5`
show create view mysqltest.v5; show create view mysqltest.v5;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v5`
connection root; connection root;
grant select on mysqltest.v5 to mysqltest_1@localhost; grant select on mysqltest.v5 to mysqltest_1@localhost;
connection user1; connection user1;
@ -136,7 +136,7 @@ v5 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
explain select c from mysqltest.v1; explain select c from mysqltest.v1;
ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
show create view mysqltest.v1; show create view mysqltest.v1;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v1`
connection root; connection root;
grant show view on mysqltest.v1 to mysqltest_1@localhost; grant show view on mysqltest.v1 to mysqltest_1@localhost;
grant select on mysqltest.t1 to mysqltest_1@localhost; grant select on mysqltest.t1 to mysqltest_1@localhost;
@ -151,17 +151,17 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
explain select c from mysqltest.v2; explain select c from mysqltest.v2;
ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
show create view mysqltest.v2; show create view mysqltest.v2;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v2' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v2`
explain select c from mysqltest.v3; explain select c from mysqltest.v3;
ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
show create view mysqltest.v3; show create view mysqltest.v3;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v3' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v3`
explain select c from mysqltest.v4; explain select c from mysqltest.v4;
ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
show create view mysqltest.v4; show create view mysqltest.v4;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v4' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v4`
explain select c from mysqltest.v5; explain select c from mysqltest.v5;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v5`
connection root; connection root;
grant show view on mysqltest.* to mysqltest_1@localhost; grant show view on mysqltest.* to mysqltest_1@localhost;
connection user1; connection user1;
@ -248,9 +248,9 @@ ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for column
update v2 set c=a+c; update v2 set c=a+c;
ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for column 'c' in table 'v2' ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for column 'c' in table 'v2'
update t2,v3 set v3.a=v3.a+v3.c where t2.x=v3.c; update t2,v3 set v3.a=v3.a+v3.c where t2.x=v3.c;
ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 'v3' ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v3`
update v3 set a=a+c; update v3 set a=a+c;
ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 'v3' ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v3`
use test; use test;
connection root; connection root;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost; REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
@ -281,9 +281,9 @@ select * from t1;
a b a b
5 10 5 10
delete v2 from t2,v2 where t2.x=v2.c; delete v2 from t2,v2 where t2.x=v2.c;
ERROR 42000: DELETE command denied to user 'mysqltest_1'@'localhost' for table 'v2' ERROR 42000: DELETE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v2`
delete from v2 where c < 4; delete from v2 where c < 4;
ERROR 42000: DELETE command denied to user 'mysqltest_1'@'localhost' for table 'v2' ERROR 42000: DELETE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v2`
use test; use test;
connection root; connection root;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost; REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
@ -316,9 +316,9 @@ a b
5 6 5 6
3 4 3 4
insert into v2 values (5,6); insert into v2 values (5,6);
ERROR 42000: INSERT command denied to user 'mysqltest_1'@'localhost' for table 'v2' ERROR 42000: INSERT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v2`
insert into v2 select x,y from t2; insert into v2 select x,y from t2;
ERROR 42000: INSERT command denied to user 'mysqltest_1'@'localhost' for table 'v2' ERROR 42000: INSERT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v2`
use test; use test;
connection root; connection root;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost; REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
@ -336,7 +336,7 @@ connection user1;
create view v1 as select * from mysqltest.t1; create view v1 as select * from mysqltest.t1;
create view v2 as select b from mysqltest.t2; create view v2 as select b from mysqltest.t2;
create view mysqltest.v1 as select * from mysqltest.t1; create view mysqltest.v1 as select * from mysqltest.t1;
ERROR 42000: CREATE VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1' ERROR 42000: CREATE VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v1`
create view v3 as select a from mysqltest.t2; create view v3 as select a from mysqltest.t2;
ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for column 'a' in table 't2' ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for column 'a' in table 't2'
connection root; connection root;
@ -605,7 +605,7 @@ connection user1;
use mysqltest; use mysqltest;
LOCK TABLES v1 READ; LOCK TABLES v1 READ;
SHOW CREATE TABLE v1; SHOW CREATE TABLE v1;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v1`
UNLOCK TABLES; UNLOCK TABLES;
use test; use test;
connection root; connection root;
@ -664,29 +664,29 @@ ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or
SELECT 1 FROM mysqltest1.v_t1; 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 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; SELECT * FROM mysqltest1.t1;
ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table `mysqltest1`.`t1`
SELECT * FROM mysqltest1.v_ts; SELECT * FROM mysqltest1.v_ts;
x x
1 1
2 2
SELECT * FROM mysqltest1.v_ts, mysqltest1.t1 WHERE mysqltest1.t1.x = mysqltest1.v_ts.x; 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' ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table `mysqltest1`.`t1`
SELECT * FROM mysqltest1.v_ti; SELECT * FROM mysqltest1.v_ti;
ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table 'v_ti' ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table `mysqltest1`.`v_ti`
INSERT INTO mysqltest1.v_ts VALUES (100); INSERT INTO mysqltest1.v_ts VALUES (100);
ERROR 42000: INSERT command denied to user 'readonly'@'localhost' for table 'v_ts' ERROR 42000: INSERT command denied to user 'readonly'@'localhost' for table `mysqltest1`.`v_ts`
INSERT INTO mysqltest1.v_ti VALUES (100); INSERT INTO mysqltest1.v_ti VALUES (100);
UPDATE mysqltest1.v_ts SET x= 200 WHERE x = 100; UPDATE mysqltest1.v_ts SET x= 200 WHERE x = 100;
ERROR 42000: UPDATE command denied to user 'readonly'@'localhost' for table 'v_ts' ERROR 42000: UPDATE command denied to user 'readonly'@'localhost' for table `mysqltest1`.`v_ts`
UPDATE mysqltest1.v_ts SET x= 200; UPDATE mysqltest1.v_ts SET x= 200;
ERROR 42000: UPDATE command denied to user 'readonly'@'localhost' for table 'v_ts' ERROR 42000: UPDATE command denied to user 'readonly'@'localhost' for table `mysqltest1`.`v_ts`
UPDATE mysqltest1.v_tu SET x= 200 WHERE x = 100; UPDATE mysqltest1.v_tu SET x= 200 WHERE x = 100;
UPDATE mysqltest1.v_tus SET x= 200 WHERE x = 100; UPDATE mysqltest1.v_tus SET x= 200 WHERE x = 100;
UPDATE mysqltest1.v_tu SET x= 200; UPDATE mysqltest1.v_tu SET x= 200;
DELETE FROM mysqltest1.v_ts WHERE x= 200; DELETE FROM mysqltest1.v_ts WHERE x= 200;
ERROR 42000: DELETE command denied to user 'readonly'@'localhost' for table 'v_ts' ERROR 42000: DELETE command denied to user 'readonly'@'localhost' for table `mysqltest1`.`v_ts`
DELETE FROM mysqltest1.v_ts; DELETE FROM mysqltest1.v_ts;
ERROR 42000: DELETE command denied to user 'readonly'@'localhost' for table 'v_ts' ERROR 42000: DELETE command denied to user 'readonly'@'localhost' for table `mysqltest1`.`v_ts`
DELETE FROM mysqltest1.v_td WHERE x= 200; DELETE FROM mysqltest1.v_td WHERE x= 200;
ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for column 'x' in table 'v_td' 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_tds WHERE x= 200;
@ -899,11 +899,11 @@ REVOKE SELECT ON t2 FROM mysqltest_u2@localhost;
UPDATE t2 SET s = 'private' WHERE s = 'public'; UPDATE t2 SET s = 'private' WHERE s = 'public';
connection conn2; connection conn2;
SELECT * FROM mysqltest_db1.v1, mysqltest_db1.t2; SELECT * FROM mysqltest_db1.v1, mysqltest_db1.t2;
ERROR 42000: SELECT command denied to user 'mysqltest_u2'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_u2'@'localhost' for table `mysqltest_db1`.`t2`
EXECUTE stmt1; EXECUTE stmt1;
ERROR 42000: SELECT command denied to user 'mysqltest_u2'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_u2'@'localhost' for table `mysqltest_db1`.`t2`
EXECUTE stmt2; EXECUTE stmt2;
ERROR 42000: SELECT command denied to user 'mysqltest_u2'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_u2'@'localhost' for table `mysqltest_db1`.`t2`
disconnect conn2; disconnect conn2;
disconnect conn1; disconnect conn1;
connection default; connection default;
@ -928,9 +928,9 @@ GRANT SELECT ON db26813.t1 TO u26813@localhost;
connect u1,localhost,u26813,,db26813; connect u1,localhost,u26813,,db26813;
connection u1; connection u1;
ALTER VIEW v1 AS SELECT f2 FROM t1; ALTER VIEW v1 AS SELECT f2 FROM t1;
ERROR 42000: CREATE VIEW command denied to user 'u26813'@'localhost' for table 'v1' ERROR 42000: CREATE VIEW command denied to user 'u26813'@'localhost' for table `db26813`.`v1`
ALTER VIEW v2 AS SELECT f2 FROM t1; ALTER VIEW v2 AS SELECT f2 FROM t1;
ERROR 42000: DROP command denied to user 'u26813'@'localhost' for table 'v2' ERROR 42000: DROP command denied to user 'u26813'@'localhost' for table `db26813`.`v2`
ALTER VIEW v3 AS SELECT f2 FROM t1; ALTER VIEW v3 AS SELECT f2 FROM t1;
ERROR 42000: Access denied; you need (at least one of) the SUPER, SET USER privilege(s) for this operation ERROR 42000: Access denied; you need (at least one of) the SUPER, SET USER privilege(s) for this operation
connection root; connection root;
@ -1093,13 +1093,13 @@ f1
SELECT f2 FROM t1; SELECT f2 FROM t1;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for column 'f2' in table 't1' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for column 'f2' in table 't1'
SELECT * FROM t1; SELECT * FROM t1;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t1`
SELECT f1 FROM v1; SELECT f1 FROM v1;
f1 f1
SELECT f2 FROM v1; SELECT f2 FROM v1;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for column 'f2' in table 'v1' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for column 'f2' in table 'v1'
SELECT * FROM v1; SELECT * FROM v1;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`v1`
connection default; connection default;
disconnect root; disconnect root;
disconnect addconfoo; disconnect addconfoo;
@ -1196,9 +1196,9 @@ disconnect test11765687;
connect test11765687,localhost,cecil,,mysqltest1; connect test11765687,localhost,cecil,,mysqltest1;
connection test11765687; connection test11765687;
select * from v1; select * from v1;
ERROR 42000: SELECT command denied to user 'cecil'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'cecil'@'localhost' for table `mysqltest1`.`v1`
explain select * from v1; explain select * from v1;
ERROR 42000: SELECT command denied to user 'cecil'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'cecil'@'localhost' for table `mysqltest1`.`v1`
disconnect test11765687; disconnect test11765687;
... as dan ... as dan
connect test11765687,localhost,dan,,mysqltest1; connect test11765687,localhost,dan,,mysqltest1;
@ -1226,11 +1226,11 @@ show create view v2;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`alice`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `v1`.`i` AS `i`,`t2`.`j` AS `j` from (`v1` join `t2`) latin1 latin1_swedish_ci v2 CREATE ALGORITHM=UNDEFINED DEFINER=`alice`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `v1`.`i` AS `i`,`t2`.`j` AS `j` from (`v1` join `t2`) latin1 latin1_swedish_ci
explain select * from t1; explain select * from t1;
ERROR 42000: SELECT command denied to user 'fiona'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'fiona'@'localhost' for table `mysqltest1`.`t1`
explain select * from v1; explain select * from v1;
ERROR 42000: SELECT command denied to user 'fiona'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'fiona'@'localhost' for table `mysqltest1`.`v1`
explain select * from t2; explain select * from t2;
ERROR 42000: SELECT command denied to user 'fiona'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'fiona'@'localhost' for table `mysqltest1`.`t2`
explain select * from v2; explain select * from v2;
ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
disconnect test11765687; disconnect test11765687;
@ -1240,7 +1240,7 @@ connection test11765687;
select * from v2; select * from v2;
i j i j
explain select * from v1; explain select * from v1;
ERROR 42000: SELECT command denied to user 'greg'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'greg'@'localhost' for table `mysqltest1`.`v1`
explain select * from v2; explain select * from v2;
ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
disconnect test11765687; disconnect test11765687;
@ -1248,9 +1248,9 @@ disconnect test11765687;
connect test11765687,localhost,han,,mysqltest1; connect test11765687,localhost,han,,mysqltest1;
connection test11765687; connection test11765687;
select * from t3; select * from t3;
ERROR 42000: SELECT command denied to user 'han'@'localhost' for table 't3' ERROR 42000: SELECT command denied to user 'han'@'localhost' for table `mysqltest1`.`t3`
explain select * from t3; explain select * from t3;
ERROR 42000: SELECT command denied to user 'han'@'localhost' for table 't3' ERROR 42000: SELECT command denied to user 'han'@'localhost' for table `mysqltest1`.`t3`
select k from t3; select k from t3;
k k
explain select k from t3; explain select k from t3;
@ -1290,9 +1290,9 @@ disconnect test11765687;
connect test11765687,localhost,lena,,mysqltest1; connect test11765687,localhost,lena,,mysqltest1;
connection test11765687; connection test11765687;
select * from v2; select * from v2;
ERROR 42000: SELECT command denied to user 'lena'@'localhost' for table 'v2' ERROR 42000: SELECT command denied to user 'lena'@'localhost' for table `mysqltest1`.`v2`
explain select * from v2; explain select * from v2;
ERROR 42000: SELECT command denied to user 'lena'@'localhost' for table 'v2' ERROR 42000: SELECT command denied to user 'lena'@'localhost' for table `mysqltest1`.`v2`
disconnect test11765687; disconnect test11765687;
... as mhairi ... as mhairi
connect test11765687,localhost,mhairi,,mysqltest1; connect test11765687,localhost,mhairi,,mysqltest1;
@ -1412,9 +1412,9 @@ connect connection1, localhost, mysqluser1, , mysqltest1;
This would lead to failed assertion. This would lead to failed assertion.
CREATE VIEW v1 AS SELECT a, b FROM t1, t2; CREATE VIEW v1 AS SELECT a, b FROM t1, t2;
SELECT * FROM v1; SELECT * FROM v1;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`v1`
SELECT b FROM v1; SELECT b FROM v1;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`v1`
disconnect connection1; disconnect connection1;
connection default; connection default;
DROP TABLE t1, t2; DROP TABLE t1, t2;
@ -1433,9 +1433,9 @@ GRANT SELECT( a ) ON v1 TO mysqluser1@localhost;
GRANT UPDATE( b ) ON t2 TO mysqluser1@localhost; GRANT UPDATE( b ) ON t2 TO mysqluser1@localhost;
connect connection1, localhost, mysqluser1, , test; connect connection1, localhost, mysqluser1, , test;
SELECT * FROM mysqltest1.v1; SELECT * FROM mysqltest1.v1;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`v1`
CREATE VIEW v1 AS SELECT * FROM mysqltest1.t2; CREATE VIEW v1 AS SELECT * FROM mysqltest1.t2;
ERROR 42000: ANY command denied to user 'mysqluser1'@'localhost' for table 't2' ERROR 42000: ANY command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`t2`
disconnect connection1; disconnect connection1;
connection default; connection default;
DROP TABLE t1, t2; DROP TABLE t1, t2;
@ -1458,9 +1458,9 @@ connection default;
REVOKE SELECT ON mysqltest1.* FROM mysqluser1@localhost; REVOKE SELECT ON mysqltest1.* FROM mysqluser1@localhost;
connection connection1; connection connection1;
EXECUTE stmt_v1; EXECUTE stmt_v1;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`v1`
EXECUTE stmt_v2; EXECUTE stmt_v2;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 'v2' ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`v2`
disconnect connection1; disconnect connection1;
connect connection2, localhost, mysqluser1,,; connect connection2, localhost, mysqluser1,,;
PREPARE stmt FROM "SELECT a FROM v3"; PREPARE stmt FROM "SELECT a FROM v3";
@ -1620,11 +1620,11 @@ REVOKE SHOW VIEW ON v_f1 FROM mysqluser1@localhost;
REVOKE SHOW VIEW ON v_v1 FROM mysqluser1@localhost; REVOKE SHOW VIEW ON v_v1 FROM mysqluser1@localhost;
connection connection1; connection connection1;
SHOW CREATE VIEW mysqltest1.v_t1; SHOW CREATE VIEW mysqltest1.v_t1;
ERROR 42000: SHOW VIEW command denied to user 'mysqluser1'@'localhost' for table 'v_t1' ERROR 42000: SHOW VIEW command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`v_t1`
SHOW CREATE VIEW mysqltest1.v_f1; SHOW CREATE VIEW mysqltest1.v_f1;
ERROR 42000: SHOW VIEW command denied to user 'mysqluser1'@'localhost' for table 'v_f1' ERROR 42000: SHOW VIEW command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`v_f1`
SHOW CREATE VIEW mysqltest1.v_v1; SHOW CREATE VIEW mysqltest1.v_v1;
ERROR 42000: SHOW VIEW command denied to user 'mysqluser1'@'localhost' for table 'v_v1' ERROR 42000: SHOW VIEW command denied to user 'mysqluser1'@'localhost' for table `mysqltest1`.`v_v1`
SHOW CREATE VIEW v_mysqluser1_t1; SHOW CREATE VIEW v_mysqluser1_t1;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v_mysqluser1_t1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqluser1`@`localhost` SQL SECURITY DEFINER VIEW `v_mysqluser1_t1` AS select `mysqltest1`.`t1`.`a` AS `a` from `mysqltest1`.`t1` latin1 latin1_swedish_ci v_mysqluser1_t1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqluser1`@`localhost` SQL SECURITY DEFINER VIEW `v_mysqluser1_t1` AS select `mysqltest1`.`t1`.`a` AS `a` from `mysqltest1`.`t1` latin1 latin1_swedish_ci
@ -1875,7 +1875,7 @@ update mysqltest2.t2 as t2, mysqltest1.v1_temp as v1 set t2.val= 'test4'
# Temptable views can't be updated. # Temptable views can't be updated.
update mysqltest2.t2 as t2, mysqltest1.v1_merge as v1 set v1.val= 'test5' update mysqltest2.t2 as t2, mysqltest1.v1_merge as v1 set v1.val= 'test5'
where t2.id= v1.id; where t2.id= v1.id;
ERROR 42000: UPDATE command denied to user 'user_11766767'@'localhost' for table 'v1_merge' ERROR 42000: UPDATE command denied to user 'user_11766767'@'localhost' for table `mysqltest1`.`v1_merge`
update mysqltest1.t1 as t1, mysqltest2.v2_merge as v2 set v2.val= 'test6' update mysqltest1.t1 as t1, mysqltest2.v2_merge as v2 set v2.val= 'test6'
where t1.id= v2.id; where t1.id= v2.id;
# #
@ -1899,7 +1899,7 @@ update mysqltest2.t2 as t2, mysqltest1.v11_temp as v11 set t2.val= 'test10'
# on a view. # on a view.
update mysqltest2.t2 as t2, mysqltest1.v11_merge as v11 set v11.val= 'test11' update mysqltest2.t2 as t2, mysqltest1.v11_merge as v11 set v11.val= 'test11'
where t2.id= v11.id; where t2.id= v11.id;
ERROR 42000: UPDATE command denied to user 'user_11766767'@'localhost' for table 'v11_merge' ERROR 42000: UPDATE command denied to user 'user_11766767'@'localhost' for table `mysqltest1`.`v11_merge`
update mysqltest1.t1 as t1, mysqltest2.v21_merge as v21 set v21.val= 'test12' update mysqltest1.t1 as t1, mysqltest2.v21_merge as v21 set v21.val= 'test12'
where t1.id= v21.id; where t1.id= v21.id;
# As before, temptable views are not updateable. # As before, temptable views are not updateable.
@ -1961,7 +1961,7 @@ CREATE VIEW foo.v AS SELECT * FROM JSON_TABLE('[1,2,3]', '$[*]' COLUMNS (num INT
CREATE USER foo@localhost; CREATE USER foo@localhost;
connect con1,localhost,foo,,; connect con1,localhost,foo,,;
SELECT * FROM foo.v; SELECT * FROM foo.v;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'v' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `foo`.`v`
# #
# Clean-up. # Clean-up.
# #

View File

@ -145,7 +145,7 @@ INSERT INTO t2 VALUES (1, REPEAT("x", 1));
BEGIN; BEGIN;
INSERT INTO t2 VALUES (2, REPEAT("x", 4100)); INSERT INTO t2 VALUES (2, REPEAT("x", 4100));
INSERT INTO t1 VALUES (2, REPEAT("x", 4100)); INSERT INTO t1 VALUES (2, REPEAT("x", 4100));
SET DEBUG_SYNC= "commit_after_run_commit_ordered SIGNAL con1_ready WAIT_FOR signal_no_signal"; SET DEBUG_SYNC= "commit_after_run_commit_ordered SIGNAL con1_ready";
COMMIT; COMMIT;
connection default; connection default;
SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; SET DEBUG_SYNC= "now WAIT_FOR con1_ready";

View File

@ -47,7 +47,7 @@ CREATE TABLE t2 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=rocksdb;
--let $case = "C" --let $case = "C"
--let $description= "both engines have committed its transaction branch" --let $description= "both engines have committed its transaction branch"
--let $debug_sync_action = "commit_after_run_commit_ordered SIGNAL con1_ready WAIT_FOR signal_no_signal" --let $debug_sync_action = "commit_after_run_commit_ordered SIGNAL con1_ready"
# Hold off after both engines have committed. The server is shut down. # Hold off after both engines have committed. The server is shut down.
--let $shutdown_timeout= --let $shutdown_timeout=
--let $restart_parameters = --rpl-semi-sync-slave-enabled=1 --sync-binlog=1 --let $restart_parameters = --rpl-semi-sync-slave-enabled=1 --sync-binlog=1

View File

@ -23,9 +23,9 @@ user1@localhost
# Making sure that user1 does not have privileges to db1.t1 # Making sure that user1 does not have privileges to db1.t1
# #
SHOW CREATE TABLE db1.t1; SHOW CREATE TABLE db1.t1;
ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table `db1`.`t1`
SHOW FIELDS IN db1.t1; SHOW FIELDS IN db1.t1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
# #
# Trigger: using %TYPE with a table we don't have access to # Trigger: using %TYPE with a table we don't have access to
# #
@ -43,7 +43,7 @@ END;
END END
$$ $$
INSERT INTO t1 (a) VALUES (10); INSERT INTO t1 (a) VALUES (10);
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
SELECT * FROM t1; SELECT * FROM t1;
a b a b
10 20 10 20
@ -61,7 +61,7 @@ SELECT a;
END; END;
$$ $$
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
CREATE PROCEDURE p1() CREATE PROCEDURE p1()
AS AS
@ -71,7 +71,7 @@ SELECT a.a;
END; END;
$$ $$
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
# #
# Stored procedure: Using %TYPE for with a table that we don't have access to # Stored procedure: Using %TYPE for with a table that we don't have access to
@ -88,7 +88,7 @@ END;
$$ $$
connection conn1; connection conn1;
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
connection default; connection default;
CREATE PROCEDURE p1() CREATE PROCEDURE p1()
@ -101,7 +101,7 @@ END;
$$ $$
connection conn1; connection conn1;
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
# #
# Stored procedure: Using %TYPE for with a table that we don't have access to # Stored procedure: Using %TYPE for with a table that we don't have access to
@ -149,7 +149,7 @@ RETURN OCTET_LENGTH(a);
END; END;
$$ $$
SELECT f1(); SELECT f1();
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP FUNCTION f1; DROP FUNCTION f1;
DROP TABLE t1; DROP TABLE t1;
# #
@ -168,7 +168,7 @@ END;
$$ $$
connection conn1; connection conn1;
SELECT f1(); SELECT f1();
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP FUNCTION f1; DROP FUNCTION f1;
DROP TABLE t1; DROP TABLE t1;
# #
@ -198,7 +198,7 @@ connection conn1;
# Making sure that user1 has access to db1.t1.a, but not to db1.t1.b # Making sure that user1 has access to db1.t1.a, but not to db1.t1.b
# #
SHOW CREATE TABLE db1.t1; SHOW CREATE TABLE db1.t1;
ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table `db1`.`t1`
SHOW FIELDS IN db1.t1; SHOW FIELDS IN db1.t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) YES NULL a int(11) YES NULL

View File

@ -15,7 +15,6 @@ set global debug_key_management_version=10;
select count(*) from information_schema.innodb_tablespaces_encryption where current_key_version <> 10; select count(*) from information_schema.innodb_tablespaces_encryption where current_key_version <> 10;
count(*) count(*)
0 0
SET GLOBAL debug_dbug = '+d,ib_log';
SET GLOBAL innodb_log_checkpoint_now = 1; SET GLOBAL innodb_log_checkpoint_now = 1;
SET GLOBAL innodb_flush_log_at_trx_commit = 1; SET GLOBAL innodb_flush_log_at_trx_commit = 1;
INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES(NULL);

View File

@ -25,7 +25,6 @@ let $wait_condition= select count(*) = $tables_count from information_schema.inn
select count(*) from information_schema.innodb_tablespaces_encryption where current_key_version <> 10; select count(*) from information_schema.innodb_tablespaces_encryption where current_key_version <> 10;
# Test redo log key rotation and crash recovery. # Test redo log key rotation and crash recovery.
SET GLOBAL debug_dbug = '+d,ib_log';
SET GLOBAL innodb_log_checkpoint_now = 1; SET GLOBAL innodb_log_checkpoint_now = 1;
SET GLOBAL innodb_flush_log_at_trx_commit = 1; SET GLOBAL innodb_flush_log_at_trx_commit = 1;
INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES(NULL);

View File

@ -301,7 +301,7 @@ select * from t2;
a a
connection con1; connection con1;
create trigger trg before insert on t1 for each row set new.a= 10; create trigger trg before insert on t1 for each row set new.a= 10;
ERROR 42000: TRIGGER command denied to user 'zedjzlcsjhd'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'zedjzlcsjhd'@'localhost' for table `mysqltest1`.`t1`
connection master; connection master;
delete from t1; delete from t1;
create trigger trg before insert on t1 for each row set new.a= 10; create trigger trg before insert on t1 for each row set new.a= 10;

View File

@ -221,31 +221,31 @@ connect user5_2, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant insert on db_storedproc_1.* to 'user_1'@'localhost'; grant insert on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant SELECT on db_storedproc_1.* to 'user_1'@'localhost'; grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
@ -276,9 +276,9 @@ inserted outside of SP NULL
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
inserted from sp5_s_i 2000-10-00 inserted from sp5_s_i 2000-10-00
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
c1 c2 c3 c1 c2 c3
inserted outside of SP NULL inserted outside of SP NULL
@ -294,11 +294,11 @@ connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
disconnect user5_2; disconnect user5_2;
connection default; connection default;
@ -348,9 +348,9 @@ user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
c1 c1
inserted outside SP inserted outside SP
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_sel(); CALL sp3166_sel();
c1 c1
inserted outside SP inserted outside SP
@ -390,10 +390,10 @@ connect user6_4, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
CALL sp3166_sel(); CALL sp3166_sel();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
disconnect user6_4; disconnect user6_4;
connection default; connection default;
CALL sp3166_s_i(); CALL sp3166_s_i();

View File

@ -99,7 +99,7 @@ test_noprivs@localhost
use priv_db; use priv_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 3.5.3.2_1-no'; set new.f1 = 'trig 3.5.3.2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.2-no'); insert into t1 (f1) values ('insert 3.5.3.2-no');
@ -135,7 +135,7 @@ Testcase 3.5.3.6:
connection no_privs; connection no_privs;
use priv_db; use priv_db;
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.6-yes'); insert into t1 (f1) values ('insert 3.5.3.6-yes');
@ -688,7 +688,7 @@ insert into t2 values (new.f1);
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant INSERT on priv_db.t2 to test_yesprivs@localhost; grant INSERT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
@ -706,7 +706,7 @@ update t2 set f2=new.f1-1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke INSERT on priv_db.t2 from test_yesprivs@localhost; revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
grant UPDATE on priv_db.t2 to test_yesprivs@localhost; grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
@ -725,7 +725,7 @@ select f2 into @aaa from t2 where f2=new.f1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke UPDATE on priv_db.t2 from test_yesprivs@localhost; revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
grant SELECT on priv_db.t2 to test_yesprivs@localhost; grant SELECT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
@ -748,7 +748,7 @@ delete from t2;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant DELETE on priv_db.t2 to test_yesprivs@localhost; grant DELETE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);

View File

@ -31,7 +31,7 @@ no trigger privilege on db level for create:
use priv_db; use priv_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connect no_privs,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK; connect no_privs,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert-yes'); insert into t1 (f1) values ('insert-yes');
@ -107,7 +107,7 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
use priv_db; use priv_db;
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -117,7 +117,7 @@ use priv_db;
no trigger privilege at activation time: no trigger privilege at activation time:
---------------------------------------- ----------------------------------------
insert into t1 (f1) values ('insert-yes'); insert into t1 (f1) values ('insert-yes');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
insert-yes insert-yes
@ -155,7 +155,7 @@ Grants for test_yesprivs@localhost
GRANT USAGE ON *.* TO `test_yesprivs`@`localhost` IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT USAGE ON *.* TO `test_yesprivs`@`localhost` IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
GRANT SELECT, UPDATE, TRIGGER ON `priv_db`.* TO `test_yesprivs`@`localhost` GRANT SELECT, UPDATE, TRIGGER ON `priv_db`.* TO `test_yesprivs`@`localhost`
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
takes effect after use priv_db: takes effect after use priv_db:
------------------------------- -------------------------------
@ -195,14 +195,14 @@ test_yesprivs@localhost
use no_priv_db; use no_priv_db;
create trigger trg1_3 before INSERT on t1 for each row create trigger trg1_3 before INSERT on t1 for each row
set new.f1 = 'trig 1_3-no'; set new.f1 = 'trig 1_3-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
use priv_db; use priv_db;
create trigger trg1_3 before INSERT on t1 for each row create trigger trg1_3 before INSERT on t1 for each row
set new.f1 = 'trig 1_3-yes'; set new.f1 = 'trig 1_3-yes';
use no_priv_db; use no_priv_db;
create trigger trg1_4 before UPDATE on t1 for each row create trigger trg1_4 before UPDATE on t1 for each row
set new.f1 = 'trig 1_4-no'; set new.f1 = 'trig 1_4-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
use priv_db; use priv_db;
create trigger trg1_4 before UPDATE on t1 for each row create trigger trg1_4 before UPDATE on t1 for each row
set new.f1 = 'trig 1_4-yes'; set new.f1 = 'trig 1_4-yes';
@ -302,7 +302,7 @@ Tables_in_priv_db
t1 t1
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -376,7 +376,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
no trigger privilege at activation time: no trigger privilege at activation time:
---------------------------------------- ----------------------------------------
@ -385,7 +385,7 @@ select current_user;
current_user current_user
test_noprivs@localhost test_noprivs@localhost
insert into t1 (f1) values ('insert5-no'); insert into t1 (f1) values ('insert5-no');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
insert1-yes insert1-yes
@ -476,12 +476,12 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-no'; set new.f1 = 'trig 2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
create trigger trg1_3 before INSERT on t1 for each row create trigger trg1_3 before INSERT on t1 for each row
set new.f1 = 'trig 1_3-yes'; set new.f1 = 'trig 1_3-yes';
create trigger trg2_2 before UPDATE on t2 for each row create trigger trg2_2 before UPDATE on t2 for each row
set new.f1 = 'trig 2_2-no'; set new.f1 = 'trig 2_2-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
create trigger trg1_4 before UPDATE on t1 for each row create trigger trg1_4 before UPDATE on t1 for each row
set new.f1 = 'trig 1_4-yes'; set new.f1 = 'trig 1_4-yes';
show triggers; show triggers;
@ -615,7 +615,7 @@ Trigger Event Table Statement Timing Created sql_mode Definer character_set_clie
select * from information_schema.triggers; select * from information_schema.triggers;
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
drop trigger trg1_1; drop trigger trg1_1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -635,7 +635,7 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -671,11 +671,11 @@ set new.f1 = 'trig 1_2-yes';
create trigger no_priv_db.trg1_9 before insert on no_priv_db.t1 create trigger no_priv_db.trg1_9 before insert on no_priv_db.t1
for each row for each row
set new.f1 = 'trig 1_9-yes'; set new.f1 = 'trig 1_9-yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
use no_priv_db; use no_priv_db;
create trigger trg1_2 before INSERT on t1 for each row create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-no'; set new.f1 = 'trig 1_2-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
create trigger priv_db.trg1_9 before UPDATE on priv_db.t1 create trigger priv_db.trg1_9 before UPDATE on priv_db.t1
for each row for each row
set new.f1 = 'trig 1_9-yes'; set new.f1 = 'trig 1_9-yes';
@ -699,7 +699,7 @@ select f1 from t1 order by f1;
f1 f1
insert-yes insert-yes
drop trigger priv_db.trg1_9; drop trigger priv_db.trg1_9;
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -708,7 +708,7 @@ drop trigger priv_db.trg1_9;
revoke TRIGGER on priv_db.* from test_yesprivs@localhost; revoke TRIGGER on priv_db.* from test_yesprivs@localhost;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert-yes'); insert into t1 (f1) values ('insert-yes');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
insert-yes insert-yes
@ -728,7 +728,7 @@ test_yesprivs@localhost
use no_priv_db; use no_priv_db;
create trigger trg1_2 before INSERT on t1 for each row create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-no'; set new.f1 = 'trig 1_2-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -843,7 +843,7 @@ set new.f1 = 'trig 2_1-yes';
use priv2_db; use priv2_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig1_1-yes'; set new.f1 = 'trig1_1-yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv2_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -918,7 +918,7 @@ test_yesprivs@localhost
use priv1_db; use priv1_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv1_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -945,7 +945,7 @@ create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-yes'; set new.f1 = 'trig 1_2-yes';
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-no'; set new.f1 = 'trig 2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv1_db`.`t2`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -986,7 +986,7 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-yes'; set new.f1 = 'trig 2_1-yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv1_db`.`t2`
use priv1_db; use priv1_db;
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-yes'; set new.f1 = 'trig 2_1-yes';
@ -1110,7 +1110,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1122,7 +1122,7 @@ current_user
test_useprivs@localhost test_useprivs@localhost
prepare ins1 from 'insert into t1 (f1) values (''insert5-no'')'; prepare ins1 from 'insert into t1 (f1) values (''insert5-no'')';
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1173,7 +1173,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1185,7 +1185,7 @@ select current_user;
current_user current_user
test_useprivs@localhost test_useprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1240,7 +1240,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1255,7 +1255,7 @@ select current_user;
current_user current_user
test_useprivs@localhost test_useprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1323,11 +1323,11 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
use priv_db; use priv_db;
insert into t1 (f1) values ('insert-no'); insert into t1 (f1) values ('insert-no');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
drop trigger trg1_0; drop trigger trg1_0;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -1638,12 +1638,12 @@ update t1 set f1 = 'update6_no'
where f1 like '%insert%'; where f1 like '%insert%';
update t2 set f1 = 'update6_no' update t2 set f1 = 'update6_no'
where f1 like '%insert%'; where f1 like '%insert%';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
update t1 set f1 = 'update7_no' update t1 set f1 = 'update7_no'
where f1 like '%insert%'; where f1 like '%insert%';
update t2 set f1 = 'update7_no' update t2 set f1 = 'update7_no'
where f1 like '%insert%'; where f1 like '%insert%';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1669,7 +1669,7 @@ test_noprivs@localhost
update t1 set f1 = 'update8-no', update t1 set f1 = 'update8-no',
f2 = 'update8-no' f2 = 'update8-no'
where f2 like '%yes'; where f2 like '%yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select * from t1 order by f1,f2,f3; select * from t1 order by f1,f2,f3;
f1 f2 f3 f1 f2 f3
trig 1_1-yes NULL NULL trig 1_1-yes NULL NULL
@ -1743,7 +1743,7 @@ current_user
test_noprivs@localhost test_noprivs@localhost
use priv_db; use priv_db;
update t1 set f3= f3+1; update t1 set f3= f3+1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f3 from t1 order by f3; select f3 from t1 order by f3;
f3 f3
NULL NULL

View File

@ -170,7 +170,7 @@ Field Type Null Key Default Extra
f1 char(10) YES MUL NULL f1 char(10) YES MUL NULL
f2 text YES NULL f2 text YES NULL
SHOW COLUMNS FROM db_datadict.t2; SHOW COLUMNS FROM db_datadict.t2;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table `db_datadict`.`t2`
SHOW COLUMNS FROM db_datadict.v1; SHOW COLUMNS FROM db_datadict.v1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
f2 int(1) NO 0 f2 int(1) NO 0
@ -182,13 +182,13 @@ TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAUL
def db_datadict t2 f1 1 NULL NO char 10 10 NULL NULL NULL latin1 latin1_swedish_ci char(10) PRI insert NEVER NULL def db_datadict t2 f1 1 NULL NO char 10 10 NULL NULL NULL latin1 latin1_swedish_ci char(10) PRI insert NEVER NULL
def db_datadict t2 f2 2 NULL YES text 65535 65535 NULL NULL NULL latin1 latin1_swedish_ci text insert NEVER NULL def db_datadict t2 f2 2 NULL YES text 65535 65535 NULL NULL NULL latin1 latin1_swedish_ci text insert NEVER NULL
SHOW COLUMNS FROM db_datadict.t1; SHOW COLUMNS FROM db_datadict.t1;
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table `db_datadict`.`t1`
SHOW COLUMNS FROM db_datadict.t2; SHOW COLUMNS FROM db_datadict.t2;
Field Type Null Key Default Extra Field Type Null Key Default Extra
f1 char(10) NO PRI NULL f1 char(10) NO PRI NULL
f2 text YES NULL f2 text YES NULL
SHOW COLUMNS FROM db_datadict.v1; SHOW COLUMNS FROM db_datadict.v1;
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table `db_datadict`.`v1`
connection default; connection default;
disconnect testuser1; disconnect testuser1;
disconnect testuser2; disconnect testuser2;

View File

@ -151,7 +151,7 @@ t1 0 my_idx1 1 f6 ### ### ### ### ### ### ### NO
t1 0 my_idx1 2 f1 ### ### ### ### ### ### ### NO t1 0 my_idx1 2 f1 ### ### ### ### ### ### ### NO
t1 0 my_idx2 1 f3 ### ### ### ### ### ### ### NO t1 0 my_idx2 1 f3 ### ### ### ### ### ### ### NO
SHOW INDEXES FROM db_datadict.t2; SHOW INDEXES FROM db_datadict.t2;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table `db_datadict`.`t2`
connection default; connection default;
disconnect testuser1; disconnect testuser1;
DROP USER 'testuser1'@'localhost'; DROP USER 'testuser1'@'localhost';

View File

@ -172,9 +172,9 @@ Grants for testuser4@localhost
GRANT TRIGGER ON *.* TO `testuser4`@`localhost` GRANT TRIGGER ON *.* TO `testuser4`@`localhost`
# TRIGGER Privilege + no SELECT Privilege on t1 --> result for query # TRIGGER Privilege + no SELECT Privilege on t1 --> result for query
SELECT * FROM db_datadict.t1; SELECT * FROM db_datadict.t1;
ERROR 42000: SELECT command denied to user 'testuser4'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'testuser4'@'localhost' for table `db_datadict`.`t1`
DESC db_datadict.t1; DESC db_datadict.t1;
ERROR 42000: SELECT command denied to user 'testuser4'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'testuser4'@'localhost' for table `db_datadict`.`t1`
SELECT * FROM information_schema.triggers SELECT * FROM information_schema.triggers
WHERE trigger_name = 'trg1'; WHERE trigger_name = 'trg1';
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION

View File

@ -367,7 +367,7 @@ PRIVILEGE_TYPE UPDATE
IS_GRANTABLE NO IS_GRANTABLE NO
SELECT host,user,json_detailed(priv) FROM mysql.global_priv SELECT host,user,json_detailed(priv) FROM mysql.global_priv
WHERE user LIKE 'testuser%' ORDER BY host, user; WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table `mysql`.`global_priv`
SHOW GRANTS; SHOW GRANTS;
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT INSERT, UPDATE ON *.* TO `testuser2`@`localhost` GRANT INSERT, UPDATE ON *.* TO `testuser2`@`localhost`
@ -381,7 +381,7 @@ PRIVILEGE_TYPE USAGE
IS_GRANTABLE NO IS_GRANTABLE NO
SELECT host,user,json_detailed(priv) FROM mysql.global_priv SELECT host,user,json_detailed(priv) FROM mysql.global_priv
WHERE user LIKE 'testuser%' ORDER BY host, user; WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser3'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser3'@'localhost' for table `mysql`.`global_priv`
SHOW GRANTS; SHOW GRANTS;
Grants for testuser3@localhost Grants for testuser3@localhost
GRANT USAGE ON *.* TO `testuser3`@`localhost` GRANT USAGE ON *.* TO `testuser3`@`localhost`
@ -447,12 +447,12 @@ PRIVILEGE_TYPE USAGE
IS_GRANTABLE NO IS_GRANTABLE NO
SELECT host,user,json_detailed(priv) FROM mysql.global_priv SELECT host,user,json_detailed(priv) FROM mysql.global_priv
WHERE user LIKE 'testuser%' ORDER BY host, user; WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table `mysql`.`global_priv`
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost` GRANT USAGE ON *.* TO `testuser1`@`localhost`
CREATE TABLE db_datadict.tb_55 ( c1 TEXT ); CREATE TABLE db_datadict.tb_55 ( c1 TEXT );
ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_55' ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table `db_datadict`.`tb_55`
SELECT * FROM information_schema.user_privileges SELECT * FROM information_schema.user_privileges
WHERE grantee LIKE '''testuser%''' WHERE grantee LIKE '''testuser%'''
ORDER BY grantee, table_catalog, privilege_type; ORDER BY grantee, table_catalog, privilege_type;
@ -462,12 +462,12 @@ PRIVILEGE_TYPE USAGE
IS_GRANTABLE NO IS_GRANTABLE NO
SELECT host,user,json_detailed(priv) FROM mysql.global_priv SELECT host,user,json_detailed(priv) FROM mysql.global_priv
WHERE user LIKE 'testuser%' ORDER BY host, user; WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table `mysql`.`global_priv`
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost` GRANT USAGE ON *.* TO `testuser1`@`localhost`
CREATE TABLE db_datadict.tb_66 ( c1 TEXT ); CREATE TABLE db_datadict.tb_66 ( c1 TEXT );
ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_66' ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table `db_datadict`.`tb_66`
# Add ALL on db_datadict.* (and select on mysql.global_priv) to testuser1; # Add ALL on db_datadict.* (and select on mysql.global_priv) to testuser1;
connection default; connection default;
@ -564,7 +564,7 @@ GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `db_datadict`.* TO `testuser1`@`localhost` WITH GRANT OPTION GRANT ALL PRIVILEGES ON `db_datadict`.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT ON `mysql`.`global_priv` TO `testuser1`@`localhost` GRANT SELECT ON `mysql`.`global_priv` TO `testuser1`@`localhost`
CREATE TABLE db_datadict.tb_56 ( c1 TEXT ); CREATE TABLE db_datadict.tb_56 ( c1 TEXT );
ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_56' ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table `db_datadict`.`tb_56`
USE db_datadict; USE db_datadict;
SELECT * FROM information_schema.user_privileges SELECT * FROM information_schema.user_privileges
WHERE grantee LIKE '''testuser%''' WHERE grantee LIKE '''testuser%'''
@ -671,7 +671,7 @@ PRIVILEGE_TYPE USAGE
IS_GRANTABLE NO IS_GRANTABLE NO
SELECT host,user,json_detailed(priv) FROM mysql.global_priv SELECT host,user,json_detailed(priv) FROM mysql.global_priv
WHERE user LIKE 'testuser%' ORDER BY host, user; WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table `mysql`.`global_priv`
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost` GRANT USAGE ON *.* TO `testuser1`@`localhost`

View File

@ -221,31 +221,31 @@ connect user5_2, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant insert on db_storedproc_1.* to 'user_1'@'localhost'; grant insert on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant SELECT on db_storedproc_1.* to 'user_1'@'localhost'; grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
@ -276,9 +276,9 @@ inserted outside of SP NULL
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
inserted from sp5_s_i 2000-10-00 inserted from sp5_s_i 2000-10-00
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
c1 c2 c3 c1 c2 c3
inserted outside of SP NULL inserted outside of SP NULL
@ -294,11 +294,11 @@ connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
disconnect user5_2; disconnect user5_2;
connection default; connection default;
@ -348,9 +348,9 @@ user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
c1 c1
inserted outside SP inserted outside SP
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_sel(); CALL sp3166_sel();
c1 c1
inserted outside SP inserted outside SP
@ -390,10 +390,10 @@ connect user6_4, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
CALL sp3166_sel(); CALL sp3166_sel();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
disconnect user6_4; disconnect user6_4;
connection default; connection default;
CALL sp3166_s_i(); CALL sp3166_s_i();

View File

@ -99,7 +99,7 @@ test_noprivs@localhost
use priv_db; use priv_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 3.5.3.2_1-no'; set new.f1 = 'trig 3.5.3.2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.2-no'); insert into t1 (f1) values ('insert 3.5.3.2-no');
@ -135,7 +135,7 @@ Testcase 3.5.3.6:
connection no_privs; connection no_privs;
use priv_db; use priv_db;
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.6-yes'); insert into t1 (f1) values ('insert 3.5.3.6-yes');
@ -688,7 +688,7 @@ insert into t2 values (new.f1);
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant INSERT on priv_db.t2 to test_yesprivs@localhost; grant INSERT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
@ -706,7 +706,7 @@ update t2 set f2=new.f1-1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke INSERT on priv_db.t2 from test_yesprivs@localhost; revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
grant UPDATE on priv_db.t2 to test_yesprivs@localhost; grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
@ -725,7 +725,7 @@ select f2 into @aaa from t2 where f2=new.f1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke UPDATE on priv_db.t2 from test_yesprivs@localhost; revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
grant SELECT on priv_db.t2 to test_yesprivs@localhost; grant SELECT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
@ -748,7 +748,7 @@ delete from t2;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant DELETE on priv_db.t2 to test_yesprivs@localhost; grant DELETE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);

View File

@ -32,7 +32,7 @@ no trigger privilege on db level for create:
use priv_db; use priv_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connect no_privs,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK; connect no_privs,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert-yes'); insert into t1 (f1) values ('insert-yes');
@ -108,7 +108,7 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
use priv_db; use priv_db;
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -118,7 +118,7 @@ use priv_db;
no trigger privilege at activation time: no trigger privilege at activation time:
---------------------------------------- ----------------------------------------
insert into t1 (f1) values ('insert-yes'); insert into t1 (f1) values ('insert-yes');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
insert-yes insert-yes
@ -156,7 +156,7 @@ Grants for test_yesprivs@localhost
GRANT USAGE ON *.* TO `test_yesprivs`@`localhost` IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT USAGE ON *.* TO `test_yesprivs`@`localhost` IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
GRANT SELECT, UPDATE, TRIGGER ON `priv_db`.* TO `test_yesprivs`@`localhost` GRANT SELECT, UPDATE, TRIGGER ON `priv_db`.* TO `test_yesprivs`@`localhost`
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
takes effect after use priv_db: takes effect after use priv_db:
------------------------------- -------------------------------
@ -196,14 +196,14 @@ test_yesprivs@localhost
use no_priv_db; use no_priv_db;
create trigger trg1_3 before INSERT on t1 for each row create trigger trg1_3 before INSERT on t1 for each row
set new.f1 = 'trig 1_3-no'; set new.f1 = 'trig 1_3-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
use priv_db; use priv_db;
create trigger trg1_3 before INSERT on t1 for each row create trigger trg1_3 before INSERT on t1 for each row
set new.f1 = 'trig 1_3-yes'; set new.f1 = 'trig 1_3-yes';
use no_priv_db; use no_priv_db;
create trigger trg1_4 before UPDATE on t1 for each row create trigger trg1_4 before UPDATE on t1 for each row
set new.f1 = 'trig 1_4-no'; set new.f1 = 'trig 1_4-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
use priv_db; use priv_db;
create trigger trg1_4 before UPDATE on t1 for each row create trigger trg1_4 before UPDATE on t1 for each row
set new.f1 = 'trig 1_4-yes'; set new.f1 = 'trig 1_4-yes';
@ -303,7 +303,7 @@ Tables_in_priv_db
t1 t1
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -377,7 +377,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
no trigger privilege at activation time: no trigger privilege at activation time:
---------------------------------------- ----------------------------------------
@ -386,7 +386,7 @@ select current_user;
current_user current_user
test_noprivs@localhost test_noprivs@localhost
insert into t1 (f1) values ('insert5-no'); insert into t1 (f1) values ('insert5-no');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
insert1-yes insert1-yes
@ -477,12 +477,12 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-no'; set new.f1 = 'trig 2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
create trigger trg1_3 before INSERT on t1 for each row create trigger trg1_3 before INSERT on t1 for each row
set new.f1 = 'trig 1_3-yes'; set new.f1 = 'trig 1_3-yes';
create trigger trg2_2 before UPDATE on t2 for each row create trigger trg2_2 before UPDATE on t2 for each row
set new.f1 = 'trig 2_2-no'; set new.f1 = 'trig 2_2-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
create trigger trg1_4 before UPDATE on t1 for each row create trigger trg1_4 before UPDATE on t1 for each row
set new.f1 = 'trig 1_4-yes'; set new.f1 = 'trig 1_4-yes';
show triggers; show triggers;
@ -616,7 +616,7 @@ Trigger Event Table Statement Timing Created sql_mode Definer character_set_clie
select * from information_schema.triggers; select * from information_schema.triggers;
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
drop trigger trg1_1; drop trigger trg1_1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -636,7 +636,7 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -672,11 +672,11 @@ set new.f1 = 'trig 1_2-yes';
create trigger no_priv_db.trg1_9 before insert on no_priv_db.t1 create trigger no_priv_db.trg1_9 before insert on no_priv_db.t1
for each row for each row
set new.f1 = 'trig 1_9-yes'; set new.f1 = 'trig 1_9-yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
use no_priv_db; use no_priv_db;
create trigger trg1_2 before INSERT on t1 for each row create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-no'; set new.f1 = 'trig 1_2-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
create trigger priv_db.trg1_9 before UPDATE on priv_db.t1 create trigger priv_db.trg1_9 before UPDATE on priv_db.t1
for each row for each row
set new.f1 = 'trig 1_9-yes'; set new.f1 = 'trig 1_9-yes';
@ -700,7 +700,7 @@ select f1 from t1 order by f1;
f1 f1
insert-yes insert-yes
drop trigger priv_db.trg1_9; drop trigger priv_db.trg1_9;
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -709,7 +709,7 @@ drop trigger priv_db.trg1_9;
revoke TRIGGER on priv_db.* from test_yesprivs@localhost; revoke TRIGGER on priv_db.* from test_yesprivs@localhost;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert-yes'); insert into t1 (f1) values ('insert-yes');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
insert-yes insert-yes
@ -729,7 +729,7 @@ test_yesprivs@localhost
use no_priv_db; use no_priv_db;
create trigger trg1_2 before INSERT on t1 for each row create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-no'; set new.f1 = 'trig 1_2-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -844,7 +844,7 @@ set new.f1 = 'trig 2_1-yes';
use priv2_db; use priv2_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig1_1-yes'; set new.f1 = 'trig1_1-yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv2_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -919,7 +919,7 @@ test_yesprivs@localhost
use priv1_db; use priv1_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv1_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -946,7 +946,7 @@ create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-yes'; set new.f1 = 'trig 1_2-yes';
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-no'; set new.f1 = 'trig 2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv1_db`.`t2`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -987,7 +987,7 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-yes'; set new.f1 = 'trig 2_1-yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv1_db`.`t2`
use priv1_db; use priv1_db;
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-yes'; set new.f1 = 'trig 2_1-yes';
@ -1111,7 +1111,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1123,7 +1123,7 @@ current_user
test_useprivs@localhost test_useprivs@localhost
prepare ins1 from 'insert into t1 (f1) values (''insert5-no'')'; prepare ins1 from 'insert into t1 (f1) values (''insert5-no'')';
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1174,7 +1174,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1186,7 +1186,7 @@ select current_user;
current_user current_user
test_useprivs@localhost test_useprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1241,7 +1241,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1256,7 +1256,7 @@ select current_user;
current_user current_user
test_useprivs@localhost test_useprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1324,11 +1324,11 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
use priv_db; use priv_db;
insert into t1 (f1) values ('insert-no'); insert into t1 (f1) values ('insert-no');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
drop trigger trg1_0; drop trigger trg1_0;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -1577,12 +1577,12 @@ update t1 set f1 = 'update6_no'
where f1 like '%insert%'; where f1 like '%insert%';
update t2 set f1 = 'update6_no' update t2 set f1 = 'update6_no'
where f1 like '%insert%'; where f1 like '%insert%';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
update t1 set f1 = 'update7_no' update t1 set f1 = 'update7_no'
where f1 like '%insert%'; where f1 like '%insert%';
update t2 set f1 = 'update7_no' update t2 set f1 = 'update7_no'
where f1 like '%insert%'; where f1 like '%insert%';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1608,7 +1608,7 @@ test_noprivs@localhost
update t1 set f1 = 'update8-no', update t1 set f1 = 'update8-no',
f2 = 'update8-no' f2 = 'update8-no'
where f2 like '%yes'; where f2 like '%yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select * from t1 order by f1,f2,f3; select * from t1 order by f1,f2,f3;
f1 f2 f3 f1 f2 f3
trig 1_1-yes NULL NULL trig 1_1-yes NULL NULL
@ -1682,7 +1682,7 @@ current_user
test_noprivs@localhost test_noprivs@localhost
use priv_db; use priv_db;
update t1 set f3= f3+1; update t1 set f3= f3+1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f3 from t1 order by f3; select f3 from t1 order by f3;
f3 f3
NULL NULL

View File

@ -221,31 +221,31 @@ connect user5_2, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant insert on db_storedproc_1.* to 'user_1'@'localhost'; grant insert on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant SELECT on db_storedproc_1.* to 'user_1'@'localhost'; grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
@ -276,9 +276,9 @@ inserted outside of SP NULL
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
inserted from sp5_s_i 2000-10-00 inserted from sp5_s_i 2000-10-00
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
c1 c2 c3 c1 c2 c3
inserted outside of SP NULL inserted outside of SP NULL
@ -294,11 +294,11 @@ connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
disconnect user5_2; disconnect user5_2;
connection default; connection default;
@ -348,9 +348,9 @@ user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
c1 c1
inserted outside SP inserted outside SP
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_sel(); CALL sp3166_sel();
c1 c1
inserted outside SP inserted outside SP
@ -390,10 +390,10 @@ connect user6_4, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
CALL sp3166_sel(); CALL sp3166_sel();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
disconnect user6_4; disconnect user6_4;
connection default; connection default;
CALL sp3166_s_i(); CALL sp3166_s_i();

View File

@ -99,7 +99,7 @@ test_noprivs@localhost
use priv_db; use priv_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 3.5.3.2_1-no'; set new.f1 = 'trig 3.5.3.2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.2-no'); insert into t1 (f1) values ('insert 3.5.3.2-no');
@ -135,7 +135,7 @@ Testcase 3.5.3.6:
connection no_privs; connection no_privs;
use priv_db; use priv_db;
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.6-yes'); insert into t1 (f1) values ('insert 3.5.3.6-yes');
@ -688,7 +688,7 @@ insert into t2 values (new.f1);
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant INSERT on priv_db.t2 to test_yesprivs@localhost; grant INSERT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
@ -706,7 +706,7 @@ update t2 set f2=new.f1-1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke INSERT on priv_db.t2 from test_yesprivs@localhost; revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
grant UPDATE on priv_db.t2 to test_yesprivs@localhost; grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
@ -725,7 +725,7 @@ select f2 into @aaa from t2 where f2=new.f1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke UPDATE on priv_db.t2 from test_yesprivs@localhost; revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
grant SELECT on priv_db.t2 to test_yesprivs@localhost; grant SELECT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
@ -748,7 +748,7 @@ delete from t2;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant DELETE on priv_db.t2 to test_yesprivs@localhost; grant DELETE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);

View File

@ -32,7 +32,7 @@ no trigger privilege on db level for create:
use priv_db; use priv_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connect no_privs,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK; connect no_privs,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert-yes'); insert into t1 (f1) values ('insert-yes');
@ -108,7 +108,7 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
use priv_db; use priv_db;
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -118,7 +118,7 @@ use priv_db;
no trigger privilege at activation time: no trigger privilege at activation time:
---------------------------------------- ----------------------------------------
insert into t1 (f1) values ('insert-yes'); insert into t1 (f1) values ('insert-yes');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
insert-yes insert-yes
@ -156,7 +156,7 @@ Grants for test_yesprivs@localhost
GRANT USAGE ON *.* TO `test_yesprivs`@`localhost` IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT USAGE ON *.* TO `test_yesprivs`@`localhost` IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
GRANT SELECT, UPDATE, TRIGGER ON `priv_db`.* TO `test_yesprivs`@`localhost` GRANT SELECT, UPDATE, TRIGGER ON `priv_db`.* TO `test_yesprivs`@`localhost`
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
takes effect after use priv_db: takes effect after use priv_db:
------------------------------- -------------------------------
@ -196,14 +196,14 @@ test_yesprivs@localhost
use no_priv_db; use no_priv_db;
create trigger trg1_3 before INSERT on t1 for each row create trigger trg1_3 before INSERT on t1 for each row
set new.f1 = 'trig 1_3-no'; set new.f1 = 'trig 1_3-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
use priv_db; use priv_db;
create trigger trg1_3 before INSERT on t1 for each row create trigger trg1_3 before INSERT on t1 for each row
set new.f1 = 'trig 1_3-yes'; set new.f1 = 'trig 1_3-yes';
use no_priv_db; use no_priv_db;
create trigger trg1_4 before UPDATE on t1 for each row create trigger trg1_4 before UPDATE on t1 for each row
set new.f1 = 'trig 1_4-no'; set new.f1 = 'trig 1_4-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
use priv_db; use priv_db;
create trigger trg1_4 before UPDATE on t1 for each row create trigger trg1_4 before UPDATE on t1 for each row
set new.f1 = 'trig 1_4-yes'; set new.f1 = 'trig 1_4-yes';
@ -303,7 +303,7 @@ Tables_in_priv_db
t1 t1
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -377,7 +377,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
no trigger privilege at activation time: no trigger privilege at activation time:
---------------------------------------- ----------------------------------------
@ -386,7 +386,7 @@ select current_user;
current_user current_user
test_noprivs@localhost test_noprivs@localhost
insert into t1 (f1) values ('insert5-no'); insert into t1 (f1) values ('insert5-no');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
insert1-yes insert1-yes
@ -477,12 +477,12 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-no'; set new.f1 = 'trig 2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
create trigger trg1_3 before INSERT on t1 for each row create trigger trg1_3 before INSERT on t1 for each row
set new.f1 = 'trig 1_3-yes'; set new.f1 = 'trig 1_3-yes';
create trigger trg2_2 before UPDATE on t2 for each row create trigger trg2_2 before UPDATE on t2 for each row
set new.f1 = 'trig 2_2-no'; set new.f1 = 'trig 2_2-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
create trigger trg1_4 before UPDATE on t1 for each row create trigger trg1_4 before UPDATE on t1 for each row
set new.f1 = 'trig 1_4-yes'; set new.f1 = 'trig 1_4-yes';
show triggers; show triggers;
@ -616,7 +616,7 @@ Trigger Event Table Statement Timing Created sql_mode Definer character_set_clie
select * from information_schema.triggers; select * from information_schema.triggers;
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
drop trigger trg1_1; drop trigger trg1_1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -636,7 +636,7 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -672,11 +672,11 @@ set new.f1 = 'trig 1_2-yes';
create trigger no_priv_db.trg1_9 before insert on no_priv_db.t1 create trigger no_priv_db.trg1_9 before insert on no_priv_db.t1
for each row for each row
set new.f1 = 'trig 1_9-yes'; set new.f1 = 'trig 1_9-yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
use no_priv_db; use no_priv_db;
create trigger trg1_2 before INSERT on t1 for each row create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-no'; set new.f1 = 'trig 1_2-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
create trigger priv_db.trg1_9 before UPDATE on priv_db.t1 create trigger priv_db.trg1_9 before UPDATE on priv_db.t1
for each row for each row
set new.f1 = 'trig 1_9-yes'; set new.f1 = 'trig 1_9-yes';
@ -700,7 +700,7 @@ select f1 from t1 order by f1;
f1 f1
insert-yes insert-yes
drop trigger priv_db.trg1_9; drop trigger priv_db.trg1_9;
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -709,7 +709,7 @@ drop trigger priv_db.trg1_9;
revoke TRIGGER on priv_db.* from test_yesprivs@localhost; revoke TRIGGER on priv_db.* from test_yesprivs@localhost;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert-yes'); insert into t1 (f1) values ('insert-yes');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
insert-yes insert-yes
@ -729,7 +729,7 @@ test_yesprivs@localhost
use no_priv_db; use no_priv_db;
create trigger trg1_2 before INSERT on t1 for each row create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-no'; set new.f1 = 'trig 1_2-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `no_priv_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -844,7 +844,7 @@ set new.f1 = 'trig 2_1-yes';
use priv2_db; use priv2_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig1_1-yes'; set new.f1 = 'trig1_1-yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv2_db`.`t1`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -919,7 +919,7 @@ test_yesprivs@localhost
use priv1_db; use priv1_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 1_1-no'; set new.f1 = 'trig 1_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv1_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -946,7 +946,7 @@ create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-yes'; set new.f1 = 'trig 1_2-yes';
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-no'; set new.f1 = 'trig 2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv1_db`.`t2`
connection no_privs; connection no_privs;
select current_user; select current_user;
current_user current_user
@ -987,7 +987,7 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-yes'; set new.f1 = 'trig 2_1-yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv1_db`.`t2`
use priv1_db; use priv1_db;
create trigger trg2_1 before INSERT on t2 for each row create trigger trg2_1 before INSERT on t2 for each row
set new.f1 = 'trig 2_1-yes'; set new.f1 = 'trig 2_1-yes';
@ -1111,7 +1111,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1123,7 +1123,7 @@ current_user
test_useprivs@localhost test_useprivs@localhost
prepare ins1 from 'insert into t1 (f1) values (''insert5-no'')'; prepare ins1 from 'insert into t1 (f1) values (''insert5-no'')';
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1174,7 +1174,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1186,7 +1186,7 @@ select current_user;
current_user current_user
test_useprivs@localhost test_useprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1241,7 +1241,7 @@ select current_user;
current_user current_user
test_yesprivs@localhost test_yesprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1256,7 +1256,7 @@ select current_user;
current_user current_user
test_useprivs@localhost test_useprivs@localhost
execute ins1; execute ins1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1324,11 +1324,11 @@ current_user
test_yesprivs@localhost test_yesprivs@localhost
use priv_db; use priv_db;
insert into t1 (f1) values ('insert-no'); insert into t1 (f1) values ('insert-no');
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
drop trigger trg1_0; drop trigger trg1_0;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
select current_user; select current_user;
current_user current_user
@ -1577,12 +1577,12 @@ update t1 set f1 = 'update6_no'
where f1 like '%insert%'; where f1 like '%insert%';
update t2 set f1 = 'update6_no' update t2 set f1 = 'update6_no'
where f1 like '%insert%'; where f1 like '%insert%';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
update t1 set f1 = 'update7_no' update t1 set f1 = 'update7_no'
where f1 like '%insert%'; where f1 like '%insert%';
update t2 set f1 = 'update7_no' update t2 set f1 = 'update7_no'
where f1 like '%insert%'; where f1 like '%insert%';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
select f1 from t1 order by f1; select f1 from t1 order by f1;
f1 f1
trig 1_1-yes trig 1_1-yes
@ -1608,7 +1608,7 @@ test_noprivs@localhost
update t1 set f1 = 'update8-no', update t1 set f1 = 'update8-no',
f2 = 'update8-no' f2 = 'update8-no'
where f2 like '%yes'; where f2 like '%yes';
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select * from t1 order by f1,f2,f3; select * from t1 order by f1,f2,f3;
f1 f2 f3 f1 f2 f3
trig 1_1-yes NULL NULL trig 1_1-yes NULL NULL
@ -1682,7 +1682,7 @@ current_user
test_noprivs@localhost test_noprivs@localhost
use priv_db; use priv_db;
update t1 set f3= f3+1; update t1 set f3= f3+1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t1`
select f3 from t1 order by f3; select f3 from t1 order by f3;
f3 f3
NULL NULL

View File

@ -1849,7 +1849,7 @@ connection u_1;
user_1@localhost db_storedproc user_1@localhost db_storedproc
USE db_storedproc; USE db_storedproc;
CALL sp11(); CALL sp11();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `mysql`.`t1`
commit work; commit work;
disconnect u_1; disconnect u_1;
connection default; connection default;

View File

@ -33,7 +33,7 @@ GRANT USAGE ON *.* TO `foo`@`localhost`
FLUSH TABLES; FLUSH TABLES;
ERROR 42000: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation ERROR 42000: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation
SELECT * FROM mysql.roles_mapping; SELECT * FROM mysql.roles_mapping;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'roles_mapping' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `mysql`.`roles_mapping`
SHOW TABLES FROM test1; SHOW TABLES FROM test1;
ERROR 42000: Access denied for user 'foo'@'localhost' to database 'test1' ERROR 42000: Access denied for user 'foo'@'localhost' to database 'test1'
SET ROLE role1; SET ROLE role1;
@ -51,7 +51,7 @@ a b
1 2 1 2
3 4 3 4
SELECT * FROM test1.t2; SELECT * FROM test1.t2;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `test1`.`t2`
SELECT a FROM test1.t2; SELECT a FROM test1.t2;
a a
5 5
@ -69,7 +69,7 @@ GRANT USAGE ON *.* TO `foo`@`localhost`
FLUSH TABLES; FLUSH TABLES;
ERROR 42000: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation ERROR 42000: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation
SELECT * FROM mysql.roles_mapping; SELECT * FROM mysql.roles_mapping;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'roles_mapping' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `mysql`.`roles_mapping`
SHOW TABLES FROM test1; SHOW TABLES FROM test1;
ERROR 42000: Access denied for user 'foo'@'localhost' to database 'test1' ERROR 42000: Access denied for user 'foo'@'localhost' to database 'test1'
SET ROLE role1; SET ROLE role1;
@ -87,7 +87,7 @@ a b
1 2 1 2
3 4 3 4
SELECT * FROM test1.t2; SELECT * FROM test1.t2;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `test1`.`t2`
SELECT a FROM test1.t2; SELECT a FROM test1.t2;
a a
5 5
@ -124,11 +124,11 @@ DROP ROLE role1;
connection foo_node_1; connection foo_node_1;
FLUSH TABLES; FLUSH TABLES;
SELECT * FROM mysql.roles_mapping; SELECT * FROM mysql.roles_mapping;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'roles_mapping' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `mysql`.`roles_mapping`
SELECT * FROM test1.t1; SELECT * FROM test1.t1;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `test1`.`t1`
SELECT a FROM test1.t2; SELECT a FROM test1.t2;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `test1`.`t2`
SHOW GRANTS; SHOW GRANTS;
Grants for foo@localhost Grants for foo@localhost
GRANT USAGE ON *.* TO `foo`@`localhost` GRANT USAGE ON *.* TO `foo`@`localhost`
@ -146,11 +146,11 @@ role1
connection foo_node_2; connection foo_node_2;
FLUSH TABLES; FLUSH TABLES;
SELECT * FROM mysql.roles_mapping; SELECT * FROM mysql.roles_mapping;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'roles_mapping' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `mysql`.`roles_mapping`
SELECT * FROM test1.t1; SELECT * FROM test1.t1;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `test1`.`t1`
SELECT a FROM test1.t2; SELECT a FROM test1.t2;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `test1`.`t2`
SHOW GRANTS; SHOW GRANTS;
Grants for foo@localhost Grants for foo@localhost
GRANT USAGE ON *.* TO `foo`@`localhost` GRANT USAGE ON *.* TO `foo`@`localhost`

View File

@ -23,7 +23,7 @@ i
1 1
# Following RENAME should not replicate to other node. # Following RENAME should not replicate to other node.
RENAME TABLE t1 TO t2; RENAME TABLE t1 TO t2;
ERROR 42000: DROP, ALTER command denied to user 'foo'@'localhost' for table 't1' ERROR 42000: DROP, ALTER command denied to user 'foo'@'localhost' for table `test`.`t1`
# On node 2 # On node 2
connection node_2; connection node_2;
USE test; USE test;

View File

@ -1,5 +1,6 @@
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_debug_sync.inc
--echo # --echo #
--echo # MDEV-24971 InnoDB access freed virtual column --echo # MDEV-24971 InnoDB access freed virtual column

View File

@ -433,13 +433,29 @@ INSERT INTO t1 VALUES(1, repeat('a', 10000));
ROLLBACK; ROLLBACK;
SET DEBUG_SYNC = 'now SIGNAL ins'; SET DEBUG_SYNC = 'now SIGNAL ins';
connection con1; connection con1;
disconnect con1;
connection default; connection default;
SELECT * FROM t1; SELECT * FROM t1;
a b a b
0 NULL 0 NULL
DROP TABLE t1; DROP TABLE t1;
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
#
# MDEV-29600 Memory leak in row_log_table_apply_update()
#
CREATE TABLE t1 (pk INT PRIMARY KEY, f TEXT) ENGINE=InnoDB;
INSERT INTO t1 SET pk=1;
connection con1;
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL created WAIT_FOR updated';
ALTER TABLE t1 FORCE;
connection default;
SET DEBUG_SYNC = 'now WAIT_FOR created';
UPDATE t1 SET f = REPEAT('a', 20000);
SET DEBUG_SYNC = 'now SIGNAL updated';
connection con1;
disconnect con1;
connection default;
DROP TABLE t1;
SET DEBUG_SYNC = 'RESET';
SET GLOBAL innodb_file_per_table = @global_innodb_file_per_table_orig; SET GLOBAL innodb_file_per_table = @global_innodb_file_per_table_orig;
SET GLOBAL innodb_monitor_enable = default; SET GLOBAL innodb_monitor_enable = default;
SET GLOBAL innodb_monitor_disable = default; SET GLOBAL innodb_monitor_disable = default;

View File

@ -304,3 +304,13 @@ CREATE TABLE t1 (a INT) ENGINE=InnoDB PARTITION BY HASH(a) PARTITIONS 2;
INSERT INTO t1 VALUES (1),(2); INSERT INTO t1 VALUES (1),(2);
ALTER TABLE t1 REBUILD PARTITION p0; ALTER TABLE t1 REBUILD PARTITION p0;
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-29570 InnoDB fails to clean bulk buffer when server
# does rollback operation
#
CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=InnoDB
PARTITION BY RANGE (pk) (
PARTITION pn VALUES LESS THAN (20));
INSERT INTO t1 VALUES (1),(21);
ERROR HY000: Table has no partition for value 21
DROP TABLE t1;

View File

@ -1,5 +1,6 @@
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_debug_sync.inc
--source include/have_sequence.inc --source include/have_sequence.inc
CREATE TABLE t1(f1 INT NOT NULL, f2 INT NOT NULL, CREATE TABLE t1(f1 INT NOT NULL, f2 INT NOT NULL,

View File

@ -1,5 +1,6 @@
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_debug_sync.inc
create table t1(f1 char(10), f2 char(10) not null, f3 int not null, create table t1(f1 char(10), f2 char(10) not null, f3 int not null,
f4 int not null, primary key(f3))engine=innodb; f4 int not null, primary key(f3))engine=innodb;

View File

@ -1,5 +1,6 @@
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_debug_sync.inc
--source include/not_embedded.inc --source include/not_embedded.inc
# Two parallel connection with autoinc column after restart. # Two parallel connection with autoinc column after restart.

Some files were not shown because too many files have changed in this diff Show More