diff --git a/mysql-test/main/mysql_json_table_recreate.result b/mysql-test/main/mysql_json_table_recreate.result index a0c2483d3d9..b2ab19f4fbf 100644 --- a/mysql-test/main/mysql_json_table_recreate.result +++ b/mysql-test/main/mysql_json_table_recreate.result @@ -181,7 +181,12 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci drop table t1; create table t1(j mysql_json); -ERROR HY000: Cannot create table `test`.`t1`: Run mariadb-upgrade, to upgrade table with mysql_json type. +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `j` mysql_json /* JSON from MySQL 5.7 */ CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci +drop table t1; create table `testjson` ( `t` json /* JSON from MySQL 5.7*/ CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; @@ -206,16 +211,5 @@ testjson CREATE TABLE `testjson` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci drop table testjson; # -# MDEV-32235: mysql_json cannot be used on newly created table -# -CREATE TABLE t(j mysql_json); -ERROR HY000: Cannot create table `test`.`t`: Run mariadb-upgrade, to upgrade table with mysql_json type. -CREATE TABLE IF NOT EXISTS t(j mysql_json); -ERROR HY000: Cannot create table `test`.`t`: Run mariadb-upgrade, to upgrade table with mysql_json type. -CREATE OR REPLACE TABLE t(j mysql_json); -ERROR HY000: Cannot create table `test`.`t`: Run mariadb-upgrade, to upgrade table with mysql_json type. -CREATE TEMPORARY TABLE t(j mysql_json); -ERROR HY000: Cannot create table `test`.`t`: Run mariadb-upgrade, to upgrade table with mysql_json type. -# # End of 10.5 tests # diff --git a/mysql-test/main/mysql_json_table_recreate.test b/mysql-test/main/mysql_json_table_recreate.test index bf4cac0f909..7e9895a1f10 100644 --- a/mysql-test/main/mysql_json_table_recreate.test +++ b/mysql-test/main/mysql_json_table_recreate.test @@ -97,8 +97,9 @@ drop table mysql_json_test_big; create table t1(j json); show create table t1; drop table t1; ---error ER_CANT_CREATE_TABLE create table t1(j mysql_json); +show create table t1; +drop table t1; # `json` type should not have character set and collation other than utf8mb4_bin --error ER_PARSE_ERROR create table `testjson` ( @@ -120,20 +121,6 @@ create table `testjson` ( show create table testjson; drop table testjson; - ---echo # ---echo # MDEV-32235: mysql_json cannot be used on newly created table ---echo # - ---error ER_CANT_CREATE_TABLE -CREATE TABLE t(j mysql_json); ---error ER_CANT_CREATE_TABLE -CREATE TABLE IF NOT EXISTS t(j mysql_json); ---error ER_CANT_CREATE_TABLE -CREATE OR REPLACE TABLE t(j mysql_json); ---error ER_CANT_CREATE_TABLE -CREATE TEMPORARY TABLE t(j mysql_json); - --echo # --echo # End of 10.5 tests --echo # diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 8088d3e0d70..d68bbd1ac4f 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3657,19 +3657,6 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, if (sql_field->vcol_info) sql_field->flags&= ~NOT_NULL_FLAG; - if (sql_field->real_field_type() == MYSQL_TYPE_BLOB && - thd->lex->sql_command == SQLCOM_CREATE_TABLE) - { - if (!strcmp(sql_field->type_handler()->name().ptr(), "MYSQL_JSON")) - { - my_printf_error(ER_CANT_CREATE_TABLE, - "Cannot create table %`s.%`s: " - "Run mariadb-upgrade, " - "to upgrade table with mysql_json type.", MYF(0), - alter_info->db.str, alter_info->table_name.str); - DBUG_RETURN(TRUE); - } - } /* Initialize length from its original value (number of characters), which was set in the parser. This is necessary if we're