Bug #14019 | group by converts literal string to column name | ||
---|---|---|---|
Submitted: | 13 Oct 2005 22:45 | Modified: | 26 Oct 2006 3:17 |
Reporter: | Martin Friebe (Gold Quality Contributor) (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Optimizer | Severity: | S3 (Non-critical) |
Version: | 4.1.14 / 5.1.13 | OS: | Any (*) |
Assigned to: | Georgi Kodinov | CPU Architecture: | Any |
[13 Oct 2005 22:45]
Martin Friebe
[13 Oct 2005 22:56]
MySQL Verification Team
Thank you for the bug report. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 4.0.26-debug-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create table tb1 ( c1 int); insert into tb1 values (1),(2),(3); Query OK, 0 rows affected (0.18 sec) Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> select c1 from tb1 group by 'c2'; +------+ | c1 | +------+ | 1 | +------+ 1 row in set (0.01 sec) miguel@hegel:~/dbs/4.1> bin/mysql -uroot test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 4.1.16-debug-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create table tb1 ( c1 int); insert into tb1 values (1),(2),(3); Query OK, 0 rows affected (0.05 sec) Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> select c1 as a from tb1 group by 'a'; +------+ | a | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.01 sec) miguel@hegel:~/dbs/5.0> bin/mysql -uroot test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 5.0.15-rc-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create table tb1 ( c1 int); insert into tb1 values (1),(2),(3); Query OK, 0 rows affected (0.10 sec) Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> mysql> select c1 as a from tb1 group by 'a'; +------+ | a | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.01 sec)
[26 Sep 2006 13:15]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/12527 ChangeSet@1.2573, 2006-09-26 16:10:23+03:00, gkodinov@macbook.gmz +5 -0 BUG#14019 : group by converts literal string to column name When resolving unqualified name references MySQL was not checking what is the item type for the reference. Thus e.g a string literal item that has by convention a name equal to its string value will also work as a reference to a SELECT list item or a table field. Fixed by allowing only Item_ref or Item_field to reference by (unqualified) name.
[16 Oct 2006 10:16]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/13724 ChangeSet@1.2573, 2006-10-16 13:10:25+03:00, gkodinov@macbook.gmz +5 -0 BUG#14019 : group by converts literal string to column name When resolving unqualified name references MySQL was not checking what is the item type for the reference. Thus e.g a string literal item that has by convention a name equal to its string value will also work as a reference to a SELECT list item or a table field. Fixed by allowing only Item_ref or Item_field to referenced by (unqualified) name.
[21 Oct 2006 9:08]
Georgi Kodinov
Pushed in 4.1.22/5.0.27/5.1.13-beta
[26 Oct 2006 3:17]
Paul DuBois
Noted in 4.1.22, 5.0.30, 5.1.13 changelogs.