diff options
author | Gleb Shchepa <gshchepa@mysql.com> | 2009-04-28 05:19:13 +0500 |
---|---|---|
committer | Gleb Shchepa <gshchepa@mysql.com> | 2009-04-28 05:19:13 +0500 |
commit | def04705986a9abad6927c0b52aaf63c136b546b (patch) | |
tree | c349900b74ab8eb5bf4cda529dfa3b8b933ebd7e /mysql-test/t/select.test | |
parent | b7a70c8b3d30db6007b5e731ae2790e9c963d8c9 (diff) | |
download | mariadb-git-def04705986a9abad6927c0b52aaf63c136b546b.tar.gz |
backport from 6.0:
Bug #40925: Equality propagation takes non indexed attribute
Query execution plans and execution time of queries like
select a, b, c from t1
where a > '2008-11-21' and b = a limit 10
depended on the order of equality operator parameters:
"b = a" and "a = b" are not same.
An equality propagation algorithm has been fixed:
the substitute_for_best_equal_field function should not
substitute a field for an equal field if both fields belong
to the same table.
mysql-test/r/select.result:
Added test case for bug #40925.
mysql-test/t/select.test:
Added test case for bug #40925.
sql/item.cc:
Bug #40925: Equality propagation takes non indexed attribute
An equality propagation algorithm has been fixed:
the substitute_for_best_equal_field function should not
substitute a field for an equal field if both fields belong
to the same table.
Diffstat (limited to 'mysql-test/t/select.test')
-rw-r--r-- | mysql-test/t/select.test | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test index 1e8dc7ac2f6..60f2f191e0b 100644 --- a/mysql-test/t/select.test +++ b/mysql-test/t/select.test @@ -3737,4 +3737,18 @@ cr.f4 = cr2.f4 GROUP BY a.f3, cr.f4; drop table t1, t2, t3; + + +# +# Bug #40925: Equality propagation takes non indexed attribute +# + +CREATE TABLE t1 (a INT KEY, b INT); +INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4); + +EXPLAIN EXTENDED SELECT a, b FROM t1 WHERE a > 1 AND a = b LIMIT 2; +EXPLAIN EXTENDED SELECT a, b FROM t1 WHERE a > 1 AND b = a LIMIT 2; + +DROP TABLE t1; + --echo End of 5.0 tests |