Bug#40657: assertion with out of range variables and traditional sql_mode
In STRICT mode, out-of-bounds values caused an error message to be queued (rather than just a warning), without any further error-like processing happening. (The error is queued during update, at which time it's too late. For it to be processed properly, it would need to be queued during check-stage.) The assertion rightfully complains that we're trying to send an OK while having an error queued. Changeset breaks a lot of tests out into check-stage. This also allows us to send more correct warnings/error messages. mysql-test/r/auto_increment_increment_basic.result: update test results reflecting more correct warnings mysql-test/r/auto_increment_increment_func.result: update test results reflecting more correct warnings mysql-test/r/auto_increment_offset_basic.result: update test results reflecting more correct warnings mysql-test/r/auto_increment_offset_func.result: update test results reflecting more correct warnings mysql-test/r/concurrent_insert_basic.result: update test results reflecting more correct warnings mysql-test/r/connect_timeout_basic.result: update test results reflecting more correct warnings mysql-test/r/default_week_format_basic.result: update test results reflecting more correct warnings mysql-test/r/delayed_insert_timeout_basic.result: update test results reflecting more correct warnings mysql-test/r/div_precision_increment_basic.result: update test results reflecting more correct warnings mysql-test/r/expire_logs_days_basic.result: update test results reflecting more correct warnings mysql-test/r/group_concat_max_len_basic.result: update test results reflecting more correct warnings mysql-test/r/interactive_timeout_basic.result: update test results reflecting more correct warnings mysql-test/r/max_allowed_packet_basic.result: update test results reflecting more correct warnings mysql-test/r/max_binlog_size_basic.result: update test results reflecting more correct warnings mysql-test/r/max_connections_basic.result: update test results reflecting more correct warnings mysql-test/r/max_delayed_threads_basic.result: update test results reflecting more correct warnings mysql-test/r/max_error_count_basic.result: update test results reflecting more correct warnings mysql-test/r/max_insert_delayed_threads_basic.result: update test results reflecting more correct warnings mysql-test/r/max_length_for_sort_data_basic.result: update test results reflecting more correct warnings mysql-test/r/max_prepared_stmt_count_basic.result: update test results reflecting more correct warnings mysql-test/r/max_relay_log_size_basic.result: update test results reflecting more correct warnings mysql-test/r/max_sort_length_basic.result: update test results reflecting more correct warnings mysql-test/r/max_sp_recursion_depth_basic.result: update test results reflecting more correct warnings mysql-test/r/myisam_data_pointer_size_basic.result: update test results reflecting more correct warnings mysql-test/r/net_buffer_length_basic.result: update test results reflecting more correct warnings mysql-test/r/net_read_timeout_basic.result: update test results reflecting more correct warnings mysql-test/r/net_write_timeout_basic.result: update test results reflecting more correct warnings mysql-test/r/optimizer_prune_level_basic.result: update test results reflecting more correct warnings mysql-test/r/optimizer_search_depth_basic.result: update test results reflecting more correct warnings mysql-test/r/preload_buffer_size_basic.result: update test results reflecting more correct warnings mysql-test/r/ps.result: update test results reflecting more correct warnings mysql-test/r/read_buffer_size_basic.result: update test results reflecting more correct warnings mysql-test/r/read_rnd_buffer_size_basic.result: update test results reflecting more correct warnings mysql-test/r/slave_net_timeout_basic.result: update test results reflecting more correct warnings mysql-test/r/slow_launch_time_basic.result: update test results reflecting more correct warnings mysql-test/r/table_definition_cache_basic.result: update test results reflecting more correct warnings mysql-test/r/table_lock_wait_timeout_basic.result: update test results reflecting more correct warnings mysql-test/r/table_open_cache_basic.result: update test results reflecting more correct warnings mysql-test/r/variables.result: add test case that throws error (rather than warning) in the middle of trying to set a system-variable. mysql-test/t/variables.test: add test case that throws error (rather than warning) in the middle of trying to set a system-variable. sql/set_var.cc: Add comments. Prevent double-warnings. Through warnings for negative values given to unsigned system-variables. Process errors and warnings at check() stage rather than update() stage, since we may only issue warnings at the latter.
Showing
This diff is collapsed.
Please register or sign in to comment