Week 2 report.
This week was more productive than previous. I put aside complex expressions, subselection, unions etc. Took into account the comments about bad iterators usage and tried to fix it. I've also implemented two simple rewrite rules.
1) ... where 'expr' => ...where 'vfield'.
2) ... where 'expr' [>=, >, =, <=, <] 'some-value' => ... where ('expr' [>=, >, =, <=, <] 'some-value') and ('vfield' [>=, >, =, <=, <] 'some-value').
I am really not sure if rule №1 will somehow help optimizer. Probably it is useless.
For the rule №2 I wrote test.
Now I have failing tests gcol.gcol_keys_innodb gcol.gcol_keys_myisam. I will further research how my changes broke them.
Also I've encountered strange error in travis-ci. Have no idea how to fix it.
The command "env DEB_BUILD_OPTIONS="parallel=4" debian/autobake-deb.sh;" exited with 2.
Initially I put my code into sql_parse, but now I think that a better approach will be to put it somewhere in optimizer.
From messages in zulip I understood that some rewrites could not be used by the optimizer. My first approach was to try to generalize all rewrite rules, but now I am totally confused about what rules to implement next week.