mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
merge from 5.1 main
This commit is contained in:
@ -1326,6 +1326,199 @@ DROP DATABASE mysqltest2;
|
||||
DROP USER testuser@localhost;
|
||||
use test;
|
||||
|
||||
#
|
||||
# Test for bug #36544 "DROP USER does not remove stored function
|
||||
# privileges".
|
||||
#
|
||||
create database mysqltest1;
|
||||
create function mysqltest1.f1() returns int return 0;
|
||||
create procedure mysqltest1.p1() begin end;
|
||||
#
|
||||
# 1) Check that DROP USER properly removes privileges on both
|
||||
# stored procedures and functions.
|
||||
#
|
||||
create user mysqluser1@localhost;
|
||||
grant execute on function mysqltest1.f1 to mysqluser1@localhost;
|
||||
grant execute on procedure mysqltest1.p1 to mysqluser1@localhost;
|
||||
# Quick test that granted privileges are properly reflected
|
||||
# in privilege tables and in in-memory structures.
|
||||
show grants for mysqluser1@localhost;
|
||||
Grants for mysqluser1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqluser1'@'localhost'
|
||||
GRANT EXECUTE ON PROCEDURE `mysqltest1`.`p1` TO 'mysqluser1'@'localhost'
|
||||
GRANT EXECUTE ON FUNCTION `mysqltest1`.`f1` TO 'mysqluser1'@'localhost'
|
||||
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
|
||||
db routine_name routine_type proc_priv
|
||||
mysqltest1 f1 FUNCTION Execute
|
||||
mysqltest1 p1 PROCEDURE Execute
|
||||
#
|
||||
# Create connection 'bug_36544_con1' as 'mysqluser1@localhost'.
|
||||
call mysqltest1.p1();
|
||||
select mysqltest1.f1();
|
||||
mysqltest1.f1()
|
||||
0
|
||||
#
|
||||
# Switch to connection 'default'.
|
||||
drop user mysqluser1@localhost;
|
||||
#
|
||||
# Test that dropping of user is properly reflected in
|
||||
# both privilege tables and in in-memory structures.
|
||||
#
|
||||
# Switch to connection 'bug36544_con1'.
|
||||
# The connection cold be alive but should not be able to
|
||||
# access to any of the stored routines.
|
||||
call mysqltest1.p1();
|
||||
ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.p1'
|
||||
select mysqltest1.f1();
|
||||
ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.f1'
|
||||
#
|
||||
# Switch to connection 'default'.
|
||||
#
|
||||
# Now create user with the same name and check that he
|
||||
# has not inherited privileges.
|
||||
create user mysqluser1@localhost;
|
||||
show grants for mysqluser1@localhost;
|
||||
Grants for mysqluser1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqluser1'@'localhost'
|
||||
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
|
||||
db routine_name routine_type proc_priv
|
||||
#
|
||||
# Create connection 'bug_36544_con2' as 'mysqluser1@localhost'.
|
||||
# Newly created user should not be able to access any of the routines.
|
||||
call mysqltest1.p1();
|
||||
ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.p1'
|
||||
select mysqltest1.f1();
|
||||
ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.f1'
|
||||
#
|
||||
# Switch to connection 'default'.
|
||||
#
|
||||
# 2) Check that RENAME USER properly updates privileges on both
|
||||
# stored procedures and functions.
|
||||
#
|
||||
grant execute on function mysqltest1.f1 to mysqluser1@localhost;
|
||||
grant execute on procedure mysqltest1.p1 to mysqluser1@localhost;
|
||||
#
|
||||
# Create one more user to make in-memory hashes non-trivial.
|
||||
# User names 'mysqluser11' and 'mysqluser10' were selected
|
||||
# to trigger bug discovered during code inspection.
|
||||
create user mysqluser11@localhost;
|
||||
grant execute on function mysqltest1.f1 to mysqluser11@localhost;
|
||||
grant execute on procedure mysqltest1.p1 to mysqluser11@localhost;
|
||||
# Also create a couple of tables to test for another bug
|
||||
# discovered during code inspection (again table names were
|
||||
# chosen especially to trigger the bug).
|
||||
create table mysqltest1.t11 (i int);
|
||||
create table mysqltest1.t22 (i int);
|
||||
grant select on mysqltest1.t22 to mysqluser1@localhost;
|
||||
grant select on mysqltest1.t11 to mysqluser1@localhost;
|
||||
# Quick test that granted privileges are properly reflected
|
||||
# in privilege tables and in in-memory structures.
|
||||
show grants for mysqluser1@localhost;
|
||||
Grants for mysqluser1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqluser1'@'localhost'
|
||||
GRANT SELECT ON `mysqltest1`.`t11` TO 'mysqluser1'@'localhost'
|
||||
GRANT SELECT ON `mysqltest1`.`t22` TO 'mysqluser1'@'localhost'
|
||||
GRANT EXECUTE ON PROCEDURE `mysqltest1`.`p1` TO 'mysqluser1'@'localhost'
|
||||
GRANT EXECUTE ON FUNCTION `mysqltest1`.`f1` TO 'mysqluser1'@'localhost'
|
||||
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
|
||||
db routine_name routine_type proc_priv
|
||||
mysqltest1 f1 FUNCTION Execute
|
||||
mysqltest1 p1 PROCEDURE Execute
|
||||
select db, table_name, table_priv from mysql.tables_priv where user='mysqluser1' and host='localhost';
|
||||
db table_name table_priv
|
||||
mysqltest1 t11 Select
|
||||
mysqltest1 t22 Select
|
||||
#
|
||||
# Switch to connection 'bug36544_con2'.
|
||||
call mysqltest1.p1();
|
||||
select mysqltest1.f1();
|
||||
mysqltest1.f1()
|
||||
0
|
||||
select * from mysqltest1.t11;
|
||||
i
|
||||
select * from mysqltest1.t22;
|
||||
i
|
||||
#
|
||||
# Switch to connection 'default'.
|
||||
rename user mysqluser1@localhost to mysqluser10@localhost;
|
||||
#
|
||||
# Test that there are no privileges left for mysqluser1.
|
||||
#
|
||||
# Switch to connection 'bug36544_con2'.
|
||||
# The connection cold be alive but should not be able to
|
||||
# access to any of the stored routines or tables.
|
||||
call mysqltest1.p1();
|
||||
ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.p1'
|
||||
select mysqltest1.f1();
|
||||
ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.f1'
|
||||
select * from mysqltest1.t11;
|
||||
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 't11'
|
||||
select * from mysqltest1.t22;
|
||||
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 't22'
|
||||
#
|
||||
# Switch to connection 'default'.
|
||||
#
|
||||
# Now create user with the old name and check that he
|
||||
# has not inherited privileges.
|
||||
create user mysqluser1@localhost;
|
||||
show grants for mysqluser1@localhost;
|
||||
Grants for mysqluser1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqluser1'@'localhost'
|
||||
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
|
||||
db routine_name routine_type proc_priv
|
||||
select db, table_name, table_priv from mysql.tables_priv where user='mysqluser1' and host='localhost';
|
||||
db table_name table_priv
|
||||
#
|
||||
# Create connection 'bug_36544_con3' as 'mysqluser1@localhost'.
|
||||
# Newly created user should not be able to access to any of the
|
||||
# stored routines or tables.
|
||||
call mysqltest1.p1();
|
||||
ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.p1'
|
||||
select mysqltest1.f1();
|
||||
ERROR 42000: execute command denied to user 'mysqluser1'@'localhost' for routine 'mysqltest1.f1'
|
||||
select * from mysqltest1.t11;
|
||||
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 't11'
|
||||
select * from mysqltest1.t22;
|
||||
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 't22'
|
||||
#
|
||||
# Switch to connection 'default'.
|
||||
#
|
||||
# Now check that privileges became associated with a new user
|
||||
# name - mysqluser10.
|
||||
#
|
||||
show grants for mysqluser10@localhost;
|
||||
Grants for mysqluser10@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqluser10'@'localhost'
|
||||
GRANT SELECT ON `mysqltest1`.`t22` TO 'mysqluser10'@'localhost'
|
||||
GRANT SELECT ON `mysqltest1`.`t11` TO 'mysqluser10'@'localhost'
|
||||
GRANT EXECUTE ON PROCEDURE `mysqltest1`.`p1` TO 'mysqluser10'@'localhost'
|
||||
GRANT EXECUTE ON FUNCTION `mysqltest1`.`f1` TO 'mysqluser10'@'localhost'
|
||||
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser10' and host='localhost';
|
||||
db routine_name routine_type proc_priv
|
||||
mysqltest1 f1 FUNCTION Execute
|
||||
mysqltest1 p1 PROCEDURE Execute
|
||||
select db, table_name, table_priv from mysql.tables_priv where user='mysqluser10' and host='localhost';
|
||||
db table_name table_priv
|
||||
mysqltest1 t11 Select
|
||||
mysqltest1 t22 Select
|
||||
#
|
||||
# Create connection 'bug_36544_con4' as 'mysqluser10@localhost'.
|
||||
call mysqltest1.p1();
|
||||
select mysqltest1.f1();
|
||||
mysqltest1.f1()
|
||||
0
|
||||
select * from mysqltest1.t11;
|
||||
i
|
||||
select * from mysqltest1.t22;
|
||||
i
|
||||
#
|
||||
# Switch to connection 'default'.
|
||||
#
|
||||
# Clean-up.
|
||||
drop user mysqluser1@localhost;
|
||||
drop user mysqluser10@localhost;
|
||||
drop user mysqluser11@localhost;
|
||||
drop database mysqltest1;
|
||||
End of 5.0 tests
|
||||
set names utf8;
|
||||
grant select on test.* to юзер_юзер@localhost;
|
||||
@ -1422,11 +1615,7 @@ fn2()
|
||||
2
|
||||
DROP USER 'userbug33464'@'localhost';
|
||||
DROP FUNCTION fn1;
|
||||
Warnings:
|
||||
Warning 1403 There is no such grant defined for user 'userbug33464' on host 'localhost' on routine 'fn1'
|
||||
DROP FUNCTION fn2;
|
||||
Warnings:
|
||||
Warning 1403 There is no such grant defined for user 'userbug33464' on host 'localhost' on routine 'fn2'
|
||||
DROP PROCEDURE sp3;
|
||||
DROP USER 'userbug33464'@'localhost';
|
||||
USE test;
|
||||
|
@ -1,5 +1,43 @@
|
||||
drop table if exists t1, t2;
|
||||
#
|
||||
# Bug#59297: Can't find record in 'tablename' on update inner join
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
a char(2) NOT NULL,
|
||||
b char(2) NOT NULL,
|
||||
c int(10) unsigned NOT NULL,
|
||||
d varchar(255) DEFAULT NULL,
|
||||
e varchar(1000) DEFAULT NULL,
|
||||
PRIMARY KEY (a, b, c),
|
||||
KEY (a),
|
||||
KEY (a, b)
|
||||
)
|
||||
/*!50100 PARTITION BY KEY (a)
|
||||
PARTITIONS 20 */;
|
||||
INSERT INTO t1 (a, b, c, d, e) VALUES
|
||||
('07', '03', 343, '1', '07_03_343'),
|
||||
('01', '04', 343, '2', '01_04_343'),
|
||||
('01', '06', 343, '3', '01_06_343'),
|
||||
('01', '07', 343, '4', '01_07_343'),
|
||||
('01', '08', 343, '5', '01_08_343'),
|
||||
('01', '09', 343, '6', '01_09_343'),
|
||||
('03', '03', 343, '7', '03_03_343'),
|
||||
('03', '06', 343, '8', '03_06_343'),
|
||||
('03', '07', 343, '9', '03_07_343'),
|
||||
('04', '03', 343, '10', '04_03_343'),
|
||||
('04', '06', 343, '11', '04_06_343'),
|
||||
('05', '03', 343, '12', '05_03_343'),
|
||||
('11', '03', 343, '13', '11_03_343'),
|
||||
('11', '04', 343, '14', '11_04_343')
|
||||
;
|
||||
UPDATE t1 AS A,
|
||||
(SELECT '03' AS a, '06' AS b, 343 AS c, 'last' AS d) AS B
|
||||
SET A.e = B.d
|
||||
WHERE A.a = '03'
|
||||
AND A.b = '06'
|
||||
AND A.c = 343;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#57113: ha_partition::extra(ha_extra_function):
|
||||
# Assertion `m_extra_cache' failed
|
||||
CREATE TABLE t1
|
||||
|
@ -128,8 +128,6 @@ root@localhost db_storedproc_1
|
||||
drop user 'user_1'@'localhost';
|
||||
DROP PROCEDURE sp3;
|
||||
DROP FUNCTION fn1;
|
||||
Warnings:
|
||||
Warning 1403 There is no such grant defined for user 'user_1' on host 'localhost' on routine 'fn1'
|
||||
|
||||
Testcase 3.1.6.4:
|
||||
-----------------
|
||||
|
@ -129,8 +129,6 @@ root@localhost db_storedproc_1
|
||||
drop user 'user_1'@'localhost';
|
||||
DROP PROCEDURE sp3;
|
||||
DROP FUNCTION fn1;
|
||||
Warnings:
|
||||
Warning 1403 There is no such grant defined for user 'user_1' on host 'localhost' on routine 'fn1'
|
||||
|
||||
Testcase 3.1.6.4:
|
||||
-----------------
|
||||
|
@ -129,8 +129,6 @@ root@localhost db_storedproc_1
|
||||
drop user 'user_1'@'localhost';
|
||||
DROP PROCEDURE sp3;
|
||||
DROP FUNCTION fn1;
|
||||
Warnings:
|
||||
Warning 1403 There is no such grant defined for user 'user_1' on host 'localhost' on routine 'fn1'
|
||||
|
||||
Testcase 3.1.6.4:
|
||||
-----------------
|
||||
|
@ -149,10 +149,6 @@ USE db_storedproc_1;
|
||||
|
||||
drop user 'user_1'@'localhost';
|
||||
DROP PROCEDURE sp3;
|
||||
# This drop function shouldn't generated a warning as the
|
||||
# privileges should have been removed when the user was
|
||||
# dropped. Reported as Bug#36544 DROP USER does not remove
|
||||
# stored function privileges
|
||||
DROP FUNCTION fn1;
|
||||
|
||||
|
||||
|
@ -1396,6 +1396,183 @@ DROP USER testuser@localhost;
|
||||
use test;
|
||||
--echo
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Test for bug #36544 "DROP USER does not remove stored function
|
||||
--echo # privileges".
|
||||
--echo #
|
||||
create database mysqltest1;
|
||||
create function mysqltest1.f1() returns int return 0;
|
||||
create procedure mysqltest1.p1() begin end;
|
||||
--echo #
|
||||
--echo # 1) Check that DROP USER properly removes privileges on both
|
||||
--echo # stored procedures and functions.
|
||||
--echo #
|
||||
create user mysqluser1@localhost;
|
||||
grant execute on function mysqltest1.f1 to mysqluser1@localhost;
|
||||
grant execute on procedure mysqltest1.p1 to mysqluser1@localhost;
|
||||
|
||||
--echo # Quick test that granted privileges are properly reflected
|
||||
--echo # in privilege tables and in in-memory structures.
|
||||
show grants for mysqluser1@localhost;
|
||||
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
|
||||
--echo #
|
||||
--echo # Create connection 'bug_36544_con1' as 'mysqluser1@localhost'.
|
||||
--connect (bug36544_con1,localhost,mysqluser1,,)
|
||||
call mysqltest1.p1();
|
||||
select mysqltest1.f1();
|
||||
|
||||
--echo #
|
||||
--echo # Switch to connection 'default'.
|
||||
--connection default
|
||||
drop user mysqluser1@localhost;
|
||||
|
||||
--echo #
|
||||
--echo # Test that dropping of user is properly reflected in
|
||||
--echo # both privilege tables and in in-memory structures.
|
||||
--echo #
|
||||
--echo # Switch to connection 'bug36544_con1'.
|
||||
--connection bug36544_con1
|
||||
--echo # The connection cold be alive but should not be able to
|
||||
--echo # access to any of the stored routines.
|
||||
--error ER_PROCACCESS_DENIED_ERROR
|
||||
call mysqltest1.p1();
|
||||
--error ER_PROCACCESS_DENIED_ERROR
|
||||
select mysqltest1.f1();
|
||||
--disconnect bug36544_con1
|
||||
|
||||
--echo #
|
||||
--echo # Switch to connection 'default'.
|
||||
--connection default
|
||||
--echo #
|
||||
--echo # Now create user with the same name and check that he
|
||||
--echo # has not inherited privileges.
|
||||
create user mysqluser1@localhost;
|
||||
show grants for mysqluser1@localhost;
|
||||
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
|
||||
--echo #
|
||||
--echo # Create connection 'bug_36544_con2' as 'mysqluser1@localhost'.
|
||||
--connect (bug36544_con2,localhost,mysqluser1,,)
|
||||
--echo # Newly created user should not be able to access any of the routines.
|
||||
--error ER_PROCACCESS_DENIED_ERROR
|
||||
call mysqltest1.p1();
|
||||
--error ER_PROCACCESS_DENIED_ERROR
|
||||
select mysqltest1.f1();
|
||||
--echo #
|
||||
--echo # Switch to connection 'default'.
|
||||
--connection default
|
||||
|
||||
--echo #
|
||||
--echo # 2) Check that RENAME USER properly updates privileges on both
|
||||
--echo # stored procedures and functions.
|
||||
--echo #
|
||||
grant execute on function mysqltest1.f1 to mysqluser1@localhost;
|
||||
grant execute on procedure mysqltest1.p1 to mysqluser1@localhost;
|
||||
--echo #
|
||||
--echo # Create one more user to make in-memory hashes non-trivial.
|
||||
--echo # User names 'mysqluser11' and 'mysqluser10' were selected
|
||||
--echo # to trigger bug discovered during code inspection.
|
||||
create user mysqluser11@localhost;
|
||||
grant execute on function mysqltest1.f1 to mysqluser11@localhost;
|
||||
grant execute on procedure mysqltest1.p1 to mysqluser11@localhost;
|
||||
--echo # Also create a couple of tables to test for another bug
|
||||
--echo # discovered during code inspection (again table names were
|
||||
--echo # chosen especially to trigger the bug).
|
||||
create table mysqltest1.t11 (i int);
|
||||
create table mysqltest1.t22 (i int);
|
||||
grant select on mysqltest1.t22 to mysqluser1@localhost;
|
||||
grant select on mysqltest1.t11 to mysqluser1@localhost;
|
||||
|
||||
--echo # Quick test that granted privileges are properly reflected
|
||||
--echo # in privilege tables and in in-memory structures.
|
||||
show grants for mysqluser1@localhost;
|
||||
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
|
||||
select db, table_name, table_priv from mysql.tables_priv where user='mysqluser1' and host='localhost';
|
||||
--echo #
|
||||
--echo # Switch to connection 'bug36544_con2'.
|
||||
--connection bug36544_con2
|
||||
call mysqltest1.p1();
|
||||
select mysqltest1.f1();
|
||||
select * from mysqltest1.t11;
|
||||
select * from mysqltest1.t22;
|
||||
|
||||
--echo #
|
||||
--echo # Switch to connection 'default'.
|
||||
--connection default
|
||||
rename user mysqluser1@localhost to mysqluser10@localhost;
|
||||
|
||||
--echo #
|
||||
--echo # Test that there are no privileges left for mysqluser1.
|
||||
--echo #
|
||||
--echo # Switch to connection 'bug36544_con2'.
|
||||
--connection bug36544_con2
|
||||
--echo # The connection cold be alive but should not be able to
|
||||
--echo # access to any of the stored routines or tables.
|
||||
--error ER_PROCACCESS_DENIED_ERROR
|
||||
call mysqltest1.p1();
|
||||
--error ER_PROCACCESS_DENIED_ERROR
|
||||
select mysqltest1.f1();
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
select * from mysqltest1.t11;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
select * from mysqltest1.t22;
|
||||
--disconnect bug36544_con2
|
||||
|
||||
--echo #
|
||||
--echo # Switch to connection 'default'.
|
||||
--connection default
|
||||
--echo #
|
||||
--echo # Now create user with the old name and check that he
|
||||
--echo # has not inherited privileges.
|
||||
create user mysqluser1@localhost;
|
||||
show grants for mysqluser1@localhost;
|
||||
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
|
||||
select db, table_name, table_priv from mysql.tables_priv where user='mysqluser1' and host='localhost';
|
||||
--echo #
|
||||
--echo # Create connection 'bug_36544_con3' as 'mysqluser1@localhost'.
|
||||
--connect (bug36544_con3,localhost,mysqluser1,,)
|
||||
--echo # Newly created user should not be able to access to any of the
|
||||
--echo # stored routines or tables.
|
||||
--error ER_PROCACCESS_DENIED_ERROR
|
||||
call mysqltest1.p1();
|
||||
--error ER_PROCACCESS_DENIED_ERROR
|
||||
select mysqltest1.f1();
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
select * from mysqltest1.t11;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
select * from mysqltest1.t22;
|
||||
--disconnect bug36544_con3
|
||||
|
||||
--echo #
|
||||
--echo # Switch to connection 'default'.
|
||||
--connection default
|
||||
--echo #
|
||||
--echo # Now check that privileges became associated with a new user
|
||||
--echo # name - mysqluser10.
|
||||
--echo #
|
||||
show grants for mysqluser10@localhost;
|
||||
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser10' and host='localhost';
|
||||
select db, table_name, table_priv from mysql.tables_priv where user='mysqluser10' and host='localhost';
|
||||
--echo #
|
||||
--echo # Create connection 'bug_36544_con4' as 'mysqluser10@localhost'.
|
||||
--connect (bug36544_con4,localhost,mysqluser10,,)
|
||||
call mysqltest1.p1();
|
||||
select mysqltest1.f1();
|
||||
select * from mysqltest1.t11;
|
||||
select * from mysqltest1.t22;
|
||||
--disconnect bug36544_con4
|
||||
|
||||
--echo #
|
||||
--echo # Switch to connection 'default'.
|
||||
--connection default
|
||||
--echo #
|
||||
--echo # Clean-up.
|
||||
drop user mysqluser1@localhost;
|
||||
drop user mysqluser10@localhost;
|
||||
drop user mysqluser11@localhost;
|
||||
drop database mysqltest1;
|
||||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
|
@ -14,6 +14,49 @@
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
--echo #
|
||||
--echo # Bug#59297: Can't find record in 'tablename' on update inner join
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (
|
||||
a char(2) NOT NULL,
|
||||
b char(2) NOT NULL,
|
||||
c int(10) unsigned NOT NULL,
|
||||
d varchar(255) DEFAULT NULL,
|
||||
e varchar(1000) DEFAULT NULL,
|
||||
PRIMARY KEY (a, b, c),
|
||||
KEY (a),
|
||||
KEY (a, b)
|
||||
)
|
||||
/*!50100 PARTITION BY KEY (a)
|
||||
PARTITIONS 20 */;
|
||||
|
||||
INSERT INTO t1 (a, b, c, d, e) VALUES
|
||||
('07', '03', 343, '1', '07_03_343'),
|
||||
('01', '04', 343, '2', '01_04_343'),
|
||||
('01', '06', 343, '3', '01_06_343'),
|
||||
('01', '07', 343, '4', '01_07_343'),
|
||||
('01', '08', 343, '5', '01_08_343'),
|
||||
('01', '09', 343, '6', '01_09_343'),
|
||||
('03', '03', 343, '7', '03_03_343'),
|
||||
('03', '06', 343, '8', '03_06_343'),
|
||||
('03', '07', 343, '9', '03_07_343'),
|
||||
('04', '03', 343, '10', '04_03_343'),
|
||||
('04', '06', 343, '11', '04_06_343'),
|
||||
('05', '03', 343, '12', '05_03_343'),
|
||||
('11', '03', 343, '13', '11_03_343'),
|
||||
('11', '04', 343, '14', '11_04_343')
|
||||
;
|
||||
|
||||
UPDATE t1 AS A,
|
||||
(SELECT '03' AS a, '06' AS b, 343 AS c, 'last' AS d) AS B
|
||||
SET A.e = B.d
|
||||
WHERE A.a = '03'
|
||||
AND A.b = '06'
|
||||
AND A.c = 343;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#57113: ha_partition::extra(ha_extra_function):
|
||||
--echo # Assertion `m_extra_cache' failed
|
||||
|
Reference in New Issue
Block a user