Revert "MDEV-32235: mysql_json cannot be used on newly created table"
This reverts commit 22f3ebe4bf11acb7b5e854bc4e6b3439af6982f1.
This commit is contained in:
parent
22f3ebe4bf
commit
8b5c1d5afa
@ -181,7 +181,12 @@ t1 CREATE TABLE `t1` (
|
|||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1(j mysql_json);
|
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` (
|
create table `testjson` (
|
||||||
`t` json /* JSON from MySQL 5.7*/ CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL
|
`t` json /* JSON from MySQL 5.7*/ CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
|
) 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
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||||
drop table testjson;
|
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
|
# End of 10.5 tests
|
||||||
#
|
#
|
||||||
|
@ -97,8 +97,9 @@ drop table mysql_json_test_big;
|
|||||||
create table t1(j json);
|
create table t1(j json);
|
||||||
show create table t1;
|
show create table t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
--error ER_CANT_CREATE_TABLE
|
|
||||||
create table t1(j mysql_json);
|
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
|
# `json` type should not have character set and collation other than utf8mb4_bin
|
||||||
--error ER_PARSE_ERROR
|
--error ER_PARSE_ERROR
|
||||||
create table `testjson` (
|
create table `testjson` (
|
||||||
@ -120,20 +121,6 @@ create table `testjson` (
|
|||||||
show create table testjson;
|
show create table testjson;
|
||||||
drop 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 #
|
||||||
--echo # End of 10.5 tests
|
--echo # End of 10.5 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -3657,19 +3657,6 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
|
|||||||
if (sql_field->vcol_info)
|
if (sql_field->vcol_info)
|
||||||
sql_field->flags&= ~NOT_NULL_FLAG;
|
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),
|
Initialize length from its original value (number of characters),
|
||||||
which was set in the parser. This is necessary if we're
|
which was set in the parser. This is necessary if we're
|
||||||
|
Loading…
x
Reference in New Issue
Block a user