1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Backporting bugs fixes fixed by MDEV-31340 from 11.5

The patch for MDEV-31340 fixed the following bugs:

MDEV-33084 LASTVAL(t1) and LASTVAL(T1) do not work well with lower-case-table-names=0
MDEV-33085 Tables T1 and t1 do not work well with ENGINE=CSV and lower-case-table-names=0
MDEV-33086 SHOW OPEN TABLES IN DB1 -- is case insensitive with lower-case-table-names=0
MDEV-33088 Cannot create triggers in the database `MYSQL`
MDEV-33103 LOCK TABLE t1 AS t2 -- alias is not case sensitive with lower-case-table-names=0
MDEV-33108 TABLE_STATISTICS and INDEX_STATISTICS are case insensitive with lower-case-table-names=0
MDEV-33109 DROP DATABASE MYSQL -- does not drop SP with lower-case-table-names=0
MDEV-33110 HANDLER commands are case insensitive with lower-case-table-names=0
MDEV-33119 User is case insensitive in INFORMATION_SCHEMA.VIEWS
MDEV-33120 System log table names are case insensitive with lower-cast-table-names=0

Backporting the fixes from 11.5 to 10.5
This commit is contained in:
Alexander Barkov
2024-05-21 08:53:40 +04:00
parent b2944adb76
commit 310fd6ff69
23 changed files with 561 additions and 90 deletions

View File

@ -1053,7 +1053,8 @@ public:
ER_THD(thd, ER_TABLEACCESS_DENIED_ERROR), "SHOW VIEW",
m_sctx->priv_user,
m_sctx->host_or_ip,
m_top_view->get_db_name(), m_top_view->get_table_name());
m_top_view->get_db_name().str,
m_top_view->get_table_name().str);
}
return m_view_access_denied_message_ptr;
}
@ -1098,8 +1099,8 @@ public:
push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN,
ER_VIEW_INVALID,
ER_THD(thd, ER_VIEW_INVALID),
m_top_view->get_db_name(),
m_top_view->get_table_name());
m_top_view->get_db_name().str,
m_top_view->get_table_name().str);
is_handled= TRUE;
break;
@ -6887,8 +6888,7 @@ static int get_schema_views_record(THD *thd, TABLE_LIST *tables,
Security_context *sctx= thd->security_ctx;
if (!tables->allowed_show)
{
if (!my_strcasecmp(system_charset_info, tables->definer.user.str,
sctx->priv_user) &&
if (!strcmp(tables->definer.user.str, sctx->priv_user) &&
!my_strcasecmp(system_charset_info, tables->definer.host.str,
sctx->priv_host))
tables->allowed_show= TRUE;
@ -7981,7 +7981,7 @@ int fill_open_tables(THD *thd, TABLE_LIST *tables, COND *cond)
TABLE *table= tables->table;
CHARSET_INFO *cs= system_charset_info;
OPEN_TABLE_LIST *open_list;
if (!(open_list= list_open_tables(thd, thd->lex->first_select_lex()->db.str,
if (!(open_list= list_open_tables(thd, thd->lex->first_select_lex()->db,
wild))
&& thd->is_fatal_error)
DBUG_RETURN(1);