-
unknown authored
We create Item_cache_* object for each operand for each left operand of a subquery predicate. We also create Item_func_conv_charset for each string constant that needs charset conversion. So here we have Item_cache wrapped into Item_func_conv_charset. When Item_func_conv_charset wraps an constant Item it gets it's value in constructor. The problem is that Item_cache is ready to be used only at execution time, which is too late. The fix makes Item_cache wrapping constant to get ready at fix_fields() time. mysql-test/r/subselect.result: test result mysql-test/t/subselect.test: test case sql/item_cmpfunc.cc: now Item_optimizer::fix_left will store constant arguments in cache on fix_fields() stage
e8b32b2b