@@ -769,3 +769,94 @@ CREATE_TIME IS NOT NULL AND TABLE_NAME='t1';
769
769
COUNT(*)
770
770
1
771
771
DROP TABLE t1;
772
+ #
773
+ # Bug#20160327 OPTIMIZE TABLE REMOVES THE DATA DIRECTORY IN PARTITIONS
774
+ #
775
+ CREATE TABLE `t1` (
776
+ `f1` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
777
+ `f2` MEDIUMTEXT NOT NULL,
778
+ `f3` CHAR(100) NOT NULL,
779
+ `f4` TINYINT(1) unsigned NOT NULL,
780
+ PRIMARY KEY (`f1`,`f4`)
781
+ ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1
782
+ PARTITION BY LIST (`f4`)
783
+ (PARTITION p0 VALUES IN (0) ENGINE = InnoDB,
784
+ PARTITION p1 VALUES IN (1) DATA DIRECTORY = 'MYSQL_TMP_DIR/temp_dir' ENGINE = InnoDB);
785
+ SHOW CREATE TABLE t1;
786
+ Table Create Table
787
+ t1 CREATE TABLE `t1` (
788
+ `f1` int(10) unsigned NOT NULL AUTO_INCREMENT,
789
+ `f2` mediumtext NOT NULL,
790
+ `f3` char(100) NOT NULL,
791
+ `f4` tinyint(1) unsigned NOT NULL,
792
+ PRIMARY KEY (`f1`,`f4`)
793
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1
794
+ /*!50100 PARTITION BY LIST (`f4`)
795
+ (PARTITION p0 VALUES IN (0) ENGINE = InnoDB,
796
+ PARTITION p1 VALUES IN (1) DATA DIRECTORY = 'MYSQL_TMP_DIR/temp_dir' ENGINE = InnoDB) */
797
+ OPTIMIZE TABLE t1;
798
+ Table Op Msg_type Msg_text
799
+ test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
800
+ test.t1 optimize status OK
801
+ SHOW CREATE TABLE t1;
802
+ Table Create Table
803
+ t1 CREATE TABLE `t1` (
804
+ `f1` int(10) unsigned NOT NULL AUTO_INCREMENT,
805
+ `f2` mediumtext NOT NULL,
806
+ `f3` char(100) NOT NULL,
807
+ `f4` tinyint(1) unsigned NOT NULL,
808
+ PRIMARY KEY (`f1`,`f4`)
809
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1
810
+ /*!50100 PARTITION BY LIST (`f4`)
811
+ (PARTITION p0 VALUES IN (0) ENGINE = InnoDB,
812
+ PARTITION p1 VALUES IN (1) DATA DIRECTORY = 'MYSQL_TMP_DIR/temp_dir' ENGINE = InnoDB) */
813
+ t1#P#p1.ibd
814
+ ALTER TABLE t1 OPTIMIZE PARTITION p0;
815
+ Table Op Msg_type Msg_text
816
+ test.t1 optimize note Table does not support optimize on partitions. All partitions will be rebuilt and analyzed.
817
+ test.t1 optimize status OK
818
+ SHOW CREATE TABLE t1;
819
+ Table Create Table
820
+ t1 CREATE TABLE `t1` (
821
+ `f1` int(10) unsigned NOT NULL AUTO_INCREMENT,
822
+ `f2` mediumtext NOT NULL,
823
+ `f3` char(100) NOT NULL,
824
+ `f4` tinyint(1) unsigned NOT NULL,
825
+ PRIMARY KEY (`f1`,`f4`)
826
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1
827
+ /*!50100 PARTITION BY LIST (`f4`)
828
+ (PARTITION p0 VALUES IN (0) ENGINE = InnoDB,
829
+ PARTITION p1 VALUES IN (1) DATA DIRECTORY = 'MYSQL_TMP_DIR/temp_dir' ENGINE = InnoDB) */
830
+ t1#P#p1.ibd
831
+ ALTER TABLE t1 OPTIMIZE PARTITION p1;
832
+ Table Op Msg_type Msg_text
833
+ test.t1 optimize note Table does not support optimize on partitions. All partitions will be rebuilt and analyzed.
834
+ test.t1 optimize status OK
835
+ SHOW CREATE TABLE t1;
836
+ Table Create Table
837
+ t1 CREATE TABLE `t1` (
838
+ `f1` int(10) unsigned NOT NULL AUTO_INCREMENT,
839
+ `f2` mediumtext NOT NULL,
840
+ `f3` char(100) NOT NULL,
841
+ `f4` tinyint(1) unsigned NOT NULL,
842
+ PRIMARY KEY (`f1`,`f4`)
843
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1
844
+ /*!50100 PARTITION BY LIST (`f4`)
845
+ (PARTITION p0 VALUES IN (0) ENGINE = InnoDB,
846
+ PARTITION p1 VALUES IN (1) DATA DIRECTORY = 'MYSQL_TMP_DIR/temp_dir' ENGINE = InnoDB) */
847
+ t1#P#p1.ibd
848
+ ALTER TABLE t1 REBUILD PARTITION ALL;
849
+ SHOW CREATE TABLE t1;
850
+ Table Create Table
851
+ t1 CREATE TABLE `t1` (
852
+ `f1` int(10) unsigned NOT NULL AUTO_INCREMENT,
853
+ `f2` mediumtext NOT NULL,
854
+ `f3` char(100) NOT NULL,
855
+ `f4` tinyint(1) unsigned NOT NULL,
856
+ PRIMARY KEY (`f1`,`f4`)
857
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1
858
+ /*!50100 PARTITION BY LIST (`f4`)
859
+ (PARTITION p0 VALUES IN (0) ENGINE = InnoDB,
860
+ PARTITION p1 VALUES IN (1) DATA DIRECTORY = 'MYSQL_TMP_DIR/temp_dir' ENGINE = InnoDB) */
861
+ t1#P#p1.ibd
862
+ DROP TABLE t1;
0 commit comments