mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0
This commit is contained in:
commit
baa45774d6
3 changed files with 43 additions and 1 deletions
|
@ -366,7 +366,13 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
|
|||
my_errno=HA_WRONG_CREATE_OPTION;
|
||||
goto err;
|
||||
}
|
||||
if ((keydef->flag & (HA_NOSAME | HA_NULL_PART_KEY)) == HA_NOSAME)
|
||||
/*
|
||||
key_segs may be 0 in the case when we only want to be able to
|
||||
add on row into the table. This can happen with some DISTINCT queries
|
||||
in MySQL
|
||||
*/
|
||||
if ((keydef->flag & (HA_NOSAME | HA_NULL_PART_KEY)) == HA_NOSAME &&
|
||||
key_segs)
|
||||
share.state.rec_per_key_part[key_segs-1]=1L;
|
||||
length+=key_length;
|
||||
keydef->block_length= MI_BLOCK_SIZE(length,pointer,MI_MAX_KEYPTR_SIZE);
|
||||
|
|
|
@ -431,3 +431,25 @@ a concat(b,'.')
|
|||
1 a.
|
||||
3 a .
|
||||
drop table t1;
|
||||
create table t1 (a int not null);
|
||||
create table t2 (a int not null, primary key (a));
|
||||
insert into t1 values (1);
|
||||
insert into t2 values (1),(2);
|
||||
select sql_big_result distinct t1.a from t1,t2 order by t2.a;
|
||||
a
|
||||
1
|
||||
select distinct t1.a from t1,t2 order by t2.a;
|
||||
a
|
||||
1
|
||||
select sql_big_result distinct t1.a from t1,t2;
|
||||
a
|
||||
1
|
||||
explain select sql_big_result distinct t1.a from t1,t2 order by t2.a;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 system NULL NULL NULL NULL 1 Using temporary
|
||||
t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct
|
||||
explain select distinct t1.a from t1,t2 order by t2.a;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 system NULL NULL NULL NULL 1 Using temporary
|
||||
t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct
|
||||
drop table t1,t2;
|
||||
|
|
|
@ -422,3 +422,17 @@ update t1 set b='b ' where a > 1;
|
|||
delete from t1 where b='b';
|
||||
select a,concat(b,'.') from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test keys with 0 segments. (Bug #3203)
|
||||
#
|
||||
create table t1 (a int not null);
|
||||
create table t2 (a int not null, primary key (a));
|
||||
insert into t1 values (1);
|
||||
insert into t2 values (1),(2);
|
||||
select sql_big_result distinct t1.a from t1,t2 order by t2.a;
|
||||
select distinct t1.a from t1,t2 order by t2.a;
|
||||
select sql_big_result distinct t1.a from t1,t2;
|
||||
explain select sql_big_result distinct t1.a from t1,t2 order by t2.a;
|
||||
explain select distinct t1.a from t1,t2 order by t2.a;
|
||||
drop table t1,t2;
|
||||
|
|
Loading…
Reference in a new issue