~maria-captains/maria/5.3

Viewing all changes in revision 3615.

  • Committer: timour at askmonty
  • Date: 2013-01-17 14:08:05 UTC
  • Revision ID: timour@askmonty.org-20130117140805-4kyoq7azx4v2irhq
MDEV-3900 Optimizer difference between MySQL and MariaDB with stored functions in WHERE clause of UPDATE or DELETE statements

Analysis
The reason for the less efficient plan was result of a prior design decision -
to limit the eveluation of constant expressions during optimization to only
non-expensive ones. With this approach all stored procedures were considered
expensive, and were not evaluated during optimization. As a result, SPs didn't
participate in range optimization, which resulted in a plan with table scan
rather than index range scan.

Solution
Instead of considering all SPs expensive, consider expensive only those SPs
that are non-deterministic. If an SP is deterministic, the optimizer will
checj if it is constant, and may eventually evaluate it during optimization.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: