Wrong result with partial_match_rowid_merge , NOT IN , NULLs

Bug #893486 reported by Philip Stoev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MariaDB
Fix Released
Critical
Timour Katchaounov

Bug Description

The following query:

SELECT *
FROM t1
WHERE (t1.a, t1.b) NOT IN (
 SELECT t2.a, t2.b
 FROM t2
);

returns no rows when executed with partial_match_rowid_merge even though the WHERE should evaluate to TRUE for all rows in t1 (as confirmed by PostgreSQL).

EXPLAIN:

id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
2 SUBQUERY t2 ALL NULL NULL NULL NULL 2

minimal switch: materialization=on,partial_match_rowid_merge=on,partial_match_table_scan=off
full switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=off,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on

reproducible on both maria-5.3 and maria-5.3-mwl89

revision-id: <email address hidden>
date: 2011-11-20 04:53:07 -0800
build-date: 2011-11-22 10:41:56 +0200
revno: 3298
branch-nick: maria-5.3

test case:

SET SESSION optimizer_switch='materialization=on,partial_match_rowid_merge=on,partial_match_table_scan=off';
CREATE TABLE t1 ( a int, b int);
INSERT INTO t1 VALUES (0,NULL),(0,NULL);

CREATE TABLE t2 (a int, b int);
INSERT INTO t2 VALUES (2,2),(2,2);

SELECT *
FROM t1
WHERE (t1.a, t1.b) NOT IN (
 SELECT t2.a, t2.b
 FROM t2
);

Related branches

Changed in maria:
milestone: none → 5.3
assignee: nobody → Timour Katchaounov (timour)
Changed in maria:
importance: Undecided → Critical
status: New → In Progress
Changed in maria:
status: In Progress → Fix Committed
Changed in maria:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.