Bug #27874 | sql-mode: only full group by mode not working | ||
---|---|---|---|
Submitted: | 17 Apr 2007 6:45 | Modified: | 8 May 2007 1:25 |
Reporter: | Saravanan Ramamoorthy | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S1 (Critical) |
Version: | 5.0.40-BK, 5.0.37- Community | OS: | Windows (2000) |
Assigned to: | Evgeny Potemkin | CPU Architecture: | Any |
Tags: | regression |
[17 Apr 2007 6:45]
Saravanan Ramamoorthy
[17 Apr 2007 8:27]
Valeriy Kravchuk
Thank you for a problem report. On latest 5.0.40-BK on Linux I've got: mysql> show variables like 'sql_mode'; +---------------+--------------------+ | Variable_name | Value | +---------------+--------------------+ | sql_mode | ONLY_FULL_GROUP_BY | +---------------+--------------------+ 1 row in set (0.00 sec) mysql> select col1, col2, col3 from abc group by col1; ERROR 1055 (42000): 'test.abc.col2' isn't in GROUP BY mysql> select col1, col2 from abc group by col1; ERROR 1055 (42000): 'test.abc.col2' isn't in GROUP BY Note that the above is correct, and different from what you described. But: mysql> select * from abc group by col1; Empty set (0.00 sec) mysql> select version(); +-----------+ | version() | +-----------+ | 5.0.40 | +-----------+ 1 row in set (0.00 sec) I think, that SELECT * for this table should be treated as SELECT col1, col2, col3. So, this is a bug.
[24 Apr 2007 16: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/25317 ChangeSet@1.2438, 2007-04-24 20:12:54+04:00, evgen@moonbone.local +4 -0 Bug#27874: Non-grouped columns are allowed by * in ONLY_FULL_GROUP_BY mode. When fields are inserted instead of * in the select list the wasn't marked for check for ONLY_FULL_GROUP_BY mode. The Field_iterator_table::create_item() function now marks newly created items for check when in the ONLY_FULL_GROUP_BY_MODE. The setup_wild() and the insert_fields() functions now maintains the cur_pos_in_select_list counter for the ONLY_FULL_GROUP_BY mode.
[24 Apr 2007 18:38]
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/25346 ChangeSet@1.2438, 2007-04-24 22:35:57+04:00, evgen@moonbone.local +4 -0 Bug#27874: Non-grouped columns are allowed by * in ONLY_FULL_GROUP_BY mode. When fields are inserted instead of * in the select list they were not marked for check for the ONLY_FULL_GROUP_BY mode. The Field_iterator_table::create_item() function now marks newly created items for check when in the ONLY_FULL_GROUP_BY mode. The setup_wild() and the insert_fields() functions now maintain the cur_pos_in_select_list counter for the ONLY_FULL_GROUP_BY mode.
[30 Apr 2007 12:57]
Bugs System
Pushed into 5.0.42
[30 Apr 2007 12:58]
Bugs System
Pushed into 5.1.18-beta
[8 May 2007 1:25]
Paul DuBois
Noted in 5.0.42, 5.1.18 changelogs.