[MDEV-8604] Wrong result Created: 2015-08-12  Updated: 2019-01-22  Resolved: 2019-01-22

Status: Closed
Project: MariaDB Server
Component/s: Optimizer
Affects Version/s: 5.3.13, 5.5, 10.0
Fix Version/s: N/A

Type: Bug Priority: Minor
Reporter: Elena Stepanova Assignee: Unassigned
Resolution: Won't Fix Votes: 0
Labels: None


 Description   

Note: there is certainly a problem, but it's not new, and I don't see any capacity for fixing now, and besides it might well be a duplicate of a known issue. So I won't waste time on creating a proper bug report just yet.

CREATE TABLE `AA` (
`col_varchar_10_utf8_key` varchar(10)  CHARACTER SET utf8,
`col_varchar_10_latin1` varchar(10)  CHARACTER SET latin1,
`col_varchar_1024_latin1_key` varchar(1024)  CHARACTER SET latin1,
`col_varchar_10_latin1_key` varchar(10)  CHARACTER SET latin1,
pk integer auto_increment,
`col_int` int,
`col_varchar_1024_utf8` varchar(1024)  CHARACTER SET utf8,
`col_varchar_1024_latin1` varchar(1024)  CHARACTER SET latin1,
`col_int_key` int,
`col_varchar_10_utf8` varchar(10)  CHARACTER SET utf8,
`col_varchar_1024_utf8_key` varchar(1024)  CHARACTER SET utf8,
/*Indices*/
key (`col_varchar_10_utf8_key` ),
key (`col_varchar_1024_latin1_key` ),
key (`col_varchar_10_latin1_key` ),
primary key (pk),
key (`col_int_key` ),
key (`col_varchar_1024_utf8_key` )) ENGINE=myisam
;
 
CREATE OR REPLACE ALGORITHM=TEMPTABLE VIEW `view_AA` AS SELECT * FROM `AA`;
 
INSERT /*! IGNORE */ INTO AA VALUES  ('a', 'm', 'how', 'lkgtventqcwjkuvghoiyjubvhdacxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcw', NULL, 8, 'kgtventqcwjkuvghoiyjubvhdacxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqz', 'w', NULL, 'm', 'gtventqcwjkuvghoiyjubvhdacxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfp')
;
 
CREATE TABLE `C` (
`col_varchar_10_utf8` varchar(10)  CHARACTER SET utf8,
`col_varchar_1024_utf8_key` varchar(1024)  CHARACTER SET utf8,
`col_varchar_10_latin1_key` varchar(10)  CHARACTER SET latin1,
`col_varchar_1024_utf8` varchar(1024)  CHARACTER SET utf8,
`col_varchar_1024_latin1_key` varchar(1024)  CHARACTER SET latin1,
`col_int_key` int,
`col_int` int,
`col_varchar_10_latin1` varchar(10)  CHARACTER SET latin1,
`col_varchar_10_utf8_key` varchar(10)  CHARACTER SET utf8,
`col_varchar_1024_latin1` varchar(1024)  CHARACTER SET latin1,
pk integer auto_increment,
/*Indices*/
key (`col_varchar_1024_utf8_key` ),
key (`col_varchar_10_latin1_key` ),
key (`col_varchar_1024_latin1_key` ),
key (`col_int_key` ),
key (`col_varchar_10_utf8_key` ),
primary key (pk)) ENGINE=myisam
;
 
CREATE OR REPLACE ALGORITHM=TEMPTABLE VIEW `view_C` AS SELECT * FROM `C`;
 
INSERT /*! IGNORE */ INTO C VALUES  ('jubvhdacxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivty', 'no', 'ubvhdacxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmb', 'bvhdacxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcwcqothltpnzfelkjdpokqblunkyeqltuwalaecbfvfuuvqgnnneonuktlezchetkdzhuqsmlahniaawbvlkhwnjpwukapfykekarhapepkcnakcjbxrgruzcypblayucridfoaqoknvennudzcbgxslfhxizzwxcyjsvdrwrrgamvtehrxcpdghkbounnywttajimucabmyycnzyzdamcmllxeqcpbdovsrfjyupolxrcoxoexmibfoeyritdkknmyilvixsghhlknttgzeabiatuealdrwnmmquusetjitjitbehnmbofzkzvrqjxbritfjyjkubqnwwckdoofbglpcuerdxtxijctbkq', 'now', 1970339840, 789839872, 'r', 'c', 'r', NULL) ,  ('vhdacxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcwcqothltpnzfelkjdpokqblunkyeqltuwalaecbfvfuuvqgnnneonuktlezchetkdzhuqsmlahniaawbvlkhwnjpwukapfykekarhapepkcnakcjbxrgruzcypblayucridfoaqoknvennudzcbgxslfhxizzwxcyjsvdrwrrgamvtehrxcpdghkbounnywttajimucabmyycnzyzdamcmllxeqcpbdovsrfjyupolxrcoxoexmibfoeyritdkknmyilvixsghhlknttgzeabiatuealdrwnmmquusetjitjitbehnmbofzkzvrqjxbritfjyjkubqnwwckdoofbglpcuerdxtxijctbkqoafzjyjjtwlmkhukdslasbzbmmhiqgkamlhnratinxazdkuopsgniwmemcgkhpsvnppcjtecsgjefvoppznzohkxtvsybtaqmlatulmrqgkercerqqawullosnsjuxsidpquwtvblfwvzukypwmyyzkgkplgfadhrlesggcylvjyhi', 'hdacxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrd', 'a', 's', 'x', 7, 1744568320, 'out', 'when', 'dacxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcwcqothltpnzfelkjdpokqblunkyeqltuwalaecbfvfuuvqg', NULL) ,  ('be', 'know', 'can\'t', 'on', 'acxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcwcqothltpnzfelkjdpokqblunkyeqltuwalaecbfvfuuvqgnnneonuktlezchetkdzhuqsmlahniaawbvlkhwnjpwukapfykekarhapepkcnakcjbxrgruz', NULL, -665518080, 'cxukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwf', 'hey', 'up', NULL) ,  ('but', 'xukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcwcqothltpnzfelkjdpokqblunkyeqltuwalaecbfvfuuvqgnnneonuktlezchetkdzhuqsmlahniaawbvlkhwnjpwukapfykekarhapepkcnakcjbxrgruzcypblayuc', 'ukpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcwcqothltpnzfelkjdpokqblunkyeqltuwalaecbfvfuuvqgnnneonuktlezchetkdzhuqsmlahniaawbvlkhwnjpwukapfykekarhapepkcnakcjbxrgruzcypblayucridfoaqoknvennudzcbgxslfhxizzwxcyjsvdrwrrgamvtehrxcpdghkbounnywttajimucabmyycnzyzdamcmllxeqcpbdovsrfjyupolxrcoxoexmibfoeyritdkknmyilvixsghhlknttgzeabiatuealdrwnmmquusetjitjitbehnmbofzkzvrqjxbritfjyjkubqnwwckdoofbglpcuerdxtxijctbkqoafzjyjjtwlmkhukdslasbzbmmhiqgkamlhnratinxazdkuopsgniwmemcgkhpsvnppcjtecsgjefvoppznzohkxtvsybtaqmlatulmrqgker', 'g', 'kpqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcwcqothltpnzfelkjdpokqblunkyeqltuwalaecbfvfuuvqgnnneonuktlezchetk', 5, 234553344, 'c', 'l', 'why', NULL) ,  ('pqnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcwcqothltpnzfelkjdpokqblunkyeqltuwalaecbfvfuuvqgnnneonuktlezchetkdzhuqsmlahniaawbvlkhwnjpwukapfykekarhapepkcnakcjbxr', 'that\'s', 'but', 'you', 'qnqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcwcqothltpnzfelkjdpokqblunkyeqltuwalaecbfvfuuvqgnnneonuktlezchetkdzhuqsmlahniaawbvlkhwnjpwukapfykekarhapepkcnakcjbxrgruzcypblayucridfoaqoknvennudzcbgxslfhxizzwxcyjsvdrwrrgamvtehrxcpdghkbounnywttajimucabmyycnzyzdamcmllxeqcpbdovsrfjyupolxrcoxoexmibfoeyritdkknmyilvixsghhlknttgzeabiatuealdrwnmmquusetjitjitbehnmbofzkzvrqjxbritfjyjkubqnwwckdoofbglpcuerdxtxijctbkqoafzjyjjtwlmkhukdslasbzbmmhiqgkamlhnratinxazdkuopsgniwmemcgkhpsvnppcjtecsgjefvoppznzohkxtvsybtaqmlatulmrqgkercerqqawullosnsjuxsidpquwtvblfwvzukypwmyyzkgkplgfadhrlesggcylvjyhinbgreutytwwlhlqolhrqlkshfuithezebzpgtujqcxahcjnfouu', 1248264192, NULL, 'k', 'nqajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzr', 'be', NULL) ,  ('did', 'qajhqrblvgozfkdhqmo', 'my', 't', 'a', NULL, NULL, 'up', 'ajhqrblvgozfkdhqmouoxhunsophucuvghefknxqirxhpdwqyokwrlglgsqzfjtsoijfmlodpkxayivtyigugsqaihymtfmeieidnqghlwyixqdpldhjbzircedietpipigyfownkgigtvwgxpqzrdgkyirjcqtkazqtypkzqovhfuakazafsowexougvhhfmobsxouoqdumefgwkenemneyvdgrzrkoghzaonlzemdnuepcwtmatbwactscznelwfpkfjptwfadlevfwndopyjhcrgwbbmtjlmbfqsvfgvjbelwyimdxzcayqdrzailcboyokcrrkudueyhxjyozpubwlztsdjqheqvcorhwnsuihmhsjrobtlpmcwcqothltpnzfelkjdpokqblunkyeqltuwalaecbfvfuuvqgnnneonuktlezchetkdzhuqsmlahniaawbvlkhwnjpwukapfykekarhapepkcnakcjbxrgruzcypblayucridfoaqoknvennudzcbgxslfhxizzwxcyjsvdrwrrgamvtehrxcpdghkbounnywttajimucabmyycnzyzdamcmllxeqcpbdovsrfjyupolxrcoxoexmibfoeyritdkknmyilvixsghhlknttgzeabiatuealdrwnmmquusetjitjitbehnmbofzkzvrqjxbritfjyjkubqnwwckdoofbglpcuerdxtxijctbkqoafzjyjjtwlmkhukdslasbzbmmhiqgkamlhnratinxazdkuopsgniwmemcgkhpsvnppcjtecsgjefvoppznzohkxtvsybtaqmlatulmrqgkercerqqawullosnsjuxsidpquwtvb', 'c', NULL)
;
 
let $query = 
SELECT MIN( DISTINCT alias1.col_int ) AS field1, COUNT( DISTINCT alias1.col_int ) AS field2 FROM view_AA AS alias1 RIGHT JOIN AA AS alias2 LEFT JOIN AA AS alias3 ON alias2.col_varchar_10_utf8_key = alias3.col_varchar_1024_latin1_key LEFT OUTER JOIN view_C AS alias4 ON alias2.col_int_key = alias4.col_int_key ON alias1.pk = alias4.pk WHERE alias2.pk < 9 HAVING field2 < 5 ORDER BY field1, field2 ASC
;
 
eval $query;
 
SET SESSION optimizer_switch = REPLACE( @@optimizer_switch, "=on", "=off" );
SET SESSION optimizer_switch = "in_to_exists=on";
 
eval $query;

Actual result

+SELECT MIN( DISTINCT alias1.col_int ) AS field1, COUNT( DISTINCT alias1.col_int ) AS field2 FROM view_AA AS alias1 RIGHT JOIN AA AS alias2 LEFT JOIN AA AS alias3 ON alias2.col_varchar_10_utf8_key = alias3.col_varchar_1024_latin1_key LEFT OUTER JOIN view_C AS alias4 ON alias2.col_int_key = alias4.col_int_key ON alias1.pk = alias4.pk WHERE alias2.pk < 9 HAVING field2 < 5 ORDER BY field1, field2 ASC
+;
+field1	field2
+8	1
+SET SESSION optimizer_switch = REPLACE( @@optimizer_switch, "=on", "=off" );
+SET SESSION optimizer_switch = "in_to_exists=on";
+SELECT MIN( DISTINCT alias1.col_int ) AS field1, COUNT( DISTINCT alias1.col_int ) AS field2 FROM view_AA AS alias1 RIGHT JOIN AA AS alias2 LEFT JOIN AA AS alias3 ON alias2.col_varchar_10_utf8_key = alias3.col_varchar_1024_latin1_key LEFT OUTER JOIN view_C AS alias4 ON alias2.col_int_key = alias4.col_int_key ON alias1.pk = alias4.pk WHERE alias2.pk < 9 HAVING field2 < 5 ORDER BY field1, field2 ASC
+;
+field1	field2
+NULL	0



 Comments   
Comment by Elena Stepanova [ 2019-01-22 ]

Still reproducible on 10.0, but not on 10.1+. Given that 5.5 is in after-life mode, and 10.0 goes EOL, closing.

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