mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Change create_field->offset to store offset from start of fields, independent of null bits.
Count null_bits separately from field offsets and adjust them in case of primary key parts. (Previously a CREATE TABLE with a lot of null fields that was part of a primary key caused MySQL to wrongly count the number of bytes needed to store null bits) This is a more complete bug fix for #6236 mysql-test/r/alter_table.result: More test for bug #6236 (CREATE TABLE didn't properly count not null columns for primary keys) mysql-test/t/alter_table.test: More test for bug #6236 (CREATE TABLE didn't properly count not null columns for primary keys) sql/handler.h: Add counter for null fields sql/sql_table.cc: Change create_field->offset to store offset from start of fields, independent of null bits. Count null_bits separately from field offsets and adjust them in case of primary key parts. sql/unireg.cc: Change create_field->offset to store offset from start of fields, independent of null bits. Count null_bits separately from field offsets and adjust them in case of primary key parts.
This commit is contained in:
@ -406,3 +406,19 @@ t2 CREATE TABLE `t2` (
|
||||
PRIMARY KEY (`a`)
|
||||
) TYPE=MRG_MyISAM UNION=(t1)
|
||||
drop table if exists t1, t2;
|
||||
create table t1 (a int, b int, c int, d int, e int, f int, g int, h int,i int, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
|
||||
insert into t1 (a) values(1);
|
||||
show table status like 't1';
|
||||
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Create_options Comment
|
||||
t1 MyISAM Fixed 1 37 37 X X X X X X X X
|
||||
alter table t1 modify a int;
|
||||
show table status like 't1';
|
||||
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Create_options Comment
|
||||
t1 MyISAM Fixed 1 37 37 X X X X X X X X
|
||||
drop table t1;
|
||||
create table t1 (a int not null, b int not null, c int not null, d int not null, e int not null, f int not null, g int not null, h int not null,i int not null, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
|
||||
insert into t1 (a) values(1);
|
||||
show table status like 't1';
|
||||
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Create_options Comment
|
||||
t1 MyISAM Fixed 1 37 37 X X X X X X X X
|
||||
drop table t1;
|
||||
|
Reference in New Issue
Block a user