Wrong result with semijoin materialization and blob fields
Bug #823930 reported by
Timour Katchaounov
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MariaDB |
Fix Released
|
High
|
Sergey Petrunia |
Bug Description
Two test cases from subselect_sj_mat that test materialization
with blobs produce incorrect empty result with semijoin
materialization. The two failing test cases are the ones that test
blobs with size 1024, and 1025. Here I extracted and simplified
a bit the test case marked with:
# BLOB == 1024 (group_
For length 1025 the wrong result is the same.
Changed in maria: | |
importance: | Medium → High |
Changed in maria: | |
status: | Confirmed → Fix Committed |
Changed in maria: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
create table t1_1024 (a1 blob(1024), a2 blob(1024));
create table t2_1024 (b1 blob(1024), b2 blob(1024));
create table t3_1024 (c1 blob(1024), c2 blob(1024));
insert into t1_1024 values
(concat('1 - 00', repeat('x', 1018)), concat('2 - 00', repeat('x', 1018)));
insert into t1_1024 values
(concat('1 - 01', repeat('x', 1018)), concat('2 - 01', repeat('x', 1018)));
insert into t1_1024 values
(concat('1 - 02', repeat('x', 1018)), concat('2 - 02', repeat('x', 1018)));
insert into t2_1024 values
(concat('1 - 01', repeat('x', 1018)), concat('2 - 01', repeat('x', 1018)));
insert into t2_1024 values
(concat('1 - 02', repeat('x', 1018)), concat('2 - 02', repeat('x', 1018)));
insert into t2_1024 values
(concat('1 - 03', repeat('x', 1018)), concat('2 - 03', repeat('x', 1018)));
insert into t3_1024 values
(concat('1 - 01', repeat('x', 1018)), concat('2 - 01', repeat('x', 1018)));
insert into t3_1024 values
(concat('1 - 02', repeat('x', 1018)), concat('2 - 02', repeat('x', 1018)));
insert into t3_1024 values
(concat('1 - 03', repeat('x', 1018)), concat('2 - 03', repeat('x', 1018)));
insert into t3_1024 values
(concat('1 - 04', repeat('x', 1018)), concat('2 - 04', repeat('x', 1018)));
-- Correct result switch= 'semijoin= off,materializa tion=on, in_to_exists= off';
set @@optimizer_
select left(a1,7), left(a2,7) b1,1,1024) from t2_1024 where b1 > '0');
from t1_1024
where a1 in (select substring(
-- Wrong result switch= 'semijoin= on,materializat ion=on, in_to_exists= off';
set @@optimizer_
select left(a1,7), left(a2,7) b1,1,1024) from t2_1024 where b1 > '0');
from t1_1024
where a1 in (select substring(