summaryrefslogtreecommitdiff
path: root/mysql-test/main/mysql_upgrade_mysql_json_datatype.test
blob: 6de1e31cf03b992ac359b171ec19ab0e746a497e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
-- source include/mysql_upgrade_preparation.inc
-- source include/have_working_dns.inc
-- source include/have_innodb.inc

if (!$TYPE_MYSQL_JSON_SO) {
  skip Need MYSQL_JSON plugin;
}

call mtr.add_suppression("Table rebuild required");
call mtr.add_suppression("is marked as crashed");
call mtr.add_suppression("Checking");

let $MYSQLD_DATADIR= `select @@datadir`;
SET NAMES utf8;

--copy_file std_data/mysql_json/tempty.frm $MYSQLD_DATADIR/test/tempty.frm
--copy_file std_data/mysql_json/tempty.MYI $MYSQLD_DATADIR/test/tempty.MYI
--copy_file std_data/mysql_json/tempty.MYD $MYSQLD_DATADIR/test/tempty.MYD

--copy_file std_data/mysql_json/mysql_json_test.frm $MYSQLD_DATADIR/test/mysql_json_test.frm
--copy_file std_data/mysql_json/mysql_json_test.MYI $MYSQLD_DATADIR/test/mysql_json_test.MYI
--copy_file std_data/mysql_json/mysql_json_test.MYD $MYSQLD_DATADIR/test/mysql_json_test.MYD

--copy_file std_data/mysql_json/mysql_json_test_big.frm $MYSQLD_DATADIR/test/mysql_json_test_big.frm
--copy_file std_data/mysql_json/mysql_json_test_big.MYI $MYSQLD_DATADIR/test/mysql_json_test_big.MYI
--copy_file std_data/mysql_json/mysql_json_test_big.MYD $MYSQLD_DATADIR/test/mysql_json_test_big.MYD


set sql_mode="";

--eval install soname '$TYPE_MYSQL_JSON_SO'

--error ER_TABLE_NEEDS_REBUILD
show create table tempty;
--error ER_TABLE_NEEDS_REBUILD
show create table mysql_json_test;
--error ER_TABLE_NEEDS_REBUILD
show create table mysql_json_test_big;

--echo # Run mysql_upgrade to fix the tables containing JSON.
--exec $MYSQL_UPGRADE --force 2>&1

--echo #
--echo # Now check if the table structure is correct and that the data
--echo # is still present.
--echo #

show create table tempty;
show create table mysql_json_test;
show create table mysql_json_test_big;

select count(*) as 'Total_Number_of_Tests',
sum(expected = actual) as 'Succesful_Tests',
sum(JSON_VALID(actual)) as 'String_is_valid_JSON'
from mysql_json_test;

select count(*) as 'Total_Number_of_Tests',
sum(expected = actual) as 'Succesful_Tests',
sum(JSON_VALID(actual)) as 'String_is_valid_JSON'
from mysql_json_test_big;

drop table tempty;
drop table mysql_json_test;
drop table mysql_json_test_big;

--eval uninstall soname '$TYPE_MYSQL_JSON_SO'
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info