SET @max_row = 20; create table t1 (a bit(65), primary key (a)) partition by key (a); ERROR 42000: Display width out of range for column 'a' (max = 64) create table t1 (a bit(0), primary key (a)) partition by key (a); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` bit(1) NOT NULL DEFAULT '\0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) */ drop table t1; create table t1 (a bit(0), primary key (a)) partition by key (a) ( partition pa1 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp', partition pa2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp'); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` bit(1) NOT NULL DEFAULT '\0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!50100 PARTITION BY KEY (a) (PARTITION pa1 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ drop table t1; create table t1 (a bit(64), primary key (a)) partition by key (a); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` bit(64) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) */ insert into t1 values (b'1111111111111111111111111111111111111111111111111111111111111111'), (b'1000000000000000000000000000000000000000000000000000000000000000'), (b'0000000000000000000000000000000000000000000000000000000000000001'), (b'1010101010101010101010101010101010101010101010101010101010101010'), (b'0101010101010101010101010101010101010101010101010101010101010101'); select hex(a) from t1; hex(a) 1 5555555555555555 8000000000000000 AAAAAAAAAAAAAAAA FFFFFFFFFFFFFFFF drop table t1; create table t1 (a bit(64), primary key (a)) partition by key (a)( partition pa1 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' max_rows=20 min_rows=2, partition pa2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' max_rows=30 min_rows=3, partition pa3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' max_rows=30 min_rows=4, partition pa4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' max_rows=40 min_rows=2); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` bit(64) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ insert into t1 values (b'1111111111111111111111111111111111111111111111111111111111111111'), (b'1000000000000000000000000000000000000000000000000000000000000000'), (b'0000000000000000000000000000000000000000000000000000000000000001'), (b'1010101010101010101010101010101010101010101010101010101010101010'), (b'0101010101010101010101010101010101010101010101010101010101010101'); select hex(a) from t1; hex(a) 1 5555555555555555 8000000000000000 AAAAAAAAAAAAAAAA FFFFFFFFFFFFFFFF drop table t1; create table t1 (a bit, primary key (a)) partition by key (a); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` bit(1) NOT NULL DEFAULT '\0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) */ insert into t1 values (b'0'), (b'1'); select hex(a) from t1; hex(a) 0 1 alter table t1 drop primary key; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` bit(1) NOT NULL DEFAULT '\0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) */ select hex(a) from t1; hex(a) 0 1 alter table t1 add primary key (a); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` bit(1) NOT NULL DEFAULT '\0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) */ select hex(a) from t1; hex(a) 0 1 drop table t1;