Bug #83569 Remove unnecessary Item member functions
Submitted: 27 Oct 2016 10:18 Modified: 27 Oct 2016 17:20
Reporter: Marko Mäkelä Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Optimizer Severity:S3 (Non-critical)
Version:8.0.1 OS:Any
Assigned to: CPU Architecture:Any

[27 Oct 2016 10:18] Marko Mäkelä
Description:
There are some non-overridden member functions in Item subclasses that look like overridden ones but are not. These unused declarations should be removed.

Also some totally unused member functions should be removed.

Some member functions are never overridden and should not be declared as virtual.

How to repeat:
See below.

Suggested fix:
Remove the non-overridden member function Item_bool::func_name().
(Item_bool inherits Item_int, not Item_int_func and Item_func.
Item_func::func_name() is being called, but not Item_bool::func_name().)

Item::cleanup_processor(), Item::propagate_derived_used():
Define as non-virtual inline member function.

Remove Item_udf_sum::may_have_named_parameters().
(Item_udf_sum does not inherit Item_func, where the virtual
member function is defined, but its ancestor Item_result_field.
The only caller of may_have_named_parameters() is Item_func::itemize(),
invoking it as Item_func::may_have_named_parameters().)

Remove the unused member functions fix_length_and_dec().

Remove the unused member functions size_of().
[27 Oct 2016 17:20] Paul DuBois
Posted by developer:
 
Fixed in 8.0.1

Code cleanup. No changelog entry needed.