summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jimw@mysql.com>2006-04-30 09:43:26 -0700
committerunknown <jimw@mysql.com>2006-04-30 09:43:26 -0700
commit9f7548ae36faeed152160751ef9e8cc93abea5de (patch)
treebf3b1f1d96ac8393acffa8ef611566267ddaab3d
parent472f4a84d258624df901aa3096a733cf73c45c3b (diff)
parent96f58e1b268fdcf0c495efacd05268f1ad6f23ad (diff)
downloadmariadb-git-9f7548ae36faeed152160751ef9e8cc93abea5de.tar.gz
Merge mysql.com:/home/jimw/my/tmp_merge
into mysql.com:/home/jimw/my/mysql-5.1-clean mysql-test/r/user_var.result: Auto merged mysql-test/r/variables.result: Auto merged mysql-test/t/variables.test: Auto merged sql/item.cc: Auto merged sql/item_func.cc: Auto merged sql/sql_select.cc: Auto merged mysql-test/mysql-test-run.pl: Resolve conflict mysql-test/ndb/ndbcluster.sh: Resolve conflict sql/set_var.cc: Resolve conflict sql/share/errmsg.txt: Resolve conflict
-rwxr-xr-xmysql-test/mysql-test-run.pl136
-rw-r--r--mysql-test/ndb/ndbcluster.sh2
-rw-r--r--mysql-test/r/having.result13
-rw-r--r--mysql-test/r/user_var.result3
-rw-r--r--mysql-test/r/variables.result31
-rw-r--r--mysql-test/t/having.test13
-rw-r--r--mysql-test/t/user_var.test2
-rw-r--r--mysql-test/t/variables.test40
-rw-r--r--sql/item.cc18
-rw-r--r--sql/item_func.cc6
-rw-r--r--sql/set_var.cc26
-rw-r--r--sql/share/errmsg.txt2
-rw-r--r--sql/sql_select.cc4
13 files changed, 212 insertions, 84 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index c8d50990c14..4945b87408d 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -343,6 +343,7 @@ our @data_dir_lst;
sub main ();
sub initial_setup ();
sub command_line_setup ();
+sub snapshot_setup ();
sub executable_setup ();
sub environment_setup ();
sub kill_running_server ();
@@ -357,7 +358,7 @@ sub ndbcluster_install_slave ();
sub ndbcluster_start_slave ($);
sub ndbcluster_stop_slave ();
sub run_benchmarks ($);
-sub run_tests ();
+sub initialize_servers ();
sub mysql_install_db ();
sub install_db ($$);
sub run_testcase ($);
@@ -388,7 +389,7 @@ sub main () {
command_line_setup();
executable_setup();
- check_ndbcluster_support();
+ check_ndbcluster_support(); # We check whether to actually use it later
check_ssl_support();
environment_setup();
@@ -404,49 +405,37 @@ sub main () {
gprof_prepare();
}
- if ( ! $glob_use_running_server )
- {
- if ( $opt_start_dirty )
- {
- kill_running_server();
- }
- else
- {
- kill_and_cleanup();
- mysql_install_db();
- if ( $opt_force )
- {
- save_installed_db();
- }
- }
- }
-
- if ( $opt_start_dirty )
- {
- if ( ndbcluster_start($opt_with_ndbcluster) )
- {
- mtr_error("Can't start ndbcluster");
- }
- if ( mysqld_start('master',0,[],[],$using_ndbcluster_master) )
- {
- mtr_report("Servers started, exiting");
- }
- else
- {
- mtr_error("Can't start the mysqld server");
- }
- }
- elsif ( $opt_bench )
+ if ( $opt_bench )
{
+ initialize_servers();
run_benchmarks(shift); # Shift what? Extra arguments?!
}
elsif ( $opt_stress )
{
+ initialize_servers();
run_stress_test()
}
else
{
- run_tests();
+ # Figure out which tests we are going to run
+ my $tests= collect_test_cases($opt_suite);
+
+ # Turn off NDB and other similar options if no tests use it
+ my ($need_ndbcluster,$need_im,$need_slave);
+ foreach my $test (@$tests)
+ {
+ $need_ndbcluster||= $test->{ndb_test};
+ $need_im||= $test->{component_id} eq 'im';
+ $need_slave||= $test->{slave_num};
+ }
+ $opt_with_ndbcluster= 0 unless $need_ndbcluster;
+ $opt_skip_im= 1 unless $need_im;
+ $opt_skip_rpl= 1 unless $need_slave;
+
+ snapshot_setup();
+ initialize_servers();
+
+ run_suite($opt_suite, $tests);
}
mtr_exit(0);
@@ -996,20 +985,29 @@ sub command_line_setup () {
$path_mysqltest_log= "$opt_vardir/log/mysqltest.log";
$path_snapshot= "$opt_tmpdir/snapshot_$opt_master_myport/";
+}
+
+sub snapshot_setup () {
# Make a list of all data_dirs
@data_dir_lst = (
$master->[0]->{'path_myddir'},
- $master->[1]->{'path_myddir'},
- $slave->[0]->{'path_myddir'},
- $slave->[1]->{'path_myddir'},
- $slave->[2]->{'path_myddir'});
+ $master->[1]->{'path_myddir'});
- foreach my $instance (@{$instance_manager->{'instances'}})
+ unless ($opt_skip_rpl)
{
- push(@data_dir_lst, $instance->{'path_datadir'});
+ push @data_dir_lst, ($slave->[0]->{'path_myddir'},
+ $slave->[1]->{'path_myddir'},
+ $slave->[2]->{'path_myddir'});
}
+ unless ($opt_skip_im)
+ {
+ foreach my $instance (@{$instance_manager->{'instances'}})
+ {
+ push(@data_dir_lst, $instance->{'path_datadir'});
+ }
+ }
}
@@ -1440,7 +1438,7 @@ sub check_ndbcluster_support () {
return;
}
- mtr_report("Using ndbcluster, mysqld supports it");
+ mtr_report("Using ndbcluster if necessary, mysqld supports it");
$opt_with_ndbcluster= 1;
if ( $opt_ndbconnectstring )
{
@@ -1728,12 +1726,9 @@ sub run_benchmarks ($) {
# FIXME how to specify several suites to run? Comma separated list?
-sub run_tests () {
- run_suite($opt_suite);
-}
sub run_suite () {
- my $suite= shift;
+ my ($suite, $tests)= @_;
mtr_print_thick_line();
@@ -1741,8 +1736,6 @@ sub run_suite () {
mtr_timer_start($glob_timers,"suite", 60 * $opt_suite_timeout);
- my $tests= collect_test_cases($suite);
-
mtr_report("Starting Tests in the '$suite' suite");
mtr_print_header();
@@ -1784,14 +1777,37 @@ sub run_suite () {
#
##############################################################################
+sub initialize_servers () {
+ if ( ! $glob_use_running_server )
+ {
+ if ( $opt_start_dirty )
+ {
+ kill_running_server();
+ }
+ else
+ {
+ kill_and_cleanup();
+ mysql_install_db();
+ if ( $opt_force )
+ {
+ save_installed_db();
+ }
+ }
+ }
+}
+
sub mysql_install_db () {
# FIXME not exactly true I think, needs improvements
install_db('master', $master->[0]->{'path_myddir'});
install_db('master', $master->[1]->{'path_myddir'});
- install_db('slave', $slave->[0]->{'path_myddir'});
- install_db('slave', $slave->[1]->{'path_myddir'});
- install_db('slave', $slave->[2]->{'path_myddir'});
+
+ if ( ! $opt_skip_rpl )
+ {
+ install_db('slave', $slave->[0]->{'path_myddir'});
+ install_db('slave', $slave->[1]->{'path_myddir'});
+ install_db('slave', $slave->[2]->{'path_myddir'});
+ }
if ( ! $opt_skip_im )
{
@@ -2243,10 +2259,11 @@ sub run_testcase ($) {
}
# ----------------------------------------------------------------------
- # If --start-and-exit given, stop here to let user manually run tests
+ # If --start-and-exit or --start-dirty given, stop here to let user manually
+ # run tests
# ----------------------------------------------------------------------
- if ( $opt_start_and_exit )
+ if ( $opt_start_and_exit or $opt_start_dirty )
{
mtr_report("\nServers started, exiting");
exit(0);
@@ -3700,11 +3717,12 @@ Misc options
comment=STR Write STR to the output
notimer Don't show test case execution time
script-debug Debug this script itself
- start-and-exit Only initiate and start the "mysqld" servers, use
- the startup settings for the specified test case if any
- start-dirty Only start the "mysqld" servers without initiation
- fast Don't try to cleanup from earlier runs
- reorder Reorder tests to get less server restarts
+ start-and-exit Only initialize and start the servers, using the
+ startup settings for the specified test case (if any)
+ start-dirty Only start the servers (without initialization) for
+ the specified test case (if any)
+ fast Don't try to clean up from earlier runs
+ reorder Reorder tests to get fewer server restarts
help Get this help text
unified-diff | udiff When presenting differences, use unified diff
diff --git a/mysql-test/ndb/ndbcluster.sh b/mysql-test/ndb/ndbcluster.sh
index d55b53da2ae..74f21fdef92 100644
--- a/mysql-test/ndb/ndbcluster.sh
+++ b/mysql-test/ndb/ndbcluster.sh
@@ -264,7 +264,7 @@ done
# test if Ndb Cluster starts properly
if [ `expr $VERBOSE \> 1` = 1 ] ; then
- echo "Waiting for started..."
+ echo "Waiting for NDB data nodes to start..."
fi
if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK" > /dev/null 2>&1 ; then :; else
if [ `expr $VERBOSE \> 0` = 1 ] ; then
diff --git a/mysql-test/r/having.result b/mysql-test/r/having.result
index fe918e4c3ff..a37f260ff31 100644
--- a/mysql-test/r/having.result
+++ b/mysql-test/r/having.result
@@ -392,3 +392,16 @@ HAVING HU.PROJ.CITY = HU.STAFF.CITY);
EMPNUM GRADE*1000
E3 13000
DROP SCHEMA HU;
+USE test;
+create table t1(f1 int);
+select f1 from t1 having max(f1)=f1;
+f1
+select f1 from t1 group by f1 having max(f1)=f1;
+f1
+set session sql_mode='ONLY_FULL_GROUP_BY';
+select f1 from t1 having max(f1)=f1;
+ERROR 42000: non-grouping field 'f1' is used in HAVING clause
+select f1 from t1 group by f1 having max(f1)=f1;
+f1
+set session sql_mode='';
+drop table t1;
diff --git a/mysql-test/r/user_var.result b/mysql-test/r/user_var.result
index 8f2b89c18fd..9c3fdf0d8d2 100644
--- a/mysql-test/r/user_var.result
+++ b/mysql-test/r/user_var.result
@@ -215,9 +215,6 @@ select @@version;
select @@global.version;
@@global.version
#
-select @@session.VERSION;
-@@session.VERSION
-#
set @first_var= NULL;
create table t1 select @first_var;
show create table t1;
diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result
index ec8a715de1b..43b32782c63 100644
--- a/mysql-test/r/variables.result
+++ b/mysql-test/r/variables.result
@@ -275,7 +275,7 @@ ERROR HY000: Variable 'autocommit' is a SESSION variable and can't be used with
select @@global.timestamp;
ERROR HY000: Variable 'timestamp' is a SESSION variable
set @@version='';
-ERROR HY000: Unknown system variable 'version'
+ERROR HY000: Variable 'version' is a read only variable
set @@concurrent_insert=1;
ERROR HY000: Variable 'concurrent_insert' is a GLOBAL variable and should be set with SET GLOBAL
set @@global.sql_auto_is_null=1;
@@ -384,6 +384,7 @@ select @@sql_max_join_size,@@max_join_size;
set sql_quote_show_create=1;
set sql_safe_updates=1;
set sql_select_limit=1;
+set sql_select_limit=default;
set sql_warnings=1;
set global table_open_cache=100;
set storage_engine=myisam;
@@ -584,3 +585,31 @@ set @@global.character_set_filesystem=default;
select @@global.character_set_filesystem;
@@global.character_set_filesystem
binary
+set @old_sql_big_selects = @@sql_big_selects;
+set @@sql_big_selects = 1;
+show variables like 'sql_big_selects';
+Variable_name Value
+sql_big_selects ON
+set @@sql_big_selects = @old_sql_big_selects;
+set @@sql_notes = 0, @@sql_warnings = 0;
+show variables like 'sql_notes';
+Variable_name Value
+sql_notes OFF
+show variables like 'sql_warnings';
+Variable_name Value
+sql_warnings OFF
+set @@sql_notes = 1, @@sql_warnings = 1;
+show variables like 'sql_notes';
+Variable_name Value
+sql_notes ON
+show variables like 'sql_warnings';
+Variable_name Value
+sql_warnings ON
+select @@system_time_zone;
+@@system_time_zone
+#
+select @@version, @@version_comment, @@version_compile_machine,
+@@version_compile_os;
+@@version @@version_comment @@version_compile_machine @@version_compile_os
+# # # #
+End of 5.0 tests
diff --git a/mysql-test/t/having.test b/mysql-test/t/having.test
index 9b21e544657..9bea78a7bca 100644
--- a/mysql-test/t/having.test
+++ b/mysql-test/t/having.test
@@ -393,3 +393,16 @@ SELECT EMPNUM, GRADE*1000
HAVING HU.PROJ.CITY = HU.STAFF.CITY);
DROP SCHEMA HU;
+USE test;
+#
+# Bug#18739: non-standard HAVING extension was allowed in strict ANSI sql mode.
+#
+create table t1(f1 int);
+select f1 from t1 having max(f1)=f1;
+select f1 from t1 group by f1 having max(f1)=f1;
+set session sql_mode='ONLY_FULL_GROUP_BY';
+--error 1463
+select f1 from t1 having max(f1)=f1;
+select f1 from t1 group by f1 having max(f1)=f1;
+set session sql_mode='';
+drop table t1;
diff --git a/mysql-test/t/user_var.test b/mysql-test/t/user_var.test
index 61861c26ea8..e1b23a1782f 100644
--- a/mysql-test/t/user_var.test
+++ b/mysql-test/t/user_var.test
@@ -143,8 +143,6 @@ select @@Max_Allowed_Packet;
select @@version;
--replace_column 1 #
select @@global.version;
---replace_column 1 #
-select @@session.VERSION;
# End of 4.1 tests
diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test
index 649265dcc5e..018337f2631 100644
--- a/mysql-test/t/variables.test
+++ b/mysql-test/t/variables.test
@@ -169,7 +169,7 @@ set collation_connection=NULL;
set global autocommit=1;
--error 1238
select @@global.timestamp;
---error 1193
+--error 1238
set @@version='';
--error 1229
set @@concurrent_insert=1;
@@ -258,6 +258,8 @@ select @@sql_max_join_size,@@max_join_size;
set sql_quote_show_create=1;
set sql_safe_updates=1;
set sql_select_limit=1;
+# reset it, so later tests don't get confused
+set sql_select_limit=default;
set sql_warnings=1;
set global table_open_cache=100;
set storage_engine=myisam;
@@ -472,4 +474,38 @@ select @@character_set_filesystem;
set @@global.character_set_filesystem=default;
select @@global.character_set_filesystem;
-# End of 5.0 tests
+#
+# Bug #17849: Show sql_big_selects in SHOW VARIABLES
+#
+set @old_sql_big_selects = @@sql_big_selects;
+set @@sql_big_selects = 1;
+show variables like 'sql_big_selects';
+set @@sql_big_selects = @old_sql_big_selects;
+
+#
+# Bug #16195: SHOW VARIABLES doesn't report correctly sql_warnings and
+# sql_notes values
+#
+set @@sql_notes = 0, @@sql_warnings = 0;
+show variables like 'sql_notes';
+show variables like 'sql_warnings';
+set @@sql_notes = 1, @@sql_warnings = 1;
+show variables like 'sql_notes';
+show variables like 'sql_warnings';
+
+#
+# Bug #12792: @@system_time_zone is not SELECTable.
+#
+# Don't actually output, since it depends on the system
+--replace_column 1 #
+select @@system_time_zone;
+
+#
+# Bug #15684: system variables cannot be SELECTed (e.g. @@version_comment)
+#
+# Don't actually output, since it depends on the system
+--replace_column 1 # 2 # 3 # 4 #
+select @@version, @@version_comment, @@version_compile_machine,
+ @@version_compile_os;
+
+--echo End of 5.0 tests
diff --git a/sql/item.cc b/sql/item.cc
index 4081aa1e1af..ddb7b1e9a78 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -3154,7 +3154,8 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list)
both clauses contain different fields with the same names, a warning is
issued that name of 'ref' is ambiguous. We extend ANSI SQL in that when no
GROUP BY column is found, then a HAVING name is resolved as a possibly
- derived SELECT column.
+ derived SELECT column. This extension is allowed only if the
+ MODE_ONLY_FULL_GROUP_BY sql mode isn't enabled.
NOTES
The resolution procedure is:
@@ -3164,7 +3165,9 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list)
in the GROUP BY clause of Q.
- If found different columns with the same name in GROUP BY and SELECT
- issue a warning and return the GROUP BY column,
- - otherwise return the found SELECT column.
+ - otherwise
+ - if the MODE_ONLY_FULL_GROUP_BY mode is enabled return error
+ - else return the found SELECT column.
RETURN
@@ -3209,6 +3212,17 @@ resolve_ref_in_select_and_group(THD *thd, Item_ident *ref, SELECT_LEX *select)
}
}
+ if (thd->variables.sql_mode & MODE_ONLY_FULL_GROUP_BY &&
+ select_ref != not_found_item && !group_by_ref)
+ {
+ /*
+ Report the error if fields was found only in the SELECT item list and
+ the strict mode is enabled.
+ */
+ my_error(ER_NON_GROUPING_FIELD_USED, MYF(0),
+ ref->name, "HAVING");
+ return NULL;
+ }
if (select_ref != not_found_item || group_by_ref)
{
if (select_ref != not_found_item && !ambiguous_fields)
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 2e4d469d2d2..9281a8a1ddf 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -4559,12 +4559,6 @@ Item *get_system_var(THD *thd, enum_var_type var_type, LEX_STRING name,
sys_var *var;
LEX_STRING *base_name, *component_name;
- if (component.str == 0 &&
- !my_strcasecmp(system_charset_info, name.str, "VERSION"))
- return new Item_string(NULL, server_version,
- (uint) strlen(server_version),
- system_charset_info, DERIVATION_SYSCONST);
-
if (component.str)
{
base_name= &component;
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 16a0c752639..a0cec361599 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -438,6 +438,8 @@ sys_var_thd_storage_engine sys_storage_engine("storage_engine",
sys_var_sync_binlog_period sys_sync_binlog_period("sync_binlog", &sync_binlog_period);
#endif
sys_var_bool_ptr sys_sync_frm("sync_frm", &opt_sync_frm);
+sys_var_const_str sys_system_time_zone("system_time_zone",
+ system_time_zone);
sys_var_long_ptr sys_table_def_size("table_definition_cache",
&table_def_size);
sys_var_long_ptr sys_table_cache_size("table_open_cache",
@@ -455,6 +457,13 @@ sys_var_thd_ulong sys_tmp_table_size("tmp_table_size",
&SV::tmp_table_size);
sys_var_bool_ptr sys_timed_mutexes("timed_mutexes",
&timed_mutexes);
+sys_var_const_str sys_version("version", server_version);
+sys_var_const_str sys_version_comment("version_comment",
+ MYSQL_COMPILATION_COMMENT);
+sys_var_const_str sys_version_compile_machine("version_compile_machine",
+ MACHINE_TYPE);
+sys_var_const_str sys_version_compile_os("version_compile_os",
+ SYSTEM_TYPE);
sys_var_thd_ulong sys_net_wait_timeout("wait_timeout",
&SV::net_wait_timeout);
@@ -622,7 +631,6 @@ sys_var_thd_time_zone sys_time_zone("time_zone");
/* Read only variables */
-sys_var_const_str sys_os("version_compile_os", SYSTEM_TYPE);
sys_var_have_variable sys_have_archive_db("have_archive", &have_archive_db);
sys_var_have_variable sys_have_berkeley_db("have_bdb", &have_berkeley_db);
sys_var_have_variable sys_have_blackhole_db("have_blackhole_engine",
@@ -949,10 +957,11 @@ SHOW_VAR init_vars[]= {
#ifdef HAVE_SYS_UN_H
{"socket", (char*) &mysqld_unix_port, SHOW_CHAR_PTR},
#endif
- {sys_sort_buffer.name, (char*) &sys_sort_buffer, SHOW_SYS},
+ {sys_sort_buffer.name, (char*) &sys_sort_buffer, SHOW_SYS},
+ {sys_big_selects.name, (char*) &sys_big_selects, SHOW_SYS},
{sys_sql_mode.name, (char*) &sys_sql_mode, SHOW_SYS},
- {"sql_notes", (char*) &sys_sql_notes, SHOW_BOOL},
- {"sql_warnings", (char*) &sys_sql_warnings, SHOW_BOOL},
+ {"sql_notes", (char*) &sys_sql_notes, SHOW_SYS},
+ {"sql_warnings", (char*) &sys_sql_warnings, SHOW_SYS},
{sys_storage_engine.name, (char*) &sys_storage_engine, SHOW_SYS},
#ifdef HAVE_REPLICATION
{sys_sync_binlog_period.name,(char*) &sys_sync_binlog_period, SHOW_SYS},
@@ -981,10 +990,11 @@ SHOW_VAR init_vars[]= {
{sys_tx_isolation.name, (char*) &sys_tx_isolation, SHOW_SYS},
{sys_updatable_views_with_limit.name,
(char*) &sys_updatable_views_with_limit,SHOW_SYS},
- {"version", server_version, SHOW_CHAR},
- {"version_comment", (char*) MYSQL_COMPILATION_COMMENT, SHOW_CHAR},
- {"version_compile_machine", (char*) MACHINE_TYPE, SHOW_CHAR},
- {sys_os.name, (char*) &sys_os, SHOW_SYS},
+ {sys_version.name, (char*) &sys_version, SHOW_SYS},
+ {sys_version_comment.name, (char*) &sys_version_comment, SHOW_SYS},
+ {sys_version_compile_machine.name, (char*) &sys_version_compile_machine,
+ SHOW_SYS},
+ {sys_version_compile_os.name, (char*) &sys_version_compile_os, SHOW_SYS},
{sys_net_wait_timeout.name, (char*) &sys_net_wait_timeout, SHOW_SYS},
{NullS, NullS, SHOW_LONG}
};
diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt
index 4816f37bd32..01e66b35c0f 100644
--- a/sql/share/errmsg.txt
+++ b/sql/share/errmsg.txt
@@ -5822,6 +5822,8 @@ ER_MAX_PREPARED_STMT_COUNT_REACHED 42000
eng "Can't create more than max_prepared_stmt_count statements (current value: %lu)"
ER_VIEW_RECURSIVE
eng "`%-.64s`.`%-.64s` contains view recursion"
+ER_NON_GROUPING_FIELD_USED 42000
+ eng "non-grouping field '%-.64s' is used in %-.64s clause"
ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
eng "Cannot switch out of the row-based binary log format when the session has open temporary tables"
ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index aab126408f0..79b1c3836dc 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -12690,6 +12690,10 @@ setup_group(THD *thd, Item **ref_pointer_array, TABLE_LIST *tables,
if (item->type() != Item::SUM_FUNC_ITEM && !item->marker &&
!item->const_item())
{
+ /*
+ TODO: change ER_WRONG_FIELD_WITH_GROUP to more detailed
+ ER_NON_GROUPING_FIELD_USED
+ */
my_error(ER_WRONG_FIELD_WITH_GROUP, MYF(0), item->full_name());
return 1;
}