Loading mysql-test/r/grant3.result +17 −0 Original line number Diff line number Diff line Loading @@ -138,3 +138,20 @@ SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by user host db select_priv DROP USER CUser2@localhost; DROP USER CUser2@LOCALHOST; CREATE DATABASE mysqltest_1; CREATE TABLE mysqltest_1.t1 (a INT); CREATE USER 'mysqltest1'@'%'; GRANT SELECT, UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%'; REVOKE SELECT ON `mysqltest_1`.* FROM 'mysqltest1'@'%'; GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%'; FLUSH PRIVILEGES; SHOW GRANTS; Grants for mysqltest1@% GRANT USAGE ON *.* TO 'mysqltest1'@'%' GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%' GRANT UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%' SELECT * FROM mysqltest_1.t1; a DROP USER 'mysqltest1'@'%'; DROP DATABASE mysqltest_1; End of 5.0 tests mysql-test/r/select.result +6 −0 Original line number Diff line number Diff line Loading @@ -4328,4 +4328,10 @@ SELECT * FROM t1 WHERE c1 > NULL + 1; c1 DROP TABLE t1; CREATE TABLE t1 (a VARCHAR(10) NOT NULL PRIMARY KEY); INSERT INTO t1 (a) VALUES ('foo0'), ('bar0'), ('baz0'); SELECT * FROM t1 WHERE a IN (CONCAT('foo', 0), 'bar'); a foo0 DROP TABLE t1; End of 5.0 tests mysql-test/t/grant3.test +26 −0 Original line number Diff line number Diff line Loading @@ -134,3 +134,29 @@ SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by DROP USER CUser2@localhost; DROP USER CUser2@LOCALHOST; # # Bug#31194: Privilege ordering does not order properly for wildcard values # CREATE DATABASE mysqltest_1; CREATE TABLE mysqltest_1.t1 (a INT); CREATE USER 'mysqltest1'@'%'; GRANT SELECT, UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%'; REVOKE SELECT ON `mysqltest_1`.* FROM 'mysqltest1'@'%'; GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%'; FLUSH PRIVILEGES; connect (conn1,localhost,mysqltest1,,); connection conn1; SHOW GRANTS; SELECT * FROM mysqltest_1.t1; disconnect conn1; connection default; DROP USER 'mysqltest1'@'%'; DROP DATABASE mysqltest_1; --echo End of 5.0 tests mysql-test/t/select.test +11 −0 Original line number Diff line number Diff line Loading @@ -3672,4 +3672,15 @@ DROP TABLE t1; --echo ########################################################################### # # Bug #33764: Wrong result with IN(), CONCAT() and implicit type conversion # CREATE TABLE t1 (a VARCHAR(10) NOT NULL PRIMARY KEY); INSERT INTO t1 (a) VALUES ('foo0'), ('bar0'), ('baz0'); SELECT * FROM t1 WHERE a IN (CONCAT('foo', 0), 'bar'); DROP TABLE t1; --echo End of 5.0 tests sql/item_cmpfunc.cc +4 −1 Original line number Diff line number Diff line Loading @@ -2995,6 +2995,9 @@ void in_string::set(uint pos,Item *item) { if (res->uses_buffer_owned_by(str)) res->copy(); if (item->type() == Item::FUNC_ITEM) str->copy(*res); else *str= *res; } if (!str->charset()) Loading Loading
mysql-test/r/grant3.result +17 −0 Original line number Diff line number Diff line Loading @@ -138,3 +138,20 @@ SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by user host db select_priv DROP USER CUser2@localhost; DROP USER CUser2@LOCALHOST; CREATE DATABASE mysqltest_1; CREATE TABLE mysqltest_1.t1 (a INT); CREATE USER 'mysqltest1'@'%'; GRANT SELECT, UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%'; REVOKE SELECT ON `mysqltest_1`.* FROM 'mysqltest1'@'%'; GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%'; FLUSH PRIVILEGES; SHOW GRANTS; Grants for mysqltest1@% GRANT USAGE ON *.* TO 'mysqltest1'@'%' GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%' GRANT UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%' SELECT * FROM mysqltest_1.t1; a DROP USER 'mysqltest1'@'%'; DROP DATABASE mysqltest_1; End of 5.0 tests
mysql-test/r/select.result +6 −0 Original line number Diff line number Diff line Loading @@ -4328,4 +4328,10 @@ SELECT * FROM t1 WHERE c1 > NULL + 1; c1 DROP TABLE t1; CREATE TABLE t1 (a VARCHAR(10) NOT NULL PRIMARY KEY); INSERT INTO t1 (a) VALUES ('foo0'), ('bar0'), ('baz0'); SELECT * FROM t1 WHERE a IN (CONCAT('foo', 0), 'bar'); a foo0 DROP TABLE t1; End of 5.0 tests
mysql-test/t/grant3.test +26 −0 Original line number Diff line number Diff line Loading @@ -134,3 +134,29 @@ SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by DROP USER CUser2@localhost; DROP USER CUser2@LOCALHOST; # # Bug#31194: Privilege ordering does not order properly for wildcard values # CREATE DATABASE mysqltest_1; CREATE TABLE mysqltest_1.t1 (a INT); CREATE USER 'mysqltest1'@'%'; GRANT SELECT, UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%'; REVOKE SELECT ON `mysqltest_1`.* FROM 'mysqltest1'@'%'; GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%'; FLUSH PRIVILEGES; connect (conn1,localhost,mysqltest1,,); connection conn1; SHOW GRANTS; SELECT * FROM mysqltest_1.t1; disconnect conn1; connection default; DROP USER 'mysqltest1'@'%'; DROP DATABASE mysqltest_1; --echo End of 5.0 tests
mysql-test/t/select.test +11 −0 Original line number Diff line number Diff line Loading @@ -3672,4 +3672,15 @@ DROP TABLE t1; --echo ########################################################################### # # Bug #33764: Wrong result with IN(), CONCAT() and implicit type conversion # CREATE TABLE t1 (a VARCHAR(10) NOT NULL PRIMARY KEY); INSERT INTO t1 (a) VALUES ('foo0'), ('bar0'), ('baz0'); SELECT * FROM t1 WHERE a IN (CONCAT('foo', 0), 'bar'); DROP TABLE t1; --echo End of 5.0 tests
sql/item_cmpfunc.cc +4 −1 Original line number Diff line number Diff line Loading @@ -2995,6 +2995,9 @@ void in_string::set(uint pos,Item *item) { if (res->uses_buffer_owned_by(str)) res->copy(); if (item->type() == Item::FUNC_ITEM) str->copy(*res); else *str= *res; } if (!str->charset()) Loading