List:Commits« Previous MessageNext Message »
From:Tor Didriksen Date:June 28 2011 1:46pm
Subject:bzr push into mysql-trunk branch (tor.didriksen:3394 to 3396)
View as plain text  
 3396 Tor Didriksen	2011-06-28 [merge]
      NULL merge trunk => opt-backporting

 3395 Tor Didriksen	2011-06-28 [merge]
      Automerge trunk => opt-backporting

    removed:
      mysql-test/suite/innodb/include/innodb_stats_bootstrap.inc
      storage/innobase/scripts/
      storage/innobase/scripts/persistent_storage.sql
    added:
      extra/yassl/include/openssl/transport_types.h
      mysql-test/r/archive_debug.result
      mysql-test/r/mysql_embedded.result
      mysql-test/suite/binlog/r/binlog_reset_master.result
      mysql-test/suite/binlog/t/binlog_reset_master.test
      mysql-test/suite/innodb/r/innodb_buffer_pool_load.result
      mysql-test/suite/innodb/r/innodb_index_large_prefix.result
      mysql-test/suite/innodb/r/innodb_prefix_index_liftedlimit.result
      mysql-test/suite/innodb/r/innodb_prefix_index_restart_server.result
      mysql-test/suite/innodb/t/innodb_buffer_pool_load-master.opt
      mysql-test/suite/innodb/t/innodb_buffer_pool_load.test
      mysql-test/suite/innodb/t/innodb_index_large_prefix.test
      mysql-test/suite/innodb/t/innodb_prefix_index_liftedlimit.test
      mysql-test/suite/innodb/t/innodb_prefix_index_restart_server.test
      mysql-test/suite/perfschema/r/table_schema.result
      mysql-test/suite/perfschema/t/table_schema.test
      mysql-test/suite/sys_vars/r/innodb_buffer_pool_dump_at_shutdown_basic.result
      mysql-test/suite/sys_vars/r/innodb_buffer_pool_dump_now_basic.result
      mysql-test/suite/sys_vars/r/innodb_buffer_pool_filename_basic.result
      mysql-test/suite/sys_vars/r/innodb_buffer_pool_load_abort_basic.result
      mysql-test/suite/sys_vars/r/innodb_buffer_pool_load_at_startup_basic.result
      mysql-test/suite/sys_vars/r/innodb_buffer_pool_load_now_basic.result
      mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_at_shutdown_basic.test
      mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_now_basic.test
      mysql-test/suite/sys_vars/t/innodb_buffer_pool_filename_basic.test
      mysql-test/suite/sys_vars/t/innodb_buffer_pool_load_abort_basic.test
      mysql-test/suite/sys_vars/t/innodb_buffer_pool_load_at_startup_basic.test
      mysql-test/suite/sys_vars/t/innodb_buffer_pool_load_now_basic.test
      mysql-test/t/archive_debug.test
      mysql-test/t/mysql_embedded.test
      storage/innobase/buf/buf0dump.c
      storage/innobase/include/buf0dump.h
      unittest/gunit/bounds_checked_array-t.cc
      vio/viopipe.c
      vio/vioshm.c
    modified:
      .bzrignore
      client/completion_hash.cc
      client/mysql.cc
      client/mysql_upgrade.c
      client/mysqladmin.cc
      client/mysqlbinlog.cc
      client/mysqlcheck.c
      client/mysqldump.c
      client/mysqlimport.c
      client/mysqlshow.c
      client/mysqlslap.c
      client/mysqltest.cc
      client/sql_string.cc
      cmake/install_layout.cmake
      cmake/make_dist.cmake.in
      cmake/os/Windows.cmake
      cmake/os/WindowsCache.cmake
      cmake/plugin.cmake
      config.h.cmake
      configure.cmake
      dbug/dbug.c
      extra/comp_err.c
      extra/perror.c
      extra/replace.c
      extra/yassl/include/openssl/ssl.h
      extra/yassl/include/socket_wrapper.hpp
      extra/yassl/src/handshake.cpp
      extra/yassl/src/socket_wrapper.cpp
      extra/yassl/src/ssl.cpp
      extra/yassl/src/yassl_error.cpp
      include/hash.h
      include/m_string.h
      include/my_base.h
      include/my_global.h
      include/my_sys.h
      include/myisampack.h
      include/mysql.h.pp
      include/mysql/plugin_audit.h
      include/mysql/plugin_audit.h.pp
      include/mysql_com.h
      include/violite.h
      libmysql/authentication_win/plugin_client.cc
      libmysql/errmsg.c
      libmysql/libmysql.c
      libmysqld/emb_qcache.cc
      libmysqld/lib_sql.cc
      mysql-test/collections/default.experimental
      mysql-test/extra/binlog_tests/binlog_cache_stat.test
      mysql-test/extra/rpl_tests/rpl_auto_increment.test
      mysql-test/extra/rpl_tests/rpl_binlog_max_cache_size.test
      mysql-test/include/icp_tests.inc
      mysql-test/include/mysqlhotcopy.inc
      mysql-test/include/plugin.defs
      mysql-test/include/subquery.inc
      mysql-test/mysql-test-run.pl
      mysql-test/r/1st.result
      mysql-test/r/alter_table.result
      mysql-test/r/connect.result
      mysql-test/r/events_bugs.result
      mysql-test/r/flush.result
      mysql-test/r/func_math.result
      mysql-test/r/func_str.result
      mysql-test/r/gis-precise.result
      mysql-test/r/gis-rtree.result
      mysql-test/r/group_by.result
      mysql-test/r/innodb_icp.result
      mysql-test/r/innodb_icp_all.result
      mysql-test/r/innodb_icp_none.result
      mysql-test/r/innodb_mysql_lock.result
      mysql-test/r/innodb_mysql_sync.result
      mysql-test/r/log_tables_upgrade.result
      mysql-test/r/lowercase_table4.result
      mysql-test/r/multi_update.result
      mysql-test/r/multi_update_innodb.result
      mysql-test/r/myisam_debug.result
      mysql-test/r/myisam_icp.result
      mysql-test/r/myisam_icp_all.result
      mysql-test/r/myisam_icp_none.result
      mysql-test/r/mysql_upgrade.result
      mysql-test/r/mysql_upgrade_ssl.result
      mysql-test/r/mysqlcheck.result
      mysql-test/r/openssl_1.result
      mysql-test/r/partition.result
      mysql-test/r/partition_datatype.result
      mysql-test/r/plugin_auth.result
      mysql-test/r/ps.result
      mysql-test/r/query_cache_28249.result
      mysql-test/r/query_cache_debug.result
      mysql-test/r/sp_notembedded.result
      mysql-test/r/sp_sync.result
      mysql-test/r/ssl.result
      mysql-test/r/subquery_all.result
      mysql-test/r/subquery_all_jcl6.result
      mysql-test/r/subquery_nomat_nosj.result
      mysql-test/r/subquery_nomat_nosj_jcl6.result
      mysql-test/r/subquery_none.result
      mysql-test/r/subquery_none_jcl6.result
      mysql-test/r/symlink.result
      mysql-test/r/system_mysql_db.result
      mysql-test/r/trigger-compat.result
      mysql-test/r/trigger.result
      mysql-test/r/type_datetime.result
      mysql-test/r/wait_timeout.result
      mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result
      mysql-test/suite/binlog/r/binlog_row_cache_stat.result
      mysql-test/suite/binlog/r/binlog_stm_cache_stat.result
      mysql-test/suite/funcs_1/r/is_columns_mysql.result
      mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result
      mysql-test/suite/funcs_1/r/is_key_column_usage.result
      mysql-test/suite/funcs_1/r/is_statistics.result
      mysql-test/suite/funcs_1/r/is_statistics_mysql.result
      mysql-test/suite/funcs_1/r/is_statistics_mysql_embedded.result
      mysql-test/suite/funcs_1/r/is_table_constraints.result
      mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result
      mysql-test/suite/funcs_1/r/is_table_constraints_mysql_embedded.result
      mysql-test/suite/funcs_1/r/is_tables_mysql.result
      mysql-test/suite/funcs_1/r/is_tables_mysql_embedded.result
      mysql-test/suite/innodb/include/innodb_stats.inc
      mysql-test/suite/innodb/r/innodb-index.result
      mysql-test/suite/innodb/r/innodb-system-table-view.result
      mysql-test/suite/innodb/r/innodb-zip.result
      mysql-test/suite/innodb/r/innodb_bug57904.result
      mysql-test/suite/innodb/r/innodb_mysql.result
      mysql-test/suite/innodb/r/innodb_stats.result
      mysql-test/suite/innodb/r/innodb_stats_drop_locked.result
      mysql-test/suite/innodb/t/innodb-index.test
      mysql-test/suite/innodb/t/innodb-system-table-view.test
      mysql-test/suite/innodb/t/innodb-zip.test
      mysql-test/suite/innodb/t/innodb_bug11933790.test
      mysql-test/suite/innodb/t/innodb_bug57904.test
      mysql-test/suite/innodb/t/innodb_bug60049.test
      mysql-test/suite/innodb/t/innodb_mysql.test
      mysql-test/suite/innodb/t/innodb_stats.test
      mysql-test/suite/innodb/t/innodb_stats_drop_locked.test
      mysql-test/suite/perfschema/include/cleanup_helper.inc
      mysql-test/suite/perfschema/include/upgrade_check.inc
      mysql-test/suite/perfschema/r/all_tests.result
      mysql-test/suite/perfschema/r/pfs_upgrade.result
      mysql-test/suite/perfschema/r/schema.result
      mysql-test/suite/perfschema/r/selects.result
      mysql-test/suite/perfschema/t/all_tests.test
      mysql-test/suite/perfschema/t/selects.test
      mysql-test/suite/rpl/r/rpl_auto_increment.result
      mysql-test/suite/rpl/r/rpl_crash_safe_master.result
      mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result
      mysql-test/suite/rpl/t/rpl_crash_safe_master.test
      mysql-test/suite/sys_vars/r/all_vars.result
      mysql-test/suite/sys_vars/r/innodb_purge_batch_size_basic.result
      mysql-test/t/alter_table.test
      mysql-test/t/disabled.def
      mysql-test/t/events_bugs.test
      mysql-test/t/flush.test
      mysql-test/t/func_math.test
      mysql-test/t/func_str.test
      mysql-test/t/gis-precise.test
      mysql-test/t/gis-rtree.test
      mysql-test/t/group_by.test
      mysql-test/t/innodb_mysql_lock.test
      mysql-test/t/innodb_mysql_sync.test
      mysql-test/t/multi_update.test
      mysql-test/t/multi_update_innodb.test
      mysql-test/t/myisam_debug.test
      mysql-test/t/partition.test
      mysql-test/t/partition_datatype.test
      mysql-test/t/ps.test
      mysql-test/t/query_cache_28249.test
      mysql-test/t/query_cache_debug.test
      mysql-test/t/sp_notembedded.test
      mysql-test/t/sp_sync.test
      mysql-test/t/ssl.test
      mysql-test/t/symlink.test
      mysql-test/t/system_mysql_db_fix40123.test
      mysql-test/t/system_mysql_db_fix50030.test
      mysql-test/t/system_mysql_db_fix50117.test
      mysql-test/t/trigger-compat.test
      mysql-test/t/type_datetime.test
      mysql-test/t/wait_timeout.test
      mysql-test/t/xa.test
      mysys/array.c
      mysys/charset.c
      mysys/default.c
      mysys/lf_dynarray.c
      mysys/mf_iocache.c
      mysys/mf_keycache.c
      mysys/mf_pack.c
      mysys/mf_radix.c
      mysys/my_aes.c
      mysys/my_alloc.c
      mysys/my_bitmap.c
      mysys/my_chsize.c
      mysys/my_file.c
      mysys/my_gethwaddr.c
      mysys/my_handler_errors.h
      mysys/my_init.c
      mysys/my_lib.c
      mysys/my_malloc.c
      mysys/my_once.c
      mysys/my_wincond.c
      mysys/my_windac.c
      mysys/sha1.c
      mysys/testhash.c
      mysys/thr_alarm.c
      mysys/thr_lock.c
      mysys/thr_mutex.c
      mysys/tree.c
      mysys/waiting_threads.c
      plugin/audit_null/audit_null.c
      regex/regexp.c
      regex/reginit.c
      scripts/mysql_install_db.pl.in
      scripts/mysql_install_db.sh
      scripts/mysql_system_tables.sql
      sql-common/client.c
      sql-common/client_plugin.c
      sql-common/my_time.c
      sql/binlog.cc
      sql/binlog.h
      sql/debug_sync.cc
      sql/des_key_file.cc
      sql/event_data_objects.cc
      sql/event_db_repository.cc
      sql/event_db_repository.h
      sql/event_parse_data.cc
      sql/event_parse_data.h
      sql/event_scheduler.cc
      sql/events.cc
      sql/field.cc
      sql/field.h
      sql/field_conv.cc
      sql/filesort.cc
      sql/gcalc_tools.cc
      sql/gcalc_tools.h
      sql/ha_ndbcluster.cc
      sql/ha_ndbcluster_binlog.cc
      sql/ha_partition.cc
      sql/ha_partition.h
      sql/handler.cc
      sql/handler.h
      sql/hash_filo.h
      sql/item.cc
      sql/item.h
      sql/item_cmpfunc.cc
      sql/item_cmpfunc.h
      sql/item_func.cc
      sql/item_func.h
      sql/item_inetfunc.cc
      sql/item_row.cc
      sql/item_row.h
      sql/item_strfunc.cc
      sql/item_strfunc.h
      sql/item_subselect.cc
      sql/item_sum.cc
      sql/item_timefunc.cc
      sql/item_timefunc.h
      sql/item_xmlfunc.cc
      sql/key.cc
      sql/log.cc
      sql/log_event.cc
      sql/log_event.h
      sql/log_event_old.cc
      sql/mdl.h
      sql/mysqld.cc
      sql/net_serv.cc
      sql/opt_range.cc
      sql/opt_sum.cc
      sql/partition_info.cc
      sql/password.c
      sql/protocol.cc
      sql/records.cc
      sql/rpl_info_file.cc
      sql/rpl_injector.cc
      sql/rpl_master.cc
      sql/rpl_reporting.cc
      sql/rpl_rli.cc
      sql/rpl_slave.cc
      sql/rpl_utility.cc
      sql/rpl_utility.h
      sql/set_var.cc
      sql/share/errmsg-utf8.txt
      sql/sp.cc
      sql/sp_head.cc
      sql/spatial.cc
      sql/sql_acl.cc
      sql/sql_admin.cc
      sql/sql_alloc_error_handler.cc
      sql/sql_alter.cc
      sql/sql_analyse.cc
      sql/sql_array.h
      sql/sql_audit.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_connect.cc
      sql/sql_db.cc
      sql/sql_delete.cc
      sql/sql_derived.cc
      sql/sql_do.cc
      sql/sql_error.cc
      sql/sql_error.h
      sql/sql_insert.cc
      sql/sql_join_cache.cc
      sql/sql_lex.cc
      sql/sql_lex.h
      sql/sql_list.h
      sql/sql_load.cc
      sql/sql_parse.cc
      sql/sql_partition_admin.cc
      sql/sql_plist.h
      sql/sql_plugin.cc
      sql/sql_prepare.cc
      sql/sql_prepare.h
      sql/sql_select.cc
      sql/sql_select.h
      sql/sql_servers.cc
      sql/sql_show.cc
      sql/sql_signal.cc
      sql/sql_string.cc
      sql/sql_table.cc
      sql/sql_test.cc
      sql/sql_time.cc
      sql/sql_trigger.cc
      sql/sql_trigger.h
      sql/sql_udf.cc
      sql/sql_union.cc
      sql/sql_update.cc
      sql/sql_view.cc
      sql/sql_yacc.yy
      sql/structs.h
      sql/sys_vars.cc
      sql/table.cc
      sql/table.h
      sql/thr_malloc.cc
      sql/transaction.cc
      sql/tztime.cc
      sql/udf_example.c
      sql/unireg.cc
      sql/unireg.h
      storage/archive/azio.c
      storage/archive/ha_archive.cc
      storage/blackhole/ha_blackhole.cc
      storage/federated/ha_federated.cc
      storage/heap/ha_heap.cc
      storage/heap/hp_create.c
      storage/heap/hp_hash.c
      storage/heap/hp_test1.c
      storage/heap/hp_test2.c
      storage/innobase/CMakeLists.txt
      storage/innobase/btr/btr0btr.c
      storage/innobase/btr/btr0cur.c
      storage/innobase/buf/buf0buddy.c
      storage/innobase/buf/buf0buf.c
      storage/innobase/buf/buf0flu.c
      storage/innobase/buf/buf0lru.c
      storage/innobase/buf/buf0rea.c
      storage/innobase/data/data0data.c
      storage/innobase/dict/dict0dict.c
      storage/innobase/dict/dict0mem.c
      storage/innobase/dict/dict0stats.c
      storage/innobase/fil/fil0fil.c
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/handler/ha_innodb.h
      storage/innobase/handler/handler0alter.cc
      storage/innobase/include/btr0btr.h
      storage/innobase/include/btr0cur.h
      storage/innobase/include/btr0cur.ic
      storage/innobase/include/buf0buddy.h
      storage/innobase/include/buf0buddy.ic
      storage/innobase/include/buf0buf.h
      storage/innobase/include/buf0buf.ic
      storage/innobase/include/buf0lru.h
      storage/innobase/include/buf0rea.h
      storage/innobase/include/buf0types.h
      storage/innobase/include/db0err.h
      storage/innobase/include/dict0dict.h
      storage/innobase/include/dict0dict.ic
      storage/innobase/include/dict0mem.h
      storage/innobase/include/mtr0mtr.ic
      storage/innobase/include/page0cur.ic
      storage/innobase/include/page0page.h
      storage/innobase/include/page0page.ic
      storage/innobase/include/rem0rec.h
      storage/innobase/include/rem0rec.ic
      storage/innobase/include/rem0types.h
      storage/innobase/include/row0ext.h
      storage/innobase/include/row0ext.ic
      storage/innobase/include/srv0srv.h
      storage/innobase/include/srv0start.h
      storage/innobase/include/sync0rw.ic
      storage/innobase/include/sync0sync.h
      storage/innobase/include/sync0sync.ic
      storage/innobase/include/trx0purge.h
      storage/innobase/include/trx0trx.h
      storage/innobase/include/univ.i
      storage/innobase/include/ut0ut.h
      storage/innobase/lock/lock0lock.c
      storage/innobase/mtr/mtr0mtr.c
      storage/innobase/page/page0cur.c
      storage/innobase/page/page0page.c
      storage/innobase/page/page0zip.c
      storage/innobase/rem/rem0rec.c
      storage/innobase/row/row0ext.c
      storage/innobase/row/row0ins.c
      storage/innobase/row/row0mysql.c
      storage/innobase/row/row0row.c
      storage/innobase/row/row0sel.c
      storage/innobase/row/row0upd.c
      storage/innobase/row/row0vers.c
      storage/innobase/srv/srv0srv.c
      storage/innobase/srv/srv0start.c
      storage/innobase/sync/sync0rw.c
      storage/innobase/sync/sync0sync.c
      storage/innobase/trx/trx0purge.c
      storage/innobase/trx/trx0rec.c
      storage/innobase/trx/trx0sys.c
      storage/innobase/ut/ut0ut.c
      storage/myisam/ft_boolean_search.c
      storage/myisam/ft_nlq_search.c
      storage/myisam/ft_update.c
      storage/myisam/ha_myisam.cc
      storage/myisam/mi_cache.c
      storage/myisam/mi_check.c
      storage/myisam/mi_create.c
      storage/myisam/mi_dynrec.c
      storage/myisam/mi_key.c
      storage/myisam/mi_log.c
      storage/myisam/mi_open.c
      storage/myisam/mi_packrec.c
      storage/myisam/mi_rkey.c
      storage/myisam/mi_statrec.c
      storage/myisam/mi_test1.c
      storage/myisam/mi_test2.c
      storage/myisam/mi_test3.c
      storage/myisam/mi_update.c
      storage/myisam/mi_write.c
      storage/myisam/myisamchk.c
      storage/myisam/myisamlog.c
      storage/myisam/myisampack.c
      storage/myisam/rt_test.c
      storage/myisam/sort.c
      storage/myisam/sp_key.c
      storage/myisam/sp_test.c
      storage/myisammrg/ha_myisammrg.cc
      storage/myisammrg/myrg_open.c
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
      storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
      storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
      storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp
      storage/ndb/src/kernel/blocks/tsman.cpp
      storage/ndb/src/kernel/vm/RWPool.cpp
      storage/ndb/src/kernel/vm/WOPool.cpp
      storage/ndb/src/kernel/vm/bench_pool.cpp
      storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp
      storage/ndb/src/mgmsrv/InitConfigFileParser.cpp
      storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
      storage/ndb/test/ndbapi/testNodeRestart.cpp
      storage/ndb/test/run-test/setup.cpp
      storage/ndb/test/src/DbUtil.cpp
      strings/conf_to_src.c
      strings/ctype-czech.c
      strings/ctype-mb.c
      strings/ctype-simple.c
      strings/ctype-uca.c
      strings/ctype-win1250ch.c
      strings/ctype.c
      strings/decimal.c
      strings/dump_map.c
      strings/my_vsnprintf.c
      strings/uca-dump.c
      strings/uctypedump.c
      strings/xml.c
      support-files/build-tags
      tests/mysql_client_test.c
      unittest/gunit/CMakeLists.txt
      unittest/gunit/item-t.cc
      unittest/gunit/test_utils.h
      unittest/mysys/waiting_threads-t.c
      vio/CMakeLists.txt
      vio/test-ssl.c
      vio/test-sslclient.c
      vio/test-sslserver.c
      vio/vio.c
      vio/vio_priv.h
      vio/viosocket.c
      vio/viossl.c
      vio/viosslfactories.c
      vio/viotest-ssl.c
 3394 Roy Lyseng	2011-06-27
      Bug#11752543: Prepared query with nested subqueries core dump on second exec.
      
      Also known as bug#43768
      
      The problem here is that pullout of semi-join tables is attempted for
      each execution, but because those tables are not "pushed back" again
      after each execution, the pullout fails on second attempt.
      
      The solution chosen here is to pullout only those semi-join tables that are
      functionally dependent upon the outer tables. This pullout operation
      need to be performed only once, and, unlike the current procedure, is not
      dependent upon the row count of the involved tables.
      
      Pullout of semi-join tables based on rowcount (tables that we know
      contain exactly zero or one rows) is abandoned all together.
      
      The practical implication of this change is as follows:
      
       - Only outer tables containing zero or one rows will now be extracted
         as "const tables". Thus, such tables from a semijoin nest are no
         longer accessed during optimization, and some (rare) optimizations
         are no longer possible.
      
       - In the majority of cases, there is no performance impact. Often,
         the new strategy chosen is Materialization, meaning that the row
         of these table is accessed only once and saved in local memory.
         Whether it is accessed during optimization or execution should not
         affect performance.
      
       - Const table analysis is now done in two phases:
         1) Extract tables based on dependencies. Both regular and semi-joined
            tables may apply, and
         2) Extract tables based on row count. Semi-joined tables are not
            handled in this phase.
      
      In order to implement this, make_join_statistics() has been restructured
      slightly. The conditional logic within the function has also been
      enhanced for better readability.
      
      The logic of make_join_statistics() is now as follows:
      
      1. Initialize JOIN data structures
         (major part of first loop in existing implementation).
      
      2. Update dependencies based on join information
         (the Warshall algorithm).
      
      3. Make key descriptions (update_ref_and_keys()).
      
      4. Pull out semi-join tables based on identified dependencies,
         called only during the first optimization.
      
      5. Extract tables with zero or one rows as const tables
         (Semi-joined tables are not handled).
      
      6. Extract dependent tables as const tables.
         (Semi-joined tables are not handled).
      
      7. The remaining parts of the function.
      
      mysql-test/include/subquery_sj.inc
        Added test case for bug#11752543.
        Extended "join loop" with prepared statement testing.
        
      mysql-test/r/select_found.result
        Possible keys changed from "PRIMARY,kid" to "kid".
        Happens because analysis order is slightly changed, but harmless as
        the table is identified as "const".
      
      mysql-test/r/subquery_mat_all.result
        Plan changes because const table pullout is removed for semi-join
        tables.
      
      mysql-test/r/subquery_sj_all.result
      mysql-test/r/subquery_sj_all_jcl6.result
      mysql-test/r/subquery_sj_all_jcl7.result
      mysql-test/r/subquery_sj_dupsweed.result
      mysql-test/r/subquery_sj_dupsweed_jcl6.result
      mysql-test/r/subquery_sj_dupsweed_jcl7.result
      mysql-test/r/subquery_sj_firstmatch.result
      mysql-test/r/subquery_sj_firstmatch_jcl6.result
      mysql-test/r/subquery_sj_firstmatch_jcl7.result
      mysql-test/r/subquery_sj_loosescan.result
      mysql-test/r/subquery_sj_loosescan_jcl6.result
      mysql-test/r/subquery_sj_loosescan_jcl7.result
      mysql-test/r/subquery_sj_mat.result
      mysql-test/r/subquery_sj_mat_jcl6.result
      mysql-test/r/subquery_sj_mat_jcl7.result
      mysql-test/r/subquery_sj_mat_nosj.result
      mysql-test/r/subquery_sj_none.result
      mysql-test/r/subquery_sj_none_jcl6.result
      mysql-test/r/subquery_sj_none_jcl7.result
        Added test case for bug#11752543
        A number of plan changes because of extensive testing of semi-join
        tables with 0, 1 and 2 rows.
      
      sql/sql_select.cc
        pull_out_semijoin_tables()
          Pullout based on const tables removed.
          Comments updated.
        make_join_statistics()
          Removed const table pullout from first loop.
          Simplified testing based on inner/outer/semi-join properties.
          Calls pull_out_semijoin_tables() just after dependency analysis.
          Then, added loop that performs pullout based on row count
          but excludes semi-joined tables.
          Notice also that we no longer delete outer-join dependencies
          based on row count. This has some implications for EXPLAIN, but
          all plans are still the same.

    modified:
      mysql-test/include/subquery_sj.inc
      mysql-test/r/select_found.result
      mysql-test/r/subquery_mat_all.result
      mysql-test/r/subquery_sj_all.result
      mysql-test/r/subquery_sj_all_jcl6.result
      mysql-test/r/subquery_sj_all_jcl7.result
      mysql-test/r/subquery_sj_dupsweed.result
      mysql-test/r/subquery_sj_dupsweed_jcl6.result
      mysql-test/r/subquery_sj_dupsweed_jcl7.result
      mysql-test/r/subquery_sj_firstmatch.result
      mysql-test/r/subquery_sj_firstmatch_jcl6.result
      mysql-test/r/subquery_sj_firstmatch_jcl7.result
      mysql-test/r/subquery_sj_loosescan.result
      mysql-test/r/subquery_sj_loosescan_jcl6.result
      mysql-test/r/subquery_sj_loosescan_jcl7.result
      mysql-test/r/subquery_sj_mat.result
      mysql-test/r/subquery_sj_mat_jcl6.result
      mysql-test/r/subquery_sj_mat_jcl7.result
      mysql-test/r/subquery_sj_mat_nosj.result
      mysql-test/r/subquery_sj_none.result
      mysql-test/r/subquery_sj_none_jcl6.result
      mysql-test/r/subquery_sj_none_jcl7.result
      sql/sql_select.cc

Diff too large for email (41926 lines, the limit is 10000).
No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (tor.didriksen:3394 to 3396) Tor Didriksen29 Jun