mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge, will need post-merge fixes.
This commit is contained in:
@ -241,8 +241,8 @@ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old,
|
|||||||
if (!(*key++= (char) 1-*old++)) /* Copy null marker */
|
if (!(*key++= (char) 1-*old++)) /* Copy null marker */
|
||||||
{
|
{
|
||||||
k_length-=length;
|
k_length-=length;
|
||||||
if (keyseg->flag & (HA_VAR_LENGTH_PART | HA_BLOB_PART))
|
->flag & (HA_VAR_LENGTH_PART | HA_BLOB_PART))
|
||||||
{
|
|
||||||
k_length-=2; /* Skip length */
|
k_length-=2; /* Skip length */
|
||||||
old+= 2;
|
old+= 2;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
drop table if exists t1,t2,t3;
|
drop table if exists t1,t2,t3,t4,t5;
|
||||||
drop database if exists mysqltest;
|
drop database if exists mysqltest;
|
||||||
create table t1 (b char(0));
|
create table t1 (b char(0));
|
||||||
insert into t1 values (""),(null);
|
insert into t1 values (""),(null);
|
||||||
@ -654,3 +654,69 @@ t1 CREATE TABLE `t1` (
|
|||||||
PRIMARY KEY (`a`)
|
PRIMARY KEY (`a`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
a int(11) default NULL
|
||||||
|
);
|
||||||
|
insert into t2 values(111);
|
||||||
|
create table t1 (
|
||||||
|
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||||
|
b int not null, primary key (a)
|
||||||
|
) select a, 1 as b from t2 ;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` varchar(12) character set utf8 collate utf8_bin NOT NULL default '',
|
||||||
|
`b` int(11) NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (
|
||||||
|
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||||
|
b int not null, primary key (a)
|
||||||
|
) select 'a' as a , 1 as b from t2 ;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` varchar(12) character set utf8 collate utf8_bin NOT NULL default '',
|
||||||
|
`b` int(11) NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (
|
||||||
|
a varchar(12) charset utf8 collate utf8_bin,
|
||||||
|
b int not null, primary key (a)
|
||||||
|
) select 'a' as a , 1 as b from t2 ;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` varchar(12) character set utf8 collate utf8_bin NOT NULL default '',
|
||||||
|
`b` int(11) NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1, t2;
|
||||||
|
create table t1 (
|
||||||
|
a1 int not null,
|
||||||
|
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||||
|
);
|
||||||
|
insert into t1 values (1,1,1, 1,1,1, 1,1,1);
|
||||||
|
create table t2 (
|
||||||
|
a1 varchar(12) charset utf8 collate utf8_bin not null,
|
||||||
|
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,
|
||||||
|
primary key (a1)
|
||||||
|
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;
|
||||||
|
drop table t2;
|
||||||
|
create table t2 (
|
||||||
|
a1 varchar(12) charset utf8 collate utf8_bin,
|
||||||
|
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||||
|
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1;
|
||||||
|
drop table t1, t2;
|
||||||
|
create table t1 (
|
||||||
|
a1 int, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||||
|
);
|
||||||
|
insert into t1 values (1,1,1, 1,1,1, 1,1,1);
|
||||||
|
create table t2 (
|
||||||
|
a1 varchar(12) charset utf8 collate utf8_bin not null,
|
||||||
|
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,
|
||||||
|
primary key (a1)
|
||||||
|
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;
|
||||||
|
drop table t1, t2;
|
||||||
|
@ -701,6 +701,24 @@ t1 1 a 2 b A 0 NULL NULL YES BTREE
|
|||||||
t1 1 a 3 c A 0 NULL NULL YES BTREE
|
t1 1 a 3 c A 0 NULL NULL YES BTREE
|
||||||
t1 1 a 4 d A 0 NULL NULL YES BTREE
|
t1 1 a 4 d A 0 NULL NULL YES BTREE
|
||||||
set myisam_stats_method=DEFAULT;
|
set myisam_stats_method=DEFAULT;
|
||||||
|
drop table t1;
|
||||||
|
create table t1(
|
||||||
|
cip INT NOT NULL,
|
||||||
|
time TIME NOT NULL,
|
||||||
|
score INT NOT NULL DEFAULT 0,
|
||||||
|
bob TINYBLOB
|
||||||
|
);
|
||||||
|
insert into t1 (cip, time) VALUES (1, '00:01'), (2, '00:02'), (3,'00:03');
|
||||||
|
insert into t1 (cip, bob, time) VALUES (4, 'a', '00:04'), (5, 'b', '00:05'),
|
||||||
|
(6, 'c', '00:06');
|
||||||
|
select * from t1 where bob is null and cip=1;
|
||||||
|
cip time score bob
|
||||||
|
1 00:01:00 0 NULL
|
||||||
|
create index bug on t1 (bob(22), cip, time);
|
||||||
|
select * from t1 where bob is null and cip=1;
|
||||||
|
cip time score bob
|
||||||
|
1 00:01:00 0 NULL
|
||||||
|
drop table t1;
|
||||||
set storage_engine=MyISAM;
|
set storage_engine=MyISAM;
|
||||||
drop table if exists t1,t2,t3;
|
drop table if exists t1,t2,t3;
|
||||||
--- Testing varchar ---
|
--- Testing varchar ---
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1,t2,t3;
|
drop table if exists t1,t2,t3,t4,t5;
|
||||||
drop database if exists mysqltest;
|
drop database if exists mysqltest;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
@ -554,4 +554,66 @@ create table t1 (
|
|||||||
show create table t1;
|
show create table t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#14480: assert failure in CREATE ... SELECT because of wrong
|
||||||
|
# calculation of number of NULLs.
|
||||||
|
#
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
a int(11) default NULL
|
||||||
|
);
|
||||||
|
insert into t2 values(111);
|
||||||
|
|
||||||
|
create table t1 (
|
||||||
|
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||||
|
b int not null, primary key (a)
|
||||||
|
) select a, 1 as b from t2 ;
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
create table t1 (
|
||||||
|
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||||
|
b int not null, primary key (a)
|
||||||
|
) select 'a' as a , 1 as b from t2 ;
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
create table t1 (
|
||||||
|
a varchar(12) charset utf8 collate utf8_bin,
|
||||||
|
b int not null, primary key (a)
|
||||||
|
) select 'a' as a , 1 as b from t2 ;
|
||||||
|
show create table t1;
|
||||||
|
drop table t1, t2;
|
||||||
|
|
||||||
|
create table t1 (
|
||||||
|
a1 int not null,
|
||||||
|
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||||
|
);
|
||||||
|
insert into t1 values (1,1,1, 1,1,1, 1,1,1);
|
||||||
|
|
||||||
|
create table t2 (
|
||||||
|
a1 varchar(12) charset utf8 collate utf8_bin not null,
|
||||||
|
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,
|
||||||
|
primary key (a1)
|
||||||
|
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;
|
||||||
|
drop table t2;
|
||||||
|
|
||||||
|
create table t2 (
|
||||||
|
a1 varchar(12) charset utf8 collate utf8_bin,
|
||||||
|
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||||
|
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1;
|
||||||
|
|
||||||
|
drop table t1, t2;
|
||||||
|
create table t1 (
|
||||||
|
a1 int, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||||
|
);
|
||||||
|
insert into t1 values (1,1,1, 1,1,1, 1,1,1);
|
||||||
|
|
||||||
|
create table t2 (
|
||||||
|
a1 varchar(12) charset utf8 collate utf8_bin not null,
|
||||||
|
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,
|
||||||
|
primary key (a1)
|
||||||
|
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;
|
||||||
|
|
||||||
|
drop table t1, t2;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
@ -648,6 +648,24 @@ analyze table t1;
|
|||||||
show index from t1;
|
show index from t1;
|
||||||
|
|
||||||
set myisam_stats_method=DEFAULT;
|
set myisam_stats_method=DEFAULT;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
# BUG#13814 - key value packed incorrectly for TINYBLOBs
|
||||||
|
|
||||||
|
create table t1(
|
||||||
|
cip INT NOT NULL,
|
||||||
|
time TIME NOT NULL,
|
||||||
|
score INT NOT NULL DEFAULT 0,
|
||||||
|
bob TINYBLOB
|
||||||
|
);
|
||||||
|
|
||||||
|
insert into t1 (cip, time) VALUES (1, '00:01'), (2, '00:02'), (3,'00:03');
|
||||||
|
insert into t1 (cip, bob, time) VALUES (4, 'a', '00:04'), (5, 'b', '00:05'),
|
||||||
|
(6, 'c', '00:06');
|
||||||
|
select * from t1 where bob is null and cip=1;
|
||||||
|
create index bug on t1 (bob(22), cip, time);
|
||||||
|
select * from t1 where bob is null and cip=1;
|
||||||
|
drop table t1;
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -849,8 +849,15 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
|
|||||||
sql_field->key_length= dup_field->key_length;
|
sql_field->key_length= dup_field->key_length;
|
||||||
sql_field->create_length_to_internal_length();
|
sql_field->create_length_to_internal_length();
|
||||||
sql_field->decimals= dup_field->decimals;
|
sql_field->decimals= dup_field->decimals;
|
||||||
sql_field->flags= dup_field->flags;
|
|
||||||
sql_field->unireg_check= dup_field->unireg_check;
|
sql_field->unireg_check= dup_field->unireg_check;
|
||||||
|
/*
|
||||||
|
We're making one field from two, the result field will have
|
||||||
|
dup_field->flags as flags. If we've incremented null_fields
|
||||||
|
because of sql_field->flags, decrement it back.
|
||||||
|
*/
|
||||||
|
if (!(sql_field->flags & NOT_NULL_FLAG))
|
||||||
|
null_fields--;
|
||||||
|
sql_field->flags= dup_field->flags;
|
||||||
it2.remove(); // Remove first (create) definition
|
it2.remove(); // Remove first (create) definition
|
||||||
select_field_pos--;
|
select_field_pos--;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user