[MDEV-3610] LP:809266 - Diverging results with partial_match_rowid_merge=on Created: 2011-07-12 Updated: 2015-02-02 Resolved: 2012-10-04 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Philip Stoev (Inactive) | Assignee: | Timour Katchaounov (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | Launchpad | ||
| Attachments: |
|
| Description |
|
Even after the fix for mysql bug 51070, the following 2 queries return different results for no apparent reason when executed with partial_match_rowid_merge=on SELECT * FROM t1 WHERE ( 6 , 4 ) NOT IN ( SELECT b , a FROM t2 ); Either the two queries must return no rows because NOT IN involving NULLs is NULL and thus FALSE, or they should both return rows because (6, 4) is actually not present in t2. test case: CREATE TABLE t1 (c int) ; CREATE TABLE t2 (a int, b int) ; SET SESSION optimizer_switch='partial_match_rowid_merge=on,partial_match_table_scan=off'; The counters show that a different strategy is chosen for each query. Explain is identical:
minimal optimizer switch:partial_match_rowid_merge=on,partial_match_table_scan=off full optimizer 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=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=on,in_to_exists=on,semijoin=off,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=on,table_elimination=on bzr version-info |
| Comments |
| Comment by Timour Katchaounov (Inactive) [ 2011-07-13 ] |
|
Re: Diverging results with partial_match_rowid_merge=on |
| Comment by Rasmus Johansson (Inactive) [ 2011-12-13 ] |
|
Launchpad bug id: 809266 |