diff options
author | Vicențiu Ciorbaru <vicentiu@mariadb.org> | 2020-10-15 18:02:24 +0300 |
---|---|---|
committer | Vicențiu Ciorbaru <vicentiu@mariadb.org> | 2020-10-28 11:38:14 +0200 |
commit | f6549e95448e5cce52336361f5a59d1edcdac46a (patch) | |
tree | bd1d306e99911ed3bbddf139e8ed464bc4f3d196 /mysql-test/std_data | |
parent | 85c686e2d1576b0be6daf11849167bb1c38e3603 (diff) | |
download | mariadb-git-f6549e95448e5cce52336361f5a59d1edcdac46a.tar.gz |
MDEV-18323 Convert MySQL JSON type to MariaDB TEXT in mysql_upgrade
This patch solves two key problems.
1. There is a type number clash between MySQL and MariaDB. The number
245, used for MariaDB Virtual Fields is the same as MySQL's JSON.
This leads to corrupt FRM errors if unhandled. The code properly
checks frm table version number and if it matches 5.7+ (until 10.0+)
it will assume it is dealing with a MySQL table with the JSON
datatype.
2. MySQL JSON datatype uses a proprietary format to pack JSON data. The
patch introduces a datatype plugin which parses the format and convers
it to its string representation.
The intended conversion path is to only use the JSON datatype within
ALTER TABLE <table> FORCE, to force a table recreate. This happens
during mysql_upgrade or via a direct ALTER TABLE <table> FORCE.
Diffstat (limited to 'mysql-test/std_data')
-rw-r--r-- | mysql-test/std_data/mysql_json/mysql_json_test.MYD | bin | 0 -> 1905700 bytes |
-rw-r--r-- | mysql-test/std_data/mysql_json/mysql_json_test.MYI | bin | 0 -> 1024 bytes |
-rw-r--r-- | mysql-test/std_data/mysql_json/mysql_json_test.frm | bin | 0 -> 8646 bytes |
-rw-r--r-- | mysql-test/std_data/mysql_json/mysql_json_test_big.MYD | bin | 0 -> 1898044 bytes |
-rw-r--r-- | mysql-test/std_data/mysql_json/mysql_json_test_big.MYI | bin | 0 -> 1024 bytes |
-rw-r--r-- | mysql-test/std_data/mysql_json/mysql_json_test_big.frm | bin | 0 -> 8646 bytes |
-rw-r--r-- | mysql-test/std_data/mysql_json/tempty.MYD | bin | 0 -> 40 bytes |
-rw-r--r-- | mysql-test/std_data/mysql_json/tempty.MYI | bin | 0 -> 1024 bytes |
-rw-r--r-- | mysql-test/std_data/mysql_json/tempty.frm | bin | 0 -> 8554 bytes |
9 files changed, 0 insertions, 0 deletions
diff --git a/mysql-test/std_data/mysql_json/mysql_json_test.MYD b/mysql-test/std_data/mysql_json/mysql_json_test.MYD Binary files differnew file mode 100644 index 00000000000..0be8c5968b4 --- /dev/null +++ b/mysql-test/std_data/mysql_json/mysql_json_test.MYD diff --git a/mysql-test/std_data/mysql_json/mysql_json_test.MYI b/mysql-test/std_data/mysql_json/mysql_json_test.MYI Binary files differnew file mode 100644 index 00000000000..ada3ff23836 --- /dev/null +++ b/mysql-test/std_data/mysql_json/mysql_json_test.MYI diff --git a/mysql-test/std_data/mysql_json/mysql_json_test.frm b/mysql-test/std_data/mysql_json/mysql_json_test.frm Binary files differnew file mode 100644 index 00000000000..94c642f45ac --- /dev/null +++ b/mysql-test/std_data/mysql_json/mysql_json_test.frm diff --git a/mysql-test/std_data/mysql_json/mysql_json_test_big.MYD b/mysql-test/std_data/mysql_json/mysql_json_test_big.MYD Binary files differnew file mode 100644 index 00000000000..21b1fffc4ba --- /dev/null +++ b/mysql-test/std_data/mysql_json/mysql_json_test_big.MYD diff --git a/mysql-test/std_data/mysql_json/mysql_json_test_big.MYI b/mysql-test/std_data/mysql_json/mysql_json_test_big.MYI Binary files differnew file mode 100644 index 00000000000..79a1d9ebd89 --- /dev/null +++ b/mysql-test/std_data/mysql_json/mysql_json_test_big.MYI diff --git a/mysql-test/std_data/mysql_json/mysql_json_test_big.frm b/mysql-test/std_data/mysql_json/mysql_json_test_big.frm Binary files differnew file mode 100644 index 00000000000..94c642f45ac --- /dev/null +++ b/mysql-test/std_data/mysql_json/mysql_json_test_big.frm diff --git a/mysql-test/std_data/mysql_json/tempty.MYD b/mysql-test/std_data/mysql_json/tempty.MYD Binary files differnew file mode 100644 index 00000000000..b4bf921b99f --- /dev/null +++ b/mysql-test/std_data/mysql_json/tempty.MYD diff --git a/mysql-test/std_data/mysql_json/tempty.MYI b/mysql-test/std_data/mysql_json/tempty.MYI Binary files differnew file mode 100644 index 00000000000..003b7c8842f --- /dev/null +++ b/mysql-test/std_data/mysql_json/tempty.MYI diff --git a/mysql-test/std_data/mysql_json/tempty.frm b/mysql-test/std_data/mysql_json/tempty.frm Binary files differnew file mode 100644 index 00000000000..15e6955dfb3 --- /dev/null +++ b/mysql-test/std_data/mysql_json/tempty.frm |