1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

MDEV-8989: ORDER BY optimizer ignores equality propagation

Post-fix: add comments, remove dead-code.
This commit is contained in:
Sergei Petrunia
2016-05-27 15:16:08 +03:00
parent 99cd5a962c
commit a85f6533f1

View File

@@ -12343,22 +12343,19 @@ remove_const(JOIN *join,ORDER *first_order, COND *cond,
Item *item= order->item[0];
/*
We are using Context_identity below. This means only do
substitution when equality means
TODO: equality substitution in the context of ORDER BY is
sometimes allowed when it is not allowed in the general case.
We make the below call for its side effect: it will locate the
multiple equality the item belongs to and set item->item_equal
accordingly.
*/
Item *res= item->propagate_equal_fields(join->thd,
Value_source::
Context_identity(),
join->cond_equal);
if (res != item)
{
/* Substituted to a constant */
can_subst_to_first_table= true;
}
else
{
Item_equal *item_eq= item->get_item_equal();
if (item_eq)
Item_equal *item_eq;
if ((item_eq= res->get_item_equal()))
{
Item *first= item_eq->get_first(NO_PARTICULAR_TAB, NULL);
if (first->const_item() || first->used_tables() ==
@@ -12368,7 +12365,6 @@ remove_const(JOIN *join,ORDER *first_order, COND *cond,
}
}
}
}
if (!can_subst_to_first_table)
{