summaryrefslogtreecommitdiff
path: root/sql/sp.cc
diff options
context:
space:
mode:
authorRucha Deodhar <rucha.deodhar@mariadb.com>2021-02-15 01:39:37 +0530
committerRucha Deodhar <rucha.deodhar@mariadb.com>2021-04-20 12:50:32 +0530
commite7762b3a725d0608f63a4c9bfb4e1db87cf20fe7 (patch)
tree3e3aed3cd181ea2ed30903d47a99e7cf8d3a8dd0 /sql/sp.cc
parentbfedf1eb4b63235e7dd88f36305758f52f28f27d (diff)
downloadmariadb-git-bb-10.6-MDEV-8334.tar.gz
MDEV-8334: Rename utf8 to utf8mb3bb-10.6-MDEV-8334
This patch changes the main name of 3 byte character set from utf8 to utf8mb3. New old_mode UTF8_IS_UTF8MB3 is added and set TRUE by default, so that utf8 would mean utf8mb3. If not set, utf8 would mean utf8mb4.
Diffstat (limited to 'sql/sp.cc')
-rw-r--r--sql/sp.cc30
1 files changed, 16 insertions, 14 deletions
diff --git a/sql/sp.cc b/sql/sp.cc
index 46494fb2393..57700839a33 100644
--- a/sql/sp.cc
+++ b/sql/sp.cc
@@ -122,12 +122,12 @@ TABLE_FIELD_TYPE proc_table_fields[MYSQL_PROC_FIELD_COUNT] =
{
{ STRING_WITH_LEN("db") },
{ STRING_WITH_LEN("char(64)") },
- { STRING_WITH_LEN("utf8") }
+ { STRING_WITH_LEN("utf8mb3") }
},
{
{ STRING_WITH_LEN("name") },
{ STRING_WITH_LEN("char(64)") },
- { STRING_WITH_LEN("utf8") }
+ { STRING_WITH_LEN("utf8mb3") }
},
{
{ STRING_WITH_LEN("type") },
@@ -137,7 +137,7 @@ TABLE_FIELD_TYPE proc_table_fields[MYSQL_PROC_FIELD_COUNT] =
{
{ STRING_WITH_LEN("specific_name") },
{ STRING_WITH_LEN("char(64)") },
- { STRING_WITH_LEN("utf8") }
+ { STRING_WITH_LEN("utf8mb3") }
},
{
{ STRING_WITH_LEN("language") },
@@ -178,7 +178,7 @@ TABLE_FIELD_TYPE proc_table_fields[MYSQL_PROC_FIELD_COUNT] =
{
{ STRING_WITH_LEN("definer") },
{ STRING_WITH_LEN("char(") },
- { STRING_WITH_LEN("utf8") }
+ { STRING_WITH_LEN("utf8mb3") }
},
{
{ STRING_WITH_LEN("created") },
@@ -208,22 +208,22 @@ TABLE_FIELD_TYPE proc_table_fields[MYSQL_PROC_FIELD_COUNT] =
{
{ STRING_WITH_LEN("comment") },
{ STRING_WITH_LEN("text") },
- { STRING_WITH_LEN("utf8") }
+ { STRING_WITH_LEN("utf8mb3") }
},
{
{ STRING_WITH_LEN("character_set_client") },
{ STRING_WITH_LEN("char(32)") },
- { STRING_WITH_LEN("utf8") }
+ { STRING_WITH_LEN("utf8mb3") }
},
{
{ STRING_WITH_LEN("collation_connection") },
{ STRING_WITH_LEN("char(32)") },
- { STRING_WITH_LEN("utf8") }
+ { STRING_WITH_LEN("utf8mb3") }
},
{
{ STRING_WITH_LEN("db_collation") },
{ STRING_WITH_LEN("char(32)") },
- { STRING_WITH_LEN("utf8") }
+ { STRING_WITH_LEN("utf8mb3") }
},
{
{ STRING_WITH_LEN("body_utf8") },
@@ -291,7 +291,8 @@ bool load_charset(MEM_ROOT *mem_root,
CHARSET_INFO **cs)
{
LEX_CSTRING cs_name;
-
+ myf utf8_flag= global_system_variables.old_behavior &
+ OLD_MODE_UTF8_IS_UTF8MB3 ? MY_UTF8_IS_UTF8MB3 : 0;
if (field->val_str_nopad(mem_root, &cs_name))
{
*cs= dflt_cs;
@@ -299,7 +300,7 @@ bool load_charset(MEM_ROOT *mem_root,
}
DBUG_ASSERT(cs_name.str[cs_name.length] == 0);
- *cs= get_charset_by_csname(cs_name.str, MY_CS_PRIMARY, MYF(0));
+ *cs= get_charset_by_csname(cs_name.str, MY_CS_PRIMARY, MYF(utf8_flag));
if (*cs == NULL)
{
@@ -312,7 +313,7 @@ bool load_charset(MEM_ROOT *mem_root,
/*************************************************************************/
-bool load_collation(MEM_ROOT *mem_root,
+bool load_collation(THD *thd, MEM_ROOT *mem_root,
Field *field,
CHARSET_INFO *dflt_cl,
CHARSET_INFO **cl)
@@ -324,9 +325,10 @@ bool load_collation(MEM_ROOT *mem_root,
*cl= dflt_cl;
return TRUE;
}
+ myf utf8_flag= thd->get_utf8_flag();
DBUG_ASSERT(cl_name.str[cl_name.length] == 0);
- *cl= get_charset_by_name(cl_name.str, MYF(0));
+ *cl= get_charset_by_name(cl_name.str, MYF(utf8_flag));
if (*cl == NULL)
{
@@ -368,7 +370,7 @@ Stored_routine_creation_ctx::load_from_db(THD *thd,
invalid_creation_ctx= TRUE;
}
- if (load_collation(thd->mem_root,
+ if (load_collation(thd,thd->mem_root,
proc_tbl->field[MYSQL_PROC_FIELD_COLLATION_CONNECTION],
thd->variables.collation_connection,
&connection_cl))
@@ -381,7 +383,7 @@ Stored_routine_creation_ctx::load_from_db(THD *thd,
invalid_creation_ctx= TRUE;
}
- if (load_collation(thd->mem_root,
+ if (load_collation(thd,thd->mem_root,
proc_tbl->field[MYSQL_PROC_FIELD_DB_COLLATION],
NULL,
&db_cl))