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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482
|
#
# A series of tests to show the correct tablespace behavior when the
# partition engine uses InnoDB.
#
--let $old_default_storage_engine = @@default_storage_engine;
SET default_storage_engine=InnoDB;
--echo #
--echo # TABLESPACE related tests for the partition engine and InnoDB.
--echo #
# Set up some variables
LET $MYSQLD_DATADIR = `select @@datadir`;
LET $INNODB_PAGE_SIZE = `select @@innodb_page_size`;
LET $data_directory = DATA DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data';
LET $data_directory2 = DATA DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data2';
LET $index_directory = INDEX DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data';
# These values can change during the test
LET $innodb_file_per_table_orig=`select @@global.innodb_file_per_table`;
LET $innodb_strict_mode_orig=`select @@session.innodb_strict_mode`;
--echo # The partition engine can send DATA DIRECTORY to InnoDB.
--echo # In strict mode, it is an error if innodb_file_per_table = OFF
--echo # or INDEX DIRECTORY is used.
SET SESSION innodb_strict_mode = ON;
SET GLOBAL innodb_file_per_table = OFF;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
--error ER_ILLEGAL_HA
eval CREATE TABLE t1 (a int KEY, b text) ENGINE = InnoDB PARTITION BY HASH (a)
(PARTITION p0 engine=InnoDB $data_directory $index_directory,
PARTITION p1 engine=InnoDB $data_directory $index_directory);
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW WARNINGS;
--echo # Try again with innodb_file_per_table = ON and no INDEX DIRECTORY.
SET GLOBAL innodb_file_per_table = ON;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE t1 (a int KEY, b text) ENGINE = InnoDB PARTITION BY HASH (a)
(PARTITION p0 engine=InnoDB $data_directory,
PARTITION p1 engine=InnoDB $data_directory2);
SHOW WARNINGS;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t1;
--source suite/innodb/include/show_i_s_tables.inc
--source suite/innodb/include/show_i_s_tablespaces.inc
--echo # Verifying .ibd files
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t1#p#p0.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t1#p#p1.ibd
--echo # Verifying that there are no MyISAM files
--error 1
--file_exists $MYSQLD_DATADIR/test/t1#p#p0.myd
--error 1
--file_exists $MYSQLD_DATADIR/test/t1#p#p0.myi
--error 1
--file_exists $MYSQLD_DATADIR/test/t1#p#p1.myd
--error 1
--file_exists $MYSQLD_DATADIR/test/t1#p#p1.myi
--error 1
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/t1#p#p0.myd
--error 1
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/t1#p#p0.myi
--error 1
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/t1#p#p1.myd
--error 1
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/t1#p#p1.myi
# The ibd tablespaces should not be directly under the DATA DIRECTORY
--error 1
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/t1#p#p0.ibd
--error 1
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/t1#p#p1.ibd
--echo # Test TRUNCATE TABLE with partitioned InnoDB tables
INSERT INTO t1 VALUES (1, "red");
INSERT INTO t1 VALUES (2, "green");
INSERT INTO t1 VALUES (3, "blue");
SELECT * FROM t1;
TRUNCATE TABLE t1;
SELECT * FROM t1;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t1;
--source suite/innodb/include/show_i_s_tables.inc
--source suite/innodb/include/show_i_s_tablespaces.inc
--echo # Verifying .ibd files
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t1#p#p0.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t1#p#p1.ibd
--echo # Test RENAME TABLE with partitioned InnoDB tables
RENAME TABLE t1 TO t11;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t11;
--source suite/innodb/include/show_i_s_tables.inc
--source suite/innodb/include/show_i_s_tablespaces.inc
--echo # Verifying .ibd files
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t11#p#p0.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t11#p#p1.ibd
DROP TABLE t11;
--echo # Test the previous DDL as a prepared statement.
SET GLOBAL innodb_file_per_table = ON;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval PREPARE stmt1 FROM "CREATE TABLE t1 (a int KEY, b text)
ENGINE = InnoDB PARTITION BY HASH (a)
(PARTITION p0 engine=InnoDB $data_directory,
PARTITION p1 engine=InnoDB $data_directory2)";
EXECUTE stmt1;
SHOW WARNINGS;
DEALLOCATE PREPARE stmt1;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t1;
--source suite/innodb/include/show_i_s_tables.inc
--source suite/innodb/include/show_i_s_tablespaces.inc
DROP TABLE t1;
--echo # Test DATA DIRECTORY with Sub-partitions.
SET GLOBAL innodb_file_per_table = ON;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE t1 (id INT, purchased DATE) engine=InnoDB
PARTITION BY RANGE( YEAR(purchased) )
SUBPARTITION BY HASH( TO_DAYS(purchased) ) (
PARTITION p0 VALUES LESS THAN (1990) (
SUBPARTITION s0 $data_directory,
SUBPARTITION s1 $data_directory2
),
PARTITION p1 VALUES LESS THAN (2000) (
SUBPARTITION s2 $data_directory,
SUBPARTITION s3 $data_directory2
),
PARTITION p2 VALUES LESS THAN MAXVALUE (
SUBPARTITION s4 $data_directory,
SUBPARTITION s5 $data_directory2
)
);
SHOW WARNINGS;
INSERT INTO t1 VALUES(1,'1980-05-31');
INSERT INTO t1 VALUES(2,'2090-05-31');
INSERT INTO t1 VALUES(3,'2012-05-31');
INSERT INTO t1 VALUES(4,'1970-05-31');
INSERT INTO t1 VALUES(5,'1985-05-31');
INSERT INTO t1 VALUES(6,'2006-05-31');
SELECT * FROM t1;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t1;
--source suite/innodb/include/show_i_s_tables.inc
--source suite/innodb/include/show_i_s_tablespaces.inc
--echo # Verifying .ibd files
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t1#p#p0#sp#s0.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t1#p#p0#sp#s1.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t1#p#p1#sp#s2.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t1#p#p1#sp#s3.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t1#p#p2#sp#s4.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t1#p#p2#sp#s5.ibd
DROP TABLE t1;
--echo # Same as above except with ROW_FORMAT=Dyamic.
SET GLOBAL innodb_file_per_table = ON;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE t1 (id INT, purchased DATE)
engine = innodb row_format = dynamic
PARTITION BY RANGE( YEAR(purchased) )
SUBPARTITION BY HASH( TO_DAYS(purchased) ) (
PARTITION p0 VALUES LESS THAN (1990) (
SUBPARTITION s0 $data_directory,
SUBPARTITION s1 $data_directory2
),
PARTITION p1 VALUES LESS THAN (2000) (
SUBPARTITION s2 $data_directory,
SUBPARTITION s3 $data_directory2
),
PARTITION p2 VALUES LESS THAN MAXVALUE (
SUBPARTITION s4 $data_directory,
SUBPARTITION s5 $data_directory2
)
);
SHOW WARNINGS;
INSERT INTO t1 VALUES(1,'1980-05-31');
INSERT INTO t1 VALUES(2,'2090-05-31');
INSERT INTO t1 VALUES(3,'2012-05-31');
INSERT INTO t1 VALUES(4,'1970-05-31');
INSERT INTO t1 VALUES(5,'1985-05-31');
INSERT INTO t1 VALUES(6,'2006-05-31');
SELECT * FROM t1;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t1;
--source suite/innodb/include/show_i_s_tables.inc
--source suite/innodb/include/show_i_s_tablespaces.inc
--echo # Verifying .ibd files
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t1#p#p0#sp#s0.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t1#p#p0#sp#s1.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t1#p#p1#sp#s2.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t1#p#p1#sp#s3.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t1#p#p2#sp#s4.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t1#p#p2#sp#s5.ibd
--echo #
--echo # Cleanup
--echo #
DROP TABLE t1;
--rmdir $MYSQL_TMP_DIR/alternate_dir/data/test
--rmdir $MYSQL_TMP_DIR/alternate_dir/data
--rmdir $MYSQL_TMP_DIR/alternate_dir/data2/test
--rmdir $MYSQL_TMP_DIR/alternate_dir/data2
--rmdir $MYSQL_TMP_DIR/alternate_dir
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE t1 (a INT)
ENGINE = InnoDB
DATA DIRECTORY = '$MYSQL_TMP_DIR/alternate_dir/data_table'
PARTITION BY RANGE (a)
SUBPARTITION BY HASH (a) SUBPARTITIONS 3
(PARTITION p0 VALUES LESS THAN (10)
(SUBPARTITION sp0,
SUBPARTITION sp1 DATA DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data_subpart',
SUBPARTITION sp2),
PARTITION p1 VALUES LESS THAN (20)
DATA DIRECTORY = '$MYSQL_TMP_DIR/alternate_dir/data_part'
(SUBPARTITION sp3,
SUBPARTITION sp4 DATA DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data_subpart',
SUBPARTITION sp5),
PARTITION p2 VALUES LESS THAN (30)
(SUBPARTITION sp6,
SUBPARTITION sp7 DATA DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data_subpart',
SUBPARTITION sp8));
--echo # Verifying .ibd files
--file_exists $MYSQL_TMP_DIR/alternate_dir/data_table/test/t1#p#p0#sp#sp0.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data_table/test/t1#p#p0#sp#sp2.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data_table/test/t1#p#p2#sp#sp6.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data_table/test/t1#p#p2#sp#sp8.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data_part/test/t1#p#p1#sp#sp3.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data_part/test/t1#p#p1#sp#sp5.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data_subpart/test/t1#p#p0#sp#sp1.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data_subpart/test/t1#p#p1#sp#sp4.ibd
--file_exists $MYSQL_TMP_DIR/alternate_dir/data_subpart/test/t1#p#p2#sp#sp7.ibd
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t1;
DROP TABLE t1;
--echo # Test of table where the engine returns the DATA DIR.
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE t1
(a int not null,
primary key (a))
ENGINE=InnoDB
PARTITION BY KEY (a)
(PARTITION p0 DATA DIRECTORY '$MYSQL_TMP_DIR/alternate_dir/data_part',
PARTITION p1);
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t1;
# TODO : Enable following once shared tablespaces are allowed in Partitioned
# Tables (wl#12034).
# --echo # Test TABLESPACE (and restart)
# CREATE TABLESPACE `ts_part1` ADD DATAFILE 'ts_part1.ibd';
# CREATE TABLESPACE `ts part2` ADD DATAFILE 'ts_part2.ibd';
# CREATE TABLESPACE `ts_part3` ADD DATAFILE 'ts_part3.ibd';
# CREATE TABLESPACE `ts_part4` ADD DATAFILE 'ts_part4.ibd';
#
# let $long_tablespace_name=ts_part1_a_very_long_tablespace_name_longer_than_64_characters!!!;
#
# --error ER_TOO_LONG_IDENT
# eval CREATE TABLE t2 (a int) ENGINE = InnoDB TABLESPACE `$long_tablespace_name`;
# --error ER_TOO_LONG_IDENT
# eval CREATE TABLE t2 (a int) ENGINE = InnoDB
# PARTITION BY RANGE (a)
# (PARTITION p1 VALUES LESS THAN (10)
# TABLESPACE `$long_tablespace_name`
# );
#
# CREATE TABLE t2
# (a int not null auto_increment primary key,
# b varchar(128))
# ENGINE = InnoDB
# TABLESPACE ts_part1
# PARTITION BY RANGE (a)
# SUBPARTITION BY HASH (a) SUBPARTITIONS 3
# (PARTITION p0 VALUES LESS THAN (0) TABLESPACE `ts part2`
# (SUBPARTITION sp0 TABLESPACE ts_part3,
# SUBPARTITION sp1,
# SUBPARTITION sp2 TABLESPACE ts_part4),
# PARTITION p1 VALUES LESS THAN (100)
# (SUBPARTITION sp3,
# SUBPARTITION sp4 TABLESPACE innodb_file_per_table,
# SUBPARTITION sp5),
# PARTITION p2 VALUES LESS THAN (200)
# (SUBPARTITION sp6 TABLESPACE innodb_system,
# SUBPARTITION sp7,
# SUBPARTITION sp8),
# PARTITION p3 VALUES LESS THAN (300) TABLESPACE innodb_file_per_table
# (SUBPARTITION sp9 TABLESPACE ts_part4,
# SUBPARTITION sp10,
# SUBPARTITION sp11));
# SHOW CREATE TABLE t2;
#
# call mtr.add_suppression("Table .* Partition .* Subpartition .* does not exist in the InnoDB internal data dictionary");
# --error ER_TOO_LONG_IDENT
# eval ALTER TABLE t2 ADD PARTITION
# (PARTITION p4 VALUES LESS THAN (400)
# TABLESPACE `$long_tablespace_name`);
#
# --echo # Same but without table level tablespace defined
# CREATE TABLE t3
# (a int not null auto_increment primary key,
# b varchar(128))
# ENGINE = InnoDB
# PARTITION BY RANGE (a)
# SUBPARTITION BY HASH (a) SUBPARTITIONS 3
# (PARTITION p0 VALUES LESS THAN (0) TABLESPACE `ts part2`
# (SUBPARTITION sp0 TABLESPACE ts_part3,
# SUBPARTITION sp1,
# SUBPARTITION sp2 TABLESPACE ts_part4),
# PARTITION p1 VALUES LESS THAN (100)
# (SUBPARTITION sp3,
# SUBPARTITION sp4 TABLESPACE innodb_file_per_table,
# SUBPARTITION sp5),
# PARTITION p2 VALUES LESS THAN (200)
# (SUBPARTITION sp6 TABLESPACE innodb_system,
# SUBPARTITION sp7,
# SUBPARTITION sp8),
# PARTITION p3 VALUES LESS THAN (300) TABLESPACE innodb_file_per_table
# (SUBPARTITION sp9 TABLESPACE ts_part4,
# SUBPARTITION sp10,
# SUBPARTITION sp11));
# SHOW CREATE TABLE t3;
SET @@global.innodb_file_per_table = ON;
CREATE TABLE t_file_per_table_on
(a int not null auto_increment primary key,
b varchar(128))
ENGINE = InnoDB;
SET @@global.innodb_file_per_table = OFF;
CREATE TABLE t_file_per_table_off
(a int not null auto_increment primary key,
b varchar(128))
ENGINE = InnoDB;
SHOW CREATE TABLE t_file_per_table_on;
SHOW CREATE TABLE t_file_per_table_off;
SET @@global.innodb_file_per_table = ON;
SHOW CREATE TABLE t_file_per_table_on;
SHOW CREATE TABLE t_file_per_table_off;
--echo # Restart to get DATA DIRECTORY read from the engine (InnoDB dictionary)
--source include/restart_mysqld.inc
ALTER TABLE t1 COALESCE PARTITION 1;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t1;
# TODO : Enable following once shared tablespaces are allowed in Partitioned
# Tables (wl#12034).
# SHOW CREATE TABLE t2;
# SHOW CREATE TABLE t3;
SET @old_sql_quote_show_create=@@sql_quote_show_create;
SET @@sql_quote_show_create=0;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t1;
# TODO : Enable following once shared tablespaces are allowed in Partitioned
# Tables (wl#12034).
# SHOW CREATE TABLE t2;
# SHOW CREATE TABLE t3;
SET @@sql_quote_show_create=@old_sql_quote_show_create;
let $MYSQLD_DATADIR=`SELECT @@datadir`;
let $INNODB_PAGE_SIZE=`SELECT @@innodb_page_size`;
--source suite/innodb/include/show_i_s_tables.inc
--source suite/innodb/include/show_i_s_tablespaces.inc
DROP TABLE t1;
# TODO : Enable following once shared tablespaces are allowed in Partitioned
# Tables (wl#12034).
# DROP TABLE t1,t2,t3;
# DROP TABLESPACE ts_part1;
# DROP TABLESPACE `ts part2`;
# DROP TABLESPACE ts_part3;
# DROP TABLESPACE ts_part4;
SET @@global.innodb_file_per_table = ON;
SHOW CREATE TABLE t_file_per_table_on;
SHOW CREATE TABLE t_file_per_table_off;
SET @@global.innodb_file_per_table = OFF;
SHOW CREATE TABLE t_file_per_table_on;
SHOW CREATE TABLE t_file_per_table_off;
DROP TABLE t_file_per_table_on;
DROP TABLE t_file_per_table_off;
--rmdir $MYSQL_TMP_DIR/alternate_dir/data_table/test
--rmdir $MYSQL_TMP_DIR/alternate_dir/data_table
--rmdir $MYSQL_TMP_DIR/alternate_dir/data_part/test
--rmdir $MYSQL_TMP_DIR/alternate_dir/data_part
--rmdir $MYSQL_TMP_DIR/alternate_dir/data_subpart/test
--rmdir $MYSQL_TMP_DIR/alternate_dir/data_subpart
--rmdir $MYSQL_TMP_DIR/alternate_dir
--disable_query_log
EVAL SET GLOBAL innodb_file_per_table=$innodb_file_per_table_orig;
EVAL SET SESSION innodb_strict_mode=$innodb_strict_mode_orig;
EVAL SET @@default_storage_engine=$old_default_storage_engine;
--enable_query_log
# TODO : Enable following once shared tablespaces are allowed in Partitioned
# Tables (wl#12034).
# #
# # Bug#25512556: GETTING TABLESPACE NAMES FROM FREED MEMORY
# #
# CREATE TABLE t0 (col1 INT, col2 INT, col3 INT) ENGINE = InnoDB
# TABLESPACE innodb_system PARTITION BY RANGE(col1 * 2)
# ( PARTITION p2 VALUES LESS THAN MAXVALUE );
#
# ALTER TABLE t0 OPTIMIZE PARTITION ALL;
# DROP TABLE t0;
#
# --echo #
# --echo # Test case for bug#25524498.
# --echo #
#
# CREATE TABLESPACE gt1 ADD DATAFILE '1.ibd' FILE_BLOCK_SIZE = 16k ENGINE = InnoDB;
# CREATE TABLE t1 (col1 INT, col2 INT, col3 INT) ENGINE = InnoDB TABLESPACE gt1;
# ALTER TABLE t1 ADD COLUMN col5 VARCHAR(500) , ADD COLUMN col6 TEXT;
# ALTER TABLE t1 ENGINE = InnoDB PARTITION BY KEY(col1) PARTITIONS 3;
# ALTER TABLE t1 ENGINE = InnoDB TABLESPACE innodb_system;
# --error ER_DUP_FIELDNAME
# ALTER TABLE t1 ADD COLUMN col5 VARCHAR(500) , ADD COLUMN col6 TEXT;
# ALTER TABLE t1 ENGINE = InnoDB TABLESPACE innodb_system;
# DROP TABLE t1;
# DROP TABLESPACE gt1;
#
# --echo #
# --echo # Test case for bug#25533133.
# --echo #
#
# CREATE TABLESPACE gt1 ADD DATAFILE '1.ibd' FILE_BLOCK_SIZE = 16k ENGINE = InnoDB;
# CREATE TABLE t1 (col1 INT) ENGINE = InnoDB TABLESPACE gt1;
# ALTER TABLE t1 ENGINE = InnoDB PARTITION BY RANGE(col1 * 2)
# ( PARTITION p3 VALUES LESS THAN MAXVALUE );
# ALTER TABLE t1 ENGINE = InnoDB TABLESPACE innodb_system;
# TRUNCATE TABLE t1;
# ALTER TABLE t1 ENGINE = InnoDB TABLESPACE gt1;
#
# DROP TABLE t1;
# DROP TABLESPACE gt1;
#
# --echo #
# --echo # Test case for bug#25616303.
# --echo #
#
# CREATE TABLESPACE gt1 ADD DATAFILE '1.ibd' FILE_BLOCK_SIZE = 16k ENGINE = InnoDB;
# CREATE TABLE t1 (col1 INT, col5 VARCHAR(500)) ENGINE = InnoDB PARTITION BY KEY(col1) PARTITIONS 4;
# ALTER TABLE t1 ALGORITHM COPY , TABLESPACE innodb_system;
# --error ER_DUP_FIELDNAME
# ALTER TABLE t1 ADD COLUMN col5 VARCHAR(500);
# ALTER TABLE t1 ALGORITHM COPY , TABLESPACE gt1;
#
# DROP TABLE t1;
# DROP TABLESPACE gt1;
#
# --echo #
# --echo # Bug#25695284: PARTITION INFO AFTER FAILING ALTER INCORRECTLY
# --echo # REFLECTED IN SUBSEQUENT ALTER
# --echo #
#
# CREATE TABLESPACE gt1 ADD DATAFILE 'gt1.ibd' ENGINE = InnoDB;
# CREATE TABLESPACE gt2 ADD DATAFILE 'gt2.ibd' ENGINE = InnoDB;
#
# CREATE TABLE t1 (str VARCHAR(10)) TABLESPACE gt2;
#
# ALTER TABLE t1 ALGORITHM COPY PARTITION BY KEY(str) PARTITIONS 4;
# --error ER_DUP_FIELDNAME
# ALTER TABLE t1 ALGORITHM COPY, ADD COLUMN str VARCHAR(10);
#
# # Without the patch, this fails with an aseert in InnoDB.
# ALTER TABLE t1 ALGORITHM COPY, TABLESPACE gt1;
# DROP TABLE t1;
# DROP TABLESPACE gt1;
# DROP TABLESPACE gt2;
|