Thanks for the feedback. What makes this feature a little difficult for me to grasp is the requirement that the engine is responsible for doing some of the condition checking, and that MySQL is doing none of the checking.
Here are the handler cursor API functions:
index_first index_last index_next index_prev index_next_same index_read
If we return NULL for idx_cond_push, meaning we will do all of the condition checking, does that mean ALL of these functions need to check the condition before returning something to MySQL? Or just a subset? Actually, a subset. All of the functions that do forward scans must do
Hi Zardosht, On Thu, Feb 14, 2013 at 11:31:13AM -0500, Zardosht Kasheff wrote: the checking. ICP will not be used with functions that do reverse scans: index_last, index_prev.
Also, suppose we always return the full condition to MySQL, meaning the engine is responsible for none of the condition checking, but then the engine does condition checking anyway. Is that ok? Here is an example of what I mean. Suppose we have a key (a,b), and a query of select * from table where a between 5 and 10 and b=5; Would it be ok for our engine to return the full condition to MySQL, but then in subsequent calls to index_next and index_prev, choose to not return rows where b != 5?
I think it should be ok. Nothing comes to mind which could make it a problem. BR Sergei -- Sergei Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog