[MDEV-6480] Remove conditions for which range optimizer returned SEL_ARG::IMPOSSIBLE. Created: 2014-07-23  Updated: 2021-11-26  Resolved: 2014-09-09

Status: Closed
Project: MariaDB Server
Component/s: None
Fix Version/s: 10.1.1

Type: Task Priority: Major
Reporter: Sergei Petrunia Assignee: Sergei Petrunia
Resolution: Fixed Votes: 0
Labels: optimizer, order-by-optimization

Issue Links:
Relates
relates to MDEV-6454 Performance degradation (suboptimal e... Closed

 Description   

This task is a "cut the Gordian Knot" approach to solving the problem described in two comments here:

https://jira.mariadb.org/browse/MDEV-6454?focusedCommentId=55355&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-55355

https://jira.mariadb.org/browse/MDEV-6454?focusedCommentId=55358&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-55358

The idea is that as soon as range optimizer concludes that some for Item* (possibly inside an OR) we have produced a tree of type SEL_ARG::IMPOSSIBLE, that Item* should be removed from the WHERE condition.

The will solve the problem described in the above two comments, and also will open additional optimization possibilities.

Challenges to explore

  • How does one remove Item* from the WHERE in a PS-safe way (call thd->change_item_tree() or ... ?)
  • Do we need to do AND/OR flattening after such conversion?


 Comments   
Comment by Sergei Petrunia [ 2014-08-27 ]

The fix is pushed to https://github.com/MariaDB/server/tree/bb-10.1-orderby-fixes

Comment by Sergei Petrunia [ 2014-09-09 ]

Pushed into 10.1 tree

Generated at Thu Feb 08 07:12:13 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.