I can't find any other flaws in the patch. I know we are not agreeing on which version should such patches be pushed into, let's discuss this on the call. On Wed, Jun 07, 2017 at 05:49:35PM +0300, Sergey Petrunia wrote:
Hello Igor,
On Wed, May 31, 2017 at 10:45:07AM -0700, IgorBabaev wrote:
revision-id: 4d6b16f10f9991821c128c382d32eb85248b3926 (mariadb-5.5.56-14-g4d6b16f) parent(s): b8405c853fa30002d164d5fe2b4f8ea8979c09b8 author: Igor Babaev committer: Igor Babaev timestamp: 2017-05-31 10:45:07 -0700 message:
Fixed the bug mdev-12838.
...
+bool JOIN_TAB::keyuse_is_valid_for_access_in_chosen_plan(JOIN *join, + KEYUSE *keyuse) +{ + if (!access_from_tables_is_allowed(keyuse->used_tables, + join->sjm_lookup_tables)) + return false; + if (join->sjm_scan_tables & table->map) + return true; + table_map keyuse_sjm_scan_tables= keyuse->used_tables & + join->sjm_scan_tables; + if (!keyuse_sjm_scan_tables) + return true; + uint sjm_tab_nr= 0; + while (!(keyuse_sjm_scan_tables & 1 << sjm_tab_nr))
The above "1" is a 32-bit number, while it should have the same bit length as table_map (that is, 64). Please use "table_map(1)".
BR Sergei -- Sergei Petrunia, Software Developer MariaDB Corporation | Skype: sergefp | Blog: http://s.petrunia.net/blog
-- BR Sergei -- Sergei Petrunia, Software Developer MariaDB Corporation | Skype: sergefp | Blog: http://s.petrunia.net/blog