summaryrefslogtreecommitdiff
path: root/sql/table.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/table.cc')
-rw-r--r--sql/table.cc16
1 files changed, 13 insertions, 3 deletions
diff --git a/sql/table.cc b/sql/table.cc
index 4f65dbd65f4..d56482fb6d1 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -210,11 +210,17 @@ View_creation_ctx * View_creation_ctx::create(THD *thd,
invalid_creation_ctx= resolve_charset(view->view_client_cs_name.str,
system_charset_info,
- &ctx->m_client_cs);
+ &ctx->m_client_cs,
+ thd->variables.old_behavior &
+ OLD_MODE_UTF8_IS_UTF8MB3 ?
+ MYF(MY_UTF8_IS_UTF8MB3):MYF(0));
invalid_creation_ctx= resolve_collation(view->view_connection_cl_name.str,
system_charset_info,
- &ctx->m_connection_cl) ||
+ &ctx->m_connection_cl,
+ thd->variables.old_behavior &
+ OLD_MODE_UTF8_IS_UTF8MB3 ?
+ MYF(MY_UTF8_IS_UTF8MB3) : MYF(0)) ||
invalid_creation_ctx;
if (invalid_creation_ctx)
@@ -2523,7 +2529,11 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write,
{
// 3.23 or 4.0 string
if (!(attr.charset= get_charset_by_csname(share->table_charset->csname,
- MY_CS_BINSORT, MYF(0))))
+ MY_CS_BINSORT,
+ thd->variables.old_behavior &
+ OLD_MODE_UTF8_IS_UTF8MB3 ?
+ MYF(MY_UTF8_IS_UTF8MB3):
+ MYF(0))))
attr.charset= &my_charset_bin;
}
}