diff options
author | Robert Bindar <robert@mariadb.org> | 2021-03-08 17:51:33 +0200 |
---|---|---|
committer | Robert Bindar <robert@mariadb.org> | 2021-03-08 18:02:45 +0200 |
commit | 1d762ee8fe6b2e2b031cfaa95429408479f7eb67 (patch) | |
tree | ca558acd7efb4ab90a06e870fdbb52c91b4faec3 /scripts | |
parent | 01a0d739c8f9dca99301e550ab36c032ca8c6c0e (diff) | |
download | mariadb-git-1d762ee8fe6b2e2b031cfaa95429408479f7eb67.tar.gz |
MDEV-24363 (followup fix) mysql.user view should
not be dropped if the DEFINER is custom. Revert changes
to MDEV-23102 tests as they were designed to catch
this corner case.
The explanation for this corner case is that users
historically used to tweak the mysql.user table and
probably still do even though mysql.user is now a view.
Thus, if the DEFINER of the view is not default, i.e.
root@localhost or mariadb.sys@localhost, we should avoid
dropping the view during upgrade process to not discard
potential custom changes.
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/mysql_system_tables_fix.sql | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/mysql_system_tables_fix.sql b/scripts/mysql_system_tables_fix.sql index ac71edccae9..9dd775aaf30 100644 --- a/scripts/mysql_system_tables_fix.sql +++ b/scripts/mysql_system_tables_fix.sql @@ -824,7 +824,7 @@ IF 'BASE TABLE' = (select table_type from information_schema.tables where table_ DROP TABLE user; END IF// -IF 1 = (SELECT count(*) FROM information_schema.VIEWS WHERE TABLE_CATALOG = 'def' and TABLE_SCHEMA = 'mysql' and TABLE_NAME='user' and (DEFINER = 'root@localhost' or VIEW_DEFINITION LIKE "%'N' AS `password_expired`%")) THEN +IF 1 = (SELECT count(*) FROM information_schema.VIEWS WHERE TABLE_CATALOG = 'def' and TABLE_SCHEMA = 'mysql' and TABLE_NAME='user' and (DEFINER = 'root@localhost' or (DEFINER = 'mariadb.sys@localhost' and VIEW_DEFINITION LIKE "%'N' AS `password_expired`%"))) THEN DROP VIEW IF EXISTS mysql.user; END IF// |