mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge mysql.com:/home/jimw/my/tmp_merge
into mysql.com:/home/jimw/my/mysql-5.1-clean
This commit is contained in:
@ -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'},
|
||||
$master->[1]->{'path_myddir'});
|
||||
|
||||
unless ($opt_skip_rpl)
|
||||
{
|
||||
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'});
|
||||
|
||||
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
|
||||
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 less server restarts
|
||||
reorder Reorder tests to get fewer server restarts
|
||||
help Get this help text
|
||||
unified-diff | udiff When presenting differences, use unified diff
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
18
sql/item.cc
18
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)
|
||||
|
@ -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;
|
||||
|
@ -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",
|
||||
@ -950,9 +958,10 @@ SHOW_VAR init_vars[]= {
|
||||
{"socket", (char*) &mysqld_unix_port, SHOW_CHAR_PTR},
|
||||
#endif
|
||||
{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}
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user