Commit c4479b1d authored by Georgi Kodinov's avatar Georgi Kodinov

merge

parents 7b4ef910 f7d759ac
...@@ -1218,3 +1218,22 @@ Warnings: ...@@ -1218,3 +1218,22 @@ Warnings:
Note 1449 The user specified as a definer ('no_such_user'@'no_such_host') does not exist Note 1449 The user specified as a definer ('no_such_user'@'no_such_host') does not exist
DROP TABLE t1; DROP TABLE t1;
DROP VIEW v1; DROP VIEW v1;
#
# Bug #46019: ERROR 1356 When selecting from within another
# view that has Group By
#
CREATE DATABASE mysqltest1;
USE mysqltest1;
CREATE TABLE t1 (a INT);
CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT a FROM t1 GROUP BY a;
CREATE SQL SECURITY INVOKER VIEW v2 AS SELECT a FROM v1;
CREATE USER mysqluser1;
GRANT SELECT ON TABLE t1 TO mysqluser1;
GRANT SELECT, SHOW VIEW ON TABLE v1 TO mysqluser1;
GRANT SELECT, SHOW VIEW ON TABLE v2 TO mysqluser1;
SELECT a FROM v1;
a
SELECT a FROM v2;
a
DROP USER mysqluser1;
DROP DATABASE mysqltest1;
...@@ -1506,3 +1506,29 @@ DROP VIEW v1; ...@@ -1506,3 +1506,29 @@ DROP VIEW v1;
# Wait till we reached the initial number of concurrent sessions # Wait till we reached the initial number of concurrent sessions
--source include/wait_until_count_sessions.inc --source include/wait_until_count_sessions.inc
--echo #
--echo # Bug #46019: ERROR 1356 When selecting from within another
--echo # view that has Group By
--echo #
CREATE DATABASE mysqltest1;
USE mysqltest1;
CREATE TABLE t1 (a INT);
CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT a FROM t1 GROUP BY a;
CREATE SQL SECURITY INVOKER VIEW v2 AS SELECT a FROM v1;
CREATE USER mysqluser1;
GRANT SELECT ON TABLE t1 TO mysqluser1;
GRANT SELECT, SHOW VIEW ON TABLE v1 TO mysqluser1;
GRANT SELECT, SHOW VIEW ON TABLE v2 TO mysqluser1;
--connect (mysqluser1, localhost, mysqluser1,,mysqltest1)
SELECT a FROM v1;
SELECT a FROM v2;
--connection default
--disconnect mysqluser1
DROP USER mysqluser1;
DROP DATABASE mysqltest1;
...@@ -1729,7 +1729,7 @@ restart: ...@@ -1729,7 +1729,7 @@ restart:
- block assigned but not yet read from file (invalid data). - block assigned but not yet read from file (invalid data).
*/ */
#if THREAD #ifdef THREAD
if (keycache->in_resize) if (keycache->in_resize)
{ {
/* This is a request during a resize operation */ /* This is a request during a resize operation */
......
...@@ -5090,8 +5090,6 @@ bool check_single_table_access(THD *thd, ulong privilege, ...@@ -5090,8 +5090,6 @@ bool check_single_table_access(THD *thd, ulong privilege,
/* Show only 1 table for check_grant */ /* Show only 1 table for check_grant */
if (!(all_tables->belong_to_view && if (!(all_tables->belong_to_view &&
(thd->lex->sql_command == SQLCOM_SHOW_FIELDS)) && (thd->lex->sql_command == SQLCOM_SHOW_FIELDS)) &&
!(all_tables->view &&
all_tables->effective_algorithm == VIEW_ALGORITHM_TMPTABLE) &&
check_grant(thd, privilege, all_tables, 0, 1, no_errors)) check_grant(thd, privilege, all_tables, 0, 1, no_errors))
goto deny; goto deny;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment