3016 Evgeny Potemkin 2011-07-29 [merge]
Auto-merged: mysql-trunk => wl5274.
@ sql/item_subselect.cc
Bug#12795555: Missing rows with ANY subquery.
Now Item_maxmin_subselect::was_values is assigned to FALSE.
Item_maxmin_subselect::any_value now executes subquery if it wasn't executed yet
prior to returning a value.
added:
mysql-test/suite/perfschema/include/stage_cleanup.inc
mysql-test/suite/perfschema/include/stage_setup.inc
mysql-test/suite/perfschema/r/stage_mdl_function.result
mysql-test/suite/perfschema/r/stage_mdl_global.result
mysql-test/suite/perfschema/r/stage_mdl_procedure.result
mysql-test/suite/perfschema/r/stage_mdl_table.result
mysql-test/suite/perfschema/t/stage_mdl_function.test
mysql-test/suite/perfschema/t/stage_mdl_global.test
mysql-test/suite/perfschema/t/stage_mdl_procedure.test
mysql-test/suite/perfschema/t/stage_mdl_table.test
renamed:
mysql-test/suite/sys_vars/r/default_temp_storage_engine_basic.result => mysql-test/suite/sys_vars/r/default_tmp_storage_engine_basic.result
mysql-test/suite/sys_vars/t/default_temp_storage_engine_basic.test => mysql-test/suite/sys_vars/t/default_tmp_storage_engine_basic.test
modified:
client/mysql.cc
client/mysql_upgrade.c
client/mysqladmin.cc
client/mysqlcheck.c
client/mysqldump.c
client/mysqlimport.c
client/mysqlshow.c
client/mysqltest.cc
client/readline.cc
cmake/create_initial_db.cmake.in
config.h.cmake
configure.cmake
dbug/dbug_analyze.c
dbug/my_main.c
dbug/tests.c
include/my_sys.h
libmysqld/emb_qcache.cc
libmysqld/lib_sql.cc
mysql-test/collections/default.weekly
mysql-test/include/mix1.inc
mysql-test/lib/mtr_cases.pm
mysql-test/mysql-test-run.pl
mysql-test/r/func_str.result
mysql-test/r/func_time.result
mysql-test/r/information_schema-big.result
mysql-test/r/merge.result
mysql-test/r/mysql_binary_mode.result
mysql-test/r/mysqld--help-notwin.result
mysql-test/r/mysqld--help-win.result
mysql-test/r/parser.result
mysql-test/r/signal.result
mysql-test/r/signal_demo3.result
mysql-test/r/sp-big.result
mysql-test/r/sp-bugs.result
mysql-test/r/sp-code.result
mysql-test/r/sp-error.result
mysql-test/r/sp.result
mysql-test/r/sp_trans.result
mysql-test/r/strict.result
mysql-test/r/view.result
mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam-master.opt
mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam-master.opt
mysql-test/suite/funcs_1/r/innodb_storedproc_02.result
mysql-test/suite/funcs_1/r/memory_storedproc_02.result
mysql-test/suite/funcs_1/r/myisam_storedproc_02.result
mysql-test/suite/funcs_1/r/storedproc.result
mysql-test/suite/innodb/r/innodb_bug54044.result
mysql-test/suite/innodb/r/innodb_mysql.result
mysql-test/suite/innodb/t/innodb_bug54044.test
mysql-test/suite/perfschema/r/ortho_iter.result
mysql-test/suite/perfschema/r/privilege_table_io.result
mysql-test/suite/perfschema/r/query_cache.result
mysql-test/suite/perfschema/r/start_server_innodb.result
mysql-test/suite/perfschema/r/start_server_no_cond_class.result
mysql-test/suite/perfschema/r/start_server_no_cond_inst.result
mysql-test/suite/perfschema/r/start_server_no_file_class.result
mysql-test/suite/perfschema/r/start_server_no_file_inst.result
mysql-test/suite/perfschema/r/start_server_no_mutex_class.result
mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result
mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result
mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result
mysql-test/suite/perfschema/r/start_server_no_setup_actors.result
mysql-test/suite/perfschema/r/start_server_no_setup_objects.result
mysql-test/suite/perfschema/r/start_server_no_stages_history.result
mysql-test/suite/perfschema/r/start_server_no_stages_history_long.result
mysql-test/suite/perfschema/r/start_server_no_statement_class.result
mysql-test/suite/perfschema/r/start_server_no_statements_history.result
mysql-test/suite/perfschema/r/start_server_no_statements_history_long.result
mysql-test/suite/perfschema/r/start_server_no_table_hdl.result
mysql-test/suite/perfschema/r/start_server_no_table_inst.result
mysql-test/suite/perfschema/r/start_server_no_thread_class.result
mysql-test/suite/perfschema/r/start_server_no_thread_inst.result
mysql-test/suite/perfschema/r/start_server_off.result
mysql-test/suite/perfschema/r/start_server_on.result
mysql-test/suite/perfschema/r/table_aggregate_global_2u_2t.result
mysql-test/suite/perfschema/r/table_aggregate_global_2u_3t.result
mysql-test/suite/perfschema/r/table_aggregate_global_4u_2t.result
mysql-test/suite/perfschema/r/table_aggregate_global_4u_3t.result
mysql-test/suite/perfschema/r/table_aggregate_hist_2u_2t.result
mysql-test/suite/perfschema/r/table_aggregate_hist_2u_3t.result
mysql-test/suite/perfschema/r/table_aggregate_hist_4u_2t.result
mysql-test/suite/perfschema/r/table_aggregate_hist_4u_3t.result
mysql-test/suite/perfschema/r/table_aggregate_off.result
mysql-test/suite/perfschema/r/table_aggregate_thread_2u_2t.result
mysql-test/suite/perfschema/r/table_aggregate_thread_2u_3t.result
mysql-test/suite/perfschema/r/table_aggregate_thread_4u_2t.result
mysql-test/suite/perfschema/r/table_aggregate_thread_4u_3t.result
mysql-test/suite/perfschema/r/table_io_aggregate_global_2u_2t.result
mysql-test/suite/perfschema/r/table_io_aggregate_global_2u_3t.result
mysql-test/suite/perfschema/r/table_io_aggregate_global_4u_2t.result
mysql-test/suite/perfschema/r/table_io_aggregate_global_4u_3t.result
mysql-test/suite/perfschema/r/table_io_aggregate_hist_2u_2t.result
mysql-test/suite/perfschema/r/table_io_aggregate_hist_2u_3t.result
mysql-test/suite/perfschema/r/table_io_aggregate_hist_4u_2t.result
mysql-test/suite/perfschema/r/table_io_aggregate_hist_4u_3t.result
mysql-test/suite/perfschema/r/table_io_aggregate_thread_2u_2t.result
mysql-test/suite/perfschema/r/table_io_aggregate_thread_2u_3t.result
mysql-test/suite/perfschema/r/table_io_aggregate_thread_4u_2t.result
mysql-test/suite/perfschema/r/table_io_aggregate_thread_4u_3t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_global_2u_2t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_global_2u_3t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_global_4u_2t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_global_4u_3t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_hist_2u_2t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_hist_2u_3t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_hist_4u_2t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_hist_4u_3t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_thread_2u_2t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_thread_2u_3t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_thread_4u_2t.result
mysql-test/suite/perfschema/r/table_lock_aggregate_thread_4u_3t.result
mysql-test/suite/rpl/r/rpl_row_sp005.result
mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result
mysql-test/suite/sys_vars/r/all_vars.result
mysql-test/suite/sys_vars/r/innodb_buffer_pool_filename_basic.result
mysql-test/suite/sys_vars/t/innodb_buffer_pool_filename_basic.test
mysql-test/t/bootstrap-master.opt
mysql-test/t/bootstrap.test
mysql-test/t/ctype_utf8mb4-master.opt
mysql-test/t/func_str.test
mysql-test/t/func_time.test
mysql-test/t/merge.test
mysql-test/t/mysql_binary_mode.test
mysql-test/t/parser.test
mysql-test/t/sp-error.test
mysys/my_init.c
mysys/my_static.c
mysys/mysys_priv.h
mysys/thr_lock.c
plugin/semisync/semisync_master.cc
plugin/semisync/semisync_master.h
plugin/semisync/semisync_master_plugin.cc
sql/CMakeLists.txt
sql/binlog.cc
sql/debug_sync.cc
sql/event_data_objects.cc
sql/event_db_repository.cc
sql/event_parse_data.cc
sql/event_queue.cc
sql/event_queue.h
sql/event_scheduler.cc
sql/event_scheduler.h
sql/events.cc
sql/events.h
sql/field.cc
sql/field.h
sql/field_conv.cc
sql/gen_lex_hash.cc
sql/ha_ndbcluster.cc
sql/ha_ndbcluster_binlog.cc
sql/ha_ndbcluster_cond.cc
sql/handler.cc
sql/item.cc
sql/item_cmpfunc.cc
sql/item_func.cc
sql/item_geofunc.cc
sql/item_strfunc.cc
sql/item_subselect.cc
sql/item_sum.cc
sql/item_timefunc.cc
sql/item_xmlfunc.cc
sql/log.cc
sql/log_event.cc
sql/mdl.cc
sql/mdl.h
sql/my_decimal.cc
sql/mysqld.cc
sql/mysqld.h
sql/opt_explain.cc
sql/opt_range.cc
sql/partition_info.cc
sql/protocol.cc
sql/replication.h
sql/rpl_master.cc
sql/rpl_record.cc
sql/rpl_reporting.cc
sql/rpl_rli.cc
sql/rpl_slave.cc
sql/set_var.cc
sql/sp.cc
sql/sp_head.cc
sql/sp_rcontext.cc
sql/sp_rcontext.h
sql/sql_acl.cc
sql/sql_admin.cc
sql/sql_alloc_error_handler.cc
sql/sql_alter.cc
sql/sql_audit.h
sql/sql_base.cc
sql/sql_base.h
sql/sql_cache.cc
sql/sql_class.cc
sql/sql_class.h
sql/sql_db.cc
sql/sql_error.cc
sql/sql_error.h
sql/sql_handler.cc
sql/sql_insert.cc
sql/sql_lex.cc
sql/sql_load.cc
sql/sql_locale.cc
sql/sql_parse.cc
sql/sql_partition.cc
sql/sql_plugin.cc
sql/sql_prepare.cc
sql/sql_prepare.h
sql/sql_priv.h
sql/sql_select.cc
sql/sql_servers.cc
sql/sql_show.cc
sql/sql_signal.cc
sql/sql_signal.h
sql/sql_table.cc
sql/sql_table.h
sql/sql_tablespace.cc
sql/sql_time.cc
sql/sql_time.h
sql/sql_trigger.cc
sql/sql_update.cc
sql/sql_view.cc
sql/sql_yacc.yy
sql/sys_vars.cc
sql/table.cc
sql/unireg.cc
storage/innobase/fil/fil0fil.c
storage/innobase/handler/ha_innodb.cc
storage/innobase/handler/handler0alter.cc
storage/innobase/handler/i_s.cc
storage/innobase/include/srv0srv.h
storage/innobase/include/sync0sync.h
storage/innobase/include/trx0sys.h
storage/innobase/include/trx0sys.ic
storage/innobase/include/trx0trx.h
storage/innobase/include/trx0trx.ic
storage/innobase/lock/lock0lock.c
storage/innobase/read/read0read.c
storage/innobase/row/row0ins.c
storage/innobase/row/row0row.c
storage/innobase/row/row0vers.c
storage/innobase/srv/srv0srv.c
storage/innobase/sync/sync0sync.c
storage/innobase/trx/trx0i_s.c
storage/innobase/trx/trx0purge.c
storage/innobase/trx/trx0roll.c
storage/innobase/trx/trx0rseg.c
storage/innobase/trx/trx0sys.c
storage/innobase/trx/trx0trx.c
storage/innobase/trx/trx0undo.c
storage/myisammrg/ha_myisammrg.cc
storage/myisammrg/myrg_open.c
storage/perfschema/pfs_server.h
support-files/mysql.spec.sh
unittest/gunit/CMakeLists.txt
unittest/gunit/opt_trace-t.cc
unittest/gunit/test_mdl_context_owner.h
unittest/gunit/test_utils.cc
unittest/gunit/test_utils.h
mysql-test/suite/sys_vars/r/default_tmp_storage_engine_basic.result
mysql-test/suite/sys_vars/t/default_tmp_storage_engine_basic.test
3015 Evgeny Potemkin 2011-07-28
Bug#12799731 - CRASH IN END_READ_RECORD.
By default when creating a tmp table the heap table is created. When there
is too much data the heap table is replaced with myisam and data
is flushed on disk. The problem is that the storage engine handler is cached
in join_tab. Thus for materialized derived tables the handler is cached when
the result tmp table is being heap, but cleanup is called when heap is freed
and tmp table is substituted with myisam. Trying to free already freed
handler caused crash.
The solution is to not cache storage engine handler as it always could be
easily obtained from table handler which is appropriately updated.
As materialized derived tables result now could have a key, a QUICK_... access
could be used for it. Since some QUICK_... descendants cache storage engine
handler they need to be updated also.
The QUICK_SELECT_I class now allow descendants to set storage engine handler
with virtual function called set_handler.
QUICK_GROUP_MIN_MAX_SELECT now doesn't cache storage engine handler and uses
stored one in table instead.
@ mysql-test/r/derived.result
Added a test case for the bug#12799731.
@ mysql-test/t/derived.test
Added a test case for the bug#12799731.
@ sql/opt_range.cc
Bug#12799731 - CRASH IN END_READ_RECORD.
QUICK_GROUP_MIN_MAX_SELECT now doesn't cache storage engine handler and uses
table handler to obtain it instead.
@ sql/opt_range.h
Bug#12799731 - CRASH IN END_READ_RECORD.
The QUICK_SELECT_I class is extended to store storage engine handler for its
descendants and now allows updating it through a setter function
set_handler.
QUICK_GROUP_MIN_MAX_SELECT now doesn't cache storage engine handler.
@ sql/records.cc
Bug#12799731 - CRASH IN END_READ_RECORD.
Use storage engine handler stored in table instead of cached one in READ_RECORD.
@ sql/records.h
Bug#12799731 - CRASH IN END_READ_RECORD.
Do not cache storage engine handler in READ_RECORD structure.
@ sql/sql_select.cc
Bug#12799731 - CRASH IN END_READ_RECORD.
Use storage engine handler stored in table instead of cached one in READ_RECORD.
Update quick select when tmp table's storage engine handler is changed .
@ sql/sql_show.cc
Bug#12799731 - CRASH IN END_READ_RECORD.
Do not cache storage engine handler in READ_RECORD structure.
modified:
mysql-test/r/derived.result
mysql-test/t/derived.test
sql/opt_range.cc
sql/opt_range.h
sql/records.cc
sql/records.h
sql/sql_select.cc
sql/sql_show.cc
Diff too large for email (16172 lines, the limit is 10000).
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk branch (evgeny.potemkin:3015 to 3016) | Evgeny Potemkin | 3 Aug |