mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
MDEV-8948 ALTER ... INPLACE does work for BINARY, BLOB
This commit is contained in:
parent
1993780284
commit
7e29f2d64f
6 changed files with 429 additions and 17 deletions
|
|
@ -104,3 +104,170 @@ create table t3 (a int not null primary key, b int, c varchar(80)) engine=merge
|
|||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
alter online table t3 union=(t1,t2);
|
||||
drop table t1,t2,t3;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-8948 ALTER ... INPLACE does work for BINARY, BLOB
|
||||
--echo #
|
||||
#
|
||||
# ALTER to the same [VAR]BINARY type
|
||||
#
|
||||
CREATE TABLE t1 (a BINARY(10));
|
||||
ALTER TABLE t1 MODIFY a BINARY(10), ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a VARBINARY(10));
|
||||
ALTER TABLE t1 MODIFY a VARBINARY(10), ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# ALTER to the same BLOB variant
|
||||
#
|
||||
CREATE TABLE t1 (a TINYBLOB);
|
||||
ALTER TABLE t1 MODIFY a TINYBLOB, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a MEDIUMBLOB);
|
||||
ALTER TABLE t1 MODIFY a MEDIUMBLOB, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a BLOB);
|
||||
ALTER TABLE t1 MODIFY a BLOB, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a LONGBLOB);
|
||||
ALTER TABLE t1 MODIFY a LONGBLOB, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# ALTER to the same [VAR]CHAR type
|
||||
#
|
||||
CREATE TABLE t1 (a CHAR(10));
|
||||
ALTER TABLE t1 MODIFY a CHAR(10), ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(10));
|
||||
ALTER TABLE t1 MODIFY a VARCHAR(10), ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
#
|
||||
# ALTER to the same TEXT variant
|
||||
#
|
||||
CREATE TABLE t1 (a TINYTEXT);
|
||||
ALTER TABLE t1 MODIFY a TINYTEXT, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a MEDIUMTEXT);
|
||||
ALTER TABLE t1 MODIFY a MEDIUMTEXT, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a TEXT);
|
||||
ALTER TABLE t1 MODIFY a TEXT, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a LONGTEXT);
|
||||
ALTER TABLE t1 MODIFY a LONGTEXT, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# ALTER from a non-binary to a binary collation
|
||||
#
|
||||
CREATE TABLE t1 (a CHAR(10));
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a CHAR(10) COLLATE latin1_bin, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(10));
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE latin1_bin, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a TINYTEXT);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a TINYTEXT COLLATE latin1_bin, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a MEDIUMTEXT);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a MEDIUMTEXT COLLATE latin1_bin, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a TEXT);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a TEXT COLLATE latin1_bin, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a LONGTEXT);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a LONGTEXT COLLATE latin1_bin, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# ALTER from a binary to a non-binary collation
|
||||
#
|
||||
CREATE TABLE t1 (a CHAR(10) COLLATE latin1_bin);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a CHAR(10) COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(10) COLLATE latin1_bin);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a TINYTEXT COLLATE latin1_bin);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a TINYTEXT COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a MEDIUMTEXT COLLATE latin1_bin);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a MEDIUMTEXT COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a TEXT COLLATE latin1_bin);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a TEXT COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a LONGTEXT COLLATE latin1_bin);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a LONGTEXT COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# ALTER from a non-binary collation to another non-binary collation
|
||||
#
|
||||
CREATE TABLE t1 (a CHAR(10) COLLATE latin1_general_ci);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a CHAR(10) COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(10) COLLATE latin1_general_ci);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a TINYTEXT COLLATE latin1_general_ci);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a TINYTEXT COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a MEDIUMTEXT COLLATE latin1_general_ci);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a MEDIUMTEXT COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a TEXT COLLATE latin1_general_ci);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a TEXT COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a LONGTEXT COLLATE latin1_general_ci);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a LONGTEXT COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of MDEV-8948 ALTER ... INPLACE does work for BINARY, BLOB
|
||||
--echo #
|
||||
|
|
|
|||
82
mysql-test/t/gis-alter_table_online.test
Normal file
82
mysql-test/t/gis-alter_table_online.test
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/have_geometry.inc
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.1 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-8948 ALTER ... INPLACE does work for BINARY, BLOB
|
||||
--echo #
|
||||
|
||||
#
|
||||
# Blob variants to GEOMETRY
|
||||
#
|
||||
CREATE TABLE t1 (a TINYBLOB);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a GEOMETRY, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a MEDIUMBLOB);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a GEOMETRY, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a BLOB);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a GEOMETRY, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a LONGBLOB);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a GEOMETRY, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# GEOMETRY to BLOB variants
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a GEOMETRY);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a TINYBLOB, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a GEOMETRY);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a MEDIUMBLOB, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a GEOMETRY);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a BLOB, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a GEOMETRY);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a LONGBLOB, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Different GEOMETRY types
|
||||
#
|
||||
|
||||
# Can't do INPLACE from a supertype to a subtype
|
||||
CREATE TABLE t1 (a GEOMETRY);
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
||||
ALTER TABLE t1 MODIFY a POLYGON, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
# Ok to do INPLACE from a subtype to a supertype
|
||||
CREATE TABLE t1 (a POLYGON);
|
||||
ALTER TABLE t1 MODIFY a GEOMETRY, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
# Ok to do INPLACE for two equal geometry subtypes
|
||||
CREATE TABLE t1 (a POLYGON);
|
||||
ALTER TABLE t1 MODIFY a POLYGON, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.1 tests
|
||||
--echo #
|
||||
Loading…
Add table
Add a link
Reference in a new issue