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.


sql/sql_base.cc:
  Bug#27874: Non-grouped columns are allowed by * in 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.
sql/table.cc:
  Bug#27874: Non-grouped columns are allowed by * in 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.
mysql-test/r/group_by.result:
  Added a test case for the bug#27874: Non-grouped columns are allowed by * in ONLY_FULL_GROUP_BY mode.
mysql-test/t/group_by.test:
  Added a test case for the bug#27874: Non-grouped columns are allowed by * in ONLY_FULL_GROUP_BY mode.
This commit is contained in:
unknown 2007-04-24 22:35:57 +04:00
commit 3ffdeef04d
4 changed files with 41 additions and 1 deletions

View file

@ -1035,3 +1035,15 @@ HAVING SUM(t1_inner.b)+t1_outer.b > 5);
ERROR 42000: 'test.t1_outer.b' isn't in GROUP BY
DROP TABLE t1;
SET SQL_MODE = '';
SET SQL_MODE = 'ONLY_FULL_GROUP_BY';
create table t1(f1 int, f2 int);
select * from t1 group by f1;
ERROR 42000: 'test.t1.f2' isn't in GROUP BY
select * from t1 group by f2;
ERROR 42000: 'test.t1.f1' isn't in GROUP BY
select * from t1 group by f1, f2;
f1 f2
select t1.f1,t.* from t1, t1 t group by 1;
ERROR 42000: 'test.t.f1' isn't in GROUP BY
drop table t1;
SET SQL_MODE = '';