mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Bug#9112 - Merge table with composite index producing invalid results with some queries
The problem was an ab-use of last_rkey_length. Formerly we saved the packed key length (of the search key) in this element. But in certain cases it got replaced by the (packed) result key length. Now we use a new element of MI_INFO to save the packed key length of the search key.
This commit is contained in:
@@ -619,3 +619,29 @@ INSERT TABLE 't1' isn't allowed in FROM table list
|
||||
create table t3 engine=merge union=(t1, t2) select * from t2;
|
||||
INSERT TABLE 't2' isn't allowed in FROM table list
|
||||
drop table t1, t2;
|
||||
create table t1 (
|
||||
a double(16,6),
|
||||
b varchar(10),
|
||||
index (a,b)
|
||||
) engine=merge union=(t2,t3);
|
||||
create table t2 (
|
||||
a double(16,6),
|
||||
b varchar(10),
|
||||
index (a,b)
|
||||
) engine=myisam;
|
||||
create table t3 (
|
||||
a double(16,6),
|
||||
b varchar(10),
|
||||
index (a,b)
|
||||
) engine=myisam;
|
||||
insert into t2 values ( null, '');
|
||||
insert into t2 values ( 9999999999.999999, '');
|
||||
insert into t3 select * from t2;
|
||||
select min(a), max(a) from t1;
|
||||
min(a) max(a)
|
||||
9999999999.999998 9999999999.999998
|
||||
flush tables;
|
||||
select min(a), max(a) from t1;
|
||||
min(a) max(a)
|
||||
9999999999.999998 9999999999.999998
|
||||
drop table t1, t2, t3;
|
||||
|
||||
Reference in New Issue
Block a user