Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
1.0.5
-
None
-
None
-
2016-24
Description
It appears that, at least for this case, if the first column in a column store table is not null then it errors out with:
ERROR 1815 (HY000): Internal error: Null bit header is wrong size
On an insert into select statement. A workaround is to remove the not null constraint on the first column.
To reproduce:
CREATE TABLE t1_cs (
|
c1 varchar(7) NOT NULL,
|
c2 varchar(3) NOT NULL,
|
c3 varchar(6) NOT NULL,
|
c4 varchar(18) DEFAULT NULL,
|
c5 varchar(9) DEFAULT NULL,
|
c6 varchar(10) DEFAULT NULL,
|
n1 decimal(11,2) DEFAULT NULL,
|
n2 decimal(13,2) DEFAULT NULL,
|
c7 varchar(5) DEFAULT NULL,
|
d1 date DEFAULT NULL,
|
d2 datetime DEFAULT NULL,
|
d3 datetime NOT NULL,
|
d4 datetime NOT NULL
|
) ENGINE=columnstore;
|
|
CREATE TABLE t1_in (
|
c1 varchar(7) NOT NULL,
|
c2 varchar(3) NOT NULL,
|
c3 varchar(6) NOT NULL,
|
c4 varchar(18) DEFAULT NULL,
|
c5 varchar(9) DEFAULT NULL,
|
c6 varchar(10) DEFAULT NULL,
|
n1 decimal(11,2) DEFAULT NULL,
|
n2 decimal(13,2) DEFAULT NULL,
|
c7 varchar(5) DEFAULT NULL,
|
d1 date DEFAULT NULL,
|
d2 datetime DEFAULT NULL,
|
d3 datetime NOT NULL,
|
d4 datetime NOT NULL
|
) ENGINE=InnoDB;
|
|
|
insert into t1_in values (
|
'ABC',
|
'ABC',
|
'ABC',
|
'ABC',
|
'ABC',
|
'ABC',
|
1.2,
|
1.2,
|
'ABC',
|
now(),
|
now(),
|
now(),
|
now()
|
);
|
|
insert into t1_cs select * from t1_in;
|
ERROR 1815 (HY000): Internal error: Null bit header is wrong size
|
|
drop table t1_cs;
|
|
CREATE TABLE t1_cs (
|
c1 varchar(7),
|
c2 varchar(3) NOT NULL,
|
c3 varchar(6) NOT NULL,
|
c4 varchar(18) DEFAULT NULL,
|
c5 varchar(9) DEFAULT NULL,
|
c6 varchar(10) DEFAULT NULL,
|
n1 decimal(11,2) DEFAULT NULL,
|
n2 decimal(13,2) DEFAULT NULL,
|
c7 varchar(5) DEFAULT NULL,
|
d1 date DEFAULT NULL,
|
d2 datetime DEFAULT NULL,
|
d3 datetime NOT NULL,
|
d4 datetime NOT NULL
|
) ENGINE=columnstore;
|
|
insert into t1_cs select * from t1_in;
|
ERROR 1815 (HY000): Internal error: PM2 : Bulkload Parse (thread 2) Failed for Table test.t1_cs during parsing. Terminating this job.
|
|
exit
|
|
mcsmysql test
|
insert into t1_cs select * from t1_in;
|
--works
|