mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Addendum patch for bug #54190.
The patch caused some test failures when merged to 5.5 because, unlike 5.1, it utilizes Item_cache_row to actually cache row values. The problem was that Item_cache_row::bring_value() essentially did nothing. In particular, it did not update its null_value, so all Item_cache_row objects were always having their null_values set to TRUE. This went unnoticed previously, but now when Arg_comparator::compare_row() actually depends on the row's null_value to evaluate the comparison, the problem has surfaced. Fixed by calling the underlying item's bring_value() and updating null_value in Item_cache_row::bring_value(). Since the problem also exists in 5.1 code (albeit hidden, since the relevant code is not used anywhere), the addendum patch is against 5.1.
This commit is contained in:
parent
df198b5f6a
commit
f563a012ce
1 changed files with 4 additions and 1 deletions
|
@ -7404,9 +7404,12 @@ bool Item_cache_row::null_inside()
|
|||
|
||||
void Item_cache_row::bring_value()
|
||||
{
|
||||
if (!example)
|
||||
return;
|
||||
example->bring_value();
|
||||
null_value= example->null_value;
|
||||
for (uint i= 0; i < item_count; i++)
|
||||
values[i]->bring_value();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue