[MDEV-3560] LP:884175 - Wrong result with aggregate + varchar key Created: 2011-10-31 Updated: 2015-02-02 Resolved: 2012-10-04 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Critical |
| Reporter: | Philip Stoev (Inactive) | Assignee: | Igor Babaev |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | Launchpad | ||
| Attachments: |
|
| Description |
|
The following query: SELECT MAX(f2) FROM t1 where f2 = 'abc'; returns rows even though f2 is defined as VARCHAR(1) and does not contain the value 'abc'. If the column does not have an index, no rows are returned. Explain: Select tables optimized away repeatable in maria-5.2, mysql-5.5 test case: DROP TABLE IF EXISTS t1; SELECT MAX(f1) FROM t1 where f1 = 'abc'; |
| Comments |
| Comment by Elena Stepanova [ 2012-01-12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Re: Wrong result with aggregate + varchar key | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Oleksandr Byelkin [ 2012-02-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Re: Wrong result with aggregate + varchar key This could be cause: WHERE:(after remove) multiple equal('abc', `test`.`t1`.`f2`) as far as it can't be true due to field length. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by sbester [ 2012-02-22 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Re: Wrong result with aggregate + varchar key http://bugs.mysql.com/bug.php?id=45680 you're using varchar(1) but looking for a 3 char string.. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Igor Babaev [ 2012-03-09 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Re: Wrong result with aggregate + varchar key MariaDB [test]> EXPLAIN
---
--- MariaDB [test]> SELECT MIN(f1) FROM t1 WHERE f1 >= 'abc';
---------
--------- MariaDB [test]>
---
--- MariaDB [test]> SELECT MIN(f2) FROM t1 WHERE f2 >= 'abc';
---------
--------- MariaDB [test]>
---
--- MariaDB [test]> SELECT MIN(f1) FROM t1 WHERE f1 BETWEEN 'abc' AND 'b' ;
---------
--------- MariaDB [test]>
---
--- MariaDB [test]> SELECT MIN(f2) FROM t1 WHERE f2 BETWEEN 'abc' AND 'b' ;
---------
--------- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Rasmus Johansson (Inactive) [ 2012-04-03 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Launchpad bug id: 884175 |