Merge lp:~gl-az/percona-server/5.1-lru_dump_load_work into lp:percona-server/5.5

Proposed by George Ormond Lorch III
Status: Rejected
Rejected by: Alexey Kopytov
Proposed branch: lp:~gl-az/percona-server/5.1-lru_dump_load_work
Merge into: lp:percona-server/5.5
Diff against target: 4362715 lines (has conflicts)
Conflict adding file .bzrignore.  Moved existing file to .bzrignore.moved.
Conflict adding file COPYING.show_temp_51.  Moved existing file to COPYING.show_temp_51.moved.
Conflict adding file HandlerSocket-Plugin-for-MySQL.  Moved existing file to HandlerSocket-Plugin-for-MySQL.moved.
Conflict adding file Makefile.  Moved existing file to Makefile.moved.
Path conflict: Percona-Server / Percona-Server
Text conflict in Percona-Server/.bzr-mysql/default.conf
Text conflict in Percona-Server/.bzrignore
Text conflict in Percona-Server/BUILD/FINISH.sh
Text conflict in Percona-Server/BUILD/SETUP.sh
Text conflict in Percona-Server/BUILD/autorun.sh
Text conflict in Percona-Server/BUILD/build_mccge.sh
Text conflict in Percona-Server/BUILD/check-cpu
Text conflict in Percona-Server/BUILD/compile-amd64-valgrind-max
Text conflict in Percona-Server/BUILD/compile-dist
Text conflict in Percona-Server/BUILD/compile-ia64-debug-max
Text conflict in Percona-Server/BUILD/compile-ndb-autotest
Text conflict in Percona-Server/BUILD/compile-pentium-debug
Text conflict in Percona-Server/BUILD/compile-pentium-debug-max
Text conflict in Percona-Server/BUILD/compile-pentium-debug-max-no-ndb
Text conflict in Percona-Server/BUILD/compile-pentium-debug-openssl
Text conflict in Percona-Server/BUILD/compile-pentium-debug-yassl
Text conflict in Percona-Server/BUILD/compile-pentium-valgrind-max
Text conflict in Percona-Server/BUILD/compile-pentium-valgrind-max-no-ndb
Text conflict in Percona-Server/BUILD/compile-pentium64-debug
Text conflict in Percona-Server/BUILD/compile-pentium64-debug-max
Text conflict in Percona-Server/BUILD/compile-pentium64-valgrind-max
Text conflict in Percona-Server/CMakeLists.txt
Text conflict in Percona-Server/INSTALL-SOURCE
Text conflict in Percona-Server/INSTALL-WIN-SOURCE
Text conflict in Percona-Server/README
Text conflict in Percona-Server/client/CMakeLists.txt
Text conflict in Percona-Server/client/client_priv.h
Text conflict in Percona-Server/client/completion_hash.cc
Text conflict in Percona-Server/client/my_readline.h
Text conflict in Percona-Server/client/mysql.cc
Text conflict in Percona-Server/client/mysql_upgrade.c
Text conflict in Percona-Server/client/mysqladmin.cc
Text conflict in Percona-Server/client/mysqlbinlog.cc
Text conflict in Percona-Server/client/mysqlcheck.c
Text conflict in Percona-Server/client/mysqldump.c
Text conflict in Percona-Server/client/mysqlimport.c
Text conflict in Percona-Server/client/mysqlshow.c
Text conflict in Percona-Server/client/mysqlslap.c
Text conflict in Percona-Server/client/mysqltest.cc
Text conflict in Percona-Server/client/readline.cc
Text conflict in Percona-Server/client/sql_string.cc
Text conflict in Percona-Server/client/sql_string.h
Text conflict in Percona-Server/config/ac-macros/ha_ndbcluster.m4
Text conflict in Percona-Server/dbug/CMakeLists.txt
Text conflict in Percona-Server/dbug/dbug.c
Text conflict in Percona-Server/dbug/dbug_add_tags.pl
Text conflict in Percona-Server/dbug/dbug_analyze.c
Text conflict in Percona-Server/dbug/my_main.c
Text conflict in Percona-Server/dbug/user.r
Text conflict in Percona-Server/extra/CMakeLists.txt
Text conflict in Percona-Server/extra/comp_err.c
Text conflict in Percona-Server/extra/my_print_defaults.c
Text conflict in Percona-Server/extra/mysql_waitpid.c
Text conflict in Percona-Server/extra/perror.c
Text conflict in Percona-Server/extra/replace.c
Text conflict in Percona-Server/extra/resolve_stack_dump.c
Text conflict in Percona-Server/extra/resolveip.c
Text conflict in Percona-Server/extra/yassl/CMakeLists.txt
Text conflict in Percona-Server/extra/yassl/taocrypt/CMakeLists.txt
Conflict adding file Percona-Server/include/atomic.  Moved existing file to Percona-Server/include/atomic.moved.
Text conflict in Percona-Server/include/decimal.h
Text conflict in Percona-Server/include/errmsg.h
Conflict adding file Percona-Server/include/flashcache_ioctl.h.  Moved existing file to Percona-Server/include/flashcache_ioctl.h.moved.
Text conflict in Percona-Server/include/ft_global.h
Text conflict in Percona-Server/include/hash.h
Text conflict in Percona-Server/include/heap.h
Text conflict in Percona-Server/include/keycache.h
Text conflict in Percona-Server/include/m_ctype.h
Text conflict in Percona-Server/include/m_string.h
Text conflict in Percona-Server/include/my_aes.h
Text conflict in Percona-Server/include/my_alarm.h
Text conflict in Percona-Server/include/my_alloc.h
Conflict adding file Percona-Server/include/my_atomic.h.  Moved existing file to Percona-Server/include/my_atomic.h.moved.
Text conflict in Percona-Server/include/my_attribute.h
Text conflict in Percona-Server/include/my_base.h
Text conflict in Percona-Server/include/my_bit.h
Text conflict in Percona-Server/include/my_bitmap.h
Conflict adding file Percona-Server/include/my_compare.h.  Moved existing file to Percona-Server/include/my_compare.h.moved.
Text conflict in Percona-Server/include/my_compiler.h
Text conflict in Percona-Server/include/my_dbug.h
Text conflict in Percona-Server/include/my_dir.h
Text conflict in Percona-Server/include/my_getopt.h
Text conflict in Percona-Server/include/my_global.h
Text conflict in Percona-Server/include/my_libwrap.h
Text conflict in Percona-Server/include/my_list.h
Text conflict in Percona-Server/include/my_md5.h
Text conflict in Percona-Server/include/my_net.h
Text conflict in Percona-Server/include/my_nosys.h
Text conflict in Percona-Server/include/my_pthread.h
Text conflict in Percona-Server/include/my_stacktrace.h
Text conflict in Percona-Server/include/my_sys.h
Text conflict in Percona-Server/include/my_time.h
Text conflict in Percona-Server/include/my_tree.h
Text conflict in Percona-Server/include/my_uctype.h
Text conflict in Percona-Server/include/myisam.h
Text conflict in Percona-Server/include/myisammrg.h
Text conflict in Percona-Server/include/myisampack.h
Text conflict in Percona-Server/include/mysql.h
Text conflict in Percona-Server/include/mysql.h.pp
Text conflict in Percona-Server/include/mysql/plugin.h
Text conflict in Percona-Server/include/mysql_com.h
Text conflict in Percona-Server/include/mysql_embed.h
Text conflict in Percona-Server/include/mysys_err.h
Text conflict in Percona-Server/include/queues.h
Text conflict in Percona-Server/include/rijndael.h
Text conflict in Percona-Server/include/sha1.h
Text conflict in Percona-Server/include/sql_common.h
Text conflict in Percona-Server/include/sslopt-case.h
Text conflict in Percona-Server/include/sslopt-longopts.h
Text conflict in Percona-Server/include/sslopt-vars.h
Text conflict in Percona-Server/include/thr_alarm.h
Text conflict in Percona-Server/include/thr_lock.h
Text conflict in Percona-Server/include/typelib.h
Text conflict in Percona-Server/include/violite.h
Text conflict in Percona-Server/include/welcome_copyright_notice.h
Text conflict in Percona-Server/libmysql/CMakeLists.txt
Text conflict in Percona-Server/libmysql/client_settings.h
Text conflict in Percona-Server/libmysql/errmsg.c
Text conflict in Percona-Server/libmysql/get_password.c
Text conflict in Percona-Server/libmysql/libmysql.c
Text conflict in Percona-Server/libmysql/libmysql.def
Text conflict in Percona-Server/libmysqld/CMakeLists.txt
Text conflict in Percona-Server/libmysqld/emb_qcache.cc
Text conflict in Percona-Server/libmysqld/emb_qcache.h
Text conflict in Percona-Server/libmysqld/embedded_priv.h
Text conflict in Percona-Server/libmysqld/examples/CMakeLists.txt
Text conflict in Percona-Server/libmysqld/lib_sql.cc
Text conflict in Percona-Server/libmysqld/libmysqld.c
Text conflict in Percona-Server/libmysqld/libmysqld.def
Conflict adding file Percona-Server/man/comp_err.1.  Moved existing file to Percona-Server/man/comp_err.1.moved.
Conflict adding file Percona-Server/man/innochecksum.1.  Moved existing file to Percona-Server/man/innochecksum.1.moved.
Conflict adding file Percona-Server/man/msql2mysql.1.  Moved existing file to Percona-Server/man/msql2mysql.1.moved.
Conflict adding file Percona-Server/man/my_print_defaults.1.  Moved existing file to Percona-Server/man/my_print_defaults.1.moved.
Conflict adding file Percona-Server/man/myisam_ftdump.1.  Moved existing file to Percona-Server/man/myisam_ftdump.1.moved.
Conflict adding file Percona-Server/man/myisamchk.1.  Moved existing file to Percona-Server/man/myisamchk.1.moved.
Conflict adding file Percona-Server/man/myisamlog.1.  Moved existing file to Percona-Server/man/myisamlog.1.moved.
Conflict adding file Percona-Server/man/myisampack.1.  Moved existing file to Percona-Server/man/myisampack.1.moved.
Conflict adding file Percona-Server/man/mysql-stress-test.pl.1.  Moved existing file to Percona-Server/man/mysql-stress-test.pl.1.moved.
Conflict adding file Percona-Server/man/mysql-test-run.pl.1.  Moved existing file to Percona-Server/man/mysql-test-run.pl.1.moved.
Conflict adding file Percona-Server/man/mysql.1.  Moved existing file to Percona-Server/man/mysql.1.moved.
Conflict adding file Percona-Server/man/mysql.server.1.  Moved existing file to Percona-Server/man/mysql.server.1.moved.
Conflict adding file Percona-Server/man/mysql_client_test.1.  Moved existing file to Percona-Server/man/mysql_client_test.1.moved.
Conflict adding file Percona-Server/man/mysql_client_test_embedded.1.  Moved existing file to Percona-Server/man/mysql_client_test_embedded.1.moved.
Conflict adding file Percona-Server/man/mysql_config.1.  Moved existing file to Percona-Server/man/mysql_config.1.moved.
Conflict adding file Percona-Server/man/mysql_convert_table_format.1.  Moved existing file to Percona-Server/man/mysql_convert_table_format.1.moved.
Conflict adding file Percona-Server/man/mysql_find_rows.1.  Moved existing file to Percona-Server/man/mysql_find_rows.1.moved.
Conflict adding file Percona-Server/man/mysql_fix_extensions.1.  Moved existing file to Percona-Server/man/mysql_fix_extensions.1.moved.
Conflict adding file Percona-Server/man/mysql_install_db.1.  Moved existing file to Percona-Server/man/mysql_install_db.1.moved.
Conflict adding file Percona-Server/man/mysql_secure_installation.1.  Moved existing file to Percona-Server/man/mysql_secure_installation.1.moved.
Conflict adding file Percona-Server/man/mysql_setpermission.1.  Moved existing file to Percona-Server/man/mysql_setpermission.1.moved.
Conflict adding file Percona-Server/man/mysql_tzinfo_to_sql.1.  Moved existing file to Percona-Server/man/mysql_tzinfo_to_sql.1.moved.
Conflict adding file Percona-Server/man/mysql_upgrade.1.  Moved existing file to Percona-Server/man/mysql_upgrade.1.moved.
Conflict adding file Percona-Server/man/mysql_waitpid.1.  Moved existing file to Percona-Server/man/mysql_waitpid.1.moved.
Conflict adding file Percona-Server/man/mysql_zap.1.  Moved existing file to Percona-Server/man/mysql_zap.1.moved.
Conflict adding file Percona-Server/man/mysqlaccess.1.  Moved existing file to Percona-Server/man/mysqlaccess.1.moved.
Conflict adding file Percona-Server/man/mysqladmin.1.  Moved existing file to Percona-Server/man/mysqladmin.1.moved.
Conflict adding file Percona-Server/man/mysqlbinlog.1.  Moved existing file to Percona-Server/man/mysqlbinlog.1.moved.
Conflict adding file Percona-Server/man/mysqlbug.1.  Moved existing file to Percona-Server/man/mysqlbug.1.moved.
Conflict adding file Percona-Server/man/mysqlcheck.1.  Moved existing file to Percona-Server/man/mysqlcheck.1.moved.
Conflict adding file Percona-Server/man/mysqld.8.  Moved existing file to Percona-Server/man/mysqld.8.moved.
Conflict adding file Percona-Server/man/mysqld_multi.1.  Moved existing file to Percona-Server/man/mysqld_multi.1.moved.
Conflict adding file Percona-Server/man/mysqld_safe.1.  Moved existing file to Percona-Server/man/mysqld_safe.1.moved.
Conflict adding file Percona-Server/man/mysqldump.1.  Moved existing file to Percona-Server/man/mysqldump.1.moved.
Conflict adding file Percona-Server/man/mysqldumpslow.1.  Moved existing file to Percona-Server/man/mysqldumpslow.1.moved.
Conflict adding file Percona-Server/man/mysqlhotcopy.1.  Moved existing file to Percona-Server/man/mysqlhotcopy.1.moved.
Conflict adding file Percona-Server/man/mysqlimport.1.  Moved existing file to Percona-Server/man/mysqlimport.1.moved.
Conflict adding file Percona-Server/man/mysqlshow.1.  Moved existing file to Percona-Server/man/mysqlshow.1.moved.
Conflict adding file Percona-Server/man/mysqlslap.1.  Moved existing file to Percona-Server/man/mysqlslap.1.moved.
Conflict adding file Percona-Server/man/mysqltest.1.  Moved existing file to Percona-Server/man/mysqltest.1.moved.
Conflict adding file Percona-Server/man/mysqltest_embedded.1.  Moved existing file to Percona-Server/man/mysqltest_embedded.1.moved.
Conflict adding file Percona-Server/man/ndb_config.1.  Moved existing file to Percona-Server/man/ndb_config.1.moved.
Conflict adding file Percona-Server/man/ndb_cpcd.1.  Moved existing file to Percona-Server/man/ndb_cpcd.1.moved.
Conflict adding file Percona-Server/man/ndb_delete_all.1.  Moved existing file to Percona-Server/man/ndb_delete_all.1.moved.
Conflict adding file Percona-Server/man/ndb_desc.1.  Moved existing file to Percona-Server/man/ndb_desc.1.moved.
Conflict adding file Percona-Server/man/ndb_drop_index.1.  Moved existing file to Percona-Server/man/ndb_drop_index.1.moved.
Conflict adding file Percona-Server/man/ndb_drop_table.1.  Moved existing file to Percona-Server/man/ndb_drop_table.1.moved.
Conflict adding file Percona-Server/man/ndb_error_reporter.1.  Moved existing file to Percona-Server/man/ndb_error_reporter.1.moved.
Conflict adding file Percona-Server/man/ndb_mgm.1.  Moved existing file to Percona-Server/man/ndb_mgm.1.moved.
Conflict adding file Percona-Server/man/ndb_mgmd.8.  Moved existing file to Percona-Server/man/ndb_mgmd.8.moved.
Conflict adding file Percona-Server/man/ndb_print_backup_file.1.  Moved existing file to Percona-Server/man/ndb_print_backup_file.1.moved.
Conflict adding file Percona-Server/man/ndb_print_schema_file.1.  Moved existing file to Percona-Server/man/ndb_print_schema_file.1.moved.
Conflict adding file Percona-Server/man/ndb_print_sys_file.1.  Moved existing file to Percona-Server/man/ndb_print_sys_file.1.moved.
Conflict adding file Percona-Server/man/ndb_restore.1.  Moved existing file to Percona-Server/man/ndb_restore.1.moved.
Conflict adding file Percona-Server/man/ndb_select_all.1.  Moved existing file to Percona-Server/man/ndb_select_all.1.moved.
Conflict adding file Percona-Server/man/ndb_select_count.1.  Moved existing file to Percona-Server/man/ndb_select_count.1.moved.
Conflict adding file Percona-Server/man/ndb_show_tables.1.  Moved existing file to Percona-Server/man/ndb_show_tables.1.moved.
Conflict adding file Percona-Server/man/ndb_size.pl.1.  Moved existing file to Percona-Server/man/ndb_size.pl.1.moved.
Conflict adding file Percona-Server/man/ndb_waiter.1.  Moved existing file to Percona-Server/man/ndb_waiter.1.moved.
Conflict adding file Percona-Server/man/ndbd.8.  Moved existing file to Percona-Server/man/ndbd.8.moved.
Conflict adding file Percona-Server/man/ndbd_redo_log_reader.1.  Moved existing file to Percona-Server/man/ndbd_redo_log_reader.1.moved.
Conflict adding file Percona-Server/man/ndbmtd.8.  Moved existing file to Percona-Server/man/ndbmtd.8.moved.
Conflict adding file Percona-Server/man/perror.1.  Moved existing file to Percona-Server/man/perror.1.moved.
Conflict adding file Percona-Server/man/replace.1.  Moved existing file to Percona-Server/man/replace.1.moved.
Conflict adding file Percona-Server/man/resolve_stack_dump.1.  Moved existing file to Percona-Server/man/resolve_stack_dump.1.moved.
Conflict adding file Percona-Server/man/resolveip.1.  Moved existing file to Percona-Server/man/resolveip.1.moved.
Text conflict in Percona-Server/mysql-test/collections/README
Text conflict in Percona-Server/mysql-test/collections/default.daily
Text conflict in Percona-Server/mysql-test/collections/default.experimental
Text conflict in Percona-Server/mysql-test/collections/default.push
Text conflict in Percona-Server/mysql-test/collections/default.weekly
Text conflict in Percona-Server/mysql-test/extra/binlog_tests/binlog.test
Path conflict: Percona-Server/mysql-test/extra/binlog_tests/binlog_cache_stat.test / Percona-Server/mysql-test/extra/binlog_tests/innodb_stat.test
Text conflict in Percona-Server/mysql-test/extra/binlog_tests/binlog_insert_delayed.test
Text conflict in Percona-Server/mysql-test/extra/binlog_tests/binlog_truncate.test
Text conflict in Percona-Server/mysql-test/extra/binlog_tests/blackhole.test
Text conflict in Percona-Server/mysql-test/extra/binlog_tests/ctype_ucs_binlog.test
Text conflict in Percona-Server/mysql-test/extra/binlog_tests/database.test
Text conflict in Percona-Server/mysql-test/extra/binlog_tests/drop_temp_table.test
Text conflict in Percona-Server/mysql-test/extra/binlog_tests/innodb_stat.test
Text conflict in Percona-Server/mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test
Text conflict in Percona-Server/mysql-test/extra/binlog_tests/mix_innodb_myisam_side_effects.test
Path conflict: Percona-Server/mysql-test/extra/rpl_tests/rpl_binlog_max_cache_size.test / Percona-Server/mysql-test/suite/rpl/t/rpl_binlog_max_cache_size.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_charset.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_conflicts.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_extra_col_master.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_extra_col_slave.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_failed_optimize.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_foreign_key.test
Path conflict: Percona-Server/mysql-test/extra/rpl_tests/rpl_innodb.test / Percona-Server/mysql-test/suite/rpl/t/rpl_innodb.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_insert_delayed.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_insert_id.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_insert_ignore.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_loaddata.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_log.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_mixing_engines.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_multi_update.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_multi_update2.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_multi_update3.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_not_null.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_reset_slave.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_row_basic.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_row_blob.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_row_func003.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_row_sp002.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_row_sp003.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_row_tabledefs.test
Path conflict: Percona-Server/mysql-test/extra/rpl_tests/rpl_start_stop_slave.test / Percona-Server/mysql-test/suite/rpl/t/rpl_start_stop_slave.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_stop_slave.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_sv_relay_space.test
Text conflict in Percona-Server/mysql-test/extra/rpl_tests/rpl_trig004.test
Text conflict in Percona-Server/mysql-test/include/begin_include_file.inc
Text conflict in Percona-Server/mysql-test/include/check-testcase.test
Text conflict in Percona-Server/mysql-test/include/check_no_concurrent_insert.inc
Text conflict in Percona-Server/mysql-test/include/check_slave_param.inc
Text conflict in Percona-Server/mysql-test/include/commit.inc
Path conflict: Percona-Server/mysql-test/include/ctype_innodb_like.inc / Percona-Server/mysql-test/suite/innodb_plugin/include/ctype_innodb_like.inc
Text conflict in Percona-Server/mysql-test/include/ddl_i18n.check_sp.inc
Text conflict in Percona-Server/mysql-test/include/deadlock.inc
Text conflict in Percona-Server/mysql-test/include/default_my.cnf
Text conflict in Percona-Server/mysql-test/include/default_mysqld.cnf
Text conflict in Percona-Server/mysql-test/include/diff_tables.inc
Conflict adding file Percona-Server/mysql-test/include/get_relay_log_pos.inc.  Moved existing file to Percona-Server/mysql-test/include/get_relay_log_pos.inc.moved.
Text conflict in Percona-Server/mysql-test/include/handler.inc
Text conflict in Percona-Server/mysql-test/include/have_32bit.inc
Text conflict in Percona-Server/mysql-test/include/have_community_features.inc
Text conflict in Percona-Server/mysql-test/include/have_dynamic_loading.inc
Text conflict in Percona-Server/mysql-test/include/have_example_plugin.inc
Conflict adding file Percona-Server/mysql-test/include/have_federated_plugin.inc.  Moved existing file to Percona-Server/mysql-test/include/have_federated_plugin.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/have_nodebug.inc.  Moved existing file to Percona-Server/mysql-test/include/have_nodebug.inc.moved.
Path conflict: Percona-Server/mysql-test/include/have_profiling.inc / Percona-Server/mysql-test/include/have_community_features.inc
Conflict adding file Percona-Server/mysql-test/include/have_response_time_distribution.inc.  Moved existing file to Percona-Server/mysql-test/include/have_response_time_distribution.inc.moved.
Text conflict in Percona-Server/mysql-test/include/have_simple_parser.inc
Text conflict in Percona-Server/mysql-test/include/have_udf.inc
Text conflict in Percona-Server/mysql-test/include/index_merge1.inc
Text conflict in Percona-Server/mysql-test/include/index_merge2.inc
Path conflict: Percona-Server/mysql-test/include/innodb-index.inc / Percona-Server/mysql-test/suite/innodb_plugin/include/innodb-index.inc
Path conflict: Percona-Server/mysql-test/include/innodb_trx_weight.inc / Percona-Server/mysql-test/suite/innodb_plugin/include/innodb_trx_weight.inc
Conflict adding file Percona-Server/mysql-test/include/log_grep.inc.  Moved existing file to Percona-Server/mysql-test/include/log_grep.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/log_start.inc.  Moved existing file to Percona-Server/mysql-test/include/log_start.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/log_stop.inc.  Moved existing file to Percona-Server/mysql-test/include/log_stop.inc.moved.
Text conflict in Percona-Server/mysql-test/include/mix1.inc
Text conflict in Percona-Server/mysql-test/include/mix2.inc
Text conflict in Percona-Server/mysql-test/include/mtr_check.sql
Text conflict in Percona-Server/mysql-test/include/mtr_warnings.sql
Text conflict in Percona-Server/mysql-test/include/no_valgrind_without_big.inc
Text conflict in Percona-Server/mysql-test/include/not_ndb_default.inc
Conflict adding file Percona-Server/mysql-test/include/percona_innodb_kill_idle_trx_show.inc.  Moved existing file to Percona-Server/mysql-test/include/percona_innodb_kill_idle_trx_show.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/percona_query_cache_with_comments.inc.  Moved existing file to Percona-Server/mysql-test/include/percona_query_cache_with_comments.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/percona_query_cache_with_comments_begin.inc.  Moved existing file to Percona-Server/mysql-test/include/percona_query_cache_with_comments_begin.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/percona_query_cache_with_comments_clear.inc.  Moved existing file to Percona-Server/mysql-test/include/percona_query_cache_with_comments_clear.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/percona_query_cache_with_comments_end.inc.  Moved existing file to Percona-Server/mysql-test/include/percona_query_cache_with_comments_end.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/percona_query_cache_with_comments_eval.inc.  Moved existing file to Percona-Server/mysql-test/include/percona_query_cache_with_comments_eval.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/percona_query_cache_with_comments_show.inc.  Moved existing file to Percona-Server/mysql-test/include/percona_query_cache_with_comments_show.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/percona_server_variables.inc.  Moved existing file to Percona-Server/mysql-test/include/percona_server_variables.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/percona_show_slave_status_nolock.inc.  Moved existing file to Percona-Server/mysql-test/include/percona_show_slave_status_nolock.inc.moved.
Text conflict in Percona-Server/mysql-test/include/query_cache.inc
Text conflict in Percona-Server/mysql-test/include/query_cache_sql_prepare.inc
Conflict adding file Percona-Server/mysql-test/include/query_response_time-replication.inc.  Moved existing file to Percona-Server/mysql-test/include/query_response_time-replication.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/query_response_time-stored.inc.  Moved existing file to Percona-Server/mysql-test/include/query_response_time-stored.inc.moved.
Conflict adding file Percona-Server/mysql-test/include/query_response_time.inc.  Moved existing file to Percona-Server/mysql-test/include/query_response_time.inc.moved.
Text conflict in Percona-Server/mysql-test/include/read_many_rows.inc
Text conflict in Percona-Server/mysql-test/include/rpl_change_topology.inc
Text conflict in Percona-Server/mysql-test/include/rpl_connect.inc
Text conflict in Percona-Server/mysql-test/include/rpl_diff.inc
Text conflict in Percona-Server/mysql-test/include/rpl_end.inc
Text conflict in Percona-Server/mysql-test/include/rpl_init.inc
Text conflict in Percona-Server/mysql-test/include/rpl_udf.inc
Text conflict in Percona-Server/mysql-test/include/setup_fake_relay_log.inc
Text conflict in Percona-Server/mysql-test/include/show_binlog_events.inc
Text conflict in Percona-Server/mysql-test/include/show_binlog_events2.inc
Text conflict in Percona-Server/mysql-test/include/show_rpl_debug_info.inc
Text conflict in Percona-Server/mysql-test/include/show_slave_status.inc
Text conflict in Percona-Server/mysql-test/include/sync_slave_io_with_master.inc
Text conflict in Percona-Server/mysql-test/include/test_fieldsize.inc
Text conflict in Percona-Server/mysql-test/include/truncate_file.inc
Text conflict in Percona-Server/mysql-test/include/wait_for_binlog_event.inc
Text conflict in Percona-Server/mysql-test/include/wait_for_slave_io_error.inc
Text conflict in Percona-Server/mysql-test/include/wait_for_slave_io_to_start.inc
Text conflict in Percona-Server/mysql-test/include/wait_for_slave_param.inc
Text conflict in Percona-Server/mysql-test/include/wait_for_slave_sql_error.inc
Text conflict in Percona-Server/mysql-test/include/wait_for_status_var.inc
Text conflict in Percona-Server/mysql-test/include/wait_show_condition.inc
Text conflict in Percona-Server/mysql-test/include/write_var_to_file.inc
Text conflict in Percona-Server/mysql-test/lib/My/ConfigFactory.pm
Text conflict in Percona-Server/mysql-test/lib/My/CoreDump.pm
Text conflict in Percona-Server/mysql-test/lib/My/Find.pm
Text conflict in Percona-Server/mysql-test/lib/My/Handles.pm
Text conflict in Percona-Server/mysql-test/lib/My/Options.pm
Text conflict in Percona-Server/mysql-test/lib/My/SafeProcess.pm
Text conflict in Percona-Server/mysql-test/lib/My/SafeProcess/CMakeLists.txt
Text conflict in Percona-Server/mysql-test/lib/My/SafeProcess/safe_kill_win.cc
Text conflict in Percona-Server/mysql-test/lib/My/SafeProcess/safe_process.cc
Text conflict in Percona-Server/mysql-test/lib/My/SafeProcess/safe_process_win.cc
Text conflict in Percona-Server/mysql-test/lib/My/Test.pm
Conflict adding file Percona-Server/mysql-test/lib/Subunit.pm.  Moved existing file to Percona-Server/mysql-test/lib/Subunit.pm.moved.
Text conflict in Percona-Server/mysql-test/lib/mtr_cases.pm
Text conflict in Percona-Server/mysql-test/lib/mtr_gcov.pl
Text conflict in Percona-Server/mysql-test/lib/mtr_misc.pl
Text conflict in Percona-Server/mysql-test/lib/mtr_process.pl
Text conflict in Percona-Server/mysql-test/lib/mtr_report.pm
Text conflict in Percona-Server/mysql-test/lib/t/Options.t
Text conflict in Percona-Server/mysql-test/lib/t/testMyConfigFactory.t
Text conflict in Percona-Server/mysql-test/lib/v1/mtr_io.pl
Text conflict in Percona-Server/mysql-test/lib/v1/mtr_misc.pl
Text conflict in Percona-Server/mysql-test/lib/v1/mtr_report.pl
Text conflict in Percona-Server/mysql-test/lib/v1/mysql-test-run.pl
Text conflict in Percona-Server/mysql-test/mysql-stress-test.pl
Text conflict in Percona-Server/mysql-test/mysql-test-run.pl
Text conflict in Percona-Server/mysql-test/r/1st.result
Text conflict in Percona-Server/mysql-test/r/alias.result
Text conflict in Percona-Server/mysql-test/r/alter_table-big.result
Text conflict in Percona-Server/mysql-test/r/alter_table.result
Text conflict in Percona-Server/mysql-test/r/analyze.result
Text conflict in Percona-Server/mysql-test/r/archive.result
Text conflict in Percona-Server/mysql-test/r/archive_gis.result
Text conflict in Percona-Server/mysql-test/r/auto_increment.result
Text conflict in Percona-Server/mysql-test/r/bench_count_distinct.result
Text conflict in Percona-Server/mysql-test/r/bigint.result
Text conflict in Percona-Server/mysql-test/r/bootstrap.result
Text conflict in Percona-Server/mysql-test/r/bug46080.result
Text conflict in Percona-Server/mysql-test/r/bug46760.result
Text conflict in Percona-Server/mysql-test/r/cache_innodb.result
Text conflict in Percona-Server/mysql-test/r/case.result
Text conflict in Percona-Server/mysql-test/r/cast.result
Text conflict in Percona-Server/mysql-test/r/change_user.result
Text conflict in Percona-Server/mysql-test/r/check.result
Text conflict in Percona-Server/mysql-test/r/commit_1innodb.result
Text conflict in Percona-Server/mysql-test/r/compare.result
Text conflict in Percona-Server/mysql-test/r/compress.result
Text conflict in Percona-Server/mysql-test/r/connect.result
Text conflict in Percona-Server/mysql-test/r/constraints.result
Text conflict in Percona-Server/mysql-test/r/count_distinct.result
Text conflict in Percona-Server/mysql-test/r/create-big.result
Text conflict in Percona-Server/mysql-test/r/create.result
Text conflict in Percona-Server/mysql-test/r/csv.result
Text conflict in Percona-Server/mysql-test/r/ctype_big5.result
Text conflict in Percona-Server/mysql-test/r/ctype_collate.result
Text conflict in Percona-Server/mysql-test/r/ctype_cp1250_ch.result
Text conflict in Percona-Server/mysql-test/r/ctype_cp1251.result
Text conflict in Percona-Server/mysql-test/r/ctype_cp932_binlog_stm.result
Text conflict in Percona-Server/mysql-test/r/ctype_eucjpms.result
Text conflict in Percona-Server/mysql-test/r/ctype_euckr.result
Text conflict in Percona-Server/mysql-test/r/ctype_gb2312.result
Text conflict in Percona-Server/mysql-test/r/ctype_gbk.result
Text conflict in Percona-Server/mysql-test/r/ctype_latin1.result
Text conflict in Percona-Server/mysql-test/r/ctype_ldml.result
Text conflict in Percona-Server/mysql-test/r/ctype_many.result
Text conflict in Percona-Server/mysql-test/r/ctype_mb.result
Text conflict in Percona-Server/mysql-test/r/ctype_recoding.result
Text conflict in Percona-Server/mysql-test/r/ctype_sjis.result
Text conflict in Percona-Server/mysql-test/r/ctype_uca.result
Text conflict in Percona-Server/mysql-test/r/ctype_ucs.result
Text conflict in Percona-Server/mysql-test/r/ctype_ucs2_def.result
Text conflict in Percona-Server/mysql-test/r/ctype_ujis.result
Text conflict in Percona-Server/mysql-test/r/ctype_utf8.result
Text conflict in Percona-Server/mysql-test/r/date_formats.result
Text conflict in Percona-Server/mysql-test/r/ddl_i18n_koi8r.result
Text conflict in Percona-Server/mysql-test/r/ddl_i18n_utf8.result
Text conflict in Percona-Server/mysql-test/r/debug_sync.result
Text conflict in Percona-Server/mysql-test/r/delayed.result
Text conflict in Percona-Server/mysql-test/r/delete.result
Text conflict in Percona-Server/mysql-test/r/derived.result
Text conflict in Percona-Server/mysql-test/r/dirty_close.result
Text conflict in Percona-Server/mysql-test/r/distinct.result
Text conflict in Percona-Server/mysql-test/r/drop.result
Text conflict in Percona-Server/mysql-test/r/endspace.result
Text conflict in Percona-Server/mysql-test/r/errors.result
Text conflict in Percona-Server/mysql-test/r/events_1.result
Text conflict in Percona-Server/mysql-test/r/events_2.result
Text conflict in Percona-Server/mysql-test/r/events_bugs.result
Text conflict in Percona-Server/mysql-test/r/events_grant.result
Text conflict in Percona-Server/mysql-test/r/events_trans.result
Text conflict in Percona-Server/mysql-test/r/execution_constants.result
Text conflict in Percona-Server/mysql-test/r/explain.result
Text conflict in Percona-Server/mysql-test/r/flush.result
Text conflict in Percona-Server/mysql-test/r/flush2.result
Text conflict in Percona-Server/mysql-test/r/flush_block_commit.result
Text conflict in Percona-Server/mysql-test/r/flush_block_commit_notembedded.result
Text conflict in Percona-Server/mysql-test/r/flush_read_lock_kill.result
Text conflict in Percona-Server/mysql-test/r/flush_table.result
Text conflict in Percona-Server/mysql-test/r/foreign_key.result
Text conflict in Percona-Server/mysql-test/r/fulltext.result
Path conflict: Percona-Server/mysql-test/r/func_analyse.result / Percona-Server/mysql-test/r/analyse.result
Text conflict in Percona-Server/mysql-test/r/func_compress.result
Text conflict in Percona-Server/mysql-test/r/func_default.result
Text conflict in Percona-Server/mysql-test/r/func_encrypt.result
Text conflict in Percona-Server/mysql-test/r/func_encrypt_nossl.result
Text conflict in Percona-Server/mysql-test/r/func_encrypt_ucs2.result
Text conflict in Percona-Server/mysql-test/r/func_gconcat.result
Text conflict in Percona-Server/mysql-test/r/func_group.result
Text conflict in Percona-Server/mysql-test/r/func_group_innodb.result
Text conflict in Percona-Server/mysql-test/r/func_if.result
Text conflict in Percona-Server/mysql-test/r/func_in.result
Text conflict in Percona-Server/mysql-test/r/func_isnull.result
Text conflict in Percona-Server/mysql-test/r/func_like.result
Text conflict in Percona-Server/mysql-test/r/func_math.result
Text conflict in Percona-Server/mysql-test/r/func_misc.result
Text conflict in Percona-Server/mysql-test/r/func_regexp.result
Text conflict in Percona-Server/mysql-test/r/func_sapdb.result
Text conflict in Percona-Server/mysql-test/r/func_set.result
Text conflict in Percona-Server/mysql-test/r/func_str.result
Text conflict in Percona-Server/mysql-test/r/func_test.result
Text conflict in Percona-Server/mysql-test/r/func_time.result
Text conflict in Percona-Server/mysql-test/r/gis.result
Text conflict in Percona-Server/mysql-test/r/grant.result
Text conflict in Percona-Server/mysql-test/r/grant2.result
Text conflict in Percona-Server/mysql-test/r/grant_cache_no_prot.result
Text conflict in Percona-Server/mysql-test/r/grant_cache_ps_prot.result
Text conflict in Percona-Server/mysql-test/r/greedy_optimizer.result
Text conflict in Percona-Server/mysql-test/r/group_by.result
Text conflict in Percona-Server/mysql-test/r/group_min_max.result
Text conflict in Percona-Server/mysql-test/r/group_min_max_innodb.result
Text conflict in Percona-Server/mysql-test/r/handler_innodb.result
Text conflict in Percona-Server/mysql-test/r/handler_myisam.result
Text conflict in Percona-Server/mysql-test/r/have_community_features.require
Conflict adding file Percona-Server/mysql-test/r/have_nodebug.require.  Moved existing file to Percona-Server/mysql-test/r/have_nodebug.require.moved.
Path conflict: Percona-Server/mysql-test/r/have_profiling.require / Percona-Server/mysql-test/r/have_community_features.require
Conflict adding file Percona-Server/mysql-test/r/have_response_time_distribution.require.  Moved existing file to Percona-Server/mysql-test/r/have_response_time_distribution.require.moved.
Text conflict in Percona-Server/mysql-test/r/having.result
Text conflict in Percona-Server/mysql-test/r/heap.result
Text conflict in Percona-Server/mysql-test/r/heap_btree.result
Text conflict in Percona-Server/mysql-test/r/heap_hash.result
Text conflict in Percona-Server/mysql-test/r/index_merge_innodb.result
Text conflict in Percona-Server/mysql-test/r/index_merge_myisam.result
Text conflict in Percona-Server/mysql-test/r/information_schema.result
Text conflict in Percona-Server/mysql-test/r/information_schema_db.result
Text conflict in Percona-Server/mysql-test/r/information_schema_inno.result
Text conflict in Percona-Server/mysql-test/r/information_schema_part.result
Text conflict in Percona-Server/mysql-test/r/innodb_ignore_builtin.result
Text conflict in Percona-Server/mysql-test/r/innodb_mysql_lock2.result
Text conflict in Percona-Server/mysql-test/r/insert.result
Text conflict in Percona-Server/mysql-test/r/insert_notembedded.result
Text conflict in Percona-Server/mysql-test/r/insert_select.result
Text conflict in Percona-Server/mysql-test/r/join.result
Text conflict in Percona-Server/mysql-test/r/join_outer.result
Text conflict in Percona-Server/mysql-test/r/join_outer_innodb.result
Text conflict in Percona-Server/mysql-test/r/key.result
Text conflict in Percona-Server/mysql-test/r/key_cache.result
Text conflict in Percona-Server/mysql-test/r/keywords.result
Text conflict in Percona-Server/mysql-test/r/kill.result
Text conflict in Percona-Server/mysql-test/r/loaddata.result
Text conflict in Percona-Server/mysql-test/r/locale.result
Text conflict in Percona-Server/mysql-test/r/lock.result
Text conflict in Percona-Server/mysql-test/r/lock_multi.result
Text conflict in Percona-Server/mysql-test/r/lock_sync.result
Text conflict in Percona-Server/mysql-test/r/log_state.result
Text conflict in Percona-Server/mysql-test/r/log_tables.result
Text conflict in Percona-Server/mysql-test/r/log_tables_upgrade.result
Text conflict in Percona-Server/mysql-test/r/lowercase_fs_off.result
Text conflict in Percona-Server/mysql-test/r/lowercase_table2.result
Text conflict in Percona-Server/mysql-test/r/lowercase_table4.result
Text conflict in Percona-Server/mysql-test/r/merge.result
Text conflict in Percona-Server/mysql-test/r/metadata.result
Text conflict in Percona-Server/mysql-test/r/mix2_myisam.result
Text conflict in Percona-Server/mysql-test/r/multi_update.result
Text conflict in Percona-Server/mysql-test/r/myisam-system.result
Text conflict in Percona-Server/mysql-test/r/myisam.result
Text conflict in Percona-Server/mysql-test/r/myisam_crash_before_flush_keys.result
Text conflict in Percona-Server/mysql-test/r/myisampack.result
Text conflict in Percona-Server/mysql-test/r/mysql.result
Text conflict in Percona-Server/mysql-test/r/mysql_client_test.result
Text conflict in Percona-Server/mysql-test/r/mysql_upgrade.result
Text conflict in Percona-Server/mysql-test/r/mysqladmin.result
Text conflict in Percona-Server/mysql-test/r/mysqlbinlog.result
Text conflict in Percona-Server/mysql-test/r/mysqlbinlog2.result
Text conflict in Percona-Server/mysql-test/r/mysqlbinlog_row.result
Text conflict in Percona-Server/mysql-test/r/mysqlbinlog_row_innodb.result
Text conflict in Percona-Server/mysql-test/r/mysqlbinlog_row_myisam.result
Text conflict in Percona-Server/mysql-test/r/mysqlbinlog_row_trans.result
Text conflict in Percona-Server/mysql-test/r/mysqlcheck.result
Text conflict in Percona-Server/mysql-test/r/mysqldump.result
Text conflict in Percona-Server/mysql-test/r/mysqlshow.result
Text conflict in Percona-Server/mysql-test/r/mysqlslap.result
Text conflict in Percona-Server/mysql-test/r/mysqltest.result
Text conflict in Percona-Server/mysql-test/r/named_pipe.result
Text conflict in Percona-Server/mysql-test/r/not_embedded_server.result
Text conflict in Percona-Server/mysql-test/r/not_partition.result
Text conflict in Percona-Server/mysql-test/r/null.result
Text conflict in Percona-Server/mysql-test/r/null_key.result
Text conflict in Percona-Server/mysql-test/r/odbc.result
Text conflict in Percona-Server/mysql-test/r/openssl_1.result
Text conflict in Percona-Server/mysql-test/r/order_by.result
Contents conflict in Percona-Server/mysql-test/r/outfile.result
Text conflict in Percona-Server/mysql-test/r/packet.result
Text conflict in Percona-Server/mysql-test/r/parser.result
Text conflict in Percona-Server/mysql-test/r/parser_not_embedded.result
Text conflict in Percona-Server/mysql-test/r/partition.result
Text conflict in Percona-Server/mysql-test/r/partition_archive.result
Text conflict in Percona-Server/mysql-test/r/partition_binlog_stmt.result
Text conflict in Percona-Server/mysql-test/r/partition_datatype.result
Text conflict in Percona-Server/mysql-test/r/partition_debug_sync.result
Text conflict in Percona-Server/mysql-test/r/partition_disabled.result
Text conflict in Percona-Server/mysql-test/r/partition_error.result
Text conflict in Percona-Server/mysql-test/r/partition_hash.result
Text conflict in Percona-Server/mysql-test/r/partition_innodb.result
Text conflict in Percona-Server/mysql-test/r/partition_innodb_plugin.result
Text conflict in Percona-Server/mysql-test/r/partition_innodb_semi_consistent.result
Text conflict in Percona-Server/mysql-test/r/partition_innodb_stmt.result
Text conflict in Percona-Server/mysql-test/r/partition_list.result
Text conflict in Percona-Server/mysql-test/r/partition_mgm_err.result
Text conflict in Percona-Server/mysql-test/r/partition_myisam.result
Text conflict in Percona-Server/mysql-test/r/partition_pruning.result
Text conflict in Percona-Server/mysql-test/r/partition_range.result
Text conflict in Percona-Server/mysql-test/r/partition_symlink.result
Conflict adding file Percona-Server/mysql-test/r/percona_bug45702.result.  Moved existing file to Percona-Server/mysql-test/r/percona_bug45702.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_bug643149.result.  Moved existing file to Percona-Server/mysql-test/r/percona_bug643149.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_bug933969.result.  Moved existing file to Percona-Server/mysql-test/r/percona_bug933969.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_innodb_buffer_pool_shm.result.  Moved existing file to Percona-Server/mysql-test/r/percona_innodb_buffer_pool_shm.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_innodb_deadlock_count.result.  Moved existing file to Percona-Server/mysql-test/r/percona_innodb_deadlock_count.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_innodb_doublewrite_file.result.  Moved existing file to Percona-Server/mysql-test/r/percona_innodb_doublewrite_file.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_innodb_expand_fast_index_creation.result.  Moved existing file to Percona-Server/mysql-test/r/percona_innodb_expand_fast_index_creation.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_innodb_fake_changes.result.  Moved existing file to Percona-Server/mysql-test/r/percona_innodb_fake_changes.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_innodb_fake_changes_locks.result.  Moved existing file to Percona-Server/mysql-test/r/percona_innodb_fake_changes_locks.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_innodb_kill_idle_trx.result.  Moved existing file to Percona-Server/mysql-test/r/percona_innodb_kill_idle_trx.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_innodb_kill_idle_trx_locks.result.  Moved existing file to Percona-Server/mysql-test/r/percona_innodb_kill_idle_trx_locks.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_innodb_use_sys_stats_table.result.  Moved existing file to Percona-Server/mysql-test/r/percona_innodb_use_sys_stats_table.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_innodb_version.result.  Moved existing file to Percona-Server/mysql-test/r/percona_innodb_version.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_connection_error.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_connection_error.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_admin_statements-config.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_admin_statements-config.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_admin_statements-config_false.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_admin_statements-config_false.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_admin_statements-config_foo.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_admin_statements-config_foo.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_admin_statements-config_true.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_admin_statements-config_true.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_admin_statements.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_admin_statements.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_filter-cl.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_filter-cl.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_filter.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_filter.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_slave_statements-cl.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_slave_statements-cl.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_slave_statements-innodb.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_slave_statements-innodb.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_slave_statements.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_slave_statements.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_sp_statements-cl.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_sp_statements-cl.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_sp_statements.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_sp_statements.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_verbosity-cl.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_verbosity-cl.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_log_slow_verbosity.result.  Moved existing file to Percona-Server/mysql-test/r/percona_log_slow_verbosity.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_long_query_time.result.  Moved existing file to Percona-Server/mysql-test/r/percona_long_query_time.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_min_examined_row_limit.result.  Moved existing file to Percona-Server/mysql-test/r/percona_min_examined_row_limit.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_mysqldump_innodb_optimize_keys.result.  Moved existing file to Percona-Server/mysql-test/r/percona_mysqldump_innodb_optimize_keys.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_query_cache_with_comments.result.  Moved existing file to Percona-Server/mysql-test/r/percona_query_cache_with_comments.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_query_cache_with_comments_crash.result.  Moved existing file to Percona-Server/mysql-test/r/percona_query_cache_with_comments_crash.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_query_cache_with_comments_disable.result.  Moved existing file to Percona-Server/mysql-test/r/percona_query_cache_with_comments_disable.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_query_cache_with_comments_prepared_statements.result.  Moved existing file to Percona-Server/mysql-test/r/percona_query_cache_with_comments_prepared_statements.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_query_response_time-replication.result.  Moved existing file to Percona-Server/mysql-test/r/percona_query_response_time-replication.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_query_response_time-stored.result.  Moved existing file to Percona-Server/mysql-test/r/percona_query_response_time-stored.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_query_response_time.result.  Moved existing file to Percona-Server/mysql-test/r/percona_query_response_time.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_server_variables_debug.result.  Moved existing file to Percona-Server/mysql-test/r/percona_server_variables_debug.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_server_variables_release.result.  Moved existing file to Percona-Server/mysql-test/r/percona_server_variables_release.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_show_slave_status_nolock.result.  Moved existing file to Percona-Server/mysql-test/r/percona_show_slave_status_nolock.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_show_temp_tables.result.  Moved existing file to Percona-Server/mysql-test/r/percona_show_temp_tables.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_sql_no_fcache.result.  Moved existing file to Percona-Server/mysql-test/r/percona_sql_no_fcache.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_status_wait_query_cache_mutex.result.  Moved existing file to Percona-Server/mysql-test/r/percona_status_wait_query_cache_mutex.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_utf8_general50_ci.result.  Moved existing file to Percona-Server/mysql-test/r/percona_utf8_general50_ci.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_xtradb_admin_command.result.  Moved existing file to Percona-Server/mysql-test/r/percona_xtradb_admin_command.result.moved.
Conflict adding file Percona-Server/mysql-test/r/percona_xtradb_bug317074.result.  Moved existing file to Percona-Server/mysql-test/r/percona_xtradb_bug317074.result.moved.
Text conflict in Percona-Server/mysql-test/r/perror-win.result
Text conflict in Percona-Server/mysql-test/r/perror.result
Text conflict in Percona-Server/mysql-test/r/plugin.result
Text conflict in Percona-Server/mysql-test/r/profiling.result
Text conflict in Percona-Server/mysql-test/r/ps.result
Text conflict in Percona-Server/mysql-test/r/ps_1general.result
Text conflict in Percona-Server/mysql-test/r/ps_2myisam.result
Text conflict in Percona-Server/mysql-test/r/ps_3innodb.result
Text conflict in Percona-Server/mysql-test/r/ps_4heap.result
Text conflict in Percona-Server/mysql-test/r/ps_5merge.result
Text conflict in Percona-Server/mysql-test/r/ps_ddl.result
Text conflict in Percona-Server/mysql-test/r/ps_ddl1.result
Text conflict in Percona-Server/mysql-test/r/query_cache.result
Text conflict in Percona-Server/mysql-test/r/query_cache_28249.result
Text conflict in Percona-Server/mysql-test/r/query_cache_debug.result
Conflict adding file Percona-Server/mysql-test/r/query_cache_disabled.result.  Moved existing file to Percona-Server/mysql-test/r/query_cache_disabled.result.moved.
Text conflict in Percona-Server/mysql-test/r/query_cache_notembedded.result
Text conflict in Percona-Server/mysql-test/r/query_cache_ps_no_prot.result
Text conflict in Percona-Server/mysql-test/r/query_cache_ps_ps_prot.result
Text conflict in Percona-Server/mysql-test/r/range.result
Text conflict in Percona-Server/mysql-test/r/read_many_rows_innodb.result
Text conflict in Percona-Server/mysql-test/r/read_only_innodb.result
Text conflict in Percona-Server/mysql-test/r/rename.result
Text conflict in Percona-Server/mysql-test/r/repair.result
Text conflict in Percona-Server/mysql-test/r/schema.result
Text conflict in Percona-Server/mysql-test/r/select.result
Text conflict in Percona-Server/mysql-test/r/select_safe.result
Text conflict in Percona-Server/mysql-test/r/shm.result
Text conflict in Percona-Server/mysql-test/r/show_check.result
Text conflict in Percona-Server/mysql-test/r/sp-big.result
Text conflict in Percona-Server/mysql-test/r/sp-bugs.result
Text conflict in Percona-Server/mysql-test/r/sp-code.result
Text conflict in Percona-Server/mysql-test/r/sp-destruct.result
Text conflict in Percona-Server/mysql-test/r/sp-dynamic.result
Text conflict in Percona-Server/mysql-test/r/sp-error.result
Text conflict in Percona-Server/mysql-test/r/sp-security.result
Text conflict in Percona-Server/mysql-test/r/sp-threads.result
Text conflict in Percona-Server/mysql-test/r/sp-ucs2.result
Text conflict in Percona-Server/mysql-test/r/sp-vars.result
Text conflict in Percona-Server/mysql-test/r/sp.result
Text conflict in Percona-Server/mysql-test/r/sp_notembedded.result
Text conflict in Percona-Server/mysql-test/r/sp_sync.result
Text conflict in Percona-Server/mysql-test/r/sp_trans.result
Text conflict in Percona-Server/mysql-test/r/sp_trans_log.result
Text conflict in Percona-Server/mysql-test/r/sql_mode.result
Text conflict in Percona-Server/mysql-test/r/ssl.result
Text conflict in Percona-Server/mysql-test/r/ssl_compress.result
Text conflict in Percona-Server/mysql-test/r/strict.result
Text conflict in Percona-Server/mysql-test/r/subselect.result
Text conflict in Percona-Server/mysql-test/r/subselect3.result
Text conflict in Percona-Server/mysql-test/r/subselect4.result
Text conflict in Percona-Server/mysql-test/r/subselect_innodb.result
Text conflict in Percona-Server/mysql-test/r/symlink.result
Text conflict in Percona-Server/mysql-test/r/system_mysql_db.result
Text conflict in Percona-Server/mysql-test/r/temp_table.result
Text conflict in Percona-Server/mysql-test/r/trigger-compat.result
Text conflict in Percona-Server/mysql-test/r/trigger-trans.result
Text conflict in Percona-Server/mysql-test/r/trigger.result
Text conflict in Percona-Server/mysql-test/r/trigger_notembedded.result
Text conflict in Percona-Server/mysql-test/r/truncate.result
Text conflict in Percona-Server/mysql-test/r/type_binary.result
Text conflict in Percona-Server/mysql-test/r/type_bit.result
Text conflict in Percona-Server/mysql-test/r/type_blob.result
Text conflict in Percona-Server/mysql-test/r/type_date.result
Text conflict in Percona-Server/mysql-test/r/type_datetime.result
Text conflict in Percona-Server/mysql-test/r/type_decimal.result
Text conflict in Percona-Server/mysql-test/r/type_float.result
Text conflict in Percona-Server/mysql-test/r/type_newdecimal.result
Text conflict in Percona-Server/mysql-test/r/type_ranges.result
Text conflict in Percona-Server/mysql-test/r/type_time.result
Text conflict in Percona-Server/mysql-test/r/type_timestamp.result
Text conflict in Percona-Server/mysql-test/r/type_varchar.result
Text conflict in Percona-Server/mysql-test/r/udf.result
Text conflict in Percona-Server/mysql-test/r/union.result
Text conflict in Percona-Server/mysql-test/r/update.result
Text conflict in Percona-Server/mysql-test/r/user_limits.result
Text conflict in Percona-Server/mysql-test/r/user_var-binlog.result
Text conflict in Percona-Server/mysql-test/r/user_var.result
Conflict adding file Percona-Server/mysql-test/r/userstat_bug602047.result.  Moved existing file to Percona-Server/mysql-test/r/userstat_bug602047.result.moved.
Text conflict in Percona-Server/mysql-test/r/variables-big.result
Text conflict in Percona-Server/mysql-test/r/variables-notembedded.result
Text conflict in Percona-Server/mysql-test/r/variables.result
Text conflict in Percona-Server/mysql-test/r/variables_debug.result
Text conflict in Percona-Server/mysql-test/r/view.result
Text conflict in Percona-Server/mysql-test/r/view_grant.result
Text conflict in Percona-Server/mysql-test/r/warnings.result
Text conflict in Percona-Server/mysql-test/r/warnings_engine_disabled.result
Text conflict in Percona-Server/mysql-test/r/xa.result
Text conflict in Percona-Server/mysql-test/r/xml.result
Text conflict in Percona-Server/mysql-test/std_data/Index.xml
Contents conflict in Percona-Server/mysql-test/std_data/ndb_backup51_data_be/BACKUP-1-0.1.Data
Contents conflict in Percona-Server/mysql-test/std_data/ndb_backup51_data_le/BACKUP-1-0.2.Data
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_base64_flag.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_bug36391.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_database.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_drop_if_exists.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_grant.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_innodb.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_innodb_row.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_killed.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_killed_simulate.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_mix_innodb_stat.result
Path conflict: Percona-Server/mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result / Percona-Server/mysql-test/suite/binlog/r/binlog_mix_innodb_stat.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_multi_engine.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_row_binlog.result
Path conflict: Percona-Server/mysql-test/suite/binlog/r/binlog_row_cache_stat.result / Percona-Server/mysql-test/suite/binlog/r/binlog_row_innodb_stat.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_row_innodb_stat.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_row_insert_select.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_server_id.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_sql_mode.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_binlog.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_blackhole.result
Path conflict: Percona-Server/mysql-test/suite/binlog/r/binlog_stm_cache_stat.result / Percona-Server/mysql-test/suite/binlog/r/binlog_stm_innodb_stat.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_do_db.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_innodb_stat.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_insert_select.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_ps.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_row.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_truncate_innodb.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_truncate_myisam.result
Text conflict in Percona-Server/mysql-test/suite/binlog/r/binlog_unsafe.result
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_base64_flag.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_bug36391.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_grant.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_incident.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_innodb.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_innodb_row.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_killed.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_killed_simulate.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_mix_innodb_stat.test
Path conflict: Percona-Server/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.test / Percona-Server/mysql-test/suite/binlog/t/binlog_mix_innodb_stat.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_multi_engine.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_row_binlog-master.opt
Path conflict: Percona-Server/mysql-test/suite/binlog/t/binlog_row_cache_stat.test / Percona-Server/mysql-test/suite/binlog/t/binlog_row_innodb_stat.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_row_innodb_stat.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam-master.opt
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_db_filter.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_sql_mode.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_statement_insert_delayed.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_stm_binlog-master.opt
Path conflict: Percona-Server/mysql-test/suite/binlog/t/binlog_stm_cache_stat.test / Percona-Server/mysql-test/suite/binlog/t/binlog_stm_innodb_stat.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_stm_do_db.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_stm_innodb_stat.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam-master.opt
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_stm_ps.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_stm_row.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning-master.opt
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_tmp_table.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_truncate_innodb.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_truncate_myisam.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_unsafe.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/binlog_write_error.test
Text conflict in Percona-Server/mysql-test/suite/binlog/t/disabled.def
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/ai_init_insert.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/comment_column.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/comment_column2.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/comment_table.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_alter_character_set.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_alter_character_set_collate.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_create_character_set.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_create_character_set_collate.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_create_drop.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_create_error.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_create_error_reserved.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_create_if_not_exists.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_drop_error.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/db_use_error.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/in_multicolumn_string_pk_constraint_error.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/in_multicolumn_string_pk_constraint_ignore.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/in_multicolumn_string_unique_constraint_error.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/jp_comment_column.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/jp_comment_table.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_000015.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_REDIRECT.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_change_master.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_create_database.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_empty_master_crash.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_flushlog_loop.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_loaddata_m.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_loaddata_s.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_log_pos.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_multi_delete2.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_rbr_to_sbr.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_row_drop.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_row_inexist_tbl.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_row_max_relay_size.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_row_reset_slave.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_row_sp005.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_row_trig003.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_row_until.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_server_id1.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_server_id2.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_slave_status.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_sp.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_stm_max_relay_size.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_stm_reset_slave.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_switch_stm_row_mixed.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_temporary.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_trigger.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/rpl_variables.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/sf_alter.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/sf_cursor.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/sp_alter.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/r/sp_cursor.result
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/comment_column.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/comment_column2.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/comment_table.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/disabled.def
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/in_multicolumn_string_pk_constraint_error.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/in_multicolumn_string_pk_constraint_ignore.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/in_multicolumn_string_unique_constraint_error.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/in_string_pk_constraint_error.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/in_string_unique_constraint_error.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/jp_comment_column.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/jp_comment_table.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl000013.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_REDIRECT.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_empty_master_crash.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_err_ignoredtable.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_get_lock.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_loaddata_s.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_loadfile.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_log_pos.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_misc_functions.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_multi_delete2.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_rbr_to_sbr.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_row_max_relay_size.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_sp-master.opt
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_sp-slave.opt
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_sp.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_sp_effects-master.opt
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_sp_effects-slave.opt
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_switch_stm_row_mixed.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_temp_table.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_temporary.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_trigger.test
Text conflict in Percona-Server/mysql-test/suite/engines/funcs/t/rpl_variables.test
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/r/delete_decimal.result
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/r/insert_decimal.result
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/r/insert_number.result
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/r/insert_time.result
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/r/type_bit_iuds.result
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/r/update_decimal.result
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/r/update_delete_calendar.result
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/r/update_delete_number.result
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/r/update_time.result
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/t/disabled.def
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/t/insert_number.test
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/t/insert_year.test
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/t/type_bit_iuds.test
Text conflict in Percona-Server/mysql-test/suite/engines/iuds/t/update_delete_calendar.test
Text conflict in Percona-Server/mysql-test/suite/federated/federated.test
Text conflict in Percona-Server/mysql-test/suite/federated/federated_bug_25714.test
Conflict adding file Percona-Server/mysql-test/suite/federated/federated_bug_35333.result.  Moved existing file to Percona-Server/mysql-test/suite/federated/federated_bug_35333.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/federated/federated_bug_35333.test.  Moved existing file to Percona-Server/mysql-test/suite/federated/federated_bug_35333.test.moved.
Text conflict in Percona-Server/mysql-test/suite/federated/federated_debug.test
Conflict adding file Percona-Server/mysql-test/suite/federated/federated_plugin-master.opt.  Moved existing file to Percona-Server/mysql-test/suite/federated/federated_plugin-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/suite/federated/federated_plugin.result.  Moved existing file to Percona-Server/mysql-test/suite/federated/federated_plugin.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/federated/federated_plugin.test.  Moved existing file to Percona-Server/mysql-test/suite/federated/federated_plugin.test.moved.
Text conflict in Percona-Server/mysql-test/suite/federated/federated_server.result
Text conflict in Percona-Server/mysql-test/suite/federated/federated_server.test
Text conflict in Percona-Server/mysql-test/suite/federated/my.cnf
Text conflict in Percona-Server/mysql-test/suite/funcs_1/datadict/basics_mixed1.inc
Text conflict in Percona-Server/mysql-test/suite/funcs_1/datadict/datadict_priv.inc
Text conflict in Percona-Server/mysql-test/suite/funcs_1/datadict/is_routines.inc
Text conflict in Percona-Server/mysql-test/suite/funcs_1/datadict/is_tables.inc
Text conflict in Percona-Server/mysql-test/suite/funcs_1/datadict/processlist_priv.inc
Text conflict in Percona-Server/mysql-test/suite/funcs_1/datadict/processlist_val.inc
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/innodb_func_view.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/innodb_trig_03.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/innodb_trig_03e.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/innodb_trig_08.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/innodb_views.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_basics_mixed.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_cml_innodb.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_cml_memory.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_cml_myisam.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_column_privileges.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_columns.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_columns_innodb.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_columns_is.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_columns_is_embedded.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_columns_memory.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_columns_myisam.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_columns_myisam_embedded.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_columns_mysql.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_engines_innodb.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_engines_myisam.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_events.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_key_column_usage.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_routines.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_schema_privileges.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_schema_privileges_is_mysql_test.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_schemata.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_schemata_is_mysql_test.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_statistics.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_statistics_is.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_statistics_mysql.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_statistics_mysql_embedded.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_table_constraints.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_table_constraints_mysql_embedded.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_table_privileges.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_tables.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_tables_innodb.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_tables_is.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_tables_memory.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_tables_myisam.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_tables_myisam_embedded.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_tables_mysql.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_tables_mysql_embedded.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_triggers.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_user_privileges.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/is_views.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/memory_func_view.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/memory_storedproc_02.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/memory_storedproc_06.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/memory_storedproc_07.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/memory_storedproc_08.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/memory_storedproc_10.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/memory_trig_03.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/memory_trig_03e.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/memory_trig_08.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/memory_views.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/myisam_func_view.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/myisam_trig_03.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/myisam_trig_03e.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/myisam_trig_08.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/myisam_views-big.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/processlist_priv_ps.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/processlist_val_no_prot.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/processlist_val_ps.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/r/storedproc.result
Text conflict in Percona-Server/mysql-test/suite/funcs_1/storedproc/storedproc_06.inc
Text conflict in Percona-Server/mysql-test/suite/funcs_1/storedproc/storedproc_08_show.inc
Text conflict in Percona-Server/mysql-test/suite/funcs_1/t/disabled.def
Text conflict in Percona-Server/mysql-test/suite/funcs_1/t/is_basics_mixed.test
Text conflict in Percona-Server/mysql-test/suite/funcs_1/t/is_columns.test
Text conflict in Percona-Server/mysql-test/suite/funcs_1/t/is_columns_is.test
Text conflict in Percona-Server/mysql-test/suite/funcs_1/t/is_columns_is_embedded.test
Text conflict in Percona-Server/mysql-test/suite/funcs_1/t/is_tables_is.test
Text conflict in Percona-Server/mysql-test/suite/funcs_1/t/is_user_privileges.test
Text conflict in Percona-Server/mysql-test/suite/funcs_1/views/func_view.inc
Text conflict in Percona-Server/mysql-test/suite/funcs_1/views/views_master.inc
Text conflict in Percona-Server/mysql-test/suite/funcs_2/charset/charset_master.test
Text conflict in Percona-Server/mysql-test/suite/funcs_2/r/innodb_charset.result
Text conflict in Percona-Server/mysql-test/suite/funcs_2/r/memory_charset.result
Text conflict in Percona-Server/mysql-test/suite/funcs_2/r/myisam_charset.result
Text conflict in Percona-Server/mysql-test/suite/funcs_2/t/disabled.def
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb-autoinc-44030.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb-autoinc-44030.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb-autoinc.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb-autoinc.result.moved.
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb-index.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb-index.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb-index_ucs2.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb-index_ucs2.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb-lock.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb-lock.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb-replace.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb-replace.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb-semi-consistent.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb-semi-consistent.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb-zip.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb-zip.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb.result
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug11754376.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug11754376.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug12400341.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug12400341.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug13510739.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug13510739.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug21704.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug21704.result.moved.
Text conflict in Percona-Server/mysql-test/suite/innodb/r/innodb_bug30423.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_bug34053.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_bug34053.result
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug34300.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug34300.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug35220.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug35220.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug38231.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug38231.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug39438.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug39438.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug40565.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug40565.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug42101-nonzero.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug42101-nonzero.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug42101.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug42101.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug44369.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug44369.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug45357.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug45357.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug46000.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug46000.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug47621.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug47621.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug47777.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug47777.result.moved.
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_bug48024.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_bug48024.result
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug51920.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug51920.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug52663.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug52663.result.moved.
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_bug53290.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_bug53290.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_bug53591.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_bug53591.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_bug53674.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_bug53674.result
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug53756.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug53756.result.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug54044.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug54044.result.moved.
Text conflict in Percona-Server/mysql-test/suite/innodb/r/innodb_bug56143.result
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_bug56680.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_bug56680.result.moved.
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_bug56716.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_bug56716.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_bug59307.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_bug59307.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_bug59410.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_bug59410.result
Text conflict in Percona-Server/mysql-test/suite/innodb/r/innodb_gis.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_information_schema.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_information_schema.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_misc1.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_misc1.result
Conflict adding file Percona-Server/mysql-test/suite/innodb/r/innodb_multi_update.result.  Moved existing file to Percona-Server/mysql-test/suite/innodb/r/innodb_multi_update.result.moved.
Text conflict in Percona-Server/mysql-test/suite/innodb/r/innodb_mysql.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_replace.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_replace.result
Path conflict: Percona-Server/mysql-test/suite/innodb/r/innodb_trx_weight.result / Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_trx_weight.result
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/disabled.def.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/disabled.def.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb-autoinc-44030.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb-autoinc-44030.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb-autoinc.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb-autoinc.test.moved.
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb-index.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-index.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb-index_ucs2.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-index_ucs2.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb-lock.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-lock.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb-master.opt / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-master.opt
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb-replace.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-replace.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb-semi-consistent-master.opt / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-semi-consistent-master.opt
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb-semi-consistent.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-semi-consistent.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb-zip.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-zip.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb.test
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug11754376.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug11754376.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug12400341-master.opt.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug12400341-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug12400341.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug12400341.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug13510739.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug13510739.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug21704.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug21704.test.moved.
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_bug34053.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug34053.test
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug34300.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug34300.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug35220.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug35220.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug38231.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug38231.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug39438-master.opt.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug39438-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug39438.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug39438.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug40565.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug40565.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug42101-nonzero-master.opt.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug42101-nonzero-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug42101-nonzero.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug42101-nonzero.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug42101.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug42101.test.moved.
Text conflict in Percona-Server/mysql-test/suite/innodb/t/innodb_bug42419.test
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug44369.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug44369.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug45357.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug45357.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug46000.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug46000.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug47621.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug47621.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug47777.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug47777.test.moved.
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_bug48024.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug48024.test
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug51920.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug51920.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug52663.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug52663.test.moved.
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_bug53290.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug53290.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_bug53591.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug53591.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_bug53674-master.opt / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug53674-master.opt
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_bug53674.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug53674.test
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug53756-master.opt.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug53756-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug53756.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug53756.test.moved.
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug54044.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug54044.test.moved.
Text conflict in Percona-Server/mysql-test/suite/innodb/t/innodb_bug56143.test
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_bug56680.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_bug56680.test.moved.
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_bug56716.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug56716.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_bug59307.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug59307.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_bug59410.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug59410.test
Text conflict in Percona-Server/mysql-test/suite/innodb/t/innodb_bug59641.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_information_schema.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_information_schema.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_misc1-master.opt / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_misc1-master.opt
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_misc1.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_misc1.test
Conflict adding file Percona-Server/mysql-test/suite/innodb/t/innodb_multi_update.test.  Moved existing file to Percona-Server/mysql-test/suite/innodb/t/innodb_multi_update.test.moved.
Text conflict in Percona-Server/mysql-test/suite/innodb/t/innodb_mysql-master.opt
Text conflict in Percona-Server/mysql-test/suite/innodb/t/innodb_mysql.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_replace.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_replace.test
Path conflict: Percona-Server/mysql-test/suite/innodb/t/innodb_trx_weight.test / Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_trx_weight.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/r/innodb-index.result
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/r/innodb-lock.result
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/r/innodb-semi-consistent.result
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/r/innodb-zip.result
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/r/innodb.result
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_information_schema.result
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/r/innodb_misc1.result
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-index.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-index_ucs2.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-lock.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-master.opt
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-replace.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-semi-consistent.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb-zip.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug34053.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug48024.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug53290.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug53591.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug53674.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug56716.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug59307.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_bug59410.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_information_schema.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_misc1.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_replace.test
Text conflict in Percona-Server/mysql-test/suite/innodb_plugin/t/innodb_trx_weight.test
Text conflict in Percona-Server/mysql-test/suite/jp/r/jp_create_db_sjis.result
Text conflict in Percona-Server/mysql-test/suite/jp/r/jp_create_db_ucs2.result
Text conflict in Percona-Server/mysql-test/suite/jp/r/jp_create_db_ujis.result
Text conflict in Percona-Server/mysql-test/suite/jp/r/jp_create_db_utf8.result
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_alter2_1.inc
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_alter2_2.inc
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_alter_13.inc
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_check.inc
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_check_drop.inc
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_key_32col.inc
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_layout.inc
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_layout_check1.inc
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_layout_check2.inc
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_mgm.inc
Text conflict in Percona-Server/mysql-test/suite/parts/inc/partition_syntax.inc
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_alter1_2_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_alter1_2_myisam.result
Path conflict: Percona-Server/mysql-test/suite/parts/r/partition_alter2_1_1_innodb.result / Percona-Server/mysql-test/suite/parts/r/partition_alter2_1_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_alter2_1_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_alter2_1_myisam.result
Path conflict: Percona-Server/mysql-test/suite/parts/r/partition_alter2_2_1_innodb.result / Percona-Server/mysql-test/suite/parts/r/partition_alter2_2_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_alter2_2_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_alter2_2_myisam.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_auto_increment_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_debug_sync_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_float_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_float_myisam.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_recover_myisam.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_special_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_special_myisam.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_syntax_innodb.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/partition_syntax_myisam.result
Text conflict in Percona-Server/mysql-test/suite/parts/r/rpl_partition.result
Path conflict: Percona-Server/mysql-test/suite/parts/t/partition_alter2_1_1_innodb.test / Percona-Server/mysql-test/suite/parts/t/partition_alter2_1_innodb.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_alter2_1_innodb.test
Path conflict: Percona-Server/mysql-test/suite/parts/t/partition_alter2_2_1_innodb.test / Percona-Server/mysql-test/suite/parts/t/partition_alter2_2_innodb.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_alter2_2_innodb.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_debug_sync_innodb.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_mgm_lc1_archive.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_mgm_lc2_archive.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_recover_myisam.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_repair_myisam.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_special_innodb-master.opt
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_special_innodb.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/partition_special_myisam.test
Text conflict in Percona-Server/mysql-test/suite/parts/t/rpl_partition.test
Text conflict in Percona-Server/mysql-test/suite/rpl/my.cnf
Conflict adding file Percona-Server/mysql-test/suite/rpl/r/percona_bug860910.result.  Moved existing file to Percona-Server/mysql-test/suite/rpl/r/percona_bug860910.result.moved.
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_000011.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_EE_err.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_alter.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_auto_increment_11932.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_binlog_grant.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_binlog_max_cache_size.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_blackhole.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_bug31076.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_charset.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_colSize.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_concurrency_error.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_conditional_comments.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_create_if_not_exists.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_create_tmp_table_if_not_exists.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_current_user.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_do_grant.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_drop.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_drop_temp.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_err_ignoredtable.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_events.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_failed_optimize.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_flushlog_loop.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_found_rows.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_get_lock.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_idempotency.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_innodb.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_insert_id.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_insert_id_pk.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_insert_ignore.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_loaddata.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_loaddata_concurrent.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_loaddata_m.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_loaddata_map.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_loaddatalocal.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_log_pos.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_manual_change_index_file.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_misc_functions.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_multi_delete2.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_multi_update.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_multi_update2.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_multi_update3.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_mysql_upgrade.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_optimize.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_packet.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_ps.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_read_only.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_rotate_logs.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
Path conflict: Percona-Server/mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result / Percona-Server/mysql-test/suite/rpl/r/rpl_binlog_max_cache_size.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_colSize.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_conflicts.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_create_table.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_drop.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_insert_delayed.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_log.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_log_innodb.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_max_relay_size.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_reset_slave.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_sp003.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_sp005.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_sp007_innodb.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_server_id2.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_show_slave_running.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_slave_grp_exec.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_slave_load_remove_tmpfile.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_slave_skip.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_slave_status.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_slow_query_log.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_sp.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_sporadic_master.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_ssl1.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_start_stop_slave.result
Conflict adding file Percona-Server/mysql-test/suite/rpl/r/rpl_start_stop_slave.result.  Moved existing file to Percona-Server/mysql-test/suite/rpl/r/rpl_start_stop_slave.result.moved.
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_000001.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_conflicts.result
Path conflict: Percona-Server/mysql-test/suite/rpl/r/rpl_stm_found_rows.result / Percona-Server/mysql-test/suite/rpl/r/rpl_found_rows.result
Path conflict: Percona-Server/mysql-test/suite/rpl/r/rpl_stm_innodb.result / Percona-Server/mysql-test/suite/rpl/r/rpl_innodb.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_insert_delayed.result
Path conflict: Percona-Server/mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result / Percona-Server/mysql-test/suite/rpl/r/rpl_loaddata_concurrent.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_loadfile.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_log.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_multi_query.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_reset_slave.result
Path conflict: Percona-Server/mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result / Percona-Server/mysql-test/suite/rpl/r/rpl_start_stop_slave.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stm_until.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_stop_slave.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_temporary.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_temporary_errors.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_trigger.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_typeconv_innodb.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_udf.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_variables.result
Text conflict in Percona-Server/mysql-test/suite/rpl/r/rpl_variables_stm.result
Text conflict in Percona-Server/mysql-test/suite/rpl/rpl_1slave_base.cnf
Text conflict in Percona-Server/mysql-test/suite/rpl/t/disabled.def
Conflict adding file Percona-Server/mysql-test/suite/rpl/t/percona_bug860910.cnf.  Moved existing file to Percona-Server/mysql-test/suite/rpl/t/percona_bug860910.cnf.moved.
Conflict adding file Percona-Server/mysql-test/suite/rpl/t/percona_bug860910.test.  Moved existing file to Percona-Server/mysql-test/suite/rpl/t/percona_bug860910.test.moved.
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_000010.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_000011.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_000013.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_alter.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_auto_increment_11932.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_auto_increment_bug33029.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_binlog_grant.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_binlog_max_cache_size.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_bit.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_bit_npk.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_blackhole.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_bug31076.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_bug33931.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_change_master.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_colSize.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_concurrency_error.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_create_if_not_exists.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_cross_version-master.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_cross_version.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_current_user.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_do_grant.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_drop.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_drop_temp.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_drop_view.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_err_ignoredtable.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_events.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_extra_col_master_innodb.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_extra_col_slave_innodb.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_extra_col_slave_myisam.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_flushlog_loop-master.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_found_rows.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_get_lock.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_idempotency.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_ignore_table.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_innodb.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_insert.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_insert_ignore.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_invoked_features.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_killed_ddl.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_loaddata.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_loaddata_charset.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_loaddata_concurrent.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_loaddata_m.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_loaddata_s.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_loaddatalocal.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_log_pos.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_master_pos_wait.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_misc_functions.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_multi_delete.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_multi_delete2.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_multi_update2.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_multi_update3.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_mysql_upgrade.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_optimize.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_packet-master.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_packet-slave.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_packet.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_ps.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_rbr_to_sbr.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_read_only.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_relayrotate-slave.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_replicate_do.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_rotate_logs.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_basic_11bugs-master.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_basic_3innodb.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_colSize.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_create_table.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_flsh_tbls.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_insert_delayed.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_log_innodb-master.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_sp001.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_sp005.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_sp008.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_sp009.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_sp010.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_trig002.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_trig003.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_row_until.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_server_id2.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_session_var.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_set_charset.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_show_slave_running.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_slave_grp_exec.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_slave_skip.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_slave_status.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_slow_query_log.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_sp-master.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_sp-slave.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_sp.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_sp004.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_sp_effects-master.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_sp_effects-slave.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_sporadic_master.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_ssl.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_ssl1.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_start_stop_slave.test
Conflict adding file Percona-Server/mysql-test/suite/rpl/t/rpl_start_stop_slave.test.  Moved existing file to Percona-Server/mysql-test/suite/rpl/t/rpl_start_stop_slave.test.moved.
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_stm_000001.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_stm_auto_increment_bug33029.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_stm_flsh_tbls.test
Path conflict: Percona-Server/mysql-test/suite/rpl/t/rpl_stm_found_rows.test / Percona-Server/mysql-test/suite/rpl/t/rpl_found_rows.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_stm_insert_delayed.test
Path conflict: Percona-Server/mysql-test/suite/rpl/t/rpl_stm_loaddata_concurrent.test / Percona-Server/mysql-test/suite/rpl/t/rpl_loaddata_concurrent.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_stm_loadfile.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_stm_mixing_engines.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_stm_until.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_stop_slave.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_temp_table.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_temporary.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_temporary_errors-slave.opt
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_temporary_errors.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_timezone.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_trigger.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_typeconv_innodb.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_udf.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_user_variables.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_variables.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_variables_stm.test
Text conflict in Percona-Server/mysql-test/suite/rpl/t/rpl_view.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/bulk_insert_buffer_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/delayed_insert_limit_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/delayed_queue_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/join_buffer_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/key_cache_age_threshold_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/key_cache_block_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/key_cache_division_limit_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/log_warnings_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/max_binlog_cache_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/max_connect_errors_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/max_heap_table_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/max_seeks_for_key_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/max_tmp_tables_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/max_write_lock_count_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/min_examined_row_limit_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/myisam_max_sort_file_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/myisam_repair_threads_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/myisam_sort_buffer_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/net_retry_count_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/query_alloc_block_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/query_cache_limit_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/query_cache_min_res_unit_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/query_cache_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/query_prealloc_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/range_alloc_block_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/rpl_recovery_rank_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/server_id_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/slave_transaction_retries_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/sort_buffer_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/sync_binlog_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/timestamp_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/transaction_alloc_block_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/transaction_prealloc_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/inc/wait_timeout_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/auto_commit_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/auto_increment_increment_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/auto_increment_increment_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/auto_increment_offset_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/auto_increment_offset_func.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/autocommit_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/auto_commit_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/autocommit_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/automatic_sp_privileges_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/big_tables_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/binlog_cache_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/binlog_cache_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/bulk_insert_buffer_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/bulk_insert_buffer_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/character_set_client_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/character_set_client_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/character_set_connection_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/character_set_database_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/character_set_database_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/character_set_filesystem_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/character_set_results_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/character_set_server_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/collation_database_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/collation_database_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/completion_type_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/concurrent_insert_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/concurrent_insert_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/connect_timeout_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/default_week_format_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/delay_key_write_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/delayed_insert_limit_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/delayed_insert_limit_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/delayed_insert_limit_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/delayed_insert_timeout_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/delayed_queue_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/delayed_queue_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/div_precision_increment_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/div_precision_increment_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/engine_condition_pushdown_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/event_scheduler_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/expire_logs_days_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/flush_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/foreign_key_checks_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/foreign_key_checks_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/ft_boolean_syntax_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/ft_boolean_syntax_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/general_log_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/general_log_file_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/general_log_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/group_concat_max_len_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/group_concat_max_len_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/identity_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/init_connect_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_autoextend_increment_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_checksums_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_commit_concurrency_basic.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/innodb_concurrency_tickets_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/innodb_concurrency_tickets_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_concurrency_tickets_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_doublewrite_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_fast_shutdown_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_file_io_threads_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_file_per_table_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_flush_log_at_trx_commit_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_lock_wait_timeout_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_locks_unsafe_for_binlog_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_max_dirty_pages_pct_basic.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/innodb_max_purge_lag_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/innodb_max_purge_lag_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_max_purge_lag_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_rollback_on_timeout_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_support_xa_basic.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/innodb_sync_spin_loops_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/innodb_sync_spin_loops_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_sync_spin_loops_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_table_locks_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_thread_concurrency_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/innodb_thread_sleep_delay_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/insert_id_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/interactive_timeout_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/join_buffer_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/join_buffer_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/keep_files_on_create_basic.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/key_buffer_size_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/key_buffer_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/key_buffer_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/key_buffer_size_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/key_cache_age_threshold_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/key_cache_age_threshold_basic_64.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/key_cache_block_size_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/key_cache_block_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/key_cache_block_size_basic_64.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/key_cache_division_limit_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/key_cache_division_limit_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/key_cache_division_limit_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/lc_time_names_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/local_infile_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/log_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/log_bin_trust_function_creators_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/log_output_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/log_output_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/log_queries_not_using_indexes_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/log_warnings_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/log_warnings_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/long_query_time_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/low_priority_updates_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_allowed_packet_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_allowed_packet_func.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_binlog_size_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_connect_errors_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_connect_errors_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_connections_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_delayed_threads_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_error_count_basic.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/max_heap_table_size_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/max_heap_table_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_heap_table_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_insert_delayed_threads_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_length_for_sort_data_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_prepared_stmt_count_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_prepared_stmt_count_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_relay_log_size_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_seeks_for_key_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_seeks_for_key_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_sort_length_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_sp_recursion_depth_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_tmp_tables_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_tmp_tables_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_user_connections_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_write_lock_count_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/max_write_lock_count_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/min_examined_row_limit_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/min_examined_row_limit_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_data_pointer_size_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_data_pointer_size_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_max_sort_file_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_max_sort_file_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_repair_threads_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_repair_threads_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_stats_method_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_stats_method_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/myisam_use_mmap_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/net_buffer_length_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/net_read_timeout_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/net_retry_count_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/net_retry_count_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/net_write_timeout_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/new_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/old_passwords_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/optimizer_prune_level_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/optimizer_search_depth_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/preload_buffer_size_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_alloc_block_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_alloc_block_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_cache_limit_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_cache_limit_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_cache_min_res_unit_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_cache_min_res_unit_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_cache_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_cache_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_cache_type_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_cache_wlock_invalidate_basic.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/query_prealloc_size_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/query_prealloc_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/query_prealloc_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/range_alloc_block_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/range_alloc_block_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/read_buffer_size_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/read_only_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/read_only_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/read_rnd_buffer_size_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/relay_log_purge_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/rpl_init_slave_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/rpl_recovery_rank_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/rpl_recovery_rank_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/secure_auth_basic.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/server_id_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/server_id_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/server_id_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/slave_allow_batching_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/slave_compressed_protocol_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/slave_net_timeout_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/slave_transaction_retries_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/slave_transaction_retries_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/slow_launch_time_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/slow_query_log_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/slow_query_log_file_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sort_buffer_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sort_buffer_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_auto_is_null_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_big_selects_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_big_selects_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_big_tables_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_buffer_result_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_log_bin_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_log_off_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_log_off_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_low_priority_updates_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_low_priority_updates_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_max_join_size_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_mode_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_mode_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_notes_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_quote_show_create_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_safe_updates_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_select_limit_func.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_slave_skip_counter_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sql_warnings_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/storage_engine_basic.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/sync_binlog_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/sync_binlog_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sync_binlog_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/sync_frm_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/table_definition_cache_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/table_open_cache_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/timed_mutexes_basic.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/timestamp_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/timestamp_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/timestamp_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic_32.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/tx_isolation_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/unique_checks_basic.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/updatable_views_with_limit_basic.result
Path conflict: Percona-Server/mysql-test/suite/sys_vars/r/wait_timeout_basic.result / Percona-Server/mysql-test/suite/sys_vars/r/wait_timeout_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/r/wait_timeout_basic_64.result
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/auto_commit_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/auto_increment_increment_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/auto_increment_increment_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/auto_increment_offset_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/auto_increment_offset_func.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/autocommit_basic.test / Percona-Server/mysql-test/suite/sys_vars/t/auto_commit_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/autocommit_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/automatic_sp_privileges_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/big_tables_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/character_set_client_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/character_set_client_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/character_set_connection_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/character_set_database_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/character_set_database_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/character_set_filesystem_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/character_set_results_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/character_set_server_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/collation_connection_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/collation_database_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/collation_database_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/collation_server_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/completion_type_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/completion_type_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/concurrent_insert_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/concurrent_insert_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/connect_timeout_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/default_week_format_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/delay_key_write_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/delayed_insert_limit_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/delayed_insert_timeout_basic.test
Conflict adding file Percona-Server/mysql-test/suite/sys_vars/t/disabled.def.  Moved existing file to Percona-Server/mysql-test/suite/sys_vars/t/disabled.def.moved.
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/div_precision_increment_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/div_precision_increment_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/engine_condition_pushdown_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/event_scheduler_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/expire_logs_days_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/flush_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/foreign_key_checks_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/foreign_key_checks_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/ft_boolean_syntax_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/ft_boolean_syntax_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/general_log_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/general_log_file_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/general_log_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/group_concat_max_len_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/identity_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/identity_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/init_connect_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_autoinc_lock_mode_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_autoinc_lock_mode_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_checksums_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_commit_concurrency_basic.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/innodb_concurrency_tickets_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/innodb_concurrency_tickets_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_doublewrite_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_fast_shutdown_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_file_io_threads_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_file_per_table_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_flush_log_at_trx_commit_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_lock_wait_timeout_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_locks_unsafe_for_binlog_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_max_dirty_pages_pct_basic.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/innodb_max_purge_lag_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/innodb_max_purge_lag_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_rollback_on_timeout_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_support_xa_basic.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/innodb_sync_spin_loops_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/innodb_sync_spin_loops_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_table_locks_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/innodb_thread_concurrency_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/insert_id_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/interactive_timeout_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/keep_files_on_create_basic.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/key_buffer_size_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/key_buffer_size_func.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/key_cache_block_size_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/key_cache_block_size_basic.inc
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/key_cache_division_limit_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/key_cache_division_limit_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/last_insert_id_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/lc_time_names_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/local_infile_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/log_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/log_bin_trust_function_creators_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/log_output_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/log_output_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/log_queries_not_using_indexes_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/long_query_time_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/low_priority_updates_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_allowed_packet_basic.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/max_binlog_cache_size_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/max_binlog_cache_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_binlog_size_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_connections_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_delayed_threads_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_error_count_basic.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/max_heap_table_size_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/max_heap_table_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_insert_delayed_threads_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_length_for_sort_data_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_prepared_stmt_count_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_relay_log_size_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_sort_length_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_sp_recursion_depth_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/max_user_connections_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/myisam_data_pointer_size_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/myisam_data_pointer_size_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/myisam_stats_method_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/myisam_use_mmap_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/ndb_log_update_as_write_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/ndb_log_updated_only_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/net_buffer_length_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/net_read_timeout_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/net_write_timeout_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/new_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/old_passwords_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/optimizer_prune_level_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/optimizer_search_depth_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/preload_buffer_size_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/query_cache_type_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/query_cache_wlock_invalidate_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/query_cache_wlock_invalidate_func.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/query_prealloc_size_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/query_prealloc_size_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/read_buffer_size_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/read_only_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/read_rnd_buffer_size_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/relay_log_purge_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/rpl_init_slave_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/secure_auth_basic.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/server_id_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/server_id_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/slave_allow_batching_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/slave_compressed_protocol_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/slave_exec_mode_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/slave_net_timeout_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/slow_launch_time_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/slow_launch_time_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/slow_query_log_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/slow_query_log_file_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_auto_is_null_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_big_selects_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_big_tables_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_buffer_result_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_log_bin_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_log_off_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_low_priority_updates_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_low_priority_updates_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_mode_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_notes_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_quote_show_create_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_safe_updates_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_select_limit_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_slave_skip_counter_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sql_warnings_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/storage_engine_basic.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/sync_binlog_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/sync_binlog_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/sync_frm_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/table_definition_cache_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/table_open_cache_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/thread_cache_size_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/timed_mutexes_basic.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/timestamp_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/timestamp_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/tmp_table_size_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/tx_isolation_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/tx_isolation_func.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/unique_checks_basic.test
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/updatable_views_with_limit_basic.test
Path conflict: Percona-Server/mysql-test/suite/sys_vars/t/wait_timeout_basic.test / Percona-Server/mysql-test/suite/sys_vars/inc/wait_timeout_basic.inc
Text conflict in Percona-Server/mysql-test/suite/sys_vars/t/wait_timeout_func.test
Text conflict in Percona-Server/mysql-test/t/alias.test
Text conflict in Percona-Server/mysql-test/t/alter_table-big.test
Text conflict in Percona-Server/mysql-test/t/alter_table.test
Text conflict in Percona-Server/mysql-test/t/archive.test
Text conflict in Percona-Server/mysql-test/t/auto_increment.test
Text conflict in Percona-Server/mysql-test/t/bigint.test
Text conflict in Percona-Server/mysql-test/t/bootstrap.test
Text conflict in Percona-Server/mysql-test/t/bug46080-master.opt
Text conflict in Percona-Server/mysql-test/t/bug46080.test
Text conflict in Percona-Server/mysql-test/t/bug46261.test
Text conflict in Percona-Server/mysql-test/t/bug46760.test
Text conflict in Percona-Server/mysql-test/t/bug47671-master.opt
Text conflict in Percona-Server/mysql-test/t/cache_innodb.test
Text conflict in Percona-Server/mysql-test/t/case.test
Text conflict in Percona-Server/mysql-test/t/cast.test
Text conflict in Percona-Server/mysql-test/t/change_user.test
Text conflict in Percona-Server/mysql-test/t/check.test
Text conflict in Percona-Server/mysql-test/t/commit_1innodb.test
Text conflict in Percona-Server/mysql-test/t/connect.test
Text conflict in Percona-Server/mysql-test/t/constraints.test
Text conflict in Percona-Server/mysql-test/t/count_distinct.test
Text conflict in Percona-Server/mysql-test/t/count_distinct2-master.opt
Text conflict in Percona-Server/mysql-test/t/crash_commit_before-master.opt
Text conflict in Percona-Server/mysql-test/t/create-big.test
Text conflict in Percona-Server/mysql-test/t/create.test
Text conflict in Percona-Server/mysql-test/t/create_select_tmp.test
Text conflict in Percona-Server/mysql-test/t/csv.test
Text conflict in Percona-Server/mysql-test/t/ctype_big5.test
Text conflict in Percona-Server/mysql-test/t/ctype_collate.test
Text conflict in Percona-Server/mysql-test/t/ctype_cp1250_ch.test
Text conflict in Percona-Server/mysql-test/t/ctype_cp1251.test
Text conflict in Percona-Server/mysql-test/t/ctype_cp932_binlog_stm.test
Text conflict in Percona-Server/mysql-test/t/ctype_eucjpms.test
Text conflict in Percona-Server/mysql-test/t/ctype_euckr.test
Text conflict in Percona-Server/mysql-test/t/ctype_gb2312.test
Text conflict in Percona-Server/mysql-test/t/ctype_gbk.test
Text conflict in Percona-Server/mysql-test/t/ctype_latin1.test
Text conflict in Percona-Server/mysql-test/t/ctype_latin1_de-master.opt
Text conflict in Percona-Server/mysql-test/t/ctype_ldml.test
Text conflict in Percona-Server/mysql-test/t/ctype_many.test
Text conflict in Percona-Server/mysql-test/t/ctype_sjis.test
Text conflict in Percona-Server/mysql-test/t/ctype_uca.test
Text conflict in Percona-Server/mysql-test/t/ctype_ucs.test
Text conflict in Percona-Server/mysql-test/t/ctype_ucs2_def-master.opt
Text conflict in Percona-Server/mysql-test/t/ctype_ujis.test
Text conflict in Percona-Server/mysql-test/t/ctype_utf8.test
Text conflict in Percona-Server/mysql-test/t/date_formats.test
Text conflict in Percona-Server/mysql-test/t/ddl_i18n_koi8r.test
Text conflict in Percona-Server/mysql-test/t/ddl_i18n_utf8.test
Text conflict in Percona-Server/mysql-test/t/debug_sync.test
Text conflict in Percona-Server/mysql-test/t/delayed.test
Text conflict in Percona-Server/mysql-test/t/delete.test
Text conflict in Percona-Server/mysql-test/t/derived.test
Text conflict in Percona-Server/mysql-test/t/dirty_close.test
Text conflict in Percona-Server/mysql-test/t/disabled.def
Text conflict in Percona-Server/mysql-test/t/distinct.test
Text conflict in Percona-Server/mysql-test/t/drop.test
Text conflict in Percona-Server/mysql-test/t/endspace.test
Text conflict in Percona-Server/mysql-test/t/errors.test
Text conflict in Percona-Server/mysql-test/t/events_2.test
Text conflict in Percona-Server/mysql-test/t/events_bugs.test
Text conflict in Percona-Server/mysql-test/t/events_restart.test
Text conflict in Percona-Server/mysql-test/t/events_trans.test
Text conflict in Percona-Server/mysql-test/t/execution_constants.test
Text conflict in Percona-Server/mysql-test/t/explain.test
Text conflict in Percona-Server/mysql-test/t/fix_priv_tables.test
Text conflict in Percona-Server/mysql-test/t/flush.test
Text conflict in Percona-Server/mysql-test/t/flush_block_commit.test
Text conflict in Percona-Server/mysql-test/t/flush_block_commit_notembedded.test
Text conflict in Percona-Server/mysql-test/t/flush_read_lock_kill.test
Text conflict in Percona-Server/mysql-test/t/flush_table.test
Text conflict in Percona-Server/mysql-test/t/foreign_key.test
Text conflict in Percona-Server/mysql-test/t/fulltext.test
Text conflict in Percona-Server/mysql-test/t/fulltext_plugin.test
Path conflict: Percona-Server/mysql-test/t/func_analyse.test / Percona-Server/mysql-test/t/analyse.test
Text conflict in Percona-Server/mysql-test/t/func_des_encrypt.test
Text conflict in Percona-Server/mysql-test/t/func_encrypt.test
Text conflict in Percona-Server/mysql-test/t/func_encrypt_ucs2.test
Text conflict in Percona-Server/mysql-test/t/func_gconcat.test
Text conflict in Percona-Server/mysql-test/t/func_group.test
Text conflict in Percona-Server/mysql-test/t/func_group_innodb.test
Text conflict in Percona-Server/mysql-test/t/func_if.test
Text conflict in Percona-Server/mysql-test/t/func_in.test
Text conflict in Percona-Server/mysql-test/t/func_isnull.test
Text conflict in Percona-Server/mysql-test/t/func_math.test
Text conflict in Percona-Server/mysql-test/t/func_misc.test
Text conflict in Percona-Server/mysql-test/t/func_sapdb.test
Text conflict in Percona-Server/mysql-test/t/func_set.test
Text conflict in Percona-Server/mysql-test/t/func_str.test
Text conflict in Percona-Server/mysql-test/t/func_test.test
Text conflict in Percona-Server/mysql-test/t/func_time.test
Text conflict in Percona-Server/mysql-test/t/gis.test
Text conflict in Percona-Server/mysql-test/t/grant.test
Text conflict in Percona-Server/mysql-test/t/grant2.test
Text conflict in Percona-Server/mysql-test/t/group_by.test
Text conflict in Percona-Server/mysql-test/t/group_min_max.test
Text conflict in Percona-Server/mysql-test/t/group_min_max_innodb.test
Text conflict in Percona-Server/mysql-test/t/heap_hash.test
Text conflict in Percona-Server/mysql-test/t/implicit_char_to_num_conversion.test
Text conflict in Percona-Server/mysql-test/t/index_merge_innodb.test
Text conflict in Percona-Server/mysql-test/t/index_merge_myisam.test
Text conflict in Percona-Server/mysql-test/t/information_schema.test
Text conflict in Percona-Server/mysql-test/t/information_schema_db.test
Text conflict in Percona-Server/mysql-test/t/information_schema_inno.test
Text conflict in Percona-Server/mysql-test/t/init_connect-master.opt
Text conflict in Percona-Server/mysql-test/t/innodb_ignore_builtin-master.opt
Text conflict in Percona-Server/mysql-test/t/innodb_ignore_builtin.test
Text conflict in Percona-Server/mysql-test/t/innodb_mysql_lock2.test
Text conflict in Percona-Server/mysql-test/t/insert.test
Text conflict in Percona-Server/mysql-test/t/insert_notembedded.test
Text conflict in Percona-Server/mysql-test/t/join_outer.test
Text conflict in Percona-Server/mysql-test/t/join_outer_innodb.test
Text conflict in Percona-Server/mysql-test/t/key_cache.test
Text conflict in Percona-Server/mysql-test/t/keywords.test
Text conflict in Percona-Server/mysql-test/t/kill.test
Text conflict in Percona-Server/mysql-test/t/loaddata.test
Text conflict in Percona-Server/mysql-test/t/locale.test
Text conflict in Percona-Server/mysql-test/t/lock.test
Text conflict in Percona-Server/mysql-test/t/lock_multi.test
Text conflict in Percona-Server/mysql-test/t/lock_sync.test
Text conflict in Percona-Server/mysql-test/t/log_state.test
Text conflict in Percona-Server/mysql-test/t/log_tables-big-master.opt
Text conflict in Percona-Server/mysql-test/t/log_tables.test
Text conflict in Percona-Server/mysql-test/t/log_tables_debug.test
Text conflict in Percona-Server/mysql-test/t/lowercase_fs_off.test
Text conflict in Percona-Server/mysql-test/t/lowercase_table2.test
Text conflict in Percona-Server/mysql-test/t/lowercase_table4.test
Text conflict in Percona-Server/mysql-test/t/merge-big.test
Text conflict in Percona-Server/mysql-test/t/merge.test
Text conflict in Percona-Server/mysql-test/t/metadata.test
Text conflict in Percona-Server/mysql-test/t/multi_update-master.opt
Text conflict in Percona-Server/mysql-test/t/multi_update.test
Text conflict in Percona-Server/mysql-test/t/multi_update2-master.opt
Text conflict in Percona-Server/mysql-test/t/multi_update_tiny_hash-master.opt
Text conflict in Percona-Server/mysql-test/t/myisam.test
Text conflict in Percona-Server/mysql-test/t/myisam_crash_before_flush_keys.test
Text conflict in Percona-Server/mysql-test/t/myisampack.test
Text conflict in Percona-Server/mysql-test/t/mysql.test
Text conflict in Percona-Server/mysql-test/t/mysql_client_test-master.opt
Text conflict in Percona-Server/mysql-test/t/mysql_client_test.test
Text conflict in Percona-Server/mysql-test/t/mysql_upgrade.test
Text conflict in Percona-Server/mysql-test/t/mysqladmin.test
Text conflict in Percona-Server/mysql-test/t/mysqlbinlog.test
Text conflict in Percona-Server/mysql-test/t/mysqlbinlog2.test
Text conflict in Percona-Server/mysql-test/t/mysqlcheck.test
Text conflict in Percona-Server/mysql-test/t/mysqldump.test
Text conflict in Percona-Server/mysql-test/t/mysqlshow.test
Text conflict in Percona-Server/mysql-test/t/mysqltest.test
Text conflict in Percona-Server/mysql-test/t/named_pipe.test
Text conflict in Percona-Server/mysql-test/t/no-threads.test
Text conflict in Percona-Server/mysql-test/t/not_embedded_server.test
Text conflict in Percona-Server/mysql-test/t/not_partition.test
Text conflict in Percona-Server/mysql-test/t/odbc.test
Text conflict in Percona-Server/mysql-test/t/openssl_1.test
Text conflict in Percona-Server/mysql-test/t/order_by.test
Text conflict in Percona-Server/mysql-test/t/order_fill_sortbuf-master.opt
Text conflict in Percona-Server/mysql-test/t/outfile.test
Text conflict in Percona-Server/mysql-test/t/parser.test
Text conflict in Percona-Server/mysql-test/t/parser_not_embedded.test
Text conflict in Percona-Server/mysql-test/t/parser_stack.test
Text conflict in Percona-Server/mysql-test/t/partition.test
Text conflict in Percona-Server/mysql-test/t/partition_archive.test
Text conflict in Percona-Server/mysql-test/t/partition_binlog_stmt.test
Text conflict in Percona-Server/mysql-test/t/partition_datatype.test
Text conflict in Percona-Server/mysql-test/t/partition_debug_sync.test
Text conflict in Percona-Server/mysql-test/t/partition_error.test
Text conflict in Percona-Server/mysql-test/t/partition_innodb.test
Text conflict in Percona-Server/mysql-test/t/partition_innodb_plugin.test
Text conflict in Percona-Server/mysql-test/t/partition_innodb_semi_consistent-master.opt
Text conflict in Percona-Server/mysql-test/t/partition_innodb_semi_consistent.test
Text conflict in Percona-Server/mysql-test/t/partition_innodb_stmt.test
Text conflict in Percona-Server/mysql-test/t/partition_list.test
Text conflict in Percona-Server/mysql-test/t/partition_mgm_err.test
Text conflict in Percona-Server/mysql-test/t/partition_myisam.test
Text conflict in Percona-Server/mysql-test/t/partition_pruning.test
Text conflict in Percona-Server/mysql-test/t/partition_range.test
Text conflict in Percona-Server/mysql-test/t/partition_symlink.test
Conflict adding file Percona-Server/mysql-test/t/percona_bug45702.test.  Moved existing file to Percona-Server/mysql-test/t/percona_bug45702.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_bug643149.test.  Moved existing file to Percona-Server/mysql-test/t/percona_bug643149.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_bug933969.test.  Moved existing file to Percona-Server/mysql-test/t/percona_bug933969.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_buffer_pool_shm-master.opt.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_buffer_pool_shm-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_buffer_pool_shm.test.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_buffer_pool_shm.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_deadlock_count.test.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_deadlock_count.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_doublewrite_file-master.opt.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_doublewrite_file-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_doublewrite_file.test.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_doublewrite_file.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_expand_fast_index_creation.test.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_expand_fast_index_creation.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_fake_changes.test.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_fake_changes.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_fake_changes_locks.test.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_fake_changes_locks.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_kill_idle_trx.test.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_kill_idle_trx.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_kill_idle_trx_locks.test.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_kill_idle_trx_locks.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_use_sys_stats_table-master.opt.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_use_sys_stats_table-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_use_sys_stats_table.test.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_use_sys_stats_table.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_innodb_version.test.  Moved existing file to Percona-Server/mysql-test/t/percona_innodb_version.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_connection_error-master.opt.  Moved existing file to Percona-Server/mysql-test/t/percona_log_connection_error-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_connection_error.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_connection_error.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config.cnf.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config.cnf.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_false.cnf.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_false.cnf.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_false.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_false.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_foo.cnf.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_foo.cnf.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_foo.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_foo.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_true.cnf.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_true.cnf.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_true.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_admin_statements-config_true.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_admin_statements.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_admin_statements.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_filter-cl-master.opt.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_filter-cl-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_filter-cl.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_filter-cl.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_filter.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_filter.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_slave_statements-cl-master.opt.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_slave_statements-cl-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_slave_statements-cl.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_slave_statements-cl.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_slave_statements-innodb-slave.opt.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_slave_statements-innodb-slave.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_slave_statements-innodb.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_slave_statements-innodb.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_slave_statements-slave.opt.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_slave_statements-slave.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_slave_statements.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_slave_statements.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_sp_statements-cl-master.opt.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_sp_statements-cl-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_sp_statements-cl.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_sp_statements-cl.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_sp_statements.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_sp_statements.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_verbosity-cl-master.opt.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_verbosity-cl-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_verbosity-cl.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_verbosity-cl.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_log_slow_verbosity.test.  Moved existing file to Percona-Server/mysql-test/t/percona_log_slow_verbosity.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_long_query_time.test.  Moved existing file to Percona-Server/mysql-test/t/percona_long_query_time.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_min_examined_row_limit.test.  Moved existing file to Percona-Server/mysql-test/t/percona_min_examined_row_limit.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_mysqldump_innodb_optimize_keys.test.  Moved existing file to Percona-Server/mysql-test/t/percona_mysqldump_innodb_optimize_keys.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_query_cache_with_comments.test.  Moved existing file to Percona-Server/mysql-test/t/percona_query_cache_with_comments.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_query_cache_with_comments_crash.test.  Moved existing file to Percona-Server/mysql-test/t/percona_query_cache_with_comments_crash.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_query_cache_with_comments_disable.test.  Moved existing file to Percona-Server/mysql-test/t/percona_query_cache_with_comments_disable.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_query_cache_with_comments_prepared_statements.test.  Moved existing file to Percona-Server/mysql-test/t/percona_query_cache_with_comments_prepared_statements.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_query_response_time-replication.test.  Moved existing file to Percona-Server/mysql-test/t/percona_query_response_time-replication.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_query_response_time-stored.test.  Moved existing file to Percona-Server/mysql-test/t/percona_query_response_time-stored.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_query_response_time.test.  Moved existing file to Percona-Server/mysql-test/t/percona_query_response_time.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_server_variables_debug.test.  Moved existing file to Percona-Server/mysql-test/t/percona_server_variables_debug.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_server_variables_release.test.  Moved existing file to Percona-Server/mysql-test/t/percona_server_variables_release.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_show_slave_status_nolock.test.  Moved existing file to Percona-Server/mysql-test/t/percona_show_slave_status_nolock.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_show_temp_tables.test.  Moved existing file to Percona-Server/mysql-test/t/percona_show_temp_tables.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_sql_no_fcache.test.  Moved existing file to Percona-Server/mysql-test/t/percona_sql_no_fcache.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_status_wait_query_cache_mutex.test.  Moved existing file to Percona-Server/mysql-test/t/percona_status_wait_query_cache_mutex.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_ucs2_general50_ci.test.  Moved existing file to Percona-Server/mysql-test/t/percona_ucs2_general50_ci.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_utf8_general50_ci.test.  Moved existing file to Percona-Server/mysql-test/t/percona_utf8_general50_ci.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_xtradb_admin_command.test.  Moved existing file to Percona-Server/mysql-test/t/percona_xtradb_admin_command.test.moved.
Conflict adding file Percona-Server/mysql-test/t/percona_xtradb_bug317074.test.  Moved existing file to Percona-Server/mysql-test/t/percona_xtradb_bug317074.test.moved.
Text conflict in Percona-Server/mysql-test/t/perror.test
Text conflict in Percona-Server/mysql-test/t/plugin.test
Text conflict in Percona-Server/mysql-test/t/plugin_not_embedded.test
Text conflict in Percona-Server/mysql-test/t/profiling.test
Text conflict in Percona-Server/mysql-test/t/ps-master.opt
Text conflict in Percona-Server/mysql-test/t/ps.test
Text conflict in Percona-Server/mysql-test/t/ps_1general.test
Text conflict in Percona-Server/mysql-test/t/ps_3innodb.test
Text conflict in Percona-Server/mysql-test/t/ps_ddl.test
Text conflict in Percona-Server/mysql-test/t/ps_ddl1.test
Text conflict in Percona-Server/mysql-test/t/ps_not_windows.test
Text conflict in Percona-Server/mysql-test/t/query_cache.test
Text conflict in Percona-Server/mysql-test/t/query_cache_28249.test
Text conflict in Percona-Server/mysql-test/t/query_cache_debug.test
Conflict adding file Percona-Server/mysql-test/t/query_cache_disabled-master.opt.  Moved existing file to Percona-Server/mysql-test/t/query_cache_disabled-master.opt.moved.
Conflict adding file Percona-Server/mysql-test/t/query_cache_disabled.test.  Moved existing file to Percona-Server/mysql-test/t/query_cache_disabled.test.moved.
Text conflict in Percona-Server/mysql-test/t/query_cache_notembedded.test
Text conflict in Percona-Server/mysql-test/t/read_only_innodb.test
Text conflict in Percona-Server/mysql-test/t/rename.test
Text conflict in Percona-Server/mysql-test/t/repair.test
Text conflict in Percona-Server/mysql-test/t/schema.test
Text conflict in Percona-Server/mysql-test/t/select.test
Text conflict in Percona-Server/mysql-test/t/select_safe.test
Text conflict in Percona-Server/mysql-test/t/shm.test
Text conflict in Percona-Server/mysql-test/t/show_check-master.opt
Text conflict in Percona-Server/mysql-test/t/show_check.test
Text conflict in Percona-Server/mysql-test/t/skip_name_resolve.test
Text conflict in Percona-Server/mysql-test/t/sp-bugs.test
Text conflict in Percona-Server/mysql-test/t/sp-code.test
Text conflict in Percona-Server/mysql-test/t/sp-destruct.test
Text conflict in Percona-Server/mysql-test/t/sp-error.test
Text conflict in Percona-Server/mysql-test/t/sp-security.test
Text conflict in Percona-Server/mysql-test/t/sp-threads.test
Text conflict in Percona-Server/mysql-test/t/sp-ucs2.test
Text conflict in Percona-Server/mysql-test/t/sp-vars.test
Text conflict in Percona-Server/mysql-test/t/sp.test
Text conflict in Percona-Server/mysql-test/t/sp_notembedded.test
Text conflict in Percona-Server/mysql-test/t/sp_sync.test
Text conflict in Percona-Server/mysql-test/t/sp_trans.test
Text conflict in Percona-Server/mysql-test/t/sp_trans_log.test
Text conflict in Percona-Server/mysql-test/t/sql_mode.test
Text conflict in Percona-Server/mysql-test/t/ssl-big.test
Text conflict in Percona-Server/mysql-test/t/ssl.test
Text conflict in Percona-Server/mysql-test/t/ssl_8k_key.test
Text conflict in Percona-Server/mysql-test/t/ssl_compress.test
Text conflict in Percona-Server/mysql-test/t/ssl_connect.test
Text conflict in Percona-Server/mysql-test/t/status.test
Text conflict in Percona-Server/mysql-test/t/strict.test
Text conflict in Percona-Server/mysql-test/t/subselect.test
Text conflict in Percona-Server/mysql-test/t/subselect3.test
Text conflict in Percona-Server/mysql-test/t/subselect4.test
Text conflict in Percona-Server/mysql-test/t/subselect_innodb.test
Text conflict in Percona-Server/mysql-test/t/symlink.test
Text conflict in Percona-Server/mysql-test/t/system_mysql_db_fix40123.test
Text conflict in Percona-Server/mysql-test/t/system_mysql_db_fix50030.test
Text conflict in Percona-Server/mysql-test/t/system_mysql_db_fix50117.test
Text conflict in Percona-Server/mysql-test/t/temp_table.test
Text conflict in Percona-Server/mysql-test/t/trigger-compat.test
Text conflict in Percona-Server/mysql-test/t/trigger-trans.test
Text conflict in Percona-Server/mysql-test/t/trigger.test
Text conflict in Percona-Server/mysql-test/t/trigger_notembedded.test
Text conflict in Percona-Server/mysql-test/t/truncate.test
Text conflict in Percona-Server/mysql-test/t/type_blob.test
Text conflict in Percona-Server/mysql-test/t/type_date.test
Text conflict in Percona-Server/mysql-test/t/type_datetime.test
Text conflict in Percona-Server/mysql-test/t/type_decimal.test
Text conflict in Percona-Server/mysql-test/t/type_float.test
Text conflict in Percona-Server/mysql-test/t/type_newdecimal.test
Text conflict in Percona-Server/mysql-test/t/type_time.test
Text conflict in Percona-Server/mysql-test/t/type_timestamp.test
Text conflict in Percona-Server/mysql-test/t/type_varchar.test
Text conflict in Percona-Server/mysql-test/t/udf.test
Text conflict in Percona-Server/mysql-test/t/udf_skip_grants-master.opt
Text conflict in Percona-Server/mysql-test/t/union-master.opt
Text conflict in Percona-Server/mysql-test/t/union.test
Text conflict in Percona-Server/mysql-test/t/user_limits.test
Text conflict in Percona-Server/mysql-test/t/user_var.test
Conflict adding file Percona-Server/mysql-test/t/userstat_bug602047.test.  Moved existing file to Percona-Server/mysql-test/t/userstat_bug602047.test.moved.
Text conflict in Percona-Server/mysql-test/t/variables-big.test
Text conflict in Percona-Server/mysql-test/t/variables.test
Text conflict in Percona-Server/mysql-test/t/variables_community.test
Text conflict in Percona-Server/mysql-test/t/variables_debug.test
Text conflict in Percona-Server/mysql-test/t/view.test
Text conflict in Percona-Server/mysql-test/t/view_grant.test
Text conflict in Percona-Server/mysql-test/t/warnings.test
Text conflict in Percona-Server/mysql-test/t/xa.test
Text conflict in Percona-Server/mysql-test/t/xml.test
Text conflict in Percona-Server/mysql-test/valgrind.supp
Text conflict in Percona-Server/mysys/CMakeLists.txt
Text conflict in Percona-Server/mysys/array.c
Text conflict in Percona-Server/mysys/base64.c
Text conflict in Percona-Server/mysys/charset-def.c
Text conflict in Percona-Server/mysys/charset.c
Text conflict in Percona-Server/mysys/checksum.c
Text conflict in Percona-Server/mysys/default.c
Text conflict in Percona-Server/mysys/errors.c
Text conflict in Percona-Server/mysys/hash.c
Text conflict in Percona-Server/mysys/list.c
Text conflict in Percona-Server/mysys/mf_cache.c
Text conflict in Percona-Server/mysys/mf_dirname.c
Text conflict in Percona-Server/mysys/mf_fn_ext.c
Text conflict in Percona-Server/mysys/mf_format.c
Text conflict in Percona-Server/mysys/mf_getdate.c
Text conflict in Percona-Server/mysys/mf_iocache.c
Text conflict in Percona-Server/mysys/mf_iocache2.c
Text conflict in Percona-Server/mysys/mf_keycache.c
Text conflict in Percona-Server/mysys/mf_keycaches.c
Text conflict in Percona-Server/mysys/mf_loadpath.c
Text conflict in Percona-Server/mysys/mf_pack.c
Text conflict in Percona-Server/mysys/mf_path.c
Text conflict in Percona-Server/mysys/mf_sort.c
Text conflict in Percona-Server/mysys/mf_tempdir.c
Text conflict in Percona-Server/mysys/mf_tempfile.c
Text conflict in Percona-Server/mysys/mf_unixpath.c
Text conflict in Percona-Server/mysys/my_alloc.c
Conflict adding file Percona-Server/mysys/my_atomic.c.  Moved existing file to Percona-Server/mysys/my_atomic.c.moved.
Text conflict in Percona-Server/mysys/my_bit.c
Text conflict in Percona-Server/mysys/my_bitmap.c
Text conflict in Percona-Server/mysys/my_chsize.c
Conflict adding file Percona-Server/mysys/my_compare.c.  Moved existing file to Percona-Server/mysys/my_compare.c.moved.
Text conflict in Percona-Server/mysys/my_compress.c
Text conflict in Percona-Server/mysys/my_copy.c
Text conflict in Percona-Server/mysys/my_create.c
Text conflict in Percona-Server/mysys/my_delete.c
Text conflict in Percona-Server/mysys/my_error.c
Text conflict in Percona-Server/mysys/my_file.c
Text conflict in Percona-Server/mysys/my_fopen.c
Text conflict in Percona-Server/mysys/my_fstream.c
Text conflict in Percona-Server/mysys/my_gethwaddr.c
Text conflict in Percona-Server/mysys/my_getncpus.c
Text conflict in Percona-Server/mysys/my_getopt.c
Text conflict in Percona-Server/mysys/my_getsystime.c
Text conflict in Percona-Server/mysys/my_getwd.c
Text conflict in Percona-Server/mysys/my_handler_errors.h
Text conflict in Percona-Server/mysys/my_init.c
Text conflict in Percona-Server/mysys/my_largepage.c
Text conflict in Percona-Server/mysys/my_lib.c
Text conflict in Percona-Server/mysys/my_lock.c
Text conflict in Percona-Server/mysys/my_lockmem.c
Text conflict in Percona-Server/mysys/my_malloc.c
Path conflict: Percona-Server/mysys/my_mess.c / Percona-Server/mysys/my_messnc.c
Text conflict in Percona-Server/mysys/my_messnc.c
Text conflict in Percona-Server/mysys/my_mmap.c
Text conflict in Percona-Server/mysys/my_new.cc
Text conflict in Percona-Server/mysys/my_once.c
Text conflict in Percona-Server/mysys/my_open.c
Text conflict in Percona-Server/mysys/my_pread.c
Text conflict in Percona-Server/mysys/my_pthread.c
Text conflict in Percona-Server/mysys/my_quick.c
Text conflict in Percona-Server/mysys/my_read.c
Text conflict in Percona-Server/mysys/my_redel.c
Text conflict in Percona-Server/mysys/my_rename.c
Text conflict in Percona-Server/mysys/my_seek.c
Text conflict in Percona-Server/mysys/my_sleep.c
Text conflict in Percona-Server/mysys/my_static.c
Text conflict in Percona-Server/mysys/my_static.h
Text conflict in Percona-Server/mysys/my_symlink.c
Text conflict in Percona-Server/mysys/my_sync.c
Text conflict in Percona-Server/mysys/my_thr_init.c
Text conflict in Percona-Server/mysys/my_wincond.c
Text conflict in Percona-Server/mysys/my_windac.c
Text conflict in Percona-Server/mysys/my_winthread.c
Text conflict in Percona-Server/mysys/my_write.c
Text conflict in Percona-Server/mysys/mysys_priv.h
Text conflict in Percona-Server/mysys/ptr_cmp.c
Text conflict in Percona-Server/mysys/queues.c
Text conflict in Percona-Server/mysys/rijndael.c
Text conflict in Percona-Server/mysys/stacktrace.c
Text conflict in Percona-Server/mysys/string.c
Text conflict in Percona-Server/mysys/test_charset.c
Text conflict in Percona-Server/mysys/testhash.c
Text conflict in Percona-Server/mysys/thr_alarm.c
Text conflict in Percona-Server/mysys/thr_lock.c
Text conflict in Percona-Server/mysys/thr_mutex.c
Text conflict in Percona-Server/mysys/thr_rwlock.c
Text conflict in Percona-Server/mysys/tree.c
Text conflict in Percona-Server/mysys/typelib.c
Conflict adding file Percona-Server/patch_info.  Moved existing file to Percona-Server/patch_info.moved.
Text conflict in Percona-Server/plugin/daemon_example/daemon_example.cc
Text conflict in Percona-Server/plugin/fulltext/plugin_example.c
Text conflict in Percona-Server/regex/CMakeLists.txt
Text conflict in Percona-Server/regex/regcomp.c
Text conflict in Percona-Server/regex/regcomp.ih
Text conflict in Percona-Server/regex/regex2.h
Text conflict in Percona-Server/scripts/CMakeLists.txt
Text conflict in Percona-Server/scripts/mysql_config.pl.in
Text conflict in Percona-Server/scripts/mysql_config.sh
Text conflict in Percona-Server/scripts/mysql_install_db.sh
Text conflict in Percona-Server/scripts/mysql_system_tables.sql
Text conflict in Percona-Server/scripts/mysql_system_tables_data.sql
Text conflict in Percona-Server/scripts/mysql_system_tables_fix.sql
Text conflict in Percona-Server/scripts/mysqld_multi.sh
Text conflict in Percona-Server/scripts/mysqld_safe.sh
Text conflict in Percona-Server/scripts/mysqldumpslow.sh
Text conflict in Percona-Server/scripts/mysqlhotcopy.sh
Text conflict in Percona-Server/sql-bench/Comments/mysql.benchmark
Text conflict in Percona-Server/sql-bench/compare-results.sh
Text conflict in Percona-Server/sql-common/client.c
Text conflict in Percona-Server/sql-common/my_time.c
Text conflict in Percona-Server/sql-common/my_user.c
Text conflict in Percona-Server/sql/CMakeLists.txt
Text conflict in Percona-Server/sql/add_errmsg
Text conflict in Percona-Server/sql/authors.h
Text conflict in Percona-Server/sql/client_settings.h
Text conflict in Percona-Server/sql/contributors.h
Text conflict in Percona-Server/sql/debug_sync.cc
Text conflict in Percona-Server/sql/debug_sync.h
Text conflict in Percona-Server/sql/derror.cc
Text conflict in Percona-Server/sql/des_key_file.cc
Text conflict in Percona-Server/sql/discover.cc
Text conflict in Percona-Server/sql/event_data_objects.cc
Text conflict in Percona-Server/sql/event_data_objects.h
Text conflict in Percona-Server/sql/event_db_repository.cc
Text conflict in Percona-Server/sql/event_db_repository.h
Text conflict in Percona-Server/sql/event_parse_data.cc
Text conflict in Percona-Server/sql/event_parse_data.h
Text conflict in Percona-Server/sql/event_queue.cc
Text conflict in Percona-Server/sql/event_queue.h
Text conflict in Percona-Server/sql/event_scheduler.cc
Text conflict in Percona-Server/sql/event_scheduler.h
Text conflict in Percona-Server/sql/events.cc
Text conflict in Percona-Server/sql/events.h
Text conflict in Percona-Server/sql/examples/CMakeLists.txt
Text conflict in Percona-Server/sql/field.cc
Text conflict in Percona-Server/sql/field.h
Text conflict in Percona-Server/sql/field_conv.cc
Text conflict in Percona-Server/sql/filesort.cc
Text conflict in Percona-Server/sql/frm_crypt.cc
Text conflict in Percona-Server/sql/gen_lex_hash.cc
Text conflict in Percona-Server/sql/gstream.cc
Text conflict in Percona-Server/sql/gstream.h
Text conflict in Percona-Server/sql/ha_ndbcluster.cc
Text conflict in Percona-Server/sql/ha_ndbcluster.h
Text conflict in Percona-Server/sql/ha_ndbcluster_binlog.cc
Text conflict in Percona-Server/sql/ha_ndbcluster_binlog.h
Text conflict in Percona-Server/sql/ha_ndbcluster_cond.cc
Text conflict in Percona-Server/sql/ha_ndbcluster_cond.h
Text conflict in Percona-Server/sql/ha_ndbcluster_tables.h
Text conflict in Percona-Server/sql/ha_partition.cc
Text conflict in Percona-Server/sql/ha_partition.h
Text conflict in Percona-Server/sql/handler.cc
Text conflict in Percona-Server/sql/handler.h
Text conflict in Percona-Server/sql/hash_filo.cc
Text conflict in Percona-Server/sql/hash_filo.h
Text conflict in Percona-Server/sql/hostname.cc
Text conflict in Percona-Server/sql/init.cc
Text conflict in Percona-Server/sql/item.cc
Text conflict in Percona-Server/sql/item.h
Text conflict in Percona-Server/sql/item_buff.cc
Text conflict in Percona-Server/sql/item_cmpfunc.cc
Text conflict in Percona-Server/sql/item_cmpfunc.h
Text conflict in Percona-Server/sql/item_create.cc
Text conflict in Percona-Server/sql/item_create.h
Text conflict in Percona-Server/sql/item_func.cc
Text conflict in Percona-Server/sql/item_func.h
Text conflict in Percona-Server/sql/item_geofunc.cc
Text conflict in Percona-Server/sql/item_geofunc.h
Text conflict in Percona-Server/sql/item_row.cc
Text conflict in Percona-Server/sql/item_row.h
Text conflict in Percona-Server/sql/item_strfunc.cc
Text conflict in Percona-Server/sql/item_strfunc.h
Text conflict in Percona-Server/sql/item_subselect.cc
Text conflict in Percona-Server/sql/item_subselect.h
Text conflict in Percona-Server/sql/item_sum.cc
Text conflict in Percona-Server/sql/item_sum.h
Text conflict in Percona-Server/sql/item_timefunc.cc
Text conflict in Percona-Server/sql/item_timefunc.h
Text conflict in Percona-Server/sql/item_xmlfunc.cc
Text conflict in Percona-Server/sql/item_xmlfunc.h
Text conflict in Percona-Server/sql/key.cc
Text conflict in Percona-Server/sql/lex.h
Text conflict in Percona-Server/sql/lock.cc
Text conflict in Percona-Server/sql/log.cc
Text conflict in Percona-Server/sql/log.h
Text conflict in Percona-Server/sql/log_event.cc
Text conflict in Percona-Server/sql/log_event.h
Text conflict in Percona-Server/sql/log_event_old.cc
Text conflict in Percona-Server/sql/message.h
Text conflict in Percona-Server/sql/mf_iocache.cc
Text conflict in Percona-Server/sql/my_decimal.cc
Text conflict in Percona-Server/sql/my_decimal.h
Text conflict in Percona-Server/sql/mysql_priv.h
Text conflict in Percona-Server/sql/mysqld.cc
Text conflict in Percona-Server/sql/mysqld_suffix.h
Text conflict in Percona-Server/sql/net_serv.cc
Text conflict in Percona-Server/sql/nt_servc.cc
Text conflict in Percona-Server/sql/nt_servc.h
Text conflict in Percona-Server/sql/opt_range.cc
Text conflict in Percona-Server/sql/opt_range.h
Text conflict in Percona-Server/sql/opt_sum.cc
Text conflict in Percona-Server/sql/parse_file.cc
Text conflict in Percona-Server/sql/parse_file.h
Text conflict in Percona-Server/sql/partition_element.h
Text conflict in Percona-Server/sql/partition_info.cc
Text conflict in Percona-Server/sql/partition_info.h
Text conflict in Percona-Server/sql/password.c
Text conflict in Percona-Server/sql/procedure.cc
Text conflict in Percona-Server/sql/procedure.h
Text conflict in Percona-Server/sql/protocol.cc
Text conflict in Percona-Server/sql/protocol.h
Conflict adding file Percona-Server/sql/query_response_time.cc.  Moved existing file to Percona-Server/sql/query_response_time.cc.moved.
Conflict adding file Percona-Server/sql/query_response_time.h.  Moved existing file to Percona-Server/sql/query_response_time.h.moved.
Conflict adding file Percona-Server/sql/query_strip_comments.h.  Moved existing file to Percona-Server/sql/query_strip_comments.h.moved.
Text conflict in Percona-Server/sql/records.cc
Text conflict in Percona-Server/sql/repl_failsafe.cc
Text conflict in Percona-Server/sql/repl_failsafe.h
Text conflict in Percona-Server/sql/rpl_filter.cc
Text conflict in Percona-Server/sql/rpl_filter.h
Text conflict in Percona-Server/sql/rpl_injector.cc
Text conflict in Percona-Server/sql/rpl_injector.h
Text conflict in Percona-Server/sql/rpl_mi.cc
Text conflict in Percona-Server/sql/rpl_mi.h
Text conflict in Percona-Server/sql/rpl_record.cc
Text conflict in Percona-Server/sql/rpl_record.h
Text conflict in Percona-Server/sql/rpl_record_old.cc
Text conflict in Percona-Server/sql/rpl_record_old.h
Text conflict in Percona-Server/sql/rpl_reporting.cc
Text conflict in Percona-Server/sql/rpl_reporting.h
Text conflict in Percona-Server/sql/rpl_rli.cc
Text conflict in Percona-Server/sql/rpl_rli.h
Text conflict in Percona-Server/sql/rpl_tblmap.cc
Text conflict in Percona-Server/sql/rpl_tblmap.h
Text conflict in Percona-Server/sql/rpl_utility.cc
Text conflict in Percona-Server/sql/rpl_utility.h
Text conflict in Percona-Server/sql/scheduler.cc
Text conflict in Percona-Server/sql/scheduler.h
Text conflict in Percona-Server/sql/set_var.cc
Text conflict in Percona-Server/sql/set_var.h
Text conflict in Percona-Server/sql/signal_handler.cc
Text conflict in Percona-Server/sql/slave.cc
Text conflict in Percona-Server/sql/slave.h
Text conflict in Percona-Server/sql/sp.cc
Text conflict in Percona-Server/sql/sp.h
Text conflict in Percona-Server/sql/sp_cache.cc
Text conflict in Percona-Server/sql/sp_cache.h
Text conflict in Percona-Server/sql/sp_head.cc
Text conflict in Percona-Server/sql/sp_head.h
Text conflict in Percona-Server/sql/sp_pcontext.cc
Text conflict in Percona-Server/sql/sp_pcontext.h
Text conflict in Percona-Server/sql/sp_rcontext.cc
Text conflict in Percona-Server/sql/sp_rcontext.h
Text conflict in Percona-Server/sql/spatial.cc
Text conflict in Percona-Server/sql/spatial.h
Text conflict in Percona-Server/sql/sql_acl.cc
Text conflict in Percona-Server/sql/sql_acl.h
Text conflict in Percona-Server/sql/sql_analyse.cc
Text conflict in Percona-Server/sql/sql_analyse.h
Text conflict in Percona-Server/sql/sql_array.h
Text conflict in Percona-Server/sql/sql_base.cc
Text conflict in Percona-Server/sql/sql_binlog.cc
Text conflict in Percona-Server/sql/sql_bitmap.h
Text conflict in Percona-Server/sql/sql_builtin.cc.in
Text conflict in Percona-Server/sql/sql_cache.cc
Text conflict in Percona-Server/sql/sql_cache.h
Text conflict in Percona-Server/sql/sql_class.cc
Text conflict in Percona-Server/sql/sql_class.h
Text conflict in Percona-Server/sql/sql_client.cc
Text conflict in Percona-Server/sql/sql_connect.cc
Text conflict in Percona-Server/sql/sql_crypt.cc
Text conflict in Percona-Server/sql/sql_crypt.h
Text conflict in Percona-Server/sql/sql_cursor.cc
Text conflict in Percona-Server/sql/sql_cursor.h
Text conflict in Percona-Server/sql/sql_db.cc
Text conflict in Percona-Server/sql/sql_delete.cc
Text conflict in Percona-Server/sql/sql_derived.cc
Text conflict in Percona-Server/sql/sql_do.cc
Text conflict in Percona-Server/sql/sql_error.cc
Text conflict in Percona-Server/sql/sql_error.h
Text conflict in Percona-Server/sql/sql_handler.cc
Text conflict in Percona-Server/sql/sql_help.cc
Text conflict in Percona-Server/sql/sql_insert.cc
Text conflict in Percona-Server/sql/sql_lex.cc
Text conflict in Percona-Server/sql/sql_lex.h
Text conflict in Percona-Server/sql/sql_list.cc
Text conflict in Percona-Server/sql/sql_list.h
Text conflict in Percona-Server/sql/sql_load.cc
Text conflict in Percona-Server/sql/sql_locale.cc
Text conflict in Percona-Server/sql/sql_manager.cc
Text conflict in Percona-Server/sql/sql_parse.cc
Text conflict in Percona-Server/sql/sql_partition.cc
Text conflict in Percona-Server/sql/sql_partition.h
Text conflict in Percona-Server/sql/sql_plugin.cc
Text conflict in Percona-Server/sql/sql_plugin.h
Text conflict in Percona-Server/sql/sql_prepare.cc
Path conflict: Percona-Server/sql/sql_priv.h / Percona-Server/sql/mysql_priv.h
Text conflict in Percona-Server/sql/sql_profile.cc
Text conflict in Percona-Server/sql/sql_profile.h
Text conflict in Percona-Server/sql/sql_rename.cc
Text conflict in Percona-Server/sql/sql_repl.cc
Text conflict in Percona-Server/sql/sql_repl.h
Text conflict in Percona-Server/sql/sql_select.cc
Text conflict in Percona-Server/sql/sql_select.h
Text conflict in Percona-Server/sql/sql_servers.cc
Text conflict in Percona-Server/sql/sql_servers.h
Text conflict in Percona-Server/sql/sql_show.cc
Text conflict in Percona-Server/sql/sql_show.h
Text conflict in Percona-Server/sql/sql_sort.h
Text conflict in Percona-Server/sql/sql_string.cc
Text conflict in Percona-Server/sql/sql_string.h
Text conflict in Percona-Server/sql/sql_table.cc
Text conflict in Percona-Server/sql/sql_tablespace.cc
Text conflict in Percona-Server/sql/sql_test.cc
Path conflict: Percona-Server/sql/sql_time.cc / Percona-Server/sql/time.cc
Text conflict in Percona-Server/sql/sql_trigger.cc
Text conflict in Percona-Server/sql/sql_trigger.h
Text conflict in Percona-Server/sql/sql_udf.cc
Text conflict in Percona-Server/sql/sql_udf.h
Text conflict in Percona-Server/sql/sql_union.cc
Text conflict in Percona-Server/sql/sql_update.cc
Text conflict in Percona-Server/sql/sql_view.cc
Text conflict in Percona-Server/sql/sql_view.h
Text conflict in Percona-Server/sql/sql_yacc.yy
Text conflict in Percona-Server/sql/strfunc.cc
Text conflict in Percona-Server/sql/structs.h
Text conflict in Percona-Server/sql/table.cc
Text conflict in Percona-Server/sql/table.h
Text conflict in Percona-Server/sql/thr_malloc.cc
Text conflict in Percona-Server/sql/time.cc
Text conflict in Percona-Server/sql/tzfile.h
Text conflict in Percona-Server/sql/tztime.cc
Text conflict in Percona-Server/sql/tztime.h
Text conflict in Percona-Server/sql/udf_example.c
Text conflict in Percona-Server/sql/uniques.cc
Text conflict in Percona-Server/sql/unireg.cc
Text conflict in Percona-Server/sql/unireg.h
Text conflict in Percona-Server/storage/archive/CMakeLists.txt
Text conflict in Percona-Server/storage/archive/archive_reader.c
Text conflict in Percona-Server/storage/archive/azio.c
Text conflict in Percona-Server/storage/archive/azlib.h
Text conflict in Percona-Server/storage/archive/ha_archive.cc
Text conflict in Percona-Server/storage/archive/ha_archive.h
Text conflict in Percona-Server/storage/blackhole/CMakeLists.txt
Text conflict in Percona-Server/storage/blackhole/ha_blackhole.cc
Text conflict in Percona-Server/storage/blackhole/ha_blackhole.h
Text conflict in Percona-Server/storage/csv/CMakeLists.txt
Text conflict in Percona-Server/storage/csv/ha_tina.cc
Text conflict in Percona-Server/storage/csv/ha_tina.h
Text conflict in Percona-Server/storage/csv/transparent_file.cc
Text conflict in Percona-Server/storage/csv/transparent_file.h
Text conflict in Percona-Server/storage/example/CMakeLists.txt
Text conflict in Percona-Server/storage/example/ha_example.cc
Text conflict in Percona-Server/storage/example/ha_example.h
Text conflict in Percona-Server/storage/federated/CMakeLists.txt
Text conflict in Percona-Server/storage/federated/ha_federated.cc
Text conflict in Percona-Server/storage/federated/ha_federated.h
Text conflict in Percona-Server/storage/heap/CMakeLists.txt
Text conflict in Percona-Server/storage/heap/_check.c
Text conflict in Percona-Server/storage/heap/_rectest.c
Text conflict in Percona-Server/storage/heap/ha_heap.cc
Text conflict in Percona-Server/storage/heap/ha_heap.h
Text conflict in Percona-Server/storage/heap/heapdef.h
Text conflict in Percona-Server/storage/heap/hp_block.c
Text conflict in Percona-Server/storage/heap/hp_clear.c
Text conflict in Percona-Server/storage/heap/hp_close.c
Text conflict in Percona-Server/storage/heap/hp_create.c
Text conflict in Percona-Server/storage/heap/hp_delete.c
Text conflict in Percona-Server/storage/heap/hp_extra.c
Text conflict in Percona-Server/storage/heap/hp_hash.c
Text conflict in Percona-Server/storage/heap/hp_info.c
Text conflict in Percona-Server/storage/heap/hp_open.c
Text conflict in Percona-Server/storage/heap/hp_panic.c
Text conflict in Percona-Server/storage/heap/hp_rename.c
Text conflict in Percona-Server/storage/heap/hp_rfirst.c
Text conflict in Percona-Server/storage/heap/hp_rkey.c
Text conflict in Percona-Server/storage/heap/hp_rlast.c
Text conflict in Percona-Server/storage/heap/hp_rnext.c
Text conflict in Percona-Server/storage/heap/hp_rprev.c
Text conflict in Percona-Server/storage/heap/hp_rrnd.c
Text conflict in Percona-Server/storage/heap/hp_rsame.c
Text conflict in Percona-Server/storage/heap/hp_scan.c
Text conflict in Percona-Server/storage/heap/hp_static.c
Text conflict in Percona-Server/storage/heap/hp_test1.c
Text conflict in Percona-Server/storage/heap/hp_test2.c
Text conflict in Percona-Server/storage/heap/hp_update.c
Text conflict in Percona-Server/storage/heap/hp_write.c
Conflict adding file Percona-Server/storage/innobase.  Moved existing file to Percona-Server/storage/innobase.moved.
Path conflict: Percona-Server/storage/innobase.moved/btr / Percona-Server/storage/innodb_plugin/btr
Path conflict: Percona-Server/storage/innobase.moved/buf / Percona-Server/storage/innodb_plugin/buf
Path conflict: Percona-Server/storage/innobase.moved/compile-innodb / Percona-Server/storage/innodb_plugin/compile-innodb
Path conflict: Percona-Server/storage/innobase.moved/data / Percona-Server/storage/innodb_plugin/data
Path conflict: Percona-Server/storage/innobase.moved/dict / Percona-Server/storage/innodb_plugin/dict
Path conflict: Percona-Server/storage/innobase.moved/dyn / Percona-Server/storage/innodb_plugin/dyn
Path conflict: Percona-Server/storage/innobase.moved/eval / Percona-Server/storage/innodb_plugin/eval
Path conflict: Percona-Server/storage/innobase.moved/fil / Percona-Server/storage/innodb_plugin/fil
Path conflict: Percona-Server/storage/innobase.moved/fsp / Percona-Server/storage/innodb_plugin/fsp
Path conflict: Percona-Server/storage/innobase.moved/fut / Percona-Server/storage/innodb_plugin/fut
Path conflict: Percona-Server/storage/innobase.moved/ha / Percona-Server/storage/innodb_plugin/ha
Path conflict: Percona-Server/storage/innobase.moved/handler / Percona-Server/storage/innodb_plugin/handler
Path conflict: Percona-Server/storage/innobase.moved/ibuf / Percona-Server/storage/innodb_plugin/ibuf
Path conflict: Percona-Server/storage/innobase.moved/include / Percona-Server/storage/innodb_plugin/include
Path conflict: Percona-Server/storage/innobase.moved/lock / Percona-Server/storage/innodb_plugin/lock
Path conflict: Percona-Server/storage/innobase.moved/log / Percona-Server/storage/innodb_plugin/log
Path conflict: Percona-Server/storage/innobase.moved/mach / Percona-Server/storage/innodb_plugin/mach
Path conflict: Percona-Server/storage/innobase.moved/mem / Percona-Server/storage/innodb_plugin/mem
Path conflict: Percona-Server/storage/innobase.moved/mtr / Percona-Server/storage/innodb_plugin/mtr
Path conflict: Percona-Server/storage/innobase.moved/os / Percona-Server/storage/innodb_plugin/os
Path conflict: Percona-Server/storage/innobase.moved/page / Percona-Server/storage/innodb_plugin/page
Path conflict: Percona-Server/storage/innobase.moved/pars / Percona-Server/storage/innodb_plugin/pars
Path conflict: Percona-Server/storage/innobase.moved/que / Percona-Server/storage/innodb_plugin/que
Path conflict: Percona-Server/storage/innobase.moved/read / Percona-Server/storage/innodb_plugin/read
Path conflict: Percona-Server/storage/innobase.moved/rem / Percona-Server/storage/innodb_plugin/rem
Path conflict: Percona-Server/storage/innobase.moved/row / Percona-Server/storage/innodb_plugin/row
Path conflict: Percona-Server/storage/innobase.moved/srv / Percona-Server/storage/innodb_plugin/srv
Path conflict: Percona-Server/storage/innobase.moved/sync / Percona-Server/storage/innodb_plugin/sync
Path conflict: Percona-Server/storage/innobase.moved/trx / Percona-Server/storage/innodb_plugin/trx
Path conflict: Percona-Server/storage/innobase.moved/usr / Percona-Server/storage/innodb_plugin/usr
Path conflict: Percona-Server/storage/innobase.moved/ut / Percona-Server/storage/innodb_plugin/ut
Text conflict in Percona-Server/storage/innodb_plugin/btr/btr0btr.c
Text conflict in Percona-Server/storage/innodb_plugin/btr/btr0cur.c
Text conflict in Percona-Server/storage/innodb_plugin/btr/btr0pcur.c
Text conflict in Percona-Server/storage/innodb_plugin/btr/btr0sea.c
Text conflict in Percona-Server/storage/innodb_plugin/buf/buf0buddy.c
Text conflict in Percona-Server/storage/innodb_plugin/buf/buf0buf.c
Text conflict in Percona-Server/storage/innodb_plugin/buf/buf0flu.c
Text conflict in Percona-Server/storage/innodb_plugin/buf/buf0lru.c
Text conflict in Percona-Server/storage/innodb_plugin/buf/buf0rea.c
Text conflict in Percona-Server/storage/innodb_plugin/compile-innodb
Text conflict in Percona-Server/storage/innodb_plugin/data/data0data.c
Text conflict in Percona-Server/storage/innodb_plugin/data/data0type.c
Text conflict in Percona-Server/storage/innodb_plugin/dict/dict0boot.c
Text conflict in Percona-Server/storage/innodb_plugin/dict/dict0crea.c
Text conflict in Percona-Server/storage/innodb_plugin/dict/dict0dict.c
Text conflict in Percona-Server/storage/innodb_plugin/dict/dict0load.c
Text conflict in Percona-Server/storage/innodb_plugin/dict/dict0mem.c
Text conflict in Percona-Server/storage/innodb_plugin/fil/fil0fil.c
Text conflict in Percona-Server/storage/innodb_plugin/fsp/fsp0fsp.c
Text conflict in Percona-Server/storage/innodb_plugin/ha/ha0ha.c
Text conflict in Percona-Server/storage/innodb_plugin/ha/hash0hash.c
Text conflict in Percona-Server/storage/innodb_plugin/handler/ha_innodb.cc
Text conflict in Percona-Server/storage/innodb_plugin/handler/ha_innodb.h
Text conflict in Percona-Server/storage/innodb_plugin/handler/handler0alter.cc
Text conflict in Percona-Server/storage/innodb_plugin/handler/i_s.cc
Text conflict in Percona-Server/storage/innodb_plugin/handler/i_s.h
Text conflict in Percona-Server/storage/innodb_plugin/ibuf/ibuf0ibuf.c
Text conflict in Percona-Server/storage/innodb_plugin/include/btr0btr.h
Text conflict in Percona-Server/storage/innodb_plugin/include/btr0btr.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/btr0cur.h
Text conflict in Percona-Server/storage/innodb_plugin/include/btr0pcur.h
Text conflict in Percona-Server/storage/innodb_plugin/include/btr0pcur.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/btr0sea.h
Text conflict in Percona-Server/storage/innodb_plugin/include/btr0sea.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/btr0types.h
Text conflict in Percona-Server/storage/innodb_plugin/include/buf0buddy.h
Text conflict in Percona-Server/storage/innodb_plugin/include/buf0buddy.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/buf0buf.h
Text conflict in Percona-Server/storage/innodb_plugin/include/buf0buf.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/buf0flu.h
Text conflict in Percona-Server/storage/innodb_plugin/include/buf0flu.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/buf0lru.h
Text conflict in Percona-Server/storage/innodb_plugin/include/buf0rea.h
Text conflict in Percona-Server/storage/innodb_plugin/include/buf0types.h
Text conflict in Percona-Server/storage/innodb_plugin/include/data0data.h
Text conflict in Percona-Server/storage/innodb_plugin/include/data0data.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/data0type.h
Text conflict in Percona-Server/storage/innodb_plugin/include/data0type.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/db0err.h
Text conflict in Percona-Server/storage/innodb_plugin/include/dict0boot.h
Text conflict in Percona-Server/storage/innodb_plugin/include/dict0boot.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/dict0dict.h
Text conflict in Percona-Server/storage/innodb_plugin/include/dict0dict.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/dict0load.h
Text conflict in Percona-Server/storage/innodb_plugin/include/dict0mem.h
Text conflict in Percona-Server/storage/innodb_plugin/include/dict0mem.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/dict0types.h
Text conflict in Percona-Server/storage/innodb_plugin/include/fil0fil.h
Text conflict in Percona-Server/storage/innodb_plugin/include/fsp0fsp.h
Text conflict in Percona-Server/storage/innodb_plugin/include/fsp0fsp.ic
Conflict adding file Percona-Server/storage/innodb_plugin/include/fsp0types.h.  Moved existing file to Percona-Server/storage/innodb_plugin/include/fsp0types.h.moved.
Text conflict in Percona-Server/storage/innodb_plugin/include/ha0ha.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/ha_prototypes.h
Text conflict in Percona-Server/storage/innodb_plugin/include/handler0alter.h
Text conflict in Percona-Server/storage/innodb_plugin/include/ibuf0ibuf.h
Text conflict in Percona-Server/storage/innodb_plugin/include/ibuf0ibuf.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/lock0lock.h
Text conflict in Percona-Server/storage/innodb_plugin/include/lock0lock.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/log0log.h
Text conflict in Percona-Server/storage/innodb_plugin/include/log0log.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/mach0data.h
Text conflict in Percona-Server/storage/innodb_plugin/include/mach0data.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/mem0mem.h
Text conflict in Percona-Server/storage/innodb_plugin/include/mem0mem.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/mtr0log.h
Text conflict in Percona-Server/storage/innodb_plugin/include/mtr0log.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/mtr0mtr.h
Text conflict in Percona-Server/storage/innodb_plugin/include/mtr0mtr.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/os0file.h
Text conflict in Percona-Server/storage/innodb_plugin/include/os0sync.h
Text conflict in Percona-Server/storage/innodb_plugin/include/os0sync.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/os0thread.h
Text conflict in Percona-Server/storage/innodb_plugin/include/page0cur.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/page0page.h
Text conflict in Percona-Server/storage/innodb_plugin/include/page0page.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/pars0pars.h
Text conflict in Percona-Server/storage/innodb_plugin/include/que0que.h
Text conflict in Percona-Server/storage/innodb_plugin/include/read0read.h
Text conflict in Percona-Server/storage/innodb_plugin/include/read0read.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/rem0rec.h
Text conflict in Percona-Server/storage/innodb_plugin/include/rem0rec.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/rem0types.h
Text conflict in Percona-Server/storage/innodb_plugin/include/row0ext.h
Text conflict in Percona-Server/storage/innodb_plugin/include/row0ext.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/row0merge.h
Text conflict in Percona-Server/storage/innodb_plugin/include/row0mysql.h
Text conflict in Percona-Server/storage/innodb_plugin/include/row0purge.h
Text conflict in Percona-Server/storage/innodb_plugin/include/row0row.h
Text conflict in Percona-Server/storage/innodb_plugin/include/row0sel.h
Text conflict in Percona-Server/storage/innodb_plugin/include/row0types.h
Text conflict in Percona-Server/storage/innodb_plugin/include/row0upd.h
Text conflict in Percona-Server/storage/innodb_plugin/include/srv0srv.h
Text conflict in Percona-Server/storage/innodb_plugin/include/srv0start.h
Text conflict in Percona-Server/storage/innodb_plugin/include/sync0rw.h
Text conflict in Percona-Server/storage/innodb_plugin/include/sync0rw.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/sync0sync.h
Text conflict in Percona-Server/storage/innodb_plugin/include/sync0sync.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0i_s.h
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0purge.h
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0rec.h
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0rec.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0rseg.h
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0sys.h
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0sys.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0trx.h
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0trx.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0types.h
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0undo.h
Text conflict in Percona-Server/storage/innodb_plugin/include/trx0undo.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/univ.i
Text conflict in Percona-Server/storage/innodb_plugin/include/ut0byte.h
Text conflict in Percona-Server/storage/innodb_plugin/include/ut0byte.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/ut0dbg.h
Text conflict in Percona-Server/storage/innodb_plugin/include/ut0lst.h
Text conflict in Percona-Server/storage/innodb_plugin/include/ut0mem.h
Conflict adding file Percona-Server/storage/innodb_plugin/include/ut0rbt.h.  Moved existing file to Percona-Server/storage/innodb_plugin/include/ut0rbt.h.moved.
Text conflict in Percona-Server/storage/innodb_plugin/include/ut0rnd.h
Text conflict in Percona-Server/storage/innodb_plugin/include/ut0rnd.ic
Text conflict in Percona-Server/storage/innodb_plugin/include/ut0ut.h
Text conflict in Percona-Server/storage/innodb_plugin/lock/lock0lock.c
Text conflict in Percona-Server/storage/innodb_plugin/log/log0log.c
Text conflict in Percona-Server/storage/innodb_plugin/log/log0recv.c
Text conflict in Percona-Server/storage/innodb_plugin/mach/mach0data.c
Text conflict in Percona-Server/storage/innodb_plugin/mem/mem0dbg.c
Text conflict in Percona-Server/storage/innodb_plugin/mem/mem0mem.c
Text conflict in Percona-Server/storage/innodb_plugin/mem/mem0pool.c
Text conflict in Percona-Server/storage/innodb_plugin/mtr/mtr0log.c
Text conflict in Percona-Server/storage/innodb_plugin/mtr/mtr0mtr.c
Text conflict in Percona-Server/storage/innodb_plugin/os/os0file.c
Text conflict in Percona-Server/storage/innodb_plugin/os/os0proc.c
Text conflict in Percona-Server/storage/innodb_plugin/os/os0sync.c
Text conflict in Percona-Server/storage/innodb_plugin/os/os0thread.c
Text conflict in Percona-Server/storage/innodb_plugin/page/page0cur.c
Text conflict in Percona-Server/storage/innodb_plugin/page/page0page.c
Text conflict in Percona-Server/storage/innodb_plugin/page/page0zip.c
Text conflict in Percona-Server/storage/innodb_plugin/pars/pars0opt.c
Text conflict in Percona-Server/storage/innodb_plugin/pars/pars0pars.c
Text conflict in Percona-Server/storage/innodb_plugin/que/que0que.c
Text conflict in Percona-Server/storage/innodb_plugin/read/read0read.c
Text conflict in Percona-Server/storage/innodb_plugin/rem/rem0rec.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0ext.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0ins.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0merge.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0mysql.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0purge.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0row.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0sel.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0uins.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0umod.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0undo.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0upd.c
Text conflict in Percona-Server/storage/innodb_plugin/row/row0vers.c
Text conflict in Percona-Server/storage/innodb_plugin/srv/srv0srv.c
Text conflict in Percona-Server/storage/innodb_plugin/srv/srv0start.c
Text conflict in Percona-Server/storage/innodb_plugin/sync/sync0arr.c
Text conflict in Percona-Server/storage/innodb_plugin/sync/sync0rw.c
Text conflict in Percona-Server/storage/innodb_plugin/sync/sync0sync.c
Text conflict in Percona-Server/storage/innodb_plugin/trx/trx0i_s.c
Text conflict in Percona-Server/storage/innodb_plugin/trx/trx0purge.c
Text conflict in Percona-Server/storage/innodb_plugin/trx/trx0rec.c
Text conflict in Percona-Server/storage/innodb_plugin/trx/trx0roll.c
Text conflict in Percona-Server/storage/innodb_plugin/trx/trx0rseg.c
Text conflict in Percona-Server/storage/innodb_plugin/trx/trx0sys.c
Text conflict in Percona-Server/storage/innodb_plugin/trx/trx0trx.c
Text conflict in Percona-Server/storage/innodb_plugin/trx/trx0undo.c
Text conflict in Percona-Server/storage/innodb_plugin/ut/ut0byte.c
Text conflict in Percona-Server/storage/innodb_plugin/ut/ut0dbg.c
Text conflict in Percona-Server/storage/innodb_plugin/ut/ut0mem.c
Conflict adding file Percona-Server/storage/innodb_plugin/ut/ut0rbt.c.  Moved existing file to Percona-Server/storage/innodb_plugin/ut/ut0rbt.c.moved.
Text conflict in Percona-Server/storage/innodb_plugin/ut/ut0ut.c
Text conflict in Percona-Server/storage/innodb_plugin/ut/ut0wqueue.c
Text conflict in Percona-Server/storage/myisam/CMakeLists.txt
Text conflict in Percona-Server/storage/myisam/ft_boolean_search.c
Text conflict in Percona-Server/storage/myisam/ft_nlq_search.c
Text conflict in Percona-Server/storage/myisam/ft_parser.c
Text conflict in Percona-Server/storage/myisam/ft_static.c
Text conflict in Percona-Server/storage/myisam/ft_stopwords.c
Text conflict in Percona-Server/storage/myisam/ft_update.c
Text conflict in Percona-Server/storage/myisam/ftdefs.h
Text conflict in Percona-Server/storage/myisam/fulltext.h
Text conflict in Percona-Server/storage/myisam/ha_myisam.cc
Text conflict in Percona-Server/storage/myisam/ha_myisam.h
Text conflict in Percona-Server/storage/myisam/mi_cache.c
Text conflict in Percona-Server/storage/myisam/mi_changed.c
Text conflict in Percona-Server/storage/myisam/mi_check.c
Text conflict in Percona-Server/storage/myisam/mi_close.c
Text conflict in Percona-Server/storage/myisam/mi_create.c
Text conflict in Percona-Server/storage/myisam/mi_dbug.c
Text conflict in Percona-Server/storage/myisam/mi_delete.c
Text conflict in Percona-Server/storage/myisam/mi_delete_all.c
Text conflict in Percona-Server/storage/myisam/mi_delete_table.c
Text conflict in Percona-Server/storage/myisam/mi_dynrec.c
Text conflict in Percona-Server/storage/myisam/mi_extra.c
Text conflict in Percona-Server/storage/myisam/mi_info.c
Text conflict in Percona-Server/storage/myisam/mi_key.c
Text conflict in Percona-Server/storage/myisam/mi_keycache.c
Text conflict in Percona-Server/storage/myisam/mi_locking.c
Text conflict in Percona-Server/storage/myisam/mi_log.c
Text conflict in Percona-Server/storage/myisam/mi_open.c
Text conflict in Percona-Server/storage/myisam/mi_packrec.c
Text conflict in Percona-Server/storage/myisam/mi_page.c
Text conflict in Percona-Server/storage/myisam/mi_panic.c
Text conflict in Percona-Server/storage/myisam/mi_preload.c
Text conflict in Percona-Server/storage/myisam/mi_range.c
Text conflict in Percona-Server/storage/myisam/mi_rename.c
Text conflict in Percona-Server/storage/myisam/mi_rkey.c
Text conflict in Percona-Server/storage/myisam/mi_rnext.c
Text conflict in Percona-Server/storage/myisam/mi_rnext_same.c
Text conflict in Percona-Server/storage/myisam/mi_rprev.c
Text conflict in Percona-Server/storage/myisam/mi_rsame.c
Text conflict in Percona-Server/storage/myisam/mi_search.c
Text conflict in Percona-Server/storage/myisam/mi_static.c
Text conflict in Percona-Server/storage/myisam/mi_statrec.c
Text conflict in Percona-Server/storage/myisam/mi_test1.c
Text conflict in Percona-Server/storage/myisam/mi_test2.c
Text conflict in Percona-Server/storage/myisam/mi_test3.c
Text conflict in Percona-Server/storage/myisam/mi_unique.c
Text conflict in Percona-Server/storage/myisam/mi_update.c
Text conflict in Percona-Server/storage/myisam/mi_write.c
Text conflict in Percona-Server/storage/myisam/myisam_ftdump.c
Text conflict in Percona-Server/storage/myisam/myisamchk.c
Text conflict in Percona-Server/storage/myisam/myisamdef.h
Text conflict in Percona-Server/storage/myisam/myisamlog.c
Text conflict in Percona-Server/storage/myisam/myisampack.c
Text conflict in Percona-Server/storage/myisam/rt_index.c
Text conflict in Percona-Server/storage/myisam/rt_split.c
Text conflict in Percona-Server/storage/myisam/rt_test.c
Text conflict in Percona-Server/storage/myisam/sort.c
Text conflict in Percona-Server/storage/myisam/sp_key.c
Text conflict in Percona-Server/storage/myisam/sp_test.c
Text conflict in Percona-Server/storage/myisammrg/CMakeLists.txt
Text conflict in Percona-Server/storage/myisammrg/ha_myisammrg.cc
Text conflict in Percona-Server/storage/myisammrg/ha_myisammrg.h
Text conflict in Percona-Server/storage/myisammrg/myrg_close.c
Text conflict in Percona-Server/storage/myisammrg/myrg_create.c
Text conflict in Percona-Server/storage/myisammrg/myrg_def.h
Text conflict in Percona-Server/storage/myisammrg/myrg_extra.c
Text conflict in Percona-Server/storage/myisammrg/myrg_info.c
Text conflict in Percona-Server/storage/myisammrg/myrg_open.c
Text conflict in Percona-Server/storage/myisammrg/myrg_queue.c
Text conflict in Percona-Server/storage/myisammrg/myrg_rkey.c
Text conflict in Percona-Server/storage/myisammrg/myrg_static.c
Text conflict in Percona-Server/storage/ndb/Makefile.am
Text conflict in Percona-Server/storage/ndb/config/win-lib.am
Text conflict in Percona-Server/storage/ndb/config/win-prg.am
Text conflict in Percona-Server/storage/ndb/docs/Makefile.am
Text conflict in Percona-Server/storage/ndb/include/Makefile.am
Text conflict in Percona-Server/storage/ndb/include/kernel/signaldata/DictTabInfo.hpp
Text conflict in Percona-Server/storage/ndb/include/kernel/signaldata/FsOpenReq.hpp
Text conflict in Percona-Server/storage/ndb/include/mgmapi/ndb_logevent.h
Text conflict in Percona-Server/storage/ndb/include/ndbapi/NdbEventOperation.hpp
Text conflict in Percona-Server/storage/ndb/include/ndbapi/NdbOperation.hpp
Text conflict in Percona-Server/storage/ndb/include/portlib/prefetch.h
Text conflict in Percona-Server/storage/ndb/include/util/NdbAutoPtr.hpp
Text conflict in Percona-Server/storage/ndb/include/util/ndb_opts.h
Path conflict: Percona-Server/storage/ndb/ndb_configure.m4 / Percona-Server/config/ac-macros/ha_ndbcluster.m4
Text conflict in Percona-Server/storage/ndb/plug.in
Text conflict in Percona-Server/storage/ndb/src/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/common/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/common/debugger/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/common/debugger/signaldata/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/common/logger/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/common/mgmcommon/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/common/portlib/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/common/portlib/NdbMutex.c
Text conflict in Percona-Server/storage/ndb/src/common/transporter/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/common/util/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/common/util/version.c
Text conflict in Percona-Server/storage/ndb/src/cw/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/cw/cpcd/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/cw/cpcd/main.cpp
Text conflict in Percona-Server/storage/ndb/src/kernel/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/backup/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/backup/read.cpp
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/dbdict/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/dbdih/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/dblqh/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/dbtup/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/lgman.cpp
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp
Text conflict in Percona-Server/storage/ndb/src/kernel/blocks/suma/Suma.cpp
Text conflict in Percona-Server/storage/ndb/src/kernel/error/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/kernel/vm/Configuration.cpp
Text conflict in Percona-Server/storage/ndb/src/kernel/vm/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/mgmapi/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/mgmapi/mgmapi.cpp
Text conflict in Percona-Server/storage/ndb/src/mgmapi/ndb_logevent.cpp
Text conflict in Percona-Server/storage/ndb/src/mgmclient/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/mgmclient/main.cpp
Text conflict in Percona-Server/storage/ndb/src/mgmsrv/InitConfigFileParser.cpp
Text conflict in Percona-Server/storage/ndb/src/mgmsrv/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/mgmsrv/main.cpp
Text conflict in Percona-Server/storage/ndb/src/ndbapi/DictCache.cpp
Text conflict in Percona-Server/storage/ndb/src/ndbapi/Makefile.am
Text conflict in Percona-Server/storage/ndb/src/ndbapi/NdbEventOperation.cpp
Text conflict in Percona-Server/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
Text conflict in Percona-Server/storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp
Text conflict in Percona-Server/storage/ndb/src/ndbapi/TransporterFacade.hpp
Text conflict in Percona-Server/storage/ndb/test/Makefile.am
Text conflict in Percona-Server/storage/ndb/test/ndbapi/Makefile.am
Text conflict in Percona-Server/storage/ndb/test/ndbapi/bank/Makefile.am
Text conflict in Percona-Server/storage/ndb/test/ndbapi/testIndexStat.cpp
Text conflict in Percona-Server/storage/ndb/test/ndbapi/test_event_merge.cpp
Text conflict in Percona-Server/storage/ndb/test/ndbapi/test_event_multi_table.cpp
Text conflict in Percona-Server/storage/ndb/test/run-test/Makefile.am
Text conflict in Percona-Server/storage/ndb/test/run-test/atrt.hpp
Text conflict in Percona-Server/storage/ndb/test/run-test/main.cpp
Text conflict in Percona-Server/storage/ndb/test/run-test/setup.cpp
Text conflict in Percona-Server/storage/ndb/test/src/Makefile.am
Text conflict in Percona-Server/storage/ndb/test/src/NDBT_Test.cpp
Text conflict in Percona-Server/storage/ndb/test/tools/Makefile.am
Text conflict in Percona-Server/storage/ndb/test/tools/connect.cpp
Text conflict in Percona-Server/storage/ndb/tools/Makefile.am
Text conflict in Percona-Server/storage/ndb/tools/delete_all.cpp
Text conflict in Percona-Server/storage/ndb/tools/desc.cpp
Text conflict in Percona-Server/storage/ndb/tools/drop_index.cpp
Text conflict in Percona-Server/storage/ndb/tools/drop_tab.cpp
Text conflict in Percona-Server/storage/ndb/tools/listTables.cpp
Text conflict in Percona-Server/storage/ndb/tools/ndb_config.cpp
Text conflict in Percona-Server/storage/ndb/tools/restore/consumer_restore.cpp
Text conflict in Percona-Server/storage/ndb/tools/restore/consumer_restorem.cpp
Text conflict in Percona-Server/storage/ndb/tools/restore/restore_main.cpp
Text conflict in Percona-Server/storage/ndb/tools/select_all.cpp
Text conflict in Percona-Server/storage/ndb/tools/select_count.cpp
Text conflict in Percona-Server/storage/ndb/tools/waiter.cpp
Text conflict in Percona-Server/strings/CMakeLists.txt
Text conflict in Percona-Server/strings/bchange.c
Text conflict in Percona-Server/strings/bmove_upp.c
Text conflict in Percona-Server/strings/conf_to_src.c
Text conflict in Percona-Server/strings/ctype-big5.c
Text conflict in Percona-Server/strings/ctype-bin.c
Text conflict in Percona-Server/strings/ctype-cp932.c
Text conflict in Percona-Server/strings/ctype-czech.c
Text conflict in Percona-Server/strings/ctype-euc_kr.c
Text conflict in Percona-Server/strings/ctype-eucjpms.c
Text conflict in Percona-Server/strings/ctype-extra.c
Text conflict in Percona-Server/strings/ctype-gb2312.c
Text conflict in Percona-Server/strings/ctype-gbk.c
Text conflict in Percona-Server/strings/ctype-latin1.c
Text conflict in Percona-Server/strings/ctype-mb.c
Text conflict in Percona-Server/strings/ctype-simple.c
Text conflict in Percona-Server/strings/ctype-sjis.c
Text conflict in Percona-Server/strings/ctype-tis620.c
Text conflict in Percona-Server/strings/ctype-uca.c
Text conflict in Percona-Server/strings/ctype-ucs2.c
Text conflict in Percona-Server/strings/ctype-ujis.c
Text conflict in Percona-Server/strings/ctype-utf8.c
Text conflict in Percona-Server/strings/ctype-win1250ch.c
Text conflict in Percona-Server/strings/ctype.c
Text conflict in Percona-Server/strings/decimal.c
Text conflict in Percona-Server/strings/do_ctype.c
Text conflict in Percona-Server/strings/dump_map.c
Text conflict in Percona-Server/strings/int2str.c
Text conflict in Percona-Server/strings/is_prefix.c
Text conflict in Percona-Server/strings/llstr.c
Text conflict in Percona-Server/strings/longlong2str.c
Text conflict in Percona-Server/strings/my_strchr.c
Text conflict in Percona-Server/strings/my_strtoll10.c
Text conflict in Percona-Server/strings/my_vsnprintf.c
Text conflict in Percona-Server/strings/str2int.c
Text conflict in Percona-Server/strings/str_alloc.c
Text conflict in Percona-Server/strings/strappend.c
Text conflict in Percona-Server/strings/strcend.c
Text conflict in Percona-Server/strings/strcont.c
Text conflict in Percona-Server/strings/strend.c
Text conflict in Percona-Server/strings/strfill.c
Text conflict in Percona-Server/strings/string.doc
Text conflict in Percona-Server/strings/strmake.c
Text conflict in Percona-Server/strings/strmov.c
Text conflict in Percona-Server/strings/strnlen.c
Text conflict in Percona-Server/strings/strnmov.c
Text conflict in Percona-Server/strings/strxmov.c
Text conflict in Percona-Server/strings/strxnmov.c
Text conflict in Percona-Server/strings/uca-dump.c
Text conflict in Percona-Server/strings/uctypedump.c
Text conflict in Percona-Server/strings/utr11-dump.c
Text conflict in Percona-Server/strings/xml.c
Text conflict in Percona-Server/support-files/MySQL-shared-compat.spec.sh
Text conflict in Percona-Server/support-files/my-huge.cnf.sh
Text conflict in Percona-Server/support-files/my-innodb-heavy-4G.cnf.sh
Text conflict in Percona-Server/support-files/my-large.cnf.sh
Text conflict in Percona-Server/support-files/my-medium.cnf.sh
Text conflict in Percona-Server/support-files/my-small.cnf.sh
Text conflict in Percona-Server/support-files/mysql-multi.server.sh
Text conflict in Percona-Server/support-files/mysql.server.sh
Text conflict in Percona-Server/support-files/mysql.spec.sh
Text conflict in Percona-Server/support-files/ndb-config-2-node.ini.sh
Text conflict in Percona-Server/tests/CMakeLists.txt
Text conflict in Percona-Server/tests/big_record.pl
Text conflict in Percona-Server/tests/bug25714.c
Text conflict in Percona-Server/tests/myisam-big-rows.tst
Text conflict in Percona-Server/tests/mysql_client_test.c
Text conflict in Percona-Server/tests/thread_test.c
Text conflict in Percona-Server/unittest/examples/core-t.c
Text conflict in Percona-Server/unittest/examples/no_plan-t.c
Text conflict in Percona-Server/unittest/examples/skip-t.c
Text conflict in Percona-Server/unittest/examples/skip_all-t.c
Text conflict in Percona-Server/unittest/examples/todo-t.c
Text conflict in Percona-Server/unittest/mysys/base64-t.c
Text conflict in Percona-Server/unittest/mysys/bitmap-t.c
Text conflict in Percona-Server/unittest/mytap/t/basic-t.c
Text conflict in Percona-Server/unittest/mytap/tap.c
Text conflict in Percona-Server/unittest/mytap/tap.h
Text conflict in Percona-Server/unittest/unit.pl
Text conflict in Percona-Server/vio/CMakeLists.txt
Text conflict in Percona-Server/vio/test-ssl.c
Text conflict in Percona-Server/vio/test-sslclient.c
Text conflict in Percona-Server/vio/test-sslserver.c
Text conflict in Percona-Server/vio/vio.c
Text conflict in Percona-Server/vio/vio_priv.h
Text conflict in Percona-Server/vio/viosocket.c
Text conflict in Percona-Server/vio/viossl.c
Text conflict in Percona-Server/vio/viosslfactories.c
Text conflict in Percona-Server/vio/viotest-ssl.c
Text conflict in Percona-Server/win/create_def_file.js
Text conflict in Percona-Server/zlib/CMakeLists.txt
Conflict adding file README.HandlerSocket.  Moved existing file to README.HandlerSocket.moved.
Conflict adding file UDF.  Moved existing file to UDF.moved.
Conflict adding file build.  Moved existing file to build.moved.
Conflict adding file doc.  Moved existing file to doc.moved.
Conflict adding file handlersocket.patch.  Moved existing file to handlersocket.patch.moved.
Conflict adding file lrusort.py.  Moved existing file to lrusort.py.moved.
Conflict adding file python-for-subunit2junitxml.  Moved existing file to python-for-subunit2junitxml.moved.
Conflict adding file subunit2junitxml.  Moved existing file to subunit2junitxml.moved.
To merge this branch: bzr merge lp:~gl-az/percona-server/5.1-lru_dump_load_work
Reviewer Review Type Date Requested Status
Alexey Kopytov Pending
Review via email: mp+106105@code.launchpad.net

Description of the change

- Launchpad Bug #686392 : Buffer pool dump may result in incomplete dump file.
  - Implemented simple temp file on save and rename to real file on successful dump.
  - Carried over one or two dump file sanity checks from Alexey K prior work.
- Launchpad Bug #712055 : Loading LRU dump prevents shutdown
    - Merged patch noted in bug and also implemented same logic when shutdown comes while performing actual dump. Was able to test and verify its effectiveness with a 1G buffer pool and innodb_auto_lru_dump.
    - Tried to create a test case for this issue but I don't think a proper 'success' case can be built due to the need for a sizable, existing ib_lru_dump file and the natural race conditions ump/that this works with (there is no guarantee that the preload won't finish before the shutdown signal comes).
- Launchpad Bug #713481 : Clean up messaging for LRU dump
    - It appears that PS 5.1 already has begin/end messages for lru restore. Added some verbage to the missing file message to make it not so scary.

Jenkins results at: http://jenkins.percona.com/view/Percona%20Server%205.1/job/percona-server-5.1-param/320/

I am unsure about the failures but they _look_ like Jenkins issues..

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '.bzrignore'
2--- .bzrignore 1970-01-01 00:00:00 +0000
3+++ .bzrignore 2012-05-17 04:17:38 +0000
4@@ -0,0 +1,3 @@
5+build
6+.pc
7+Makefile.in
8
9=== renamed file '.bzrignore' => '.bzrignore.moved'
10=== added file 'COPYING.show_temp_51'
11--- COPYING.show_temp_51 1970-01-01 00:00:00 +0000
12+++ COPYING.show_temp_51 2012-05-17 04:17:38 +0000
13@@ -0,0 +1,13 @@
14+Portions of this software contain modifications contributed by Venu Anuganti.
15+These contributions are used with the following license:
16+
17+Copyright (c) 2010, Venu Anuganti, http://venublog.com/
18+All rights reserved.
19+
20+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
21+
22+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
23+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
24+ * Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
25+
26+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28=== renamed file 'COPYING.show_temp_51' => 'COPYING.show_temp_51.moved'
29=== added directory 'HandlerSocket-Plugin-for-MySQL'
30=== renamed directory 'HandlerSocket-Plugin-for-MySQL' => 'HandlerSocket-Plugin-for-MySQL.moved'
31=== added file 'HandlerSocket-Plugin-for-MySQL/AUTHORS'
32--- HandlerSocket-Plugin-for-MySQL/AUTHORS 1970-01-01 00:00:00 +0000
33+++ HandlerSocket-Plugin-for-MySQL/AUTHORS 2012-05-17 04:17:38 +0000
34@@ -0,0 +1,19 @@
35+Akira Higuchi (https://github.com/ahiguti)
36+ - developed HanderSocket plugin, libhsclient, and perl-Net-HandlerSocket
37+
38+Yoshinori Matsunobu (https://github.com/yoshinorim)
39+ - introduced autotools, added support for MySQL 5.5.6, added statistics
40+ variables
41+
42+Jeff Hodges (https://github.com/jmhodges)
43+ - fixed some autotools scripts
44+
45+Toru Yamaguchi (https://github.com/zigorou)
46+ - ported to MacOS X
47+
48+Moriyoshi Koizumi (https://github.com/moriyoshi)
49+ - fixed some autotools scripts
50+
51+takeda-at (https://github.com/takada-at)
52+ - added simple authorization function
53+
54
55=== added file 'HandlerSocket-Plugin-for-MySQL/COPYING'
56--- HandlerSocket-Plugin-for-MySQL/COPYING 1970-01-01 00:00:00 +0000
57+++ HandlerSocket-Plugin-for-MySQL/COPYING 2012-05-17 04:17:38 +0000
58@@ -0,0 +1,30 @@
59+-----------------------------------------------------------------------------
60+HandlerSocket plugin for MySQL
61+
62+ Copyright (c) 2010 DeNA Co.,Ltd.
63+ All rights reserved.
64+
65+ Redistribution and use in source and binary forms, with or without
66+ modification, are permitted provided that the following conditions are met:
67+
68+ * Redistributions of source code must retain the above copyright
69+ notice, this list of conditions and the following disclaimer.
70+ * Redistributions in binary form must reproduce the above copyright
71+ notice, this list of conditions and the following disclaimer in the
72+ documentation and/or other materials provided with the distribution.
73+ * Neither the name of DeNA Co.,Ltd. nor the names of its contributors
74+ may be used to endorse or promote products derived from this software
75+ without specific prior written permission.
76+
77+ THIS SOFTWARE IS PROVIDED BY DeNA Co.,Ltd. "AS IS" AND ANY EXPRESS OR
78+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
79+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
80+ EVENT SHALL DeNA Co.,Ltd. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
81+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
82+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
83+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
84+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
85+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
86+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
87+
88+
89
90=== added file 'HandlerSocket-Plugin-for-MySQL/ChangeLog'
91--- HandlerSocket-Plugin-for-MySQL/ChangeLog 1970-01-01 00:00:00 +0000
92+++ HandlerSocket-Plugin-for-MySQL/ChangeLog 2012-05-17 04:17:38 +0000
93@@ -0,0 +1,12 @@
94+1.0.6 - 2010-10-29
95+ * Changed build instruction (autoreconf/configure/make), removed auto-generated files (Contributed by jmhodges)
96+ *
97+
98+1.0.5 - 2010-10-18
99+ * Changed build procedures (using typical configure/make)
100+ * Supported 5.5.6
101+ * Added status variables
102+
103+1.0.4 - 2010-08-15
104+ * Initial public release
105+
106
107=== added file 'HandlerSocket-Plugin-for-MySQL/Makefile.am'
108--- HandlerSocket-Plugin-for-MySQL/Makefile.am 1970-01-01 00:00:00 +0000
109+++ HandlerSocket-Plugin-for-MySQL/Makefile.am 2012-05-17 04:17:38 +0000
110@@ -0,0 +1,87 @@
111+
112+ACLOCAL_AMFLAGS = -I m4
113+
114+SUBDIRS = @HANDLERSOCKET_SUBDIRS@
115+
116+perl:
117+ cd perl-Net-HandlerSocket && perl Makefile.PL && make
118+
119+install_perl:
120+ cd perl-Net-HandlerSocket && make install
121+
122+rpms: rpm_cli rpm_perl rpm_c
123+
124+rpm_dir:
125+ - mkdir dist
126+ - mkdir dist/BUILD dist/RPMS dist/SOURCES dist/SPECS dist/SRPMS
127+
128+rpm_cli: clean_cli rpm_dir
129+ sed -e "s/HANDLERSOCKET_VERSION/$(VERSION)/" \
130+ libhsclient/libhsclient.spec.template \
131+ > libhsclient/libhsclient.spec
132+ tar cvfz dist/libhsclient.tar.gz libhsclient
133+ rpmbuild --define "_topdir `pwd`/dist" -ta \
134+ dist/libhsclient.tar.gz
135+
136+rpm_perl: clean_perl rpm_dir
137+ sed -e "s/HANDLERSOCKET_VERSION/$(VERSION)/" \
138+ perl-Net-HandlerSocket/perl-Net-HandlerSocket.spec.template \
139+ > perl-Net-HandlerSocket/perl-Net-HandlerSocket.spec
140+ cd perl-Net-HandlerSocket && perl Makefile.PL && make clean && \
141+ rm -f Makefile.old
142+ tar cvfz dist/perl-Net-HandlerSocket.tar.gz perl-Net-HandlerSocket
143+ rpmbuild --define "_topdir `pwd`/dist" -ta \
144+ dist/perl-Net-HandlerSocket.tar.gz
145+
146+rpm_c: clean_c rpm_dir
147+ sed -e "s/HANDLERSOCKET_VERSION/$(VERSION)/" \
148+ handlersocket/handlersocket.spec.template \
149+ > handlersocket/handlersocket.spec
150+ sed -e "s|HANDLERSOCKET_MYSQL_INC|$(MYSQL_CFLAGS) $(MYSQL_INC)|" \
151+ -e "s|HANDLERSOCKET_MYSQL_LIB|$(MYSQL_LIB)|" \
152+ handlersocket/Makefile.plain.template \
153+ > handlersocket/Makefile.plain
154+ tar cvfz dist/handlersocket.tar.gz handlersocket
155+ rpmbuild --define "_topdir `pwd`/dist" -ta \
156+ dist/handlersocket.tar.gz
157+
158+install_rpm_pl:
159+ - sudo rpm -e perl-Net-HandlerSocket
160+ - sudo rpm -e perl-Net-HandlerSocket-debuginfo
161+ make clean
162+ make rpm_perl
163+ - sudo rpm -U dist/RPMS/*/perl*.rpm
164+
165+installrpms:
166+ - sudo rpm -e handlersocket
167+ - sudo rpm -e handlersocket-debuginfo
168+ - sudo rpm -e perl-Net-HandlerSocket
169+ - sudo rpm -e perl-Net-HandlerSocket-debuginfo
170+ - sudo rpm -e libhsclient
171+ - sudo rpm -e libhsclient-debuginfo
172+ make clean
173+ make rpm_cli
174+ - sudo rpm -U dist/RPMS/*/libhsclient*.rpm
175+ make clean
176+ make rpm_perl
177+ - sudo rpm -U dist/RPMS/*/perl*.rpm
178+ make clean
179+ make rpm_c
180+ - sudo rpm -U dist/RPMS/*/handlersocket*.rpm
181+
182+clean_cli:
183+ cd libhsclient && make clean
184+ cd client && make clean
185+
186+clean_perl:
187+ cd perl-Net-HandlerSocket && perl Makefile.PL && make clean && \
188+ rm -f Makefile.old
189+
190+clean_c:
191+ cd handlersocket && make clean
192+
193+clean_all: clean_cli clean_perl clean_c
194+ cd regtest && make clean
195+ rm -rf dist/*/*
196+ rm -f dist/*.tar.gz
197+
198
199=== added file 'HandlerSocket-Plugin-for-MySQL/README'
200--- HandlerSocket-Plugin-for-MySQL/README 1970-01-01 00:00:00 +0000
201+++ HandlerSocket-Plugin-for-MySQL/README 2012-05-17 04:17:38 +0000
202@@ -0,0 +1,76 @@
203+
204+-----------------------------------------------------------------------------
205+HandlerSocket plugin for MySQL
206+
207+Copyright (c) 2010 DeNA Co.,Ltd.
208+All rights reserved.
209+
210+Redistribution and use in source and binary forms, with or without
211+modification, are permitted provided that the following conditions are met:
212+
213+ * Redistributions of source code must retain the above copyright
214+ notice, this list of conditions and the following disclaimer.
215+ * Redistributions in binary form must reproduce the above copyright
216+ notice, this list of conditions and the following disclaimer in the
217+ documentation and/or other materials provided with the distribution.
218+ * Neither the name of DeNA Co.,Ltd. nor the names of its contributors
219+ may be used to endorse or promote products derived from this software
220+ without specific prior written permission.
221+
222+THIS SOFTWARE IS PROVIDED BY DeNA Co.,Ltd. "AS IS" AND ANY EXPRESS OR
223+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
224+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
225+EVENT SHALL DeNA Co.,Ltd. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
226+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
227+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
228+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
229+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
230+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
231+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
232+
233+
234+-----------------------------------------------------------------------------
235+About HandlerSocket
236+
237+HandlerSocket is a NoSQL plugin for MySQL. It works as a daemon inside the
238+mysqld process, accept tcp connections, and execute requests from clients.
239+HandlerSocket does not support SQL queries. Instead, it supports simple CRUD
240+operations on tables.
241+
242+Because of the following reasons, HandlerSocket is much faster than the
243+mysqld/libmysql pair in some circumstances:
244+
245+ - HandlerSocket manipulates data without parsing SQL, which causes less
246+ CPU usage.
247+ - HandlerSocket reads many requests from clients and executes their
248+ requests in bulk, which causes less CPU and disk usage.
249+ - HandlerSocket client/server protocol is more compact than the
250+ mysql/libmysql pair, which causes less network usage.
251+
252+The current version of HandlerSocket only works with GNU/Linux. The source
253+archive of HandlerSocket includes a C++ and a Perl client libraries.
254+Here is a list of client libraries for other languages:
255+
256+ - PHP
257+ http://openpear.org/package/Net_HandlerSocket
258+ http://github.com/tz-lom/HSPHP
259+ http://code.google.com/p/php-handlersocket/
260+ - Java
261+ http://code.google.com/p/hs4j/
262+ http://code.google.com/p/handlersocketforjava/
263+ - Python
264+ http://pypi.python.org/pypi/python-handler-socket
265+ https://code.launchpad.net/~songofacandy/+junk/pyhandlersocket
266+ - Ruby
267+ https://github.com/winebarrel/ruby-handlersocket
268+ https://github.com/miyucy/handlersocket
269+ - JavaScript
270+ https://github.com/koichik/node-handlersocket
271+ - Scala
272+ https://github.com/fujohnwang/hs2client
273+
274+The home of HandlerSocket is here:
275+ https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL
276+
277+More documents are available in docs-en/ and docs-ja/ directories.
278+
279
280=== added file 'HandlerSocket-Plugin-for-MySQL/autogen.sh'
281--- HandlerSocket-Plugin-for-MySQL/autogen.sh 1970-01-01 00:00:00 +0000
282+++ HandlerSocket-Plugin-for-MySQL/autogen.sh 2012-05-17 04:17:38 +0000
283@@ -0,0 +1,117 @@
284+#!/bin/sh
285+
286+warn() {
287+echo -e "\tWARNING: $@" 1>&2
288+}
289+
290+# init
291+
292+LIBTOOLIZE=libtoolize
293+ACLOCAL=aclocal
294+AUTOCONF=autoconf
295+AUTOHEADER=autoheader
296+AUTOMAKE=automake
297+
298+case `uname -s` in
299+Darwin)
300+LIBTOOLIZE=glibtoolize
301+;;
302+FreeBSD)
303+ACLOCAL_ARGS="$ACLOCAL_ARGS -I /usr/local/share/aclocal/"
304+;;
305+esac
306+
307+
308+# libtoolize
309+echo "Searching libtoolize..."
310+if [ `which $LIBTOOLIZE` ] ; then
311+echo -e "\tFOUND: libtoolize -> $LIBTOOLIZE"
312+else
313+warn "Cannot Found libtoolize... input libtool command"
314+ read LIBTOOLIZE
315+ LIBTOOLIZE=`which $LIBTOOLIZE`
316+ if [ `which $LIBTOOLIZE` ] ; then
317+echo -e "\tSET: libtoolize -> $LIBTOOLIZE"
318+ else
319+warn "$LIBTOOLIZE: Command not found."
320+ exit 1;
321+ fi
322+fi
323+
324+# aclocal
325+echo "Searching aclocal..."
326+if [ `which $ACLOCAL` ] ; then
327+echo -e "\tFOUND: aclocal -> $ACLOCAL"
328+else
329+warn "Cannot Found aclocal... input aclocal command"
330+ read ACLOCAL
331+ ACLOCAL=`which $ACLOCAL`
332+ if [ `which $ACLOCAL` ] ; then
333+echo -e "\tSET: aclocal -> $ACLOCAL"
334+ else
335+warn "$ACLOCAL: Command not found."
336+ exit 1;
337+ fi
338+fi
339+
340+# automake
341+echo "Searching automake..."
342+if [ `which $AUTOMAKE` ] ; then
343+echo -e "\tFOUND: automake -> $AUTOMAKE"
344+else
345+warn "Cannot Found automake... input automake command"
346+ read AUTOMAKE
347+ ACLOCAL=`which $AUTOMAKE`
348+ if [ `which $AUTOMAKE` ] ; then
349+echo -e "\tSET: automake -> $AUTOMAKE"
350+ else
351+warn "$AUTOMAKE: Command not found."
352+ exit 1;
353+ fi
354+fi
355+
356+# autoheader
357+echo "Searching autoheader..."
358+if [ `which $AUTOHEADER` ] ; then
359+echo -e "\tFOUND: autoheader -> $AUTOHEADER"
360+else
361+warn "Cannot Found autoheader... input autoheader command"
362+ read AUTOHEADER
363+ ACLOCAL=`which $AUTOHEADER`
364+ if [ `which $AUTOHEADER` ] ; then
365+echo -e "\tSET: autoheader -> $AUTOHEADER"
366+ else
367+warn "$AUTOHEADER: Command not found."
368+ exit 1;
369+ fi
370+fi
371+
372+# autoconf
373+echo "Searching autoconf..."
374+if [ `which $AUTOCONF` ] ; then
375+echo -e "\tFOUND: autoconf -> $AUTOCONF"
376+else
377+warn "Cannot Found autoconf... input autoconf command"
378+ read AUTOCONF
379+ ACLOCAL=`which $AUTOCONF`
380+ if [ `which $AUTOCONF` ] ; then
381+echo -e "\tSET: autoconf -> $AUTOCONF"
382+ else
383+warn "$AUTOCONF: Command not found."
384+ exit 1;
385+ fi
386+fi
387+
388+echo "Running libtoolize ..."
389+$LIBTOOLIZE --force --copy
390+echo "Running aclocal ..."
391+$ACLOCAL ${ACLOCAL_ARGS} -I .
392+echo "Running autoheader..."
393+$AUTOHEADER
394+echo "Running automake ..."
395+$AUTOMAKE --add-missing --copy
396+echo "Running autoconf ..."
397+$AUTOCONF
398+
399+mkdir -p m4
400+
401
402=== added directory 'HandlerSocket-Plugin-for-MySQL/client'
403=== added file 'HandlerSocket-Plugin-for-MySQL/client/Makefile.am'
404--- HandlerSocket-Plugin-for-MySQL/client/Makefile.am 1970-01-01 00:00:00 +0000
405+++ HandlerSocket-Plugin-for-MySQL/client/Makefile.am 2012-05-17 04:17:38 +0000
406@@ -0,0 +1,24 @@
407+AM_INCLUDES= -I../libhsclient
408+bin_PROGRAMS=hsclient
409+hsclient_SOURCES= hsclient.cpp
410+hsclient_LDFLAGS= -static -L../libhsclient -lhsclient
411+hsclient_CXXFLAGS= $(AM_INCLUDES)
412+
413+hstest: hstest.o
414+ $(CXX) $(CXXFLAGS) $(LFLAGS) hstest.o \
415+ -L../libhsclient/.libs -lhsclient $$(mysql_config --libs_r) \
416+ -o hstest
417+
418+hstest.o: hstest.cpp
419+ $(CXX) $(CXXFLAGS) $(AM_INCLUDES) $$(mysql_config --include) \
420+ -c hstest.cpp
421+
422+hslongrun: hslongrun.o
423+ $(CXX) $(CXXFLAGS) $(LFLAGS) hslongrun.o \
424+ -L../libhsclient/.libs -lhsclient $$(mysql_config --libs_r) \
425+ -o hslongrun
426+
427+hslongrun.o: hslongrun.cpp
428+ $(CXX) $(CXXFLAGS) $(AM_INCLUDES) $$(mysql_config --include) \
429+ -c hslongrun.cpp
430+
431
432=== added file 'HandlerSocket-Plugin-for-MySQL/client/hsclient.cpp'
433--- HandlerSocket-Plugin-for-MySQL/client/hsclient.cpp 1970-01-01 00:00:00 +0000
434+++ HandlerSocket-Plugin-for-MySQL/client/hsclient.cpp 2012-05-17 04:17:38 +0000
435@@ -0,0 +1,88 @@
436+
437+// vim:sw=2:ai
438+
439+#include "hstcpcli.hpp"
440+#include "string_util.hpp"
441+
442+namespace dena {
443+
444+int
445+hstcpcli_main(int argc, char **argv)
446+{
447+ config conf;
448+ parse_args(argc, argv, conf);
449+ socket_args sockargs;
450+ sockargs.set(conf);
451+ hstcpcli_ptr cli = hstcpcli_i::create(sockargs);
452+ const std::string dbname = conf.get_str("dbname", "hstest");
453+ const std::string table = conf.get_str("table", "hstest_table1");
454+ const std::string index = conf.get_str("index", "PRIMARY");
455+ const std::string fields = conf.get_str("fields", "k,v");
456+ const int limit = conf.get_int("limit", 0);
457+ const int skip = conf.get_int("skip", 0);
458+ std::vector<std::string> keys;
459+ std::vector<string_ref> keyrefs;
460+ size_t num_keys = 0;
461+ while (true) {
462+ const std::string conf_key = std::string("k") + to_stdstring(num_keys);
463+ const std::string k = conf.get_str(conf_key, "");
464+ const std::string kx = conf.get_str(conf_key, "x");
465+ if (k.empty() && kx == "x") {
466+ break;
467+ }
468+ ++num_keys;
469+ keys.push_back(k);
470+ }
471+ for (size_t i = 0; i < keys.size(); ++i) {
472+ const string_ref ref(keys[i].data(), keys[i].size());
473+ keyrefs.push_back(ref);
474+ }
475+ const std::string op = conf.get_str("op", "=");
476+ const string_ref op_ref(op.data(), op.size());
477+ cli->request_buf_open_index(0, dbname.c_str(), table.c_str(),
478+ index.c_str(), fields.c_str());
479+ cli->request_buf_exec_generic(0, op_ref, num_keys == 0 ? 0 : &keyrefs[0],
480+ num_keys, limit, skip, string_ref(), 0, 0);
481+ int code = 0;
482+ size_t numflds = 0;
483+ do {
484+ if (cli->request_send() != 0) {
485+ fprintf(stderr, "request_send: %s\n", cli->get_error().c_str());
486+ break;
487+ }
488+ if ((code = cli->response_recv(numflds)) != 0) {
489+ fprintf(stderr, "response_recv: %s\n", cli->get_error().c_str());
490+ break;
491+ }
492+ } while (false);
493+ cli->response_buf_remove();
494+ do {
495+ if ((code = cli->response_recv(numflds)) != 0) {
496+ fprintf(stderr, "response_recv: %s\n", cli->get_error().c_str());
497+ break;
498+ }
499+ while (true) {
500+ const string_ref *const row = cli->get_next_row();
501+ if (row == 0) {
502+ break;
503+ }
504+ printf("REC:");
505+ for (size_t i = 0; i < numflds; ++i) {
506+ const std::string val(row[i].begin(), row[i].size());
507+ printf(" %s", val.c_str());
508+ }
509+ printf("\n");
510+ }
511+ } while (false);
512+ cli->response_buf_remove();
513+ return 0;
514+}
515+
516+};
517+
518+int
519+main(int argc, char **argv)
520+{
521+ return dena::hstcpcli_main(argc, argv);
522+}
523+
524
525=== added file 'HandlerSocket-Plugin-for-MySQL/client/hslongrun.cpp'
526--- HandlerSocket-Plugin-for-MySQL/client/hslongrun.cpp 1970-01-01 00:00:00 +0000
527+++ HandlerSocket-Plugin-for-MySQL/client/hslongrun.cpp 2012-05-17 04:17:38 +0000
528@@ -0,0 +1,1041 @@
529+
530+// vim:sw=2:ai
531+
532+#include <signal.h>
533+#include <sys/time.h>
534+#include <stdio.h>
535+#include <string.h>
536+#include <vector>
537+#include <map>
538+#include <stdlib.h>
539+#include <memory>
540+#include <errno.h>
541+#include <mysql.h>
542+#include <time.h>
543+#include <sys/types.h>
544+#include <sys/stat.h>
545+#include <fcntl.h>
546+
547+#include "util.hpp"
548+#include "auto_ptrcontainer.hpp"
549+#include "socket.hpp"
550+#include "hstcpcli.hpp"
551+#include "string_util.hpp"
552+#include "mutex.hpp"
553+
554+namespace dena {
555+
556+struct auto_mysql : private noncopyable {
557+ auto_mysql() : db(0) {
558+ reset();
559+ }
560+ ~auto_mysql() {
561+ if (db) {
562+ mysql_close(db);
563+ }
564+ }
565+ void reset() {
566+ if (db) {
567+ mysql_close(db);
568+ }
569+ if ((db = mysql_init(0)) == 0) {
570+ fatal_exit("failed to initialize mysql client");
571+ }
572+ }
573+ operator MYSQL *() const { return db; }
574+ private:
575+ MYSQL *db;
576+};
577+
578+struct auto_mysql_res : private noncopyable {
579+ auto_mysql_res(MYSQL *db) {
580+ res = mysql_store_result(db);
581+ }
582+ ~auto_mysql_res() {
583+ if (res) {
584+ mysql_free_result(res);
585+ }
586+ }
587+ operator MYSQL_RES *() const { return res; }
588+ private:
589+ MYSQL_RES *res;
590+};
591+
592+struct auto_mysql_stmt : private noncopyable {
593+ auto_mysql_stmt(MYSQL *db) {
594+ stmt = mysql_stmt_init(db);
595+ }
596+ ~auto_mysql_stmt() {
597+ if (stmt) {
598+ mysql_stmt_close(stmt);
599+ }
600+ }
601+ operator MYSQL_STMT *() const { return stmt; }
602+ private:
603+ MYSQL_STMT *stmt;
604+};
605+
606+double
607+gettimeofday_double()
608+{
609+ struct timeval tv = { };
610+ if (gettimeofday(&tv, 0) != 0) {
611+ fatal_abort("gettimeofday");
612+ }
613+ return static_cast<double>(tv.tv_usec) / 1000000 + tv.tv_sec;
614+}
615+
616+struct record_value {
617+ mutex lock;
618+ bool deleted;
619+ bool unknown_state;
620+ std::string key;
621+ std::vector<std::string> values;
622+ record_value() : deleted(true), unknown_state(false) { }
623+};
624+
625+struct hs_longrun_shared {
626+ config conf;
627+ socket_args arg;
628+ int verbose;
629+ long num_threads;
630+ int usleep;
631+ volatile mutable int running;
632+ auto_ptrcontainer< std::vector<record_value *> > records;
633+ hs_longrun_shared() : verbose(0), num_threads(0), usleep(0), running(1) { }
634+};
635+
636+struct thread_base {
637+ thread_base() : need_join(false), stack_size(256 * 1024) { }
638+ virtual ~thread_base() {
639+ join();
640+ }
641+ virtual void run() = 0;
642+ void start() {
643+ if (!start_nothrow()) {
644+ fatal_abort("thread::start");
645+ }
646+ }
647+ bool start_nothrow() {
648+ if (need_join) {
649+ return need_join; /* true */
650+ }
651+ void *const arg = this;
652+ pthread_attr_t attr;
653+ if (pthread_attr_init(&attr) != 0) {
654+ fatal_abort("pthread_attr_init");
655+ }
656+ if (pthread_attr_setstacksize(&attr, stack_size) != 0) {
657+ fatal_abort("pthread_attr_setstacksize");
658+ }
659+ const int r = pthread_create(&thr, &attr, thread_main, arg);
660+ if (pthread_attr_destroy(&attr) != 0) {
661+ fatal_abort("pthread_attr_destroy");
662+ }
663+ if (r != 0) {
664+ return need_join; /* false */
665+ }
666+ need_join = true;
667+ return need_join; /* true */
668+ }
669+ void join() {
670+ if (!need_join) {
671+ return;
672+ }
673+ int e = 0;
674+ if ((e = pthread_join(thr, 0)) != 0) {
675+ fatal_abort("pthread_join");
676+ }
677+ need_join = false;
678+ }
679+ private:
680+ static void *thread_main(void *arg) {
681+ thread_base *p = static_cast<thread_base *>(arg);
682+ p->run();
683+ return 0;
684+ }
685+ private:
686+ pthread_t thr;
687+ bool need_join;
688+ size_t stack_size;
689+};
690+
691+struct hs_longrun_stat {
692+ unsigned long long verify_error_count;
693+ unsigned long long runtime_error_count;
694+ unsigned long long unknown_count;
695+ unsigned long long success_count;
696+ hs_longrun_stat()
697+ : verify_error_count(0), runtime_error_count(0),
698+ unknown_count(0), success_count(0) { }
699+ void add(const hs_longrun_stat& x) {
700+ verify_error_count += x.verify_error_count;
701+ runtime_error_count += x.runtime_error_count;
702+ unknown_count += x.unknown_count;
703+ success_count += x.success_count;
704+ }
705+};
706+
707+struct hs_longrun_thread_base : public thread_base {
708+ struct arg_type {
709+ int id;
710+ std::string worker_type;
711+ char op;
712+ int lock_flag;
713+ const hs_longrun_shared& sh;
714+ arg_type(int id, const std::string& worker_type, char op, int lock_flag,
715+ const hs_longrun_shared& sh)
716+ : id(id), worker_type(worker_type), op(op), lock_flag(lock_flag),
717+ sh(sh) { }
718+ };
719+ arg_type arg;
720+ hs_longrun_stat stat;
721+ drand48_data randbuf;
722+ unsigned int seed;
723+ hs_longrun_thread_base(const arg_type& arg)
724+ : arg(arg), seed(0) {
725+ seed = time(0) + arg.id + 1;
726+ srand48_r(seed, &randbuf);
727+ }
728+ virtual ~hs_longrun_thread_base() { }
729+ virtual void run() = 0;
730+ size_t rand_record() {
731+ double v = 0;
732+ drand48_r(&randbuf, &v);
733+ const size_t sz = arg.sh.records.size();
734+ size_t r = size_t(v * sz);
735+ if (r >= sz) {
736+ r = 0;
737+ }
738+ return r;
739+ }
740+ int verify_update(const std::string& k, const std::string& v1,
741+ const std::string& v2, const std::string& v3, record_value& rec,
742+ uint32_t num_rows, bool cur_unknown_state);
743+ int verify_read(const std::string& k, uint32_t num_rows, uint32_t num_flds,
744+ const std::string rrec[4], record_value& rec);
745+ int verify_readnolock(const std::string& k, uint32_t num_rows,
746+ uint32_t num_flds, const std::string rrec[4]);
747+};
748+
749+int
750+hs_longrun_thread_base::verify_update(const std::string& k,
751+ const std::string& v1, const std::string& v2, const std::string& v3,
752+ record_value& rec, uint32_t num_rows, bool cur_unknown_state)
753+{
754+ const bool op_success = num_rows == 1;
755+ int ret = 0;
756+ if (!rec.unknown_state) {
757+ if (!rec.deleted && !op_success) {
758+ ++stat.verify_error_count;
759+ if (arg.sh.verbose > 0) {
760+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
761+ "unexpected_update_failure\n",
762+ arg.worker_type.c_str(), arg.id, k.c_str());
763+ }
764+ ret = 1;
765+ } else if (rec.deleted && op_success) {
766+ ++stat.verify_error_count;
767+ if (arg.sh.verbose > 0) {
768+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
769+ "unexpected_update_success\n",
770+ arg.worker_type.c_str(), arg.id, k.c_str());
771+ }
772+ ret = 1;
773+ }
774+ }
775+ if (op_success) {
776+ rec.values.resize(4);
777+ rec.values[0] = k;
778+ rec.values[1] = v1;
779+ rec.values[2] = v2;
780+ rec.values[3] = v3;
781+ if (ret == 0 && !rec.unknown_state) {
782+ ++stat.success_count;
783+ }
784+ }
785+ rec.unknown_state = cur_unknown_state;
786+ if (arg.sh.verbose >= 100 && ret == 0) {
787+ fprintf(stderr, "%s %s %s %s %s\n", arg.worker_type.c_str(),
788+ k.c_str(), v1.c_str(), v2.c_str(), v3.c_str());
789+ }
790+ return ret;
791+}
792+
793+int
794+hs_longrun_thread_base::verify_read(const std::string& k,
795+ uint32_t num_rows, uint32_t num_flds, const std::string rrec[4],
796+ record_value& rec)
797+{
798+ const bool op_success = num_rows != 0;
799+ int ret = 0;
800+ if (!rec.unknown_state) {
801+ if (!rec.deleted && !op_success) {
802+ ++stat.verify_error_count;
803+ if (arg.sh.verbose > 0) {
804+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
805+ "unexpected_read_failure\n",
806+ arg.worker_type.c_str(), arg.id, k.c_str());
807+ }
808+ ret = 1;
809+ } else if (rec.deleted && op_success) {
810+ ++stat.verify_error_count;
811+ if (arg.sh.verbose > 0) {
812+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
813+ "unexpected_read_success\n",
814+ arg.worker_type.c_str(), arg.id, k.c_str());
815+ }
816+ ret = 1;
817+ } else if (num_flds != 4) {
818+ ++stat.verify_error_count;
819+ if (arg.sh.verbose > 0) {
820+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
821+ "unexpected_read_fldnum %d\n",
822+ arg.worker_type.c_str(), arg.id, k.c_str(),
823+ static_cast<int>(num_flds));
824+ }
825+ ret = 1;
826+ } else if (rec.deleted) {
827+ /* nothing to verify */
828+ } else {
829+ int diff = 0;
830+ for (size_t i = 0; i < 4; ++i) {
831+ if (rec.values[i] == rrec[i]) {
832+ /* ok */
833+ } else {
834+ diff = 1;
835+ }
836+ }
837+ if (diff) {
838+ std::string mess;
839+ for (size_t i = 0; i < 4; ++i) {
840+ const std::string& expected = rec.values[i];
841+ const std::string& val = rrec[i];
842+ mess += " " + val + "/" + expected;
843+ }
844+ if (arg.sh.verbose > 0) {
845+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
846+ "unexpected_read_value %s\n",
847+ arg.worker_type.c_str(), arg.id, k.c_str(), mess.c_str());
848+ }
849+ ret = 1;
850+ }
851+ }
852+ }
853+ if (arg.sh.verbose >= 100 && ret == 0) {
854+ fprintf(stderr, "%s %s\n", arg.worker_type.c_str(), k.c_str());
855+ }
856+ if (ret == 0 && !rec.unknown_state) {
857+ ++stat.success_count;
858+ }
859+ return ret;
860+}
861+
862+int
863+hs_longrun_thread_base::verify_readnolock(const std::string& k,
864+ uint32_t num_rows, uint32_t num_flds, const std::string rrec[4])
865+{
866+ int ret = 0;
867+ if (num_rows != 1 || num_flds != 4) {
868+ ++stat.verify_error_count;
869+ if (arg.sh.verbose > 0) {
870+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
871+ "unexpected_read_failure\n",
872+ arg.worker_type.c_str(), arg.id, k.c_str());
873+ }
874+ ret = 1;
875+ }
876+ if (arg.sh.verbose >= 100 && ret == 0) {
877+ fprintf(stderr, "%s -> %s %s %s %s %s\n", arg.worker_type.c_str(),
878+ k.c_str(), rrec[0].c_str(), rrec[1].c_str(), rrec[2].c_str(),
879+ rrec[3].c_str());
880+ }
881+ if (ret == 0) {
882+ ++stat.success_count;
883+ }
884+ return ret;
885+}
886+
887+struct hs_longrun_thread_hs : public hs_longrun_thread_base {
888+ hs_longrun_thread_hs(const arg_type& arg)
889+ : hs_longrun_thread_base(arg) { }
890+ void run();
891+ int check_hs_error(const char *mess, record_value *rec);
892+ int op_insert(record_value& rec);
893+ int op_delete(record_value& rec);
894+ int op_update(record_value& rec);
895+ int op_read(record_value& rec);
896+ int op_readnolock(int k);
897+ hstcpcli_ptr cli;
898+ socket_args sockargs;
899+};
900+
901+struct lock_guard : noncopyable {
902+ lock_guard(mutex& mtx) : mtx(mtx) {
903+ mtx.lock();
904+ }
905+ ~lock_guard() {
906+ mtx.unlock();
907+ }
908+ mutex& mtx;
909+};
910+
911+string_ref
912+to_string_ref(const std::string& s)
913+{
914+ return string_ref(s.data(), s.size());
915+}
916+
917+std::string
918+to_string(const string_ref& s)
919+{
920+ return std::string(s.begin(), s.size());
921+}
922+
923+void
924+hs_longrun_thread_hs::run()
925+{
926+ config c = arg.sh.conf;
927+ if (arg.op == 'R' || arg.op == 'N') {
928+ c["port"] = to_stdstring(arg.sh.conf.get_int("hsport", 9998));
929+ } else {
930+ c["port"] = to_stdstring(arg.sh.conf.get_int("hsport_wr", 9999));
931+ }
932+ sockargs.set(c);
933+
934+ while (arg.sh.running) {
935+ if (cli.get() == 0 || !cli->stable_point()) {
936+ cli = hstcpcli_i::create(sockargs);
937+ if (check_hs_error("connect", 0) != 0) {
938+ cli.reset();
939+ continue;
940+ }
941+ cli->request_buf_open_index(0, "hstestdb", "hstesttbl", "PRIMARY",
942+ "k,v1,v2,v3", "k,v1,v2,v3");
943+ cli->request_send();
944+ if (check_hs_error("openindex_send", 0) != 0) {
945+ cli.reset();
946+ continue;
947+ }
948+ size_t num_flds = 0;
949+ cli->response_recv(num_flds);
950+ if (check_hs_error("openindex_recv", 0) != 0) {
951+ cli.reset();
952+ continue;
953+ }
954+ cli->response_buf_remove();
955+ }
956+ const size_t rec_id = rand_record();
957+ if (arg.lock_flag) {
958+ record_value& rec = *arg.sh.records[rec_id];
959+ lock_guard g(rec.lock);
960+ int e = 0;
961+ switch (arg.op) {
962+ case 'I':
963+ e = op_insert(rec);
964+ break;
965+ case 'D':
966+ e = op_delete(rec);
967+ break;
968+ case 'U':
969+ e = op_update(rec);
970+ break;
971+ case 'R':
972+ e = op_read(rec);
973+ break;
974+ default:
975+ break;
976+ }
977+ } else {
978+ int e = 0;
979+ switch (arg.op) {
980+ case 'N':
981+ e = op_readnolock(rec_id);
982+ break;
983+ default:
984+ break;
985+ }
986+ }
987+ }
988+}
989+
990+int
991+hs_longrun_thread_hs::op_insert(record_value& rec)
992+{
993+ const std::string k = rec.key;
994+ const std::string v1 = "iv1_" + k + "_" + to_stdstring(arg.id);
995+ const std::string v2 = "iv2_" + k + "_" + to_stdstring(arg.id);
996+ const std::string v3 = "iv3_" + k + "_" + to_stdstring(arg.id);
997+ const string_ref op_ref("+", 1);
998+ const string_ref op_args[4] = {
999+ to_string_ref(k),
1000+ to_string_ref(v1),
1001+ to_string_ref(v2),
1002+ to_string_ref(v3)
1003+ };
1004+ cli->request_buf_exec_generic(0, op_ref, op_args, 4, 1, 0,
1005+ string_ref(), 0, 0, 0, 0);
1006+ cli->request_send();
1007+ if (check_hs_error("op_insert_send", &rec) != 0) { return 1; }
1008+ size_t numflds = 0;
1009+ cli->response_recv(numflds);
1010+ if (arg.sh.verbose > 10) {
1011+ const string_ref *row = cli->get_next_row();
1012+ fprintf(stderr, "HS op=+ errrcode=%d errmess=[%s]\n", cli->get_error_code(),
1013+ row ? to_string(row[0]).c_str() : "");
1014+ }
1015+ const bool op_success = cli->get_error_code() == 0;
1016+ int ret = 0;
1017+ if (!rec.unknown_state) {
1018+ if (rec.deleted && !op_success) {
1019+ ++stat.verify_error_count;
1020+ if (arg.sh.verbose > 0) {
1021+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
1022+ "unexpected_insert_failure\n",
1023+ arg.worker_type.c_str(), arg.id, k.c_str());
1024+ }
1025+ ret = 1;
1026+ } else if (!rec.deleted && op_success) {
1027+ ++stat.verify_error_count;
1028+ if (arg.sh.verbose > 0) {
1029+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
1030+ "unexpected_insert_success\n",
1031+ arg.worker_type.c_str(), arg.id, k.c_str());
1032+ }
1033+ ret = 1;
1034+ }
1035+ } else {
1036+ ++stat.unknown_count;
1037+ }
1038+ if (op_success) {
1039+ rec.values.resize(4);
1040+ rec.values[0] = k;
1041+ rec.values[1] = v1;
1042+ rec.values[2] = v2;
1043+ rec.values[3] = v3;
1044+ rec.deleted = false;
1045+ if (arg.sh.verbose >= 100 && ret == 0) {
1046+ fprintf(stderr, "HS_INSERT %s %s %s %s\n", k.c_str(), v1.c_str(),
1047+ v2.c_str(), v3.c_str());
1048+ }
1049+ if (ret == 0 && !rec.unknown_state) {
1050+ ++stat.success_count;
1051+ }
1052+ rec.unknown_state = false;
1053+ }
1054+ cli->response_buf_remove();
1055+ return ret;
1056+}
1057+
1058+int
1059+hs_longrun_thread_hs::op_delete(record_value& rec)
1060+{
1061+ const std::string k = rec.key;
1062+ const string_ref op_ref("=", 1);
1063+ const string_ref op_args[1] = {
1064+ to_string_ref(k),
1065+ };
1066+ const string_ref modop_ref("D", 1);
1067+ cli->request_buf_exec_generic(0, op_ref, op_args, 1, 1, 0,
1068+ modop_ref, 0, 0, 0, 0);
1069+ cli->request_send();
1070+ if (check_hs_error("op_delete_send", &rec) != 0) { return 1; }
1071+ size_t numflds = 0;
1072+ cli->response_recv(numflds);
1073+ if (check_hs_error("op_delete_recv", &rec) != 0) { return 1; }
1074+ const string_ref *row = cli->get_next_row();
1075+ const bool op_success = (numflds > 0 && row != 0 &&
1076+ to_string(row[0]) == "1");
1077+ int ret = 0;
1078+ if (!rec.unknown_state) {
1079+ if (!rec.deleted && !op_success) {
1080+ ++stat.verify_error_count;
1081+ if (arg.sh.verbose > 0) {
1082+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
1083+ "unexpected_delete_failure\n",
1084+ arg.worker_type.c_str(), arg.id, k.c_str());
1085+ }
1086+ ret = 1;
1087+ } else if (rec.deleted && op_success) {
1088+ ++stat.verify_error_count;
1089+ if (arg.sh.verbose > 0) {
1090+ fprintf(stderr, "VERIFY_ERROR: %s wid=%d k=%s "
1091+ "unexpected_delete_success\n",
1092+ arg.worker_type.c_str(), arg.id, k.c_str());
1093+ }
1094+ ret = 1;
1095+ }
1096+ }
1097+ cli->response_buf_remove();
1098+ if (op_success) {
1099+ rec.deleted = true;
1100+ if (ret == 0 && !rec.unknown_state) {
1101+ ++stat.success_count;
1102+ }
1103+ rec.unknown_state = false;
1104+ }
1105+ if (arg.sh.verbose >= 100 && ret == 0) {
1106+ fprintf(stderr, "HS_DELETE %s\n", k.c_str());
1107+ }
1108+ return ret;
1109+}
1110+
1111+int
1112+hs_longrun_thread_hs::op_update(record_value& rec)
1113+{
1114+ const std::string k = rec.key;
1115+ const std::string v1 = "uv1_" + k + "_" + to_stdstring(arg.id);
1116+ const std::string v2 = "uv2_" + k + "_" + to_stdstring(arg.id);
1117+ const std::string v3 = "uv3_" + k + "_" + to_stdstring(arg.id);
1118+ const string_ref op_ref("=", 1);
1119+ const string_ref op_args[1] = {
1120+ to_string_ref(k),
1121+ };
1122+ const string_ref modop_ref("U", 1);
1123+ const string_ref modop_args[4] = {
1124+ to_string_ref(k),
1125+ to_string_ref(v1),
1126+ to_string_ref(v2),
1127+ to_string_ref(v3)
1128+ };
1129+ cli->request_buf_exec_generic(0, op_ref, op_args, 1, 1, 0,
1130+ modop_ref, modop_args, 4, 0, 0);
1131+ cli->request_send();
1132+ if (check_hs_error("op_update_send", &rec) != 0) { return 1; }
1133+ size_t numflds = 0;
1134+ cli->response_recv(numflds);
1135+ if (check_hs_error("op_update_recv", &rec) != 0) { return 1; }
1136+ const string_ref *row = cli->get_next_row();
1137+ uint32_t num_rows = row
1138+ ? atoi_uint32_nocheck(row[0].begin(), row[0].end()) : 0;
1139+ cli->response_buf_remove();
1140+ const bool cur_unknown_state = (num_rows == 1);
1141+ return verify_update(k, v1, v2, v3, rec, num_rows, cur_unknown_state);
1142+}
1143+
1144+int
1145+hs_longrun_thread_hs::op_read(record_value& rec)
1146+{
1147+ const std::string k = rec.key;
1148+ const string_ref op_ref("=", 1);
1149+ const string_ref op_args[1] = {
1150+ to_string_ref(k),
1151+ };
1152+ cli->request_buf_exec_generic(0, op_ref, op_args, 1, 1, 0,
1153+ string_ref(), 0, 0, 0, 0);
1154+ cli->request_send();
1155+ if (check_hs_error("op_read_send", 0) != 0) { return 1; }
1156+ size_t num_flds = 0;
1157+ size_t num_rows = 0;
1158+ cli->response_recv(num_flds);
1159+ if (check_hs_error("op_read_recv", 0) != 0) { return 1; }
1160+ const string_ref *row = cli->get_next_row();
1161+ std::string rrec[4];
1162+ if (row != 0 && num_flds == 4) {
1163+ for (int i = 0; i < 4; ++i) {
1164+ rrec[i] = to_string(row[i]);
1165+ }
1166+ ++num_rows;
1167+ }
1168+ row = cli->get_next_row();
1169+ if (row != 0) {
1170+ ++num_rows;
1171+ }
1172+ cli->response_buf_remove();
1173+ return verify_read(k, num_rows, num_flds, rrec, rec);
1174+}
1175+
1176+int
1177+hs_longrun_thread_hs::op_readnolock(int key)
1178+{
1179+ const std::string k = to_stdstring(key);
1180+ const string_ref op_ref("=", 1);
1181+ const string_ref op_args[1] = {
1182+ to_string_ref(k),
1183+ };
1184+ cli->request_buf_exec_generic(0, op_ref, op_args, 1, 1, 0,
1185+ string_ref(), 0, 0, 0, 0);
1186+ cli->request_send();
1187+ if (check_hs_error("op_read_send", 0) != 0) { return 1; }
1188+ size_t num_flds = 0;
1189+ size_t num_rows = 0;
1190+ cli->response_recv(num_flds);
1191+ if (check_hs_error("op_read_recv", 0) != 0) { return 1; }
1192+ const string_ref *row = cli->get_next_row();
1193+ std::string rrec[4];
1194+ if (row != 0 && num_flds == 4) {
1195+ for (int i = 0; i < 4; ++i) {
1196+ rrec[i] = to_string(row[i]);
1197+ }
1198+ ++num_rows;
1199+ }
1200+ row = cli->get_next_row();
1201+ if (row != 0) {
1202+ ++num_rows;
1203+ }
1204+ cli->response_buf_remove();
1205+ return verify_readnolock(k, num_rows, num_flds, rrec);
1206+}
1207+
1208+int
1209+hs_longrun_thread_hs::check_hs_error(const char *mess, record_value *rec)
1210+{
1211+ const int err = cli->get_error_code();
1212+ if (err == 0) {
1213+ return 0;
1214+ }
1215+ ++stat.runtime_error_count;
1216+ if (arg.sh.verbose > 0) {
1217+ const std::string estr = cli->get_error();
1218+ fprintf(stderr, "RUNTIME_ERROR: op=%c wid=%d %s: %d %s\n",
1219+ arg.op, arg.id, mess, err, estr.c_str());
1220+ }
1221+ if (rec) {
1222+ rec->unknown_state = true;
1223+ }
1224+ return 1;
1225+}
1226+
1227+struct hs_longrun_thread_my : public hs_longrun_thread_base {
1228+ hs_longrun_thread_my(const arg_type& arg)
1229+ : hs_longrun_thread_base(arg), connected(false) { }
1230+ void run();
1231+ void show_mysql_error(const char *mess, record_value *rec);
1232+ int op_insert(record_value& rec);
1233+ int op_delete(record_value& rec);
1234+ int op_update(record_value& rec);
1235+ int op_delins(record_value& rec);
1236+ int op_read(record_value& rec);
1237+ auto_mysql db;
1238+ bool connected;
1239+};
1240+
1241+void
1242+hs_longrun_thread_my::run()
1243+{
1244+ const std::string mysql_host = arg.sh.conf.get_str("host", "localhost");
1245+ const std::string mysql_user = arg.sh.conf.get_str("mysqluser", "root");
1246+ const std::string mysql_passwd = arg.sh.conf.get_str("mysqlpass", "");
1247+ const std::string mysql_dbname = "hstestdb";
1248+
1249+ while (arg.sh.running) {
1250+ if (!connected) {
1251+ if (!mysql_real_connect(db, mysql_host.c_str(), mysql_user.c_str(),
1252+ mysql_passwd.c_str(), mysql_dbname.c_str(), mysql_port, 0, 0)) {
1253+ show_mysql_error("mysql_real_connect", 0);
1254+ continue;
1255+ }
1256+ }
1257+ connected = true;
1258+ const size_t rec_id = rand_record();
1259+ record_value& rec = *arg.sh.records[rec_id];
1260+ lock_guard g(rec.lock);
1261+ int e = 0;
1262+ switch (arg.op) {
1263+ #if 0
1264+ case 'I':
1265+ e = op_insert(rec);
1266+ break;
1267+ case 'D':
1268+ e = op_delete(rec);
1269+ break;
1270+ case 'U':
1271+ e = op_update(rec);
1272+ break;
1273+ #endif
1274+ case 'T':
1275+ e = op_delins(rec);
1276+ break;
1277+ case 'R':
1278+ e = op_read(rec);
1279+ break;
1280+ default:
1281+ break;
1282+ }
1283+ }
1284+}
1285+
1286+int
1287+hs_longrun_thread_my::op_delins(record_value& rec)
1288+{
1289+ const std::string k = rec.key;
1290+ const std::string v1 = "div1_" + k + "_" + to_stdstring(arg.id);
1291+ const std::string v2 = "div2_" + k + "_" + to_stdstring(arg.id);
1292+ const std::string v3 = "div3_" + k + "_" + to_stdstring(arg.id);
1293+ int success = 0;
1294+ bool cur_unknown_state = false;
1295+ do {
1296+ char query[1024];
1297+ #if 1
1298+ if (mysql_query(db, "begin") != 0) {
1299+ if (arg.sh.verbose >= 20) {
1300+ fprintf(stderr, "mysql: e=[%s] q=[%s]\n", mysql_error(db), "begin");
1301+ }
1302+ break;
1303+ }
1304+ #endif
1305+ cur_unknown_state = true;
1306+ snprintf(query, 1024,
1307+ "delete from hstesttbl where k = '%s'", k.c_str());
1308+ if (mysql_query(db, query) != 0) {
1309+ if (arg.sh.verbose >= 20) {
1310+ fprintf(stderr, "mysql: e=[%s] q=[%s]\n", mysql_error(db), query);
1311+ }
1312+ break;
1313+ }
1314+ if (mysql_affected_rows(db) != 1) {
1315+ if (arg.sh.verbose >= 20) {
1316+ fprintf(stderr, "mysql: notfound: [%s]\n", query);
1317+ }
1318+ break;
1319+ }
1320+ snprintf(query, 1024,
1321+ "insert into hstesttbl values ('%s', '%s', '%s', '%s')",
1322+ k.c_str(), v1.c_str(), v2.c_str(), v3.c_str());
1323+ if (mysql_query(db, query) != 0) {
1324+ if (arg.sh.verbose >= 20) {
1325+ fprintf(stderr, "mysql: e=[%s] q=[%s]\n", mysql_error(db), query);
1326+ }
1327+ break;
1328+ }
1329+ #if 1
1330+ if (mysql_query(db, "commit") != 0) {
1331+ if (arg.sh.verbose >= 20) {
1332+ fprintf(stderr, "mysql: e=[%s] q=[%s]\n", mysql_error(db), "commit");
1333+ }
1334+ break;
1335+ }
1336+ #endif
1337+ success = true;
1338+ cur_unknown_state = false;
1339+ } while (false);
1340+ return verify_update(k, v1, v2, v3, rec, (success != 0), cur_unknown_state);
1341+}
1342+
1343+int
1344+hs_longrun_thread_my::op_read(record_value& rec)
1345+{
1346+ const std::string k = rec.key;
1347+ char query[1024] = { 0 };
1348+ const int len = snprintf(query, 1024,
1349+ "select k,v1,v2,v3 from hstesttbl where k='%s'", k.c_str());
1350+ const int r = mysql_real_query(db, query, len > 0 ? len : 0);
1351+ if (r != 0) {
1352+ show_mysql_error(query, 0);
1353+ return 1;
1354+ }
1355+ MYSQL_ROW row = 0;
1356+ unsigned long *lengths = 0;
1357+ unsigned int num_rows = 0;
1358+ unsigned int num_flds = 0;
1359+ auto_mysql_res res(db);
1360+ std::string rrec[4];
1361+ if (res != 0) {
1362+ num_flds = mysql_num_fields(res);
1363+ row = mysql_fetch_row(res);
1364+ if (row != 0) {
1365+ lengths = mysql_fetch_lengths(res);
1366+ if (num_flds == 4) {
1367+ for (int i = 0; i < 4; ++i) {
1368+ rrec[i] = std::string(row[i], lengths[i]);
1369+ }
1370+ }
1371+ ++num_rows;
1372+ row = mysql_fetch_row(res);
1373+ if (row != 0) {
1374+ ++num_rows;
1375+ }
1376+ }
1377+ }
1378+ return verify_read(k, num_rows, num_flds, rrec, rec);
1379+}
1380+
1381+void
1382+hs_longrun_thread_my::show_mysql_error(const char *mess, record_value *rec)
1383+{
1384+ ++stat.runtime_error_count;
1385+ if (arg.sh.verbose > 0) {
1386+ fprintf(stderr, "RUNTIME_ERROR: op=%c wid=%d [%s]: %s\n",
1387+ arg.op, arg.id, mess, mysql_error(db));
1388+ }
1389+ if (rec) {
1390+ rec->unknown_state = true;
1391+ }
1392+ db.reset();
1393+ connected = false;
1394+}
1395+
1396+void
1397+mysql_do(MYSQL *db, const char *query)
1398+{
1399+ if (mysql_real_query(db, query, strlen(query)) != 0) {
1400+ fprintf(stderr, "mysql: e=[%s] q=[%s]\n", mysql_error(db), query);
1401+ fatal_exit("mysql_do");
1402+ }
1403+}
1404+
1405+void
1406+hs_longrun_init_table(const config& conf, int num_prepare,
1407+ hs_longrun_shared& shared)
1408+{
1409+ const std::string mysql_host = conf.get_str("host", "localhost");
1410+ const std::string mysql_user = conf.get_str("mysqluser", "root");
1411+ const std::string mysql_passwd = conf.get_str("mysqlpass", "");
1412+ const std::string mysql_dbname = "";
1413+ auto_mysql db;
1414+ if (!mysql_real_connect(db, mysql_host.c_str(), mysql_user.c_str(),
1415+ mysql_passwd.c_str(), mysql_dbname.c_str(), mysql_port, 0, 0)) {
1416+ fprintf(stderr, "mysql: error=[%s]\n", mysql_error(db));
1417+ fatal_exit("hs_longrun_init_table");
1418+ }
1419+ mysql_do(db, "drop database if exists hstestdb");
1420+ mysql_do(db, "create database hstestdb");
1421+ mysql_do(db, "use hstestdb");
1422+ mysql_do(db,
1423+ "create table hstesttbl ("
1424+ "k int primary key,"
1425+ "v1 varchar(32) not null,"
1426+ "v2 varchar(32) not null,"
1427+ "v3 varchar(32) not null"
1428+ ") character set utf8 collate utf8_bin engine = innodb");
1429+ for (int i = 0; i < num_prepare; ++i) {
1430+ const std::string i_str = to_stdstring(i);
1431+ const std::string v1 = "pv1_" + i_str;
1432+ const std::string v2 = "pv2_" + i_str;
1433+ const std::string v3 = "pv3_" + i_str;
1434+ char buf[1024];
1435+ snprintf(buf, 1024, "insert into hstesttbl(k, v1, v2, v3) values"
1436+ "(%d, '%s', '%s', '%s')", i, v1.c_str(), v2.c_str(), v3.c_str());
1437+ mysql_do(db, buf);
1438+ record_value *rec = shared.records[i];
1439+ rec->key = i_str;
1440+ rec->values.resize(4);
1441+ rec->values[0] = i_str;
1442+ rec->values[1] = v1;
1443+ rec->values[2] = v2;
1444+ rec->values[3] = v3;
1445+ rec->deleted = false;
1446+ }
1447+}
1448+
1449+int
1450+hs_longrun_main(int argc, char **argv)
1451+{
1452+ hs_longrun_shared shared;
1453+ parse_args(argc, argv, shared.conf);
1454+ shared.conf["host"] = shared.conf.get_str("host", "localhost");
1455+ shared.verbose = shared.conf.get_int("verbose", 1);
1456+ const int table_size = shared.conf.get_int("table_size", 10000);
1457+ for (int i = 0; i < table_size; ++i) {
1458+ std::auto_ptr<record_value> rec(new record_value());
1459+ rec->key = to_stdstring(i);
1460+ shared.records.push_back_ptr(rec);
1461+ }
1462+ mysql_library_init(0, 0, 0);
1463+ const int duration = shared.conf.get_int("duration", 10);
1464+ const int num_hsinsert = shared.conf.get_int("num_hsinsert", 10);
1465+ const int num_hsdelete = shared.conf.get_int("num_hsdelete", 10);
1466+ const int num_hsupdate = shared.conf.get_int("num_hsupdate", 10);
1467+ const int num_hsread = shared.conf.get_int("num_hsread", 10);
1468+ const int num_myread = shared.conf.get_int("num_myread", 10);
1469+ const int num_mydelins = shared.conf.get_int("num_mydelins", 10);
1470+ int num_hsreadnolock = shared.conf.get_int("num_hsreadnolock", 10);
1471+ const bool always_filled = (num_hsinsert == 0 && num_hsdelete == 0);
1472+ if (!always_filled) {
1473+ num_hsreadnolock = 0;
1474+ }
1475+ hs_longrun_init_table(shared.conf, always_filled ? table_size : 0,
1476+ shared);
1477+ /* create worker threads */
1478+ static const struct thrtmpl_type {
1479+ const char *type; char op; int num; int hs; int lock;
1480+ } thrtmpl[] = {
1481+ { "hsinsert", 'I', num_hsinsert, 1, 1 },
1482+ { "hsdelete", 'D', num_hsdelete, 1, 1 },
1483+ { "hsupdate", 'U', num_hsupdate, 1, 1 },
1484+ { "hsread", 'R', num_hsread, 1, 1 },
1485+ { "hsreadnolock", 'N', num_hsreadnolock, 1, 0 },
1486+ { "myread", 'R', num_myread, 0, 1 },
1487+ { "mydelins", 'T', num_mydelins, 0, 1 },
1488+ };
1489+ typedef auto_ptrcontainer< std::vector<hs_longrun_thread_base *> > thrs_type;
1490+ thrs_type thrs;
1491+ for (size_t i = 0; i < sizeof(thrtmpl)/sizeof(thrtmpl[0]); ++i) {
1492+ const thrtmpl_type& e = thrtmpl[i];
1493+ for (int j = 0; j < e.num; ++j) {
1494+ int id = thrs.size();
1495+ const hs_longrun_thread_hs::arg_type arg(id, e.type, e.op, e.lock,
1496+ shared);
1497+ std::auto_ptr<hs_longrun_thread_base> thr;
1498+ if (e.hs) {
1499+ thr.reset(new hs_longrun_thread_hs(arg));
1500+ } else {
1501+ thr.reset(new hs_longrun_thread_my(arg));
1502+ }
1503+ thrs.push_back_ptr(thr);
1504+ }
1505+ }
1506+ shared.num_threads = thrs.size();
1507+ /* start threads */
1508+ fprintf(stderr, "START\n");
1509+ shared.running = 1;
1510+ for (size_t i = 0; i < thrs.size(); ++i) {
1511+ thrs[i]->start();
1512+ }
1513+ /* wait */
1514+ sleep(duration);
1515+ /* stop thread */
1516+ shared.running = 0;
1517+ for (size_t i = 0; i < thrs.size(); ++i) {
1518+ thrs[i]->join();
1519+ }
1520+ fprintf(stderr, "DONE\n");
1521+ /* summary */
1522+ typedef std::map<std::string, hs_longrun_stat> stat_map;
1523+ stat_map sm;
1524+ for (size_t i = 0; i < thrs.size(); ++i) {
1525+ hs_longrun_thread_base *const thr = thrs[i];
1526+ const std::string wt = thr->arg.worker_type;
1527+ hs_longrun_stat& v = sm[wt];
1528+ v.add(thr->stat);
1529+ }
1530+ hs_longrun_stat total;
1531+ for (stat_map::const_iterator i = sm.begin(); i != sm.end(); ++i) {
1532+ if (i->second.verify_error_count != 0) {
1533+ fprintf(stderr, "%s verify_error %llu\n", i->first.c_str(),
1534+ i->second.verify_error_count);
1535+ }
1536+ if (i->second.runtime_error_count) {
1537+ fprintf(stderr, "%s runtime_error %llu\n", i->first.c_str(),
1538+ i->second.runtime_error_count);
1539+ }
1540+ if (i->second.unknown_count) {
1541+ fprintf(stderr, "%s unknown %llu\n", i->first.c_str(),
1542+ i->second.unknown_count);
1543+ }
1544+ fprintf(stderr, "%s success %llu\n", i->first.c_str(),
1545+ i->second.success_count);
1546+ total.add(i->second);
1547+ }
1548+ if (total.verify_error_count != 0) {
1549+ fprintf(stderr, "TOTAL verify_error %llu\n", total.verify_error_count);
1550+ }
1551+ if (total.runtime_error_count != 0) {
1552+ fprintf(stderr, "TOTAL runtime_error %llu\n", total.runtime_error_count);
1553+ }
1554+ if (total.unknown_count != 0) {
1555+ fprintf(stderr, "TOTAL unknown %llu\n", total.unknown_count);
1556+ }
1557+ fprintf(stderr, "TOTAL success %llu\n", total.success_count);
1558+ mysql_library_end();
1559+ return 0;
1560+}
1561+
1562+};
1563+
1564+int
1565+main(int argc, char **argv)
1566+{
1567+ return dena::hs_longrun_main(argc, argv);
1568+}
1569+
1570
1571=== added file 'HandlerSocket-Plugin-for-MySQL/client/hspool_test.pl'
1572--- HandlerSocket-Plugin-for-MySQL/client/hspool_test.pl 1970-01-01 00:00:00 +0000
1573+++ HandlerSocket-Plugin-for-MySQL/client/hspool_test.pl 2012-05-17 04:17:38 +0000
1574@@ -0,0 +1,224 @@
1575+#!/usr/bin/perl
1576+
1577+use strict;
1578+use warnings;
1579+use DB::HandlerSocket::Pool;
1580+use DBI;
1581+
1582+my %conf = ();
1583+for my $i (@ARGV) {
1584+ my ($k, $v) = split(/=/, $i);
1585+ $conf{$k} = $v;
1586+}
1587+
1588+my $verbose = get_conf("verbose", 0);
1589+my $actions_str = get_conf("actions",
1590+ "create,insert,verify,verify2,verify3,verify4,clean");
1591+my $tablesize = get_conf("tablesize", 1000);
1592+my $db = get_conf("db", "hstestdb");
1593+my $table = get_conf("table", "testtbl");
1594+my $table_schema = get_conf("table_schema", undef);
1595+my $engine = get_conf("engine", "innodb");
1596+my $host = get_conf("host", "localhost");
1597+my $mysqlport = get_conf("mysqlport", 3306);
1598+my $hsport_rd = get_conf("hsport_rd", 9998);
1599+my $hsport_wr = get_conf("hsport_wr", 9999);
1600+my $loop = get_conf("loop", 10000);
1601+my $op = get_conf("op", "=");
1602+my $ssps = get_conf("ssps", 0);
1603+my $num_moreflds = get_conf("moreflds", 0);
1604+my $moreflds_prefix = get_conf("moreflds_prefix", "f");
1605+my $mysql_user = 'root';
1606+my $mysql_password = '';
1607+
1608+my $dsn = "DBI:mysql:database=;host=$host;port=$mysqlport"
1609+ . ";mysql_server_prepare=$ssps";
1610+my $dbh = DBI->connect($dsn, $mysql_user, $mysql_password,
1611+ { RaiseError => 1 });
1612+my $hsargs = { 'host' => $host, 'port' => $hsport_rd };
1613+my $hspool = new DB::HandlerSocket::Pool({
1614+ hostmap => {
1615+ "$db.$table" => {
1616+ host => $host,
1617+ port => $hsport_rd,
1618+ },
1619+ },
1620+ resolve => undef,
1621+ error => undef,
1622+});
1623+$table_schema = "(k int primary key, fc30 varchar(30), ft text)"
1624+ if (!defined($table_schema));
1625+
1626+my @actions = split(/,/, $actions_str);
1627+for my $action (@actions) {
1628+ print "ACTION: $action\n";
1629+ eval "hstest_$action()";
1630+ if ($@) {
1631+ die $@;
1632+ }
1633+ print "ACTION: $action DONE\n";
1634+}
1635+
1636+sub get_conf {
1637+ my ($key, $def) = @_;
1638+ my $val = $conf{$key};
1639+ if ($val) {
1640+ print "$key=$val\n";
1641+ } else {
1642+ $val = $def;
1643+ my $defstr = $def || "(undef)";
1644+ print "$key=$defstr(default)\n";
1645+ }
1646+ return $val;
1647+}
1648+
1649+sub hstest_create {
1650+ $dbh->do("drop database if exists $db");
1651+ $dbh->do("create database $db");
1652+ $dbh->do("use $db");
1653+ $dbh->do("create table $table $table_schema engine=$engine");
1654+}
1655+
1656+sub hstest_dump {
1657+ $dbh->do("use $db");
1658+ my $sth = $dbh->prepare("select * from $table");
1659+ $sth->execute();
1660+ my $arr = $sth->fetchall_arrayref();
1661+ for my $rec (@$arr) {
1662+ print "REC:";
1663+ for my $row (@$rec) {
1664+ print " $row";
1665+ }
1666+ print "\n";
1667+ }
1668+}
1669+
1670+sub hstest_insert {
1671+ $dbh->do("use $db");
1672+ my $sth = $dbh->prepare("insert into $table values (?, ?, ?)");
1673+ for (my $k = 0; $k < $tablesize; ++$k) {
1674+ my $fc30 = "fc30_$k";
1675+ my $ft = "ft_$k";
1676+ $sth->execute($k, $fc30, $ft);
1677+ }
1678+}
1679+
1680+sub hstest_verify {
1681+ $dbh->do("use $db");
1682+ my $sth = $dbh->prepare("select * from $table order by k");
1683+ $sth->execute();
1684+ my $arr = $sth->fetchall_arrayref();
1685+ my $hsres = $hspool->index_find($db, $table, "PRIMARY", "k,fc30,ft",
1686+ ">=", [ 0 ], $tablesize, 0);
1687+ for (my $i = 0; $i < $tablesize; ++$i) {
1688+ my $rec = $arr->[$i];
1689+ my $differ = 0;
1690+ print "REC:" if $verbose;
1691+ for (my $j = 0; $j < 3; ++$j) {
1692+ my $fld = $rec->[$j];
1693+ my $hsidx = $i * 3 + $j;
1694+ my $hsfld = $hsres->[$hsidx];
1695+ if ($hsfld ne $fld) {
1696+ $differ = 1;
1697+ }
1698+ if ($differ) {
1699+ print " $fld:$hsfld" if $verbose;
1700+ } else {
1701+ print " $hsfld" if $verbose;
1702+ }
1703+ }
1704+ print "\n" if $verbose;
1705+ if ($differ) {
1706+ die "verification failed";
1707+ }
1708+ }
1709+}
1710+
1711+sub hstest_verify2 {
1712+ $dbh->do("use $db");
1713+ my $sth = $dbh->prepare("select * from $table order by k");
1714+ $sth->execute();
1715+ my $arr = $sth->fetchall_arrayref();
1716+ my $hsresa = $hspool->index_find_multi($db, $table, "PRIMARY",
1717+ "k,fc30,ft", [ [ -1, ">=", [ 0 ], $tablesize, 0 ] ]);
1718+ my $hsres = $hsresa->[0];
1719+ for (my $i = 0; $i < $tablesize; ++$i) {
1720+ my $rec = $arr->[$i];
1721+ my $differ = 0;
1722+ print "REC:" if $verbose;
1723+ for (my $j = 0; $j < 3; ++$j) {
1724+ my $fld = $rec->[$j];
1725+ my $hsidx = $i * 3 + $j;
1726+ my $hsfld = $hsres->[$hsidx];
1727+ if ($hsfld ne $fld) {
1728+ $differ = 1;
1729+ }
1730+ if ($differ) {
1731+ print " $fld:$hsfld" if $verbose;
1732+ } else {
1733+ print " $hsfld" if $verbose;
1734+ }
1735+ }
1736+ print "\n" if $verbose;
1737+ if ($differ) {
1738+ die "verification failed";
1739+ }
1740+ }
1741+}
1742+
1743+sub hashref_to_str {
1744+ my $href = $_[0];
1745+ my $r = '';
1746+ for my $k (sort keys %$href) {
1747+ my $v = $href->{$k};
1748+ $r .= "($k=>$v)";
1749+ }
1750+ return $r;
1751+}
1752+
1753+sub hstest_verify3 {
1754+ $dbh->do("use $db");
1755+ my $sth = $dbh->prepare("select * from $table order by k");
1756+ $sth->execute();
1757+ my $hsres_t = $hspool->index_find($db, $table, "PRIMARY", "k,fc30,ft",
1758+ ">=", [ 0 ], $tablesize, 0);
1759+ my $hsres = DB::HandlerSocket::Pool::result_single_to_hasharr(
1760+ [ 'k', 'fc30', 'ft' ], $hsres_t);
1761+ for (my $i = 0; $i < $tablesize; ++$i) {
1762+ my $mystr = hashref_to_str($sth->fetchrow_hashref());
1763+ my $hsstr = hashref_to_str($hsres->[$i]);
1764+ if ($mystr ne $hsstr) {
1765+ print "DIFF my=[$mystr] hs=[$hsstr]\n" if $verbose;
1766+ die "verification failed";
1767+ } else {
1768+ print "OK $hsstr\n" if $verbose;
1769+ }
1770+ }
1771+}
1772+
1773+sub hstest_verify4 {
1774+ $dbh->do("use $db");
1775+ my $sth = $dbh->prepare("select * from $table order by k");
1776+ $sth->execute();
1777+ my $hsres_t = $hspool->index_find($db, $table, "PRIMARY", "k,fc30,ft",
1778+ ">=", [ 0 ], $tablesize, 0);
1779+ my $hsres = DB::HandlerSocket::Pool::result_single_to_hashhash(
1780+ [ 'k', 'fc30', 'ft' ], 'k', $hsres_t);
1781+ my $rechash = $sth->fetchall_hashref('k');
1782+ while (my ($k, $href) = each (%$rechash)) {
1783+ my $mystr = hashref_to_str($href);
1784+ my $hsstr = hashref_to_str($hsres->{$k});
1785+ if ($mystr ne $hsstr) {
1786+ print "DIFF my=[$mystr] hs=[$hsstr]\n" if $verbose;
1787+ die "verification failed";
1788+ } else {
1789+ print "OK $hsstr\n" if $verbose;
1790+ }
1791+ }
1792+}
1793+
1794+sub hstest_clean {
1795+ $hspool->clear_pool();
1796+ $dbh->do("drop database if exists $db");
1797+}
1798+
1799
1800=== added file 'HandlerSocket-Plugin-for-MySQL/client/hstest.cpp'
1801--- HandlerSocket-Plugin-for-MySQL/client/hstest.cpp 1970-01-01 00:00:00 +0000
1802+++ HandlerSocket-Plugin-for-MySQL/client/hstest.cpp 2012-05-17 04:17:38 +0000
1803@@ -0,0 +1,1532 @@
1804+
1805+// vim:sw=2:ai
1806+
1807+#include <signal.h>
1808+#include <sys/time.h>
1809+#include <stdio.h>
1810+#include <string.h>
1811+#include <vector>
1812+#include <stdlib.h>
1813+#include <memory>
1814+#include <errno.h>
1815+#include <mysql.h>
1816+#include <time.h>
1817+#include <sys/types.h>
1818+#include <sys/stat.h>
1819+#include <fcntl.h>
1820+
1821+#include "util.hpp"
1822+#include "auto_ptrcontainer.hpp"
1823+#include "socket.hpp"
1824+#include "thread.hpp"
1825+#include "hstcpcli.hpp"
1826+
1827+#if __GNUC__ >= 4
1828+long atomic_exchange_and_add(volatile long *valp, long c)
1829+{
1830+ return __sync_fetch_and_add(valp, c);
1831+}
1832+#else
1833+#include <bits/atomicity.h>
1834+using namespace __gnu_cxx;
1835+long atomic_exchange_and_add(volatile long *valp, long c)
1836+{
1837+ return __exchange_and_add((volatile _Atomic_word *)valp, c);
1838+}
1839+#endif
1840+
1841+namespace dena {
1842+
1843+struct auto_mysql : private noncopyable {
1844+ auto_mysql() : db(0) {
1845+ reset();
1846+ }
1847+ ~auto_mysql() {
1848+ if (db) {
1849+ mysql_close(db);
1850+ }
1851+ }
1852+ void reset() {
1853+ if (db) {
1854+ mysql_close(db);
1855+ }
1856+ if ((db = mysql_init(0)) == 0) {
1857+ fatal_abort("failed to initialize mysql client");
1858+ }
1859+ }
1860+ operator MYSQL *() const { return db; }
1861+ private:
1862+ MYSQL *db;
1863+};
1864+
1865+struct auto_mysql_res : private noncopyable {
1866+ auto_mysql_res(MYSQL *db) {
1867+ res = mysql_store_result(db);
1868+ }
1869+ ~auto_mysql_res() {
1870+ if (res) {
1871+ mysql_free_result(res);
1872+ }
1873+ }
1874+ operator MYSQL_RES *() const { return res; }
1875+ private:
1876+ MYSQL_RES *res;
1877+};
1878+
1879+struct auto_mysql_stmt : private noncopyable {
1880+ auto_mysql_stmt(MYSQL *db) {
1881+ stmt = mysql_stmt_init(db);
1882+ }
1883+ ~auto_mysql_stmt() {
1884+ if (stmt) {
1885+ mysql_stmt_close(stmt);
1886+ }
1887+ }
1888+ operator MYSQL_STMT *() const { return stmt; }
1889+ private:
1890+ MYSQL_STMT *stmt;
1891+};
1892+
1893+namespace {
1894+
1895+double
1896+gettimeofday_double()
1897+{
1898+ struct timeval tv = { };
1899+ if (gettimeofday(&tv, 0) != 0) {
1900+ fatal_abort("gettimeofday");
1901+ }
1902+ return static_cast<double>(tv.tv_usec) / 1000000 + tv.tv_sec;
1903+}
1904+
1905+// unused
1906+void
1907+wait_close(int fd)
1908+{
1909+ char buf[1024];
1910+ while (true) {
1911+ int r = read(fd, buf, sizeof(buf));
1912+ if (r <= 0) {
1913+ break;
1914+ }
1915+ }
1916+}
1917+
1918+// unused
1919+void
1920+gentle_close(int fd)
1921+{
1922+ int r = shutdown(fd, SHUT_WR);
1923+ if (r != 0) {
1924+ return;
1925+ }
1926+ wait_close(fd);
1927+}
1928+
1929+};
1930+
1931+struct hstest_shared {
1932+ config conf;
1933+ socket_args arg;
1934+ int verbose;
1935+ size_t loop;
1936+ size_t pipe;
1937+ char op;
1938+ long num_threads;
1939+ mutable volatile long count;
1940+ mutable volatile long conn_count;
1941+ long wait_conn;
1942+ volatile char *keygen;
1943+ long keygen_size;
1944+ mutable volatile int enable_timing;
1945+ int usleep;
1946+ int dump;
1947+ hstest_shared() : verbose(0), loop(0), pipe(0), op('G'), num_threads(0),
1948+ count(0), conn_count(0), wait_conn(0), keygen(0), keygen_size(0),
1949+ enable_timing(0), usleep(0), dump(0) { }
1950+ void increment_count(unsigned int c = 1) const volatile {
1951+ atomic_exchange_and_add(&count, c);
1952+ }
1953+ void increment_conn(unsigned int c) const volatile {
1954+ atomic_exchange_and_add(&conn_count, c);
1955+ while (wait_conn != 0 && conn_count < wait_conn) {
1956+ sleep(1);
1957+ }
1958+ // fprintf(stderr, "wait_conn=%ld done\n", wait_conn);
1959+ }
1960+};
1961+
1962+struct hstest_thread {
1963+ struct arg_type {
1964+ size_t id;
1965+ const hstest_shared& sh;
1966+ bool watch_flag;
1967+ arg_type(size_t i, const hstest_shared& s, bool w)
1968+ : id(i), sh(s), watch_flag(w) { }
1969+ };
1970+ hstest_thread(const arg_type& a) : arg(a), io_success_count(0),
1971+ op_success_count(0), response_min(99999), response_max(0),
1972+ response_sum(0), response_avg(0) { }
1973+ void operator ()();
1974+ void test_1();
1975+ void test_2_3(int test_num);
1976+ void test_4_5(int test_num);
1977+ void test_6(int test_num);
1978+ void test_7(int test_num);
1979+ void test_8(int test_num);
1980+ void test_9(int test_num);
1981+ void test_10(int test_num);
1982+ void test_11(int test_num);
1983+ void test_12(int test_num);
1984+ void test_21(int test_num);
1985+ void test_22(int test_num);
1986+ void test_watch();
1987+ void sleep_if();
1988+ void set_timing(double time_spent);
1989+ arg_type arg;
1990+ auto_file fd;
1991+ size_t io_success_count;
1992+ size_t op_success_count;
1993+ double response_min, response_max, response_sum, response_avg;
1994+};
1995+
1996+void
1997+hstest_thread::test_1()
1998+{
1999+ char buf[1024];
2000+ unsigned int seed = arg.id;
2001+ seed ^= arg.sh.conf.get_int("seed_xor", 0);
2002+ std::string err;
2003+ if (socket_connect(fd, arg.sh.arg, err) != 0) {
2004+ fprintf(stderr, "connect: %d %s\n", errno, strerror(errno));
2005+ return;
2006+ }
2007+ const char op = arg.sh.op;
2008+ const int tablesize = arg.sh.conf.get_int("tablesize", 0);
2009+ for (size_t i = 0; i < arg.sh.loop; ++i) {
2010+ for (size_t j = 0; j < arg.sh.pipe; ++j) {
2011+ int k = 0, v = 0, len = 0;
2012+ if (op == 'G') {
2013+ k = rand_r(&seed);
2014+ v = rand_r(&seed); /* unused */
2015+ if (tablesize != 0) {
2016+ k &= tablesize;
2017+ }
2018+ len = snprintf(buf, sizeof(buf), "%c\tk%d\n", op, k);
2019+ } else {
2020+ k = rand_r(&seed);
2021+ v = rand_r(&seed);
2022+ if (tablesize != 0) {
2023+ k &= tablesize;
2024+ }
2025+ len = snprintf(buf, sizeof(buf), "%c\tk%d\tv%d\n", op, k, v);
2026+ }
2027+ const int wlen = write(fd.get(), buf, len);
2028+ if (wlen != len) {
2029+ return;
2030+ }
2031+ }
2032+ size_t read_cnt = 0;
2033+ size_t read_pos = 0;
2034+ while (read_cnt < arg.sh.pipe) {
2035+ const int rlen = read(fd.get(), buf + read_pos, sizeof(buf) - read_pos);
2036+ if (rlen <= 0) {
2037+ return;
2038+ }
2039+ read_pos += rlen;
2040+ while (true) {
2041+ const char *const p = static_cast<const char *>(memchr(buf, '\n',
2042+ read_pos));
2043+ if (p == 0) {
2044+ break;
2045+ }
2046+ ++read_cnt;
2047+ ++io_success_count;
2048+ arg.sh.increment_count();
2049+ if (p != buf && buf[0] == '=') {
2050+ ++op_success_count;
2051+ }
2052+ const size_t rest_size = buf + read_pos - (p + 1);
2053+ if (rest_size != 0) {
2054+ memmove(buf, p + 1, rest_size);
2055+ }
2056+ read_pos = rest_size;
2057+ }
2058+ }
2059+ }
2060+}
2061+
2062+void
2063+hstest_thread::test_2_3(int test_num)
2064+{
2065+#if 0
2066+ char buf_k[128], buf_v[128];
2067+ unsigned int seed = arg.id;
2068+ op_base_t op = static_cast<op_base_t>(arg.sh.op);
2069+ micli_ptr hnd;
2070+ if (test_num == 2) {
2071+ hnd = micli_i::create_remote(arg.sh.conf);
2072+ } else if (test_num == 3) {
2073+ // hnd = micli_i::create_inproc(arg.sh.localdb);
2074+ }
2075+ if (hnd.get() == 0) {
2076+ return;
2077+ }
2078+ for (size_t i = 0; i < arg.sh.loop; ++i) {
2079+ for (size_t j = 0; j < arg.sh.pipe; ++j) {
2080+ int k = 0, v = 0, klen = 0, vlen = 0;
2081+ k = rand_r(&seed);
2082+ klen = snprintf(buf_k, sizeof(buf_k), "k%d", k);
2083+ v = rand_r(&seed); /* unused */
2084+ vlen = snprintf(buf_v, sizeof(buf_v), "v%d", v);
2085+ string_ref arr[2];
2086+ arr[0] = string_ref(buf_k, klen);
2087+ arr[1] = string_ref(buf_v, vlen);
2088+ pstrarr_ptr rec(arr, 2);
2089+ if (hnd->execute(op, 0, 0, rec.get_const())) {
2090+ ++io_success_count;
2091+ arg.sh.increment_count();
2092+ const dataset& res = hnd->get_result_ref();
2093+ if (res.size() == 1) {
2094+ ++op_success_count;
2095+ }
2096+ }
2097+ }
2098+ }
2099+#endif
2100+}
2101+
2102+void
2103+hstest_thread::test_4_5(int test_num)
2104+{
2105+#if 0
2106+ char buf_k[128], buf_v[8192];
2107+ memset(buf_v, ' ', sizeof(buf_v));
2108+ unsigned int seed = arg.id;
2109+ op_base_t op = static_cast<op_base_t>(arg.sh.op);
2110+ micli_ptr hnd;
2111+ if (test_num == 4) {
2112+ hnd = micli_i::create_remote(arg.sh.conf);
2113+ } else if (test_num == 5) {
2114+ hnd = micli_i::create_inproc(arg.sh.localdb);
2115+ }
2116+ if (hnd.get() == 0) {
2117+ return;
2118+ }
2119+ for (size_t i = 0; i < arg.sh.loop; ++i) {
2120+ for (size_t j = 0; j < arg.sh.pipe; ++j) {
2121+ int k = 0, klen = 0, vlen = 0;
2122+ k = i & 0x0000ffffUL;
2123+ if (k == 0) {
2124+ fprintf(stderr, "k=0\n");
2125+ }
2126+ klen = snprintf(buf_k, sizeof(buf_k), "k%d", k);
2127+ vlen = rand_r(&seed) % 8192;
2128+ string_ref arr[2];
2129+ arr[0] = string_ref(buf_k, klen);
2130+ arr[1] = string_ref(buf_v, vlen);
2131+ pstrarr_ptr rec(arr, 2);
2132+ if (hnd->execute(op, 0, 0, rec.get_const())) {
2133+ ++io_success_count;
2134+ const dataset& res = hnd->get_result_ref();
2135+ if (res.size() == 1) {
2136+ ++op_success_count;
2137+ }
2138+ }
2139+ }
2140+ }
2141+#endif
2142+}
2143+
2144+void
2145+hstest_thread::test_6(int test_num)
2146+{
2147+ int count = arg.sh.conf.get_int("count", 1);
2148+ auto_file fds[count];
2149+ for (int i = 0; i < count; ++i) {
2150+ const double t1 = gettimeofday_double();
2151+ std::string err;
2152+ if (socket_connect(fds[i], arg.sh.arg, err) != 0) {
2153+ fprintf(stderr, "id=%zu i=%d err=%s\n", arg.id, i, err.c_str());
2154+ }
2155+ const double t2 = gettimeofday_double();
2156+ if (t2 - t1 > 1) {
2157+ fprintf(stderr, "id=%zu i=%d time %f\n", arg.id, i, t2 - t1);
2158+ }
2159+ }
2160+}
2161+
2162+void
2163+hstest_thread::test_7(int num)
2164+{
2165+ /*
2166+ set foo 0 0 10
2167+ 0123456789
2168+ STORED
2169+ get foo
2170+ VALUE foo 0 10
2171+ 0123456789
2172+ END
2173+ get var
2174+ END
2175+ */
2176+ char buf[1024];
2177+ const int keep_connection = arg.sh.conf.get_int("keep_connection", 1);
2178+ unsigned int seed = arg.id;
2179+ seed ^= arg.sh.conf.get_int("seed_xor", 0);
2180+ const int tablesize = arg.sh.conf.get_int("tablesize", 0);
2181+ const char op = arg.sh.op;
2182+ for (size_t i = 0; i < arg.sh.loop; ++i) {
2183+ const double tm1 = gettimeofday_double();
2184+ std::string err;
2185+ if (fd.get() < 0 && socket_connect(fd, arg.sh.arg, err) != 0) {
2186+ fprintf(stderr, "connect: %d %s\n", errno, strerror(errno));
2187+ return;
2188+ }
2189+ for (size_t j = 0; j < arg.sh.pipe; ++j) {
2190+ int k = 0, v = 0, len = 0;
2191+ if (op == 'G') {
2192+ k = rand_r(&seed);
2193+ v = rand_r(&seed); /* unused */
2194+ if (tablesize != 0) {
2195+ k &= tablesize;
2196+ }
2197+ len = snprintf(buf, sizeof(buf), "get k%d\r\n", k);
2198+ } else {
2199+ k = rand_r(&seed);
2200+ v = rand_r(&seed);
2201+ if (tablesize != 0) {
2202+ k &= tablesize;
2203+ }
2204+ char vbuf[1024];
2205+ int vlen = snprintf(vbuf, sizeof(vbuf),
2206+ "v%d"
2207+ // "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2208+ // "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2209+ // "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2210+ // "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2211+ // "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2212+ , v);
2213+ len = snprintf(buf, sizeof(buf), "set k%d 0 0 %d\r\n%s\r\n",
2214+ k, vlen, vbuf);
2215+ }
2216+ const int wlen = write(fd.get(), buf, len);
2217+ if (wlen != len) {
2218+ return;
2219+ }
2220+ }
2221+ size_t read_cnt = 0;
2222+ size_t read_pos = 0;
2223+ bool read_response_done = false;
2224+ bool expect_value = false;
2225+ while (!read_response_done) {
2226+ const int rlen = read(fd.get(), buf + read_pos, sizeof(buf) - read_pos);
2227+ if (rlen <= 0) {
2228+ return;
2229+ }
2230+ read_pos += rlen;
2231+ while (true) {
2232+ const char *const p = static_cast<const char *>(memchr(buf, '\n',
2233+ read_pos));
2234+ if (p == 0) {
2235+ break;
2236+ }
2237+ ++read_cnt;
2238+ if (expect_value) {
2239+ expect_value = false;
2240+ } else if (p >= buf + 6 && memcmp(buf, "VALUE ", 6) == 0) {
2241+ expect_value = true;
2242+ ++op_success_count;
2243+ } else {
2244+ if (p == buf + 7 && memcmp(buf, "STORED\r", 7) == 0) {
2245+ ++op_success_count;
2246+ }
2247+ read_response_done = true;
2248+ }
2249+ const size_t rest_size = buf + read_pos - (p + 1);
2250+ if (rest_size != 0) {
2251+ memmove(buf, p + 1, rest_size);
2252+ }
2253+ read_pos = rest_size;
2254+ }
2255+ ++io_success_count;
2256+ }
2257+ arg.sh.increment_count();
2258+ if (!keep_connection) {
2259+ fd.close();
2260+ }
2261+ const double tm2 = gettimeofday_double();
2262+ set_timing(tm2 - tm1);
2263+ sleep_if();
2264+ }
2265+}
2266+
2267+struct rec {
2268+ std::string key;
2269+ std::string value;
2270+};
2271+
2272+void
2273+hstest_thread::test_8(int test_num)
2274+{
2275+#if 0
2276+ char buf_k[128], buf_v[128];
2277+ unsigned int seed = arg.id;
2278+ // op_base_t op = static_cast<op_base_t>(arg.sh.op);
2279+ using namespace boost::multi_index;
2280+ typedef member<rec, std::string, &rec::key> rec_get_key;
2281+ typedef ordered_unique<rec_get_key> oui;
2282+ typedef multi_index_container< rec, indexed_by<oui> > mic;
2283+ #if 0
2284+ typedef std::map<std::string, std::string> m_type;
2285+ m_type m;
2286+ #endif
2287+ mic m;
2288+ for (size_t i = 0; i < arg.sh.loop; ++i) {
2289+ for (size_t j = 0; j < arg.sh.pipe; ++j) {
2290+ int k = 0, v = 0, klen = 0, vlen = 0;
2291+ k = rand_r(&seed);
2292+ klen = snprintf(buf_k, sizeof(buf_k), "k%d", k);
2293+ v = rand_r(&seed); /* unused */
2294+ vlen = snprintf(buf_v, sizeof(buf_v), "v%d", v);
2295+ const std::string ks(buf_k, klen);
2296+ const std::string vs(buf_v, vlen);
2297+ rec r;
2298+ r.key = ks;
2299+ r.value = vs;
2300+ m.insert(r);
2301+ // m.insert(std::make_pair(ks, vs));
2302+ ++io_success_count;
2303+ ++op_success_count;
2304+ arg.sh.increment_count();
2305+ }
2306+ }
2307+#endif
2308+}
2309+
2310+struct mysqltest_thread_initobj : private noncopyable {
2311+ mysqltest_thread_initobj() {
2312+ mysql_thread_init();
2313+ }
2314+ ~mysqltest_thread_initobj() {
2315+ mysql_thread_end();
2316+ }
2317+};
2318+
2319+void
2320+hstest_thread::test_9(int test_num)
2321+{
2322+ /* create table hstest
2323+ * ( k varchar(255) not null, v varchar(255) not null, primary key(k))
2324+ * engine = innodb; */
2325+ auto_mysql db;
2326+ // mysqltest_thread_initobj initobj;
2327+ std::string err;
2328+ const char op = arg.sh.op;
2329+ const std::string suffix = arg.sh.conf.get_str("value_suffix", "upd");
2330+ unsigned long long err_cnt = 0;
2331+ unsigned long long query_cnt = 0;
2332+ #if 0
2333+ my_bool reconnect = 0;
2334+ if (mysql_options(db, MYSQL_OPT_RECONNECT, &reconnect) != 0) {
2335+ err = "mysql_options() failed";
2336+ ++err_cnt;
2337+ return;
2338+ }
2339+ #endif
2340+ unsigned int seed = time(0) + arg.id + 1;
2341+ seed ^= arg.sh.conf.get_int("seed_xor", 0);
2342+ drand48_data randbuf;
2343+ srand48_r(seed, &randbuf);
2344+ const std::string mysql_host = arg.sh.conf.get_str("host", "localhost");
2345+ const int mysql_port = arg.sh.conf.get_int("mysqlport", 3306);
2346+ const int num = arg.sh.loop;
2347+ const std::string mysql_user = arg.sh.conf.get_str("mysqluser", "root");
2348+ const std::string mysql_passwd = arg.sh.conf.get_str("mysqlpass", "");
2349+ const std::string mysql_dbname = arg.sh.conf.get_str("dbname", "hstest");
2350+ const int keep_connection = arg.sh.conf.get_int("keep_connection", 1);
2351+ const int verbose = arg.sh.conf.get_int("verbose", 1);
2352+ const int tablesize = arg.sh.conf.get_int("tablesize", 10000);
2353+ const int moreflds = arg.sh.conf.get_int("moreflds", 0);
2354+ const std::string moreflds_prefix = arg.sh.conf.get_str(
2355+ "moreflds_prefix", "column0123456789_");
2356+ const int use_handler = arg.sh.conf.get_int("handler", 0);
2357+ const int sched_flag = arg.sh.conf.get_int("sched", 0);
2358+ const int use_in = arg.sh.conf.get_int("in", 0);
2359+ const int ssps = use_in ? 0 : arg.sh.conf.get_int("ssps", 0);
2360+ std::string flds = "v";
2361+ for (int i = 0; i < moreflds; ++i) {
2362+ char buf[1024];
2363+ snprintf(buf, sizeof(buf), ",%s%d", moreflds_prefix.c_str(), i);
2364+ flds += std::string(buf);
2365+ }
2366+ int connected = 0;
2367+ std::auto_ptr<auto_mysql_stmt> stmt;
2368+ string_buffer wbuf;
2369+ for (int i = 0; i < num; ++i) {
2370+ const double tm1 = gettimeofday_double();
2371+ const int flags = 0;
2372+ if (connected == 0) {
2373+ if (!mysql_real_connect(db, mysql_host.c_str(),
2374+ mysql_user.c_str(), mysql_user.empty() ? 0 : mysql_passwd.c_str(),
2375+ mysql_dbname.c_str(), mysql_port, 0, flags)) {
2376+ err = "failed to connect: " + std::string(mysql_error(db));
2377+ if (verbose >= 1) {
2378+ fprintf(stderr, "e=[%s]\n", err.c_str());
2379+ }
2380+ ++err_cnt;
2381+ return;
2382+ }
2383+ arg.sh.increment_conn(1);
2384+ }
2385+ int r = 0;
2386+ if (connected == 0 && use_handler) {
2387+ const char *const q = "handler hstest_table1 open";
2388+ r = mysql_real_query(db, q, strlen(q));
2389+ if (r != 0) {
2390+ err = 1;
2391+ }
2392+ }
2393+ if (connected == 0 && ssps) {
2394+ stmt.reset(new auto_mysql_stmt(db));
2395+ const char *const q = "select v from hstest_table1 where k = ?";
2396+ r = mysql_stmt_prepare(*stmt, q, strlen(q));
2397+ if (r != 0) {
2398+ fprintf(stderr, "ssps err\n");
2399+ ++err_cnt;
2400+ return;
2401+ }
2402+ }
2403+ connected = 1;
2404+ std::string result_str;
2405+ unsigned int err = 0;
2406+ unsigned int num_flds = 0, num_affected_rows = 0;
2407+ int got_data = 0;
2408+ char buf_query[16384];
2409+ int buf_query_len = 0;
2410+ int k = 0, v = 0;
2411+ {
2412+ double kf = 0, vf = 0;
2413+ drand48_r(&randbuf, &kf);
2414+ drand48_r(&randbuf, &vf);
2415+ k = int(kf * tablesize);
2416+ v = int(vf * tablesize);
2417+ #if 0
2418+ k = rand_r(&seed);
2419+ v = rand_r(&seed);
2420+ if (tablesize != 0) {
2421+ k %= tablesize;
2422+ }
2423+ #endif
2424+ if (op == 'G') {
2425+ if (use_handler) {
2426+ buf_query_len = snprintf(buf_query, sizeof(buf_query),
2427+ "handler hstest_table1 read `primary` = ( '%d' )", k);
2428+ // TODO: moreflds
2429+ } else if (ssps) {
2430+ //
2431+ } else if (use_in) {
2432+ wbuf.clear();
2433+ char *p = wbuf.make_space(1024);
2434+ int len = snprintf(p, 1024, "select %s from hstest_table1 where k in ('%d'", flds.c_str(), k);
2435+ wbuf.space_wrote(len);
2436+ for (int j = 1; j < use_in; ++j) {
2437+ /* generate more key */
2438+ drand48_r(&randbuf, &kf);
2439+ k = int(kf * tablesize);
2440+ p = wbuf.make_space(1024);
2441+ int len = snprintf(p, 1024, ", '%d'", k);
2442+ wbuf.space_wrote(len);
2443+ }
2444+ wbuf.append_literal(")");
2445+ } else {
2446+ buf_query_len = snprintf(buf_query, sizeof(buf_query),
2447+ "select %s from hstest_table1 where k = '%d'", flds.c_str(), k);
2448+ }
2449+ } else if (op == 'U') {
2450+ buf_query_len = snprintf(buf_query, sizeof(buf_query),
2451+ "update hstest_table1 set v = '%d_%d%s' where k = '%d'",
2452+ v, k, suffix.c_str(), k);
2453+ } else if (op == 'R') {
2454+ buf_query_len = snprintf(buf_query, sizeof(buf_query),
2455+ "replace into hstest_table1 values ('%d', 'v%d')", k, v);
2456+ // TODO: moreflds
2457+ }
2458+ }
2459+ if (r == 0) {
2460+ if (ssps) {
2461+ MYSQL_BIND bind[1] = { };
2462+ bind[0].buffer_type = MYSQL_TYPE_LONG;
2463+ bind[0].buffer = (char *)&k;
2464+ bind[0].is_null = 0;
2465+ bind[0].length = 0;
2466+ if (mysql_stmt_bind_param(*stmt, bind)) {
2467+ fprintf(stderr, "err: %s\n", mysql_stmt_error(*stmt));
2468+ ++err_cnt;
2469+ return;
2470+ }
2471+ r = mysql_stmt_execute(*stmt);
2472+ // fprintf(stderr, "stmt exec\n");
2473+ } else if (use_in) {
2474+ r = mysql_real_query(db, wbuf.begin(), wbuf.size());
2475+ } else {
2476+ r = mysql_real_query(db, buf_query, buf_query_len);
2477+ // fprintf(stderr, "real query\n");
2478+ }
2479+ ++query_cnt;
2480+ }
2481+ if (r != 0) {
2482+ err = 1;
2483+ } else if (ssps) {
2484+ if (verbose >= 0) {
2485+ char resbuf[1024];
2486+ unsigned long res_len = 0;
2487+ MYSQL_BIND bind[1] = { };
2488+ bind[0].buffer_type = MYSQL_TYPE_STRING;
2489+ bind[0].buffer = resbuf;
2490+ bind[0].buffer_length = sizeof(resbuf);
2491+ bind[0].length = &res_len;
2492+ if (mysql_stmt_bind_result(*stmt, bind)) {
2493+ fprintf(stderr, "err: %s\n", mysql_stmt_error(*stmt));
2494+ ++err_cnt;
2495+ return;
2496+ }
2497+ if (mysql_stmt_fetch(*stmt)) {
2498+ fprintf(stderr, "err: %s\n", mysql_stmt_error(*stmt));
2499+ ++err_cnt;
2500+ return;
2501+ }
2502+ if (!result_str.empty()) {
2503+ result_str += " ";
2504+ }
2505+ result_str += std::string(resbuf, res_len);
2506+ // fprintf(stderr, "SSPS RES: %s\n", result_str.c_str());
2507+ got_data = 1;
2508+ } else {
2509+ got_data = 1;
2510+ }
2511+ } else {
2512+ auto_mysql_res res(db);
2513+ if (res != 0) {
2514+ if (verbose >= 0) {
2515+ num_flds = mysql_num_fields(res);
2516+ MYSQL_ROW row = 0;
2517+ while ((row = mysql_fetch_row(res)) != 0) {
2518+ got_data += 1;
2519+ unsigned long *const lengths = mysql_fetch_lengths(res);
2520+ if (verbose >= 2) {
2521+ for (unsigned int i = 0; i < num_flds; ++i) {
2522+ if (!result_str.empty()) {
2523+ result_str += " ";
2524+ }
2525+ result_str += std::string(row[i], lengths[i]);
2526+ }
2527+ }
2528+ }
2529+ } else {
2530+ MYSQL_ROW row = 0;
2531+ while ((row = mysql_fetch_row(res)) != 0) {
2532+ got_data += 1;
2533+ }
2534+ }
2535+ } else {
2536+ if (mysql_field_count(db) == 0) {
2537+ num_affected_rows = mysql_affected_rows(db);
2538+ } else {
2539+ err = 1;
2540+ }
2541+ }
2542+ }
2543+ if (verbose >= 2 || (verbose >= 1 && err != 0)) {
2544+ if (err) {
2545+ ++err_cnt;
2546+ const char *const errstr = mysql_error(db);
2547+ fprintf(stderr, "e=[%s] a=%u q=[%s]\n", errstr,
2548+ num_affected_rows, buf_query);
2549+ } else {
2550+ fprintf(stderr, "a=%u q=[%s] r=[%s]\n", num_affected_rows, buf_query,
2551+ result_str.c_str());
2552+ }
2553+ }
2554+ if (err == 0) {
2555+ ++io_success_count;
2556+ if (num_affected_rows > 0 || got_data > 0) {
2557+ op_success_count += got_data;
2558+ } else {
2559+ if (verbose >= 1) {
2560+ fprintf(stderr, "k=%d numaff=%u gotdata=%d\n",
2561+ k, num_affected_rows, got_data);
2562+ }
2563+ }
2564+ arg.sh.increment_count();
2565+ }
2566+ if (!keep_connection) {
2567+ if (stmt.get() != 0) {
2568+ stmt.reset();
2569+ }
2570+ db.reset();
2571+ connected = 0;
2572+ }
2573+ const double tm2 = gettimeofday_double();
2574+ set_timing(tm2 - tm1);
2575+ sleep_if();
2576+ if (sched_flag) {
2577+ sched_yield();
2578+ }
2579+ }
2580+ if (verbose >= 1) {
2581+ fprintf(stderr, "thread finished (error_count=%llu)\n", err_cnt);
2582+ }
2583+}
2584+
2585+void
2586+hstest_thread::test_10(int test_num)
2587+{
2588+ const int keep_connection = arg.sh.conf.get_int("keep_connection", 1);
2589+ unsigned int seed = time(0) + arg.id + 1;
2590+ seed ^= arg.sh.conf.get_int("seed_xor", 0);
2591+ drand48_data randbuf;
2592+ srand48_r(seed, &randbuf);
2593+ std::string err;
2594+ int keepconn_count = 0;
2595+ const char op = arg.sh.op;
2596+ const int verbose = arg.sh.conf.get_int("verbose", 1);
2597+ const std::string suffix = arg.sh.conf.get_str("value_suffix", "upd");
2598+ const int tablesize = arg.sh.conf.get_int("tablesize", 10000);
2599+ const int firstkey = arg.sh.conf.get_int("firstkey", 0);
2600+ const int sched_flag = arg.sh.conf.get_int("sched", 0);
2601+ const int moreflds = arg.sh.conf.get_int("moreflds", 0);
2602+ const std::string dbname = arg.sh.conf.get_str("dbname", "hstest");
2603+ const std::string table = arg.sh.conf.get_str("table", "hstest_table1");
2604+ const std::string index = arg.sh.conf.get_str("index", "PRIMARY");
2605+ const std::string field = arg.sh.conf.get_str("field", "v");
2606+ const int use_in = arg.sh.conf.get_int("in", 0);
2607+ const std::string moreflds_prefix = arg.sh.conf.get_str(
2608+ "moreflds_prefix", "column0123456789_");
2609+ const int dump = arg.sh.dump;
2610+ const int nodup = arg.sh.conf.get_int("nodup", 0);
2611+ std::string moreflds_str;
2612+ for (int i = 0; i < moreflds; ++i) {
2613+ char sbuf[1024];
2614+ snprintf(sbuf, sizeof(sbuf), ",%s%d", moreflds_prefix.c_str(), i);
2615+ moreflds_str += std::string(sbuf);
2616+ }
2617+ string_buffer wbuf;
2618+ char rbuf[16384];
2619+ for (size_t i = 0; i < arg.sh.loop; ++i) {
2620+ int len = 0, rlen = 0, wlen = 0;
2621+ #if 0
2622+ const double tm1 = gettimeofday_double();
2623+ #endif
2624+ if (fd.get() < 0) {
2625+ if (socket_connect(fd, arg.sh.arg, err) != 0) {
2626+ fprintf(stderr, "connect: %d %s\n", errno, strerror(errno));
2627+ return;
2628+ }
2629+ char *wp = wbuf.make_space(1024);
2630+ len = snprintf(wp, 1024,
2631+ "P\t1\t%s\t%s\tPRIMARY\t%s%s\n", dbname.c_str(), table.c_str(),
2632+ field.c_str(), moreflds_str.c_str());
2633+ /* pst_num, db, table, index, retflds */
2634+ wbuf.space_wrote(len);
2635+ wlen = write(fd.get(), wbuf.begin(), len);
2636+ if (len != wlen) {
2637+ fprintf(stderr, "write: %d %d\n", len, wlen);
2638+ return;
2639+ }
2640+ wbuf.clear();
2641+ rlen = read(fd.get(), rbuf, sizeof(rbuf));
2642+ if (rlen <= 0 || rbuf[rlen - 1] != '\n') {
2643+ fprintf(stderr, "read: rlen=%d errno=%d\n", rlen, errno);
2644+ return;
2645+ }
2646+ if (rbuf[0] != '0') {
2647+ fprintf(stderr, "failed to open table\n");
2648+ return;
2649+ }
2650+ arg.sh.increment_conn(1);
2651+ }
2652+ const double tm1 = gettimeofday_double();
2653+ for (size_t j = 0; j < arg.sh.pipe; ++j) {
2654+ int k = 0, v = 0;
2655+ {
2656+ while (true) {
2657+ double kf = 0, vf = 0;
2658+ drand48_r(&randbuf, &kf);
2659+ drand48_r(&randbuf, &vf);
2660+ k = int(kf * tablesize) + firstkey;
2661+ v = int(vf * tablesize) + firstkey;
2662+ if (k - firstkey < arg.sh.keygen_size) {
2663+ volatile char *const ptr = arg.sh.keygen + (k - firstkey);
2664+ // int oldv = __sync_fetch_and_or(ptr, 1);
2665+ int oldv = *ptr;
2666+ *ptr += 1;
2667+ if (nodup && oldv != 0) {
2668+ if (dump) {
2669+ fprintf(stderr, "retry\n");
2670+ }
2671+ continue;
2672+ }
2673+ } else {
2674+ if (nodup) {
2675+ if (dump) {
2676+ fprintf(stderr, "retry2\n");
2677+ }
2678+ continue;
2679+ }
2680+ }
2681+ size_t len = 0;
2682+ if (op == 'G') {
2683+ if (use_in) {
2684+ char *wp = wbuf.make_space(1024);
2685+ len = snprintf(wp, 1024, "1\t=\t1\t\t%d\t0\t@\t0\t%d\t%d",
2686+ use_in, use_in, k);
2687+ wbuf.space_wrote(len);
2688+ for (int j = 1; j < use_in; ++j) {
2689+ drand48_r(&randbuf, &kf);
2690+ k = int(kf * tablesize) + firstkey;
2691+ char *wp = wbuf.make_space(1024);
2692+ len = snprintf(wp, 1024, "\t%d", k);
2693+ wbuf.space_wrote(len);
2694+ }
2695+ wbuf.append_literal("\n");
2696+ } else {
2697+ char *wp = wbuf.make_space(1024);
2698+ len = snprintf(wp, 1024, "1\t=\t1\t%d\n", k);
2699+ wbuf.space_wrote(len);
2700+ }
2701+ } else if (op == 'U') {
2702+ char *wp = wbuf.make_space(1024);
2703+ len = snprintf(wp, 1024,
2704+ "1\t=\t1\t%d\t1\t0\tU\t%d_%d%s\n", k, v, k, suffix.c_str());
2705+ wbuf.space_wrote(len);
2706+ }
2707+ break;
2708+ }
2709+ }
2710+ }
2711+ wlen = write(fd.get(), wbuf.begin(), wbuf.size());
2712+ if (wlen != wbuf.size()) {
2713+ fprintf(stderr, "write: %d %d\n", (int)wbuf.size(), wlen);
2714+ return;
2715+ }
2716+ wbuf.clear();
2717+ size_t read_cnt = 0;
2718+ size_t read_pos = 0;
2719+ while (read_cnt < arg.sh.pipe) {
2720+ rlen = read(fd.get(), rbuf + read_pos, sizeof(rbuf) - read_pos);
2721+ if (rlen <= 0) {
2722+ fprintf(stderr, "read: %d\n", rlen);
2723+ return;
2724+ }
2725+ read_pos += rlen;
2726+ while (true) {
2727+ const char *const nl = static_cast<const char *>(memchr(rbuf, '\n',
2728+ read_pos));
2729+ if (nl == 0) {
2730+ break;
2731+ }
2732+ ++read_cnt;
2733+ ++io_success_count;
2734+ const char *t1 = static_cast<const char *>(memchr(rbuf, '\t',
2735+ nl - rbuf));
2736+ if (t1 == 0) {
2737+ fprintf(stderr, "error \n");
2738+ break;
2739+ }
2740+ ++t1;
2741+ const char *t2 = static_cast<const char *>(memchr(t1, '\t',
2742+ nl - t1));
2743+ if (t2 == 0) {
2744+ if (verbose > 1) {
2745+ fprintf(stderr, "key: notfound \n");
2746+ }
2747+ break;
2748+ }
2749+ ++t2;
2750+ if (t1 == rbuf + 2 && rbuf[0] == '0') {
2751+ if (op == 'G') {
2752+ ++op_success_count;
2753+ arg.sh.increment_count();
2754+ } else if (op == 'U') {
2755+ const char *t3 = t2;
2756+ while (t3 != nl && t3[0] >= 0x10) {
2757+ ++t3;
2758+ }
2759+ if (t3 != t2 + 1 || t2[0] != '1') {
2760+ const std::string mess(t2, t3);
2761+ fprintf(stderr, "mod: %s\n", mess.c_str());
2762+ } else {
2763+ ++op_success_count;
2764+ arg.sh.increment_count();
2765+ if (arg.sh.dump && arg.sh.pipe == 1) {
2766+ fwrite(wbuf, wbuflen, 1, stderr);
2767+ }
2768+ }
2769+ }
2770+ } else {
2771+ const char *t3 = t2;
2772+ while (t3 != nl && t3[0] >= 0x10) {
2773+ ++t3;
2774+ }
2775+ const std::string mess(t2, t3);
2776+ fprintf(stderr, "err: %s\n", mess.c_str());
2777+ }
2778+ const size_t rest_size = rbuf + read_pos - (nl + 1);
2779+ if (rest_size != 0) {
2780+ memmove(rbuf, nl + 1, rest_size);
2781+ }
2782+ read_pos = rest_size;
2783+ }
2784+ }
2785+ if (!keep_connection) {
2786+ fd.reset();
2787+ arg.sh.increment_conn(-1);
2788+ } else if (keep_connection > 1 && ++keepconn_count > keep_connection) {
2789+ keepconn_count = 0;
2790+ fd.reset();
2791+ arg.sh.increment_conn(-1);
2792+ }
2793+ const double tm2 = gettimeofday_double();
2794+ set_timing(tm2 - tm1);
2795+ sleep_if();
2796+ if (sched_flag) {
2797+ sched_yield();
2798+ }
2799+ }
2800+ if (dump) {
2801+ fprintf(stderr, "done\n");
2802+ }
2803+}
2804+
2805+void
2806+hstest_thread::sleep_if()
2807+{
2808+ if (arg.sh.usleep) {
2809+ struct timespec ts = {
2810+ arg.sh.usleep / 1000000,
2811+ (arg.sh.usleep % 1000000) * 1000
2812+ };
2813+ nanosleep(&ts, 0);
2814+ }
2815+}
2816+
2817+void
2818+hstest_thread::set_timing(double time_spent)
2819+{
2820+ response_min = std::min(response_min, time_spent);
2821+ response_max = std::max(response_max, time_spent);
2822+ response_sum += time_spent;
2823+ if (op_success_count != 0) {
2824+ response_avg = response_sum / op_success_count;
2825+ }
2826+}
2827+
2828+void
2829+hstest_thread::test_11(int test_num)
2830+{
2831+ const int keep_connection = arg.sh.conf.get_int("keep_connection", 1);
2832+ const int tablesize = arg.sh.conf.get_int("tablesize", 0);
2833+ unsigned int seed = arg.id;
2834+ seed ^= arg.sh.conf.get_int("seed_xor", 0);
2835+ std::string err;
2836+ hstcpcli_ptr cli;
2837+ for (size_t i = 0; i < arg.sh.loop; ++i) {
2838+ if (cli.get() == 0) {
2839+ cli = hstcpcli_i::create(arg.sh.arg);
2840+ cli->request_buf_open_index(0, "hstest", "hstest_table1", "", "v");
2841+ /* pst_num, db, table, index, retflds */
2842+ if (cli->request_send() != 0) {
2843+ fprintf(stderr, "reuqest_send: %s\n", cli->get_error().c_str());
2844+ return;
2845+ }
2846+ size_t num_flds = 0;
2847+ if (cli->response_recv(num_flds) != 0) {
2848+ fprintf(stderr, "reuqest_recv: %s\n", cli->get_error().c_str());
2849+ return;
2850+ }
2851+ cli->response_buf_remove();
2852+ }
2853+ for (size_t j = 0; j < arg.sh.pipe; ++j) {
2854+ char buf[256];
2855+ int k = 0, v = 0, len = 0;
2856+ {
2857+ k = rand_r(&seed);
2858+ v = rand_r(&seed); /* unused */
2859+ if (tablesize != 0) {
2860+ k &= tablesize;
2861+ }
2862+ len = snprintf(buf, sizeof(buf), "%d", k);
2863+ }
2864+ const string_ref key(buf, len);
2865+ const string_ref op("=", 1);
2866+ cli->request_buf_exec_generic(0, op, &key, 1, 1, 0, string_ref(), 0, 0);
2867+ }
2868+ if (cli->request_send() != 0) {
2869+ fprintf(stderr, "reuqest_send: %s\n", cli->get_error().c_str());
2870+ return;
2871+ }
2872+ size_t read_cnt = 0;
2873+ for (size_t j = 0; j < arg.sh.pipe; ++j) {
2874+ size_t num_flds = 0;
2875+ if (cli->response_recv(num_flds) != 0) {
2876+ fprintf(stderr, "reuqest_recv: %s\n", cli->get_error().c_str());
2877+ return;
2878+ }
2879+ {
2880+ ++read_cnt;
2881+ ++io_success_count;
2882+ arg.sh.increment_count();
2883+ {
2884+ ++op_success_count;
2885+ }
2886+ }
2887+ cli->response_buf_remove();
2888+ }
2889+ if (!keep_connection) {
2890+ cli.reset();
2891+ }
2892+ }
2893+}
2894+
2895+void
2896+hstest_thread::test_watch()
2897+{
2898+ const int timelimit = arg.sh.conf.get_int("timelimit", 0);
2899+ const int timelimit_offset = timelimit / 2;
2900+ int loop = 0;
2901+ double t1 = 0, t2 = 0;
2902+ size_t cnt_t1 = 0, cnt_t2 = 0;
2903+ size_t prev_cnt = 0;
2904+ double now_f = 0;
2905+ while (true) {
2906+ sleep(1);
2907+ const size_t cnt = arg.sh.count;
2908+ const size_t df = cnt - prev_cnt;
2909+ prev_cnt = cnt;
2910+ const double now_prev = now_f;
2911+ now_f = gettimeofday_double();
2912+ if (now_prev != 0) {
2913+ const double rps = static_cast<double>(df) / (now_f - now_prev);
2914+ fprintf(stderr, "now: %zu cntdiff: %zu tdiff: %f rps: %f\n",
2915+ static_cast<size_t>(now_f), df, now_f - now_prev, rps);
2916+ }
2917+ if (timelimit != 0) {
2918+ if (arg.sh.wait_conn == 0 || arg.sh.conn_count >= arg.sh.wait_conn) {
2919+ ++loop;
2920+ }
2921+ if (loop == timelimit_offset) {
2922+ t1 = gettimeofday_double();
2923+ cnt_t1 = cnt;
2924+ arg.sh.enable_timing = 1;
2925+ fprintf(stderr, "start timing\n");
2926+ } else if (loop == timelimit_offset + timelimit) {
2927+ t2 = gettimeofday_double();
2928+ cnt_t2 = cnt;
2929+ const size_t cnt_diff = cnt_t2 - cnt_t1;
2930+ const double tdiff = t2 - t1;
2931+ const double qps = cnt_diff / (tdiff != 0 ? tdiff : 1);
2932+ fprintf(stderr, "(%f: %zu, %f: %zu), %10.5f qps\n",
2933+ t1, cnt_t1, t2, cnt_t2, qps);
2934+ size_t keycnt = 0;
2935+ for (int i = 0; i < arg.sh.keygen_size; ++i) {
2936+ if (arg.sh.keygen[i]) {
2937+ ++keycnt;
2938+ }
2939+ }
2940+ fprintf(stderr, "keygen=%zu\n", keycnt);
2941+ break;
2942+ }
2943+ }
2944+ }
2945+#if 0
2946+ int loop = 0;
2947+ double t1 = 0, t2 = 0;
2948+ size_t cnt_t1 = 0, cnt_t2 = 0;
2949+ size_t prev_cnt = 0;
2950+ while (true) {
2951+ sleep(1);
2952+ const size_t cnt = arg.sh.count;
2953+ const size_t df = cnt - prev_cnt;
2954+ prev_cnt = cnt;
2955+ const size_t now = time(0);
2956+ fprintf(stderr, "%zu %zu\n", now, df);
2957+ if (timelimit != 0) {
2958+ ++loop;
2959+ if (loop == timelimit_offset) {
2960+ t1 = gettimeofday_double();
2961+ cnt_t1 = cnt;
2962+ } else if (loop == timelimit_offset + timelimit) {
2963+ t2 = gettimeofday_double();
2964+ cnt_t2 = cnt;
2965+ const size_t cnt_diff = cnt_t2 - cnt_t1;
2966+ const double tdiff = t2 - t1;
2967+ const double qps = cnt_diff / (tdiff != 0 ? tdiff : 1);
2968+ fprintf(stderr, "(%f: %zu, %f: %zu), %10.5f qps\n",
2969+ t1, cnt_t1, t2, cnt_t2, qps);
2970+ size_t keycnt = 0;
2971+ for (int i = 0; i < arg.sh.keygen_size; ++i) {
2972+ if (arg.sh.keygen[i]) {
2973+ ++keycnt;
2974+ }
2975+ }
2976+ fprintf(stderr, "keygen=%zu\n", keycnt);
2977+ _exit(0);
2978+ }
2979+ }
2980+ }
2981+#endif
2982+}
2983+
2984+void
2985+hstest_thread::test_12(int test_num)
2986+{
2987+ /* NOTE: num_threads should be 1 */
2988+ /* create table hstest
2989+ * ( k varchar(255) not null, v varchar(255) not null, primary key(k))
2990+ * engine = innodb; */
2991+ mysqltest_thread_initobj initobj;
2992+ auto_mysql db;
2993+ std::string err;
2994+ unsigned long long err_cnt = 0;
2995+ unsigned long long query_cnt = 0;
2996+ #if 0
2997+ my_bool reconnect = 0;
2998+ if (mysql_options(db, MYSQL_OPT_RECONNECT, &reconnect) != 0) {
2999+ err = "mysql_options() failed";
3000+ ++err_cnt;
3001+ return;
3002+ }
3003+ #endif
3004+ const std::string mysql_host = arg.sh.conf.get_str("host", "localhost");
3005+ const int mysql_port = arg.sh.conf.get_int("mysqlport", 3306);
3006+ const unsigned int num = arg.sh.loop;
3007+ const size_t pipe = arg.sh.pipe;
3008+ const std::string mysql_user = arg.sh.conf.get_str("mysqluser", "root");
3009+ const std::string mysql_passwd = arg.sh.conf.get_str("mysqlpass", "");
3010+ const std::string mysql_dbname = arg.sh.conf.get_str("db", "hstest");
3011+ const int keep_connection = arg.sh.conf.get_int("keep_connection", 1);
3012+ const int verbose = arg.sh.conf.get_int("verbose", 1);
3013+ const int use_handler = arg.sh.conf.get_int("handler", 0);
3014+ int connected = 0;
3015+ unsigned int k = 0;
3016+ string_buffer buf;
3017+ for (unsigned int i = 0; i < num; ++i) {
3018+ const int flags = 0;
3019+ if (connected == 0 && !mysql_real_connect(db, mysql_host.c_str(),
3020+ mysql_user.c_str(), mysql_user.empty() ? 0 : mysql_passwd.c_str(),
3021+ mysql_dbname.c_str(), mysql_port, 0, flags)) {
3022+ err = "failed to connect: " + std::string(mysql_error(db));
3023+ if (verbose >= 1) {
3024+ fprintf(stderr, "e=[%s]\n", err.c_str());
3025+ }
3026+ ++err_cnt;
3027+ return;
3028+ }
3029+ int r = 0;
3030+ if (connected == 0 && use_handler) {
3031+ const char *const q = "handler hstest open";
3032+ r = mysql_real_query(db, q, strlen(q));
3033+ if (r != 0) {
3034+ err = 1;
3035+ }
3036+ }
3037+ connected = 1;
3038+ std::string result_str;
3039+ unsigned int err = 0;
3040+ unsigned int num_flds = 0, num_affected_rows = 0;
3041+ int got_data = 0;
3042+ buf.clear();
3043+ buf.append_literal("insert into hstest values ");
3044+ for (size_t j = 0; j < pipe; ++j) {
3045+ const unsigned int v = ~k;
3046+ if (j != 0) {
3047+ buf.append_literal(",");
3048+ }
3049+ char *wp = buf.make_space(64);
3050+ int buf_query_len = snprintf(wp, 64, "('k%u', 'v%u')", k, v);
3051+ buf.space_wrote(buf_query_len);
3052+ ++k;
3053+ }
3054+ if (r == 0) {
3055+ r = mysql_real_query(db, buf.begin(), buf.size());
3056+ ++query_cnt;
3057+ }
3058+ if (r != 0) {
3059+ err = 1;
3060+ } else {
3061+ auto_mysql_res res(db);
3062+ if (res != 0) {
3063+ if (verbose >= 0) {
3064+ num_flds = mysql_num_fields(res);
3065+ MYSQL_ROW row = 0;
3066+ while ((row = mysql_fetch_row(res)) != 0) {
3067+ got_data = 1;
3068+ unsigned long *const lengths = mysql_fetch_lengths(res);
3069+ if (verbose >= 2) {
3070+ for (unsigned int i = 0; i < num_flds; ++i) {
3071+ if (!result_str.empty()) {
3072+ result_str += " ";
3073+ }
3074+ result_str += std::string(row[i], lengths[i]);
3075+ }
3076+ }
3077+ }
3078+ }
3079+ } else {
3080+ if (mysql_field_count(db) == 0) {
3081+ num_affected_rows = mysql_affected_rows(db);
3082+ } else {
3083+ err = 1;
3084+ }
3085+ }
3086+ }
3087+ if (verbose >= 2 || (verbose >= 1 && err != 0)) {
3088+ if (err) {
3089+ ++err_cnt;
3090+ const char *const errstr = mysql_error(db);
3091+ fprintf(stderr, "e=[%s] a=%u q=[%s]\n", errstr,
3092+ num_affected_rows, std::string(buf.begin(), buf.size()).c_str());
3093+ } else {
3094+ fprintf(stderr, "a=%u q=[%s] r=[%s]\n", num_affected_rows,
3095+ std::string(buf.begin(), buf.size()).c_str(),
3096+ result_str.c_str());
3097+ }
3098+ }
3099+ if (err == 0) {
3100+ ++io_success_count;
3101+ if (num_affected_rows > 0 || got_data > 0) {
3102+ ++op_success_count;
3103+ }
3104+ arg.sh.increment_count(pipe);
3105+ }
3106+ if (!keep_connection) {
3107+ db.reset();
3108+ connected = 0;
3109+ }
3110+ }
3111+ if (verbose >= 1) {
3112+ fprintf(stderr, "thread finished (error_count=%llu)\n", err_cnt);
3113+ }
3114+}
3115+
3116+void
3117+hstest_thread::test_21(int num)
3118+{
3119+ /* fsync test */
3120+ unsigned int id = arg.id;
3121+ std::string err;
3122+ #if 0
3123+ if (socket_connect(fd, arg.sh.arg, err) != 0) {
3124+ fprintf(stderr, "connect: %d %s\n", errno, strerror(errno));
3125+ return;
3126+ }
3127+ #endif
3128+ auto_file logfd;
3129+ char fname[1024];
3130+ snprintf(fname, sizeof(fname), "synctest_%u", id);
3131+ int open_flags = O_WRONLY | O_CREAT | O_TRUNC | O_APPEND;
3132+ logfd.reset(open(fname, open_flags, 0644));
3133+ if (logfd.get() < 0) {
3134+ fprintf(stderr, "open: %s: %d %s\n", fname, errno, strerror(errno));
3135+ return;
3136+ }
3137+ char buf[1024];
3138+ unsigned long long count = 0;
3139+ while (true) {
3140+ snprintf(buf, sizeof(buf), "%u %llu\n", id, count);
3141+ const size_t len = strlen(buf);
3142+ if (write(logfd.get(), buf, len) != (ssize_t)len) {
3143+ fprintf(stderr, "write: %s: %d %s\n", fname, errno, strerror(errno));
3144+ return;
3145+ }
3146+ #if 0
3147+ if (write(fd.get(), buf, len) != (ssize_t)len) {
3148+ fprintf(stderr, "write(sock): %d %s\n", errno, strerror(errno));
3149+ return;
3150+ }
3151+ #endif
3152+ if (fdatasync(logfd.get()) != 0) {
3153+ fprintf(stderr, "fsync: %s: %d %s\n", fname, errno, strerror(errno));
3154+ return;
3155+ }
3156+ ++count;
3157+ ++op_success_count;
3158+ arg.sh.increment_count();
3159+ }
3160+}
3161+
3162+void
3163+hstest_thread::test_22(int num)
3164+{
3165+ /* dd if=/dev/zero of=dummy.dat bs=1024M count=100 */
3166+ unsigned int id = arg.id;
3167+ std::string err;
3168+ auto_file filefd;
3169+ char fname[1024];
3170+ snprintf(fname, sizeof(fname), "dummy.dat");
3171+ int open_flags = O_RDONLY | O_DIRECT;
3172+ filefd.reset(open(fname, open_flags, 0644));
3173+ if (filefd.get() < 0) {
3174+ fprintf(stderr, "open: %s: %d %s\n", fname, errno, strerror(errno));
3175+ return;
3176+ }
3177+ char buf_x[4096 * 2];
3178+ char *const buf = (char *)(size_t(buf_x + 4096) / 4096 * 4096);
3179+ unsigned long long count = 0;
3180+ drand48_data randbuf;
3181+ unsigned long long seed = time(0);
3182+ seed *= 10;
3183+ seed += id;
3184+ srand48_r(seed, &randbuf);
3185+ for (unsigned int i = 0; i < arg.sh.loop; ++i) {
3186+ double kf = 0;
3187+ drand48_r(&randbuf, &kf);
3188+ kf *= (209715200 / 1);
3189+ // fprintf(stderr, "v=%f\n", kf);
3190+ off_t v = static_cast<off_t>(kf);
3191+ v %= (209715200 / 1);
3192+ v *= (512 * 1);
3193+ const double tm1 = gettimeofday_double();
3194+ const ssize_t r = pread(filefd.get(), buf, (512 * 1), v);
3195+ const double tm2 = gettimeofday_double();
3196+ if (r < 0) {
3197+ fprintf(stderr, "pread: %s: %d %s\n", fname, errno, strerror(errno));
3198+ return;
3199+ }
3200+ ++count;
3201+ ++op_success_count;
3202+ arg.sh.increment_count();
3203+ set_timing(tm2 - tm1);
3204+ }
3205+}
3206+
3207+void
3208+hstest_thread::operator ()()
3209+{
3210+ if (arg.watch_flag) {
3211+ return test_watch();
3212+ }
3213+ int test_num = arg.sh.conf.get_int("test", 1);
3214+ if (test_num == 1) {
3215+ test_1();
3216+ } else if (test_num == 2 || test_num == 3) {
3217+ test_2_3(test_num);
3218+ } else if (test_num == 4 || test_num == 5) {
3219+ test_4_5(test_num);
3220+ } else if (test_num == 6) {
3221+ test_6(test_num);
3222+ } else if (test_num == 7) {
3223+ test_7(test_num);
3224+ } else if (test_num == 8) {
3225+ test_8(test_num);
3226+ } else if (test_num == 9) {
3227+ test_9(test_num);
3228+ } else if (test_num == 10) {
3229+ test_10(test_num);
3230+ } else if (test_num == 11) {
3231+ test_11(test_num);
3232+ } else if (test_num == 12) {
3233+ test_12(test_num);
3234+ } else if (test_num == 21) {
3235+ test_21(test_num);
3236+ } else if (test_num == 22) {
3237+ test_22(test_num);
3238+ }
3239+ const int halt = arg.sh.conf.get_int("halt", 0);
3240+ if (halt) {
3241+ fprintf(stderr, "thread halted\n");
3242+ while (true) {
3243+ sleep(100000);
3244+ }
3245+ }
3246+ fprintf(stderr, "thread finished\n");
3247+}
3248+
3249+int
3250+hstest_main(int argc, char **argv)
3251+{
3252+ ignore_sigpipe();
3253+ hstest_shared shared;
3254+ parse_args(argc, argv, shared.conf);
3255+ shared.conf["port"] = shared.conf["hsport"];
3256+ shared.arg.set(shared.conf);
3257+ shared.loop = shared.conf.get_int("num", 1000);
3258+ shared.pipe = shared.conf.get_int("pipe", 1);
3259+ shared.verbose = shared.conf.get_int("verbose", 1);
3260+ const int tablesize = shared.conf.get_int("tablesize", 0);
3261+ std::vector<char> keygen(tablesize);
3262+ shared.keygen = &keygen[0];
3263+ shared.keygen_size = tablesize;
3264+ shared.usleep = shared.conf.get_int("usleep", 0);
3265+ shared.dump = shared.conf.get_int("dump", 0);
3266+ shared.num_threads = shared.conf.get_int("num_threads", 10);
3267+ shared.wait_conn = shared.conf.get_int("wait_conn", 0);
3268+ const std::string op = shared.conf.get_str("op", "G");
3269+ if (op.size() > 0) {
3270+ shared.op = op[0];
3271+ }
3272+ #if 0
3273+ const int localdb_flag = shared.conf.get_int("local", 0);
3274+ if (localdb_flag) {
3275+ shared.localdb = database_i::create(shared.conf);
3276+ }
3277+ #endif
3278+ const int num_thrs = shared.num_threads;
3279+ typedef thread<hstest_thread> thread_type;
3280+ typedef std::auto_ptr<thread_type> thread_ptr;
3281+ typedef auto_ptrcontainer< std::vector<thread_type *> > thrs_type;
3282+ thrs_type thrs;
3283+ for (int i = 0; i < num_thrs; ++i) {
3284+ const hstest_thread::arg_type arg(i, shared, false);
3285+ thread_ptr thr(new thread<hstest_thread>(arg));
3286+ thrs.push_back_ptr(thr);
3287+ }
3288+ for (size_t i = 0; i < thrs.size(); ++i) {
3289+ thrs[i]->start();
3290+ }
3291+ thread_ptr watch_thread;
3292+ const int timelimit = shared.conf.get_int("timelimit", 0);
3293+ {
3294+ const hstest_thread::arg_type arg(0, shared, true);
3295+ watch_thread = thread_ptr(new thread<hstest_thread>(arg));
3296+ watch_thread->start();
3297+ }
3298+ size_t iocnt = 0, opcnt = 0;
3299+ double respmin = 999999, respmax = 0;
3300+ double respsum = 0;
3301+ if (timelimit != 0) {
3302+ watch_thread->join();
3303+ }
3304+ for (size_t i = 0; i < thrs.size(); ++i) {
3305+ if (timelimit == 0) {
3306+ thrs[i]->join();
3307+ }
3308+ iocnt += (*thrs[i])->io_success_count;
3309+ opcnt += (*thrs[i])->op_success_count;
3310+ respmin = std::min(respmin, (*thrs[i])->response_min);
3311+ respmax = std::max(respmax, (*thrs[i])->response_max);
3312+ respsum += (*thrs[i])->response_sum;
3313+ }
3314+ fprintf(stderr, "io_success_count=%zu op_success_count=%zu\n", iocnt, opcnt);
3315+ fprintf(stderr, "respmin=%f respmax=%f respsum=%f respavg=%f\n",
3316+ respmin, respmax, respsum, respsum / opcnt);
3317+ size_t keycnt = 0;
3318+ for (size_t i = 0; i < keygen.size(); ++i) {
3319+ if (keygen[i]) {
3320+ ++keycnt;
3321+ }
3322+ }
3323+ fprintf(stderr, "keycnt=%zu\n", keycnt);
3324+ _exit(0);
3325+ return 0;
3326+}
3327+
3328+};
3329+
3330+int
3331+main(int argc, char **argv)
3332+{
3333+ return dena::hstest_main(argc, argv);
3334+}
3335+
3336
3337=== added file 'HandlerSocket-Plugin-for-MySQL/client/hstest.pl'
3338--- HandlerSocket-Plugin-for-MySQL/client/hstest.pl 1970-01-01 00:00:00 +0000
3339+++ HandlerSocket-Plugin-for-MySQL/client/hstest.pl 2012-05-17 04:17:38 +0000
3340@@ -0,0 +1,228 @@
3341+#!/usr/bin/perl
3342+
3343+# vim:sw=8:ai:ts=8
3344+
3345+use strict;
3346+use warnings;
3347+
3348+use DBI;
3349+use Net::HandlerSocket;
3350+
3351+my %conf = ();
3352+for my $i (@ARGV) {
3353+ my ($k, $v) = split(/=/, $i);
3354+ $conf{$k} = $v;
3355+}
3356+
3357+my $verbose = get_conf("verbose", 0);
3358+my $actions_str = get_conf("actions", "hsread");
3359+my $tablesize = get_conf("tablesize", 10000);
3360+my $db = get_conf("db", "hstest");
3361+my $table = get_conf("table", "hstest_table1");
3362+my $engine = get_conf("engine", "innodb");
3363+my $host = get_conf("host", "localhost");
3364+my $mysqlport = get_conf("mysqlport", 3306);
3365+my $mysqluser = get_conf("mysqluser", "root");
3366+my $mysqlpass = get_conf("mysqlpass", "");
3367+my $hsport = get_conf("hsport", 9999);
3368+my $loop = get_conf("loop", 10000);
3369+my $op = get_conf("op", "=");
3370+my $ssps = get_conf("ssps", 0);
3371+my $num_moreflds = get_conf("moreflds", 0);
3372+my $moreflds_prefix = get_conf("moreflds_prefix", "column0123456789_");
3373+my $keytype = get_conf("keytype", "varchar(32)");
3374+my $file = get_conf("file", undef);
3375+
3376+my $dsn = "DBI:mysql:database=;host=$host;port=$mysqlport"
3377+ . ";mysql_server_prepare=$ssps";
3378+my $dbh = DBI->connect($dsn, $mysqluser, $mysqlpass, { RaiseError => 1 });
3379+my $hsargs = { 'host' => $host, 'port' => $hsport };
3380+my $cli = new Net::HandlerSocket($hsargs);
3381+
3382+my @actions = split(/,/, $actions_str);
3383+for my $action (@actions) {
3384+ if ($action eq "table") {
3385+ print("TABLE $db.$table\n");
3386+ $dbh->do("drop database if exists $db");
3387+ $dbh->do("create database $db");
3388+ $dbh->do("use $db");
3389+ my $moreflds = get_createtbl_moreflds_str();
3390+ $dbh->do(
3391+ "create table $table (" .
3392+ "k $keytype primary key" .
3393+ ",v varchar(32) not null" .
3394+ $moreflds .
3395+ ") character set utf8 collate utf8_bin " .
3396+ "engine = $engine");
3397+ } elsif ($action eq "insert") {
3398+ print("INSERT $db.$table tablesize=$tablesize\n");
3399+ $dbh->do("use $db");
3400+ my $moreflds = get_insert_moreflds_str();
3401+ for (my $i = 0; $i < $tablesize; $i += 100) {
3402+ my $qstr = "insert into $db.$table values";
3403+ for (my $j = 0; $j < 100; ++$j) {
3404+ if ($j != 0) {
3405+ $qstr .= ",";
3406+ }
3407+ my $k = "" . ($i + $j);
3408+ my $v = "v" . int(rand(1000)) . ($i + $j);
3409+ $qstr .= "('$k', '$v'";
3410+ for (my $j = 0; $j < $num_moreflds; ++$j) {
3411+ $qstr .= ",'$j'";
3412+ }
3413+ $qstr .= ")";
3414+ }
3415+ $dbh->do($qstr);
3416+ print "$i/$tablesize\n" if $i % 1000 == 0;
3417+ }
3418+ } elsif ($action eq "read") {
3419+ print("READ $db.$table op=$op loop=$loop\n");
3420+ $dbh->do("use $db");
3421+ my $moreflds = get_select_moreflds_str();
3422+ my $sth = $dbh->prepare(
3423+ "select k,v$moreflds from $db.$table where k = ?");
3424+ for (my $i = 0; $i < $loop; ++$i) {
3425+ my $k = "" . int(rand($tablesize));
3426+ # print "k=$k\n";
3427+ $sth->execute($k);
3428+ if ($verbose >= 10) {
3429+ print "RET:";
3430+ while (my $ref = $sth->fetchrow_arrayref()) {
3431+ my $rk = $ref->[0];
3432+ my $rv = $ref->[1];
3433+ print " $rk $rv";
3434+ }
3435+ print "\n";
3436+ }
3437+ print "$i/$loop\n" if $i % 1000 == 0;
3438+ }
3439+ } elsif ($action eq "hsinsert") {
3440+ print("HSINSERT $db.$table tablesize=$tablesize\n");
3441+ $cli->open_index(1, $db, $table, '', 'k,v');
3442+ for (my $i = 0; $i < $tablesize; ++$i) {
3443+ my $k = "" . $i;
3444+ my $v = "v" . int(rand(1000)) . $i;
3445+ my $r = $cli->execute_insert(1, [ $k, $v ]);
3446+ if ($r->[0] != 0) {
3447+ die;
3448+ }
3449+ print "$i/$tablesize\n" if $i % 1000 == 0;
3450+ }
3451+ } elsif ($action eq "hsread") {
3452+ print("HSREAD $db.$table op=$op loop=$loop\n");
3453+ my $moreflds = get_select_moreflds_str();
3454+ $cli->open_index(1, $db, $table, '', "k,v$moreflds");
3455+ for (my $i = 0; $i < $loop; ++$i) {
3456+ my $k = "" . int(rand($tablesize));
3457+ # print "k=$k\n";
3458+ my $r = $cli->execute_find(1, $op, [ $k ], 1, 0);
3459+ if ($verbose >= 10) {
3460+ my $len = scalar(@{$r});
3461+ print "LEN=$len";
3462+ for my $e (@{$r}) {
3463+ print " [$e]";
3464+ }
3465+ print "\n";
3466+ }
3467+ print "$i/$loop\n" if $i % 1000 == 0;
3468+ }
3469+ } elsif ($action eq "hsupdate") {
3470+ my $vbase = "v" . int(rand(1000));
3471+ print("HSUPDATE $db.$table op=$op loop=$loop vbase=$vbase\n");
3472+ $cli->open_index(1, $db, $table, '', 'v');
3473+ for (my $i = 0; $i < $loop; ++$i) {
3474+ my $k = "" . int(rand($tablesize));
3475+ my $v = $vbase . $i;
3476+ print "k=$k v=$v\n";
3477+ my $r = $cli->execute_update(1, $op, [ $k ], 1, 0,
3478+ [ $v ]);
3479+ if ($verbose >= 10) {
3480+ print "UP k=$k v=$v\n";
3481+ }
3482+ print "$i/$loop\n" if $i % 1000 == 0;
3483+ }
3484+ } elsif ($action eq "hsdelete") {
3485+ print("HSDELETE $db.$table op=$op loop=$loop\n");
3486+ $cli->open_index(1, $db, $table, '', '');
3487+ for (my $i = 0; $i < $loop; ++$i) {
3488+ my $k = "" . int(rand($tablesize));
3489+ print "k=$k\n";
3490+ my $r = $cli->execute_delete(1, $op, [ $k ], 1, 0);
3491+ if ($verbose >= 10) {
3492+ print "DEL k=$k\n";
3493+ }
3494+ print "$i/$loop\n" if $i % 1000 == 0;
3495+ }
3496+ } elsif ($action eq "verify") {
3497+ verify_do();
3498+ }
3499+}
3500+
3501+sub verify_do {
3502+ my ($fail_cnt, $ok_cnt) = (0, 0);
3503+ my $sth = $dbh->prepare("select v from $db.$table where k = ?");
3504+ use FileHandle;
3505+ my $fh = new FileHandle($file, "r");
3506+ while (my $line = <$fh>) {
3507+ chomp($line);
3508+ my @vec = split(/\t/, $line);
3509+ my $k = $vec[3];
3510+ my $v = $vec[7];
3511+ next if (!defined($k) || !defined($v));
3512+ # print "$k $v\n";
3513+ $sth->execute($k);
3514+ my $aref = $sth->fetchrow_arrayref();
3515+ if (!defined($aref)) {
3516+ print "FAILED: $k notfound\n";
3517+ ++$fail_cnt;
3518+ } else {
3519+ my $gv = $aref->[0];
3520+ if ($gv ne $v) {
3521+ print "FAILED: $k got=$gv expected=$v\n";
3522+ ++$fail_cnt;
3523+ } else {
3524+ print "OK: $k $v $gv\n" if $verbose >= 10;
3525+ ++$ok_cnt;
3526+ }
3527+ }
3528+ }
3529+ print "OK=$ok_cnt FAIL=$fail_cnt\n";
3530+}
3531+
3532+sub get_conf {
3533+ my ($key, $def) = @_;
3534+ my $val = $conf{$key};
3535+ if ($val) {
3536+ print "$key=$val\n";
3537+ } else {
3538+ $val = $def;
3539+ $def ||= '';
3540+ print "$key=$def(default)\n";
3541+ }
3542+ return $val;
3543+}
3544+
3545+sub get_createtbl_moreflds_str {
3546+ my $s = "";
3547+ for (my $j = 0; $j < $num_moreflds; ++$j) {
3548+ $s .= ",$moreflds_prefix$j varchar(30)";
3549+ }
3550+ return $s;
3551+}
3552+
3553+sub get_select_moreflds_str {
3554+ my $s = "";
3555+ for (my $i = 0; $i < $num_moreflds; ++$i) {
3556+ $s .= ",$moreflds_prefix$i";
3557+ }
3558+ return $s;
3559+}
3560+
3561+sub get_insert_moreflds_str {
3562+ my $s = "";
3563+ for (my $i = 0; $i < $num_moreflds; ++$i) {
3564+ $s .= ",?";
3565+ }
3566+ return $s;
3567+}
3568+
3569
3570=== added file 'HandlerSocket-Plugin-for-MySQL/client/hstest_hs.sh'
3571--- HandlerSocket-Plugin-for-MySQL/client/hstest_hs.sh 1970-01-01 00:00:00 +0000
3572+++ HandlerSocket-Plugin-for-MySQL/client/hstest_hs.sh 2012-05-17 04:17:38 +0000
3573@@ -0,0 +1,4 @@
3574+#!/bin/bash
3575+
3576+exec ./hstest test=10 tablesize=10000 host=localhost hsport=9998 num=10000000 \
3577+ num_threads=100 timelimit=10 $@
3578
3579=== added file 'HandlerSocket-Plugin-for-MySQL/client/hstest_hs_more50.sh'
3580--- HandlerSocket-Plugin-for-MySQL/client/hstest_hs_more50.sh 1970-01-01 00:00:00 +0000
3581+++ HandlerSocket-Plugin-for-MySQL/client/hstest_hs_more50.sh 2012-05-17 04:17:38 +0000
3582@@ -0,0 +1,4 @@
3583+#!/bin/bash
3584+
3585+exec ./hstest test=10 key_mask=9999 host=localhost port=9998 num=10000000 \
3586+ num_threads=100 timelimit=10 moreflds=50 $@
3587
3588=== added file 'HandlerSocket-Plugin-for-MySQL/client/hstest_md.sh'
3589--- HandlerSocket-Plugin-for-MySQL/client/hstest_md.sh 1970-01-01 00:00:00 +0000
3590+++ HandlerSocket-Plugin-for-MySQL/client/hstest_md.sh 2012-05-17 04:17:38 +0000
3591@@ -0,0 +1,7 @@
3592+#!/bin/bash
3593+
3594+./hstest test=7 key_mask=9999 host=localhost port=11211 num=10000 \
3595+ num_threads=10 timelimit=10 op=R $@
3596+./hstest test=7 key_mask=9999 host=localhost port=11211 num=1000000 \
3597+ num_threads=100 timelimit=10 op=G $@
3598+
3599
3600=== added file 'HandlerSocket-Plugin-for-MySQL/client/hstest_my.sh'
3601--- HandlerSocket-Plugin-for-MySQL/client/hstest_my.sh 1970-01-01 00:00:00 +0000
3602+++ HandlerSocket-Plugin-for-MySQL/client/hstest_my.sh 2012-05-17 04:17:38 +0000
3603@@ -0,0 +1,3 @@
3604+#!/bin/bash
3605+exec ./hstest test=9 tablesize=9999 host=localhost mysqlport=3306 num=1000000 \
3606+ num_threads=100 verbose=1 timelimit=10 $@
3607
3608=== added file 'HandlerSocket-Plugin-for-MySQL/client/hstest_my_more50.sh'
3609--- HandlerSocket-Plugin-for-MySQL/client/hstest_my_more50.sh 1970-01-01 00:00:00 +0000
3610+++ HandlerSocket-Plugin-for-MySQL/client/hstest_my_more50.sh 2012-05-17 04:17:38 +0000
3611@@ -0,0 +1,3 @@
3612+#!/bin/bash
3613+exec ./hstest test=9 key_mask=9999 host=localhost port=3306 num=1000000 \
3614+ num_threads=100 verbose=1 timelimit=10 moreflds=50 $@
3615
3616=== added file 'HandlerSocket-Plugin-for-MySQL/configure.ac'
3617--- HandlerSocket-Plugin-for-MySQL/configure.ac 1970-01-01 00:00:00 +0000
3618+++ HandlerSocket-Plugin-for-MySQL/configure.ac 2012-05-17 04:17:38 +0000
3619@@ -0,0 +1,144 @@
3620+# -*- Autoconf -*-
3621+# Process this file with autoconf to produce a configure script.
3622+
3623+#AC_PREREQ([2.63b])
3624+AC_INIT([handlersocket-plugin], [1.0.6], [https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/issues])
3625+AC_CONFIG_HEADERS([config.h])
3626+AM_INIT_AUTOMAKE([-Wall -Werror foreign])
3627+AC_CONFIG_SRCDIR([libhsclient/fatal.cpp])
3628+AC_CONFIG_MACRO_DIR([m4])
3629+
3630+AC_PROG_CC
3631+AC_PROG_CXX
3632+AC_PROG_CPP
3633+AC_PROG_LIBTOOL
3634+
3635+ac_mysql_debug=
3636+AC_ARG_ENABLE(mysql-debug,
3637+ [AS_HELP_STRING([--enable-mysql-debug], [specify whether MySQL is build with DBUG_ON])],[ac_mysql_debug="$enableval"],[ac_mysql_debug=no])
3638+AC_MSG_CHECKING([if --enable-mysql-debug is specified])
3639+AC_MSG_RESULT($ac_mysql_debug)
3640+
3641+AC_DEFUN([CONFIG_OPTION_MYSQL],[
3642+ AC_MSG_CHECKING([mysql source])
3643+
3644+ MYSQL_SOURCE_VERSION=
3645+ MYSQL_INC=
3646+ ac_mysql_source_dir=
3647+ AC_ARG_WITH([mysql-source],
3648+ [AS_HELP_STRING([--with-mysql-source=PATH], [MySQL source directory PATH])],
3649+ [
3650+ ac_mysql_source_dir=`cd $withval && pwd`
3651+ if test -f "$ac_mysql_source_dir/sql/handler.h" ; then
3652+ MYSQL_INC="-I$ac_mysql_source_dir/sql"
3653+ MYSQL_INC="$MYSQL_INC -I$ac_mysql_source_dir/include"
3654+ MYSQL_INC="$MYSQL_INC -I$ac_mysql_source_dir/regex"
3655+ MYSQL_INC="$MYSQL_INC -I$ac_mysql_source_dir"
3656+ AC_SUBST(MYSQL_INC)
3657+ if test -f "$ac_mysql_source_dir/VERSION"; then
3658+ source "$ac_mysql_source_dir/VERSION"
3659+ MYSQL_SOURCE_VERSION="$MYSQL_VERSION_MAJOR.$MYSQL_VERSION_MINOR.$MYSQL_VERSION_PATCH"
3660+ else
3661+ if test -f "$ac_mysql_source_dir/configure.in"; then
3662+ MYSQL_SOURCE_VERSION=`cat $ac_mysql_source_dir/configure.in | grep "\[[MySQL Server\]]" | sed -e "s|.*\([[0-9]]\+\.[[0-9]]\+\.[[0-9]]\+[[0-9a-zA-Z\_\-]]*\).*|\1|"`
3663+ else
3664+ AC_MSG_ERROR([invalid MySQL source directory: $ac_mysql_source_dir])
3665+ fi
3666+ fi
3667+ AC_MSG_RESULT([yes: Using $ac_mysql_source_dir, version $MYSQL_SOURCE_VERSION])
3668+ else
3669+ AC_MSG_ERROR([invalid MySQL source directory: $ac_mysql_source_dir])
3670+ fi
3671+ ],
3672+ [AC_MSG_ERROR([--with-mysql-source=PATH is required for standalone build])]
3673+ )
3674+
3675+ MYSQL_BIN_VERSION=
3676+ ac_mysql_config=
3677+ AC_ARG_WITH([mysql-bindir],
3678+ [AS_HELP_STRING([--with-mysql-bindir=PATH], [MySQL binary directory PATH. This should be the directory where mysql_config is located.])],
3679+ [
3680+ mysql_bin_dir=`cd $withval 2> /dev/null && pwd || echo ""`
3681+ ac_mysql_config="$mysql_bin_dir/mysql_config"
3682+ ],
3683+ [
3684+ AC_PATH_PROG([ac_mysql_config], [mysql_config])
3685+ ]
3686+ )
3687+
3688+ AC_MSG_CHECKING([mysql binary])
3689+ if test ! -x "$ac_mysql_config" ; then
3690+ AC_MSG_ERROR([mysql_config not found! You have to specify the directory where mysql_config resides to --with-mysql-bindir=PATH.])
3691+ fi
3692+
3693+ MYSQL_CFLAGS_ADD=`"$ac_mysql_config" --cflags`
3694+ MYSQL_CFLAGS="$MYSQL_CFLAGS $MYSQL_CFLAGS_ADD"
3695+ if test "$ac_mysql_debug" = "yes"; then
3696+ MYSQL_CFLAGS="$MYSQL_CFLAGS -DDBUG_ON -DENABLED_DEBUG_SYNC"
3697+ else
3698+ MYSQL_CFLAGS="$MYSQL_CFLAGS -DDBUG_OFF"
3699+ fi
3700+ AC_SUBST(MYSQL_CFLAGS)
3701+
3702+ MYSQL_BIN_VERSION=`"$ac_mysql_config" --version`
3703+ AC_MSG_RESULT([yes: Using $ac_mysql_config, version $MYSQL_BIN_VERSION])
3704+
3705+ MYSQL_LIB=`"$ac_mysql_config" --libs_r`
3706+ LIB_DIR=`echo $MYSQL_LIB | sed -e "s|.*-L/|/|" | sed -e "s| .*||"`
3707+ # FIXME
3708+ if test a`basename "$LIB_DIR"` = amysql ; then
3709+ MYSQL_LIB="-L`dirname $LIB_DIR` $MYSQL_LIB"
3710+ # FIXME
3711+ fi
3712+ AC_SUBST(MYSQL_LIB)
3713+
3714+ if test a$MYSQL_SOURCE_VERSION != a$MYSQL_BIN_VERSION ; then
3715+ AC_MSG_ERROR([MySQL source version does not match MySQL binary version])
3716+ fi
3717+
3718+ AC_MSG_CHECKING([mysql plugin dir])
3719+ ac_mysql_plugin_dir=
3720+ AC_ARG_WITH([mysql-plugindir],
3721+ [AS_HELP_STRING([--with-mysql-plugindir=PATH], [MySQL plugin directory where handlersocket.so to be copied])],
3722+ [
3723+ ac_mysql_plugin_dir=`cd $withval && pwd`
3724+ if test -d "$ac_mysql_plugin_dir/" ; then
3725+ PLUGIN_DIR="$ac_mysql_plugin_dir"
3726+ AC_SUBST(PLUGIN_DIR)
3727+ AC_MSG_RESULT([yes: Using $ac_mysql_plugin_dir])
3728+ else
3729+ AC_MSG_ERROR([invalid MySQL plugin directory : $ac_mysql_plugin_dir])
3730+ fi
3731+ ],
3732+ [
3733+ LIB_DIR_TMP=`"$ac_mysql_config" --plugindir`
3734+ if test ! -d "$LIB_DIR_TMP"; then
3735+ LIB_DIR_TMP=`"$ac_mysql_config" --libs_r | sed -e "s|.*-L/|/|" | sed -e "s| .*||"`/plugin
3736+ # FIXME
3737+ fi
3738+ ac_mysql_plugin_dir=$LIB_DIR_TMP
3739+ PLUGIN_DIR="$ac_mysql_plugin_dir"
3740+ AC_SUBST(PLUGIN_DIR)
3741+ AC_MSG_RESULT([--with-mysql-plugindir was not set. Using $ac_mysql_plugin_dir])
3742+ ]
3743+ )
3744+])
3745+
3746+HANDLERSOCKET_SUBDIRS="libhsclient"
3747+AC_ARG_ENABLE(handlersocket_server,
3748+ [ --enable-handlersocket-server build HandlerSocket plugin (defalut=yes)])
3749+if test "$enable_handlersocket_server" != "no"; then
3750+ CONFIG_OPTION_MYSQL
3751+ HANDLERSOCKET_SUBDIRS="libhsclient handlersocket client"
3752+fi
3753+AC_SUBST(HANDLERSOCKET_SUBDIRS)
3754+
3755+CFLAGS="$CFLAGS -Werror"
3756+CXXFLAGS="$CXXFLAGS -Wall -g -fno-rtti -fno-exceptions -fPIC -DPIC"
3757+
3758+AC_CONFIG_FILES([Makefile
3759+ handlersocket/Makefile
3760+ libhsclient/Makefile
3761+ client/Makefile])
3762+
3763+AC_OUTPUT
3764
3765=== added directory 'HandlerSocket-Plugin-for-MySQL/docs-en'
3766=== added file 'HandlerSocket-Plugin-for-MySQL/docs-en/about-handlersocket.en.txt'
3767--- HandlerSocket-Plugin-for-MySQL/docs-en/about-handlersocket.en.txt 1970-01-01 00:00:00 +0000
3768+++ HandlerSocket-Plugin-for-MySQL/docs-en/about-handlersocket.en.txt 2012-05-17 04:17:38 +0000
3769@@ -0,0 +1,72 @@
3770+
3771+-----------------------------------------------------------------------------
3772+HandlerSocket plugin for MySQL
3773+
3774+Copyright (c) 2010 DeNA Co.,Ltd.
3775+All rights reserved.
3776+
3777+Redistribution and use in source and binary forms, with or without
3778+modification, are permitted provided that the following conditions are met:
3779+
3780+ * Redistributions of source code must retain the above copyright
3781+ notice, this list of conditions and the following disclaimer.
3782+ * Redistributions in binary form must reproduce the above copyright
3783+ notice, this list of conditions and the following disclaimer in the
3784+ documentation and/or other materials provided with the distribution.
3785+ * Neither the name of DeNA Co.,Ltd. nor the names of its contributors
3786+ may be used to endorse or promote products derived from this software
3787+ without specific prior written permission.
3788+
3789+THIS SOFTWARE IS PROVIDED BY DeNA Co.,Ltd. "AS IS" AND ANY EXPRESS OR
3790+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
3791+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
3792+EVENT SHALL DeNA Co.,Ltd. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
3793+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
3794+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
3795+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
3796+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
3797+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
3798+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3799+
3800+
3801+-----------------------------------------------------------------------------
3802+About HandlerSocket
3803+
3804+HandlerSocket is a NoSQL plugin for MySQL. It works as a daemon inside the
3805+mysqld process, accept tcp connections, and execute requests from clients.
3806+HandlerSocket does not support SQL queries. Instead, it supports simple CRUD
3807+operations on tables.
3808+
3809+Because of the following reasons, HandlerSocket is much faster than the
3810+mysqld/libmysql pair in some circumstances:
3811+
3812+ - HandlerSocket manipulates data without parsing SQL, which causes less
3813+ CPU usage.
3814+ - HandlerSocket reads many requests from clients and executes their
3815+ requests in bulk, which causes less CPU and disk usage.
3816+ - HandlerSocket client/server protocol is more compact than the
3817+ mysql/libmysql pair, which causes less network usage.
3818+
3819+The current version of HandlerSocket only works with GNU/Linux. The source
3820+archive of HandlerSocket includes a C++ and a Perl client libraries.
3821+Here is a list of other language bindings:
3822+
3823+ - PHP
3824+ http://openpear.org/package/Net_HandlerSocket
3825+ http://github.com/tz-lom/HSPHP
3826+ http://code.google.com/p/php-handlersocket/
3827+ - Java
3828+ http://code.google.com/p/handlersocketforjava/
3829+ - Python
3830+ https://code.launchpad.net/~songofacandy/+junk/pyhandlersocket
3831+ - Ruby
3832+ https://github.com/winebarrel/ruby-handlersocket
3833+ https://github.com/miyucy/handlersocket
3834+ - JavaScript(Node.js)
3835+ https://github.com/koichik/node-handlersocket
3836+
3837+The home of HandlerSocket is here:
3838+ https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL
3839+
3840+More documents are available in docs-en/ and docs-ja/ directories.
3841+
3842
3843=== added file 'HandlerSocket-Plugin-for-MySQL/docs-en/configuration-options.en.txt'
3844--- HandlerSocket-Plugin-for-MySQL/docs-en/configuration-options.en.txt 1970-01-01 00:00:00 +0000
3845+++ HandlerSocket-Plugin-for-MySQL/docs-en/configuration-options.en.txt 2012-05-17 04:17:38 +0000
3846@@ -0,0 +1,87 @@
3847+
3848+-----------------------------------------------------------------
3849+handlersocket_verbose (default = 10, min = 0, max = 10000)
3850+
3851+ Specify the logging verboseness.
3852+
3853+-----------------------------------------------------------------
3854+handlersocket_address (default = '')
3855+
3856+ Specify the address to bind. If empty, it binds to 0.0.0.0.
3857+
3858+-----------------------------------------------------------------
3859+handlersocket_port (default = '9998')
3860+
3861+ Specify the port to bind. This option is for the listener for
3862+ read requests. If empty, the listener is disabled.
3863+
3864+-----------------------------------------------------------------
3865+handlersocket_port_wr (default = '9999')
3866+
3867+ Specify the port to bind. This option is for the listener for
3868+ write requests. If empty, the listener is disabled.
3869+
3870+-----------------------------------------------------------------
3871+handlersocket_epoll (default = 1, min = 0, max = 1)
3872+
3873+ Specify whether handlersocket uses epoll for I/O multiplexing.
3874+
3875+-----------------------------------------------------------------
3876+handlersocket_threads (default = 16, min = 1, max = 3000)
3877+
3878+ Specify the number of handlersocket worker threads. This option
3879+ is for the listener for read requests. Recommended value is
3880+ (the number of CPU cores * 2).
3881+
3882+-----------------------------------------------------------------
3883+handlersocket_threads_wr (default = 1, min = 1, max = 3000)
3884+
3885+ Specify the number of handlersocket worker threads. This option
3886+ is for the listener for write requests. Recommended value is 1.
3887+
3888+-----------------------------------------------------------------
3889+handlersocket_timeout (default = 300, min = 30, max = 3600)
3890+
3891+ Specify the socket timeout in seconds.
3892+
3893+-----------------------------------------------------------------
3894+handlersocket_backlog (default = 32768, min = 5, max = 1000000)
3895+
3896+ Specify the length of the listen backlog.
3897+
3898+-----------------------------------------------------------------
3899+handlersocket_sndbuf (default = 0, min = 0, max = 1677216)
3900+
3901+ Specify the maximum socket send buffer in bytes. If 0, the
3902+ system-wide default value is set.
3903+
3904+-----------------------------------------------------------------
3905+handlersocket_rcvbuf (default = 0, min = 0, max = 1677216)
3906+
3907+ Specify the maximum socket receive buffer in bytes. If 0, the
3908+ system-wide default value is set.
3909+
3910+-----------------------------------------------------------------
3911+handlersocket_readsize (default = 0, min = 0, max = 1677216)
3912+
3913+ Specify the minimum length of the handlersocket request buffer.
3914+ Larger value can make handlersocket faster for large requests,
3915+ but can consume memory. The default value is possibly 4096.
3916+
3917+-----------------------------------------------------------------
3918+handlersocket_accept_balance (default = 0, min = 0, max = 10000)
3919+
3920+ When this option is set to non-zero, handlersocket tries to
3921+ balance accepted connections among threads. Non-zero is
3922+ recommended if you use persistent connections (i.e., connection
3923+ pooling on the client side).
3924+
3925+-----------------------------------------------------------------
3926+handlersocket_wrlock_timeout (default = 12, min = 0, max = 3600)
3927+
3928+ Specify the lock timeout in seconds. When a write request is
3929+ performed, handlersocket locks an advisory lock named
3930+ 'handlersocket_wr'. This option sets the timeout for the
3931+ locking.
3932+
3933+
3934
3935=== added file 'HandlerSocket-Plugin-for-MySQL/docs-en/installation.en.txt'
3936--- HandlerSocket-Plugin-for-MySQL/docs-en/installation.en.txt 1970-01-01 00:00:00 +0000
3937+++ HandlerSocket-Plugin-for-MySQL/docs-en/installation.en.txt 2012-05-17 04:17:38 +0000
3938@@ -0,0 +1,91 @@
3939+1. Building Handlersocket
3940+
3941+ Handlersocket mainly consists of libhsclient, handlersocket, and C++/Perl clients. libhsclient is a common library shared from both client and server(plugin). handlersocket is a MySQL daemon plugin.
3942+ To build Handlersocket, you need both MySQL source code and MySQL binary. It is not required to pre-build MySQL source code, but source itself is needed because Handlersocket depends on MySQL header files that only MySQL source distribution contains. MySQL binary is just a normal MySQL binary distribution. You can use official MySQL binaries provided by Oracle.
3943+ Since Handlersocket uses daemon plugin interface supported from MySQL 5.1,
3944+MySQL 5.1 or higher version is required.
3945+ Please make sure that you use identical MySQL version between MySQL source
3946+and MySQL binary. Otherwise you might encounter serious problems (i.e. server
3947+crash, etc).
3948+ Here are steps to build Handlersocket.
3949+
3950+* Get MySQL source code
3951+
3952+* Get MySQL binary
3953+
3954+* Build Handlersocket
3955+ $ ./autogen.sh
3956+ $ ./configure --with-mysql-source=/work/mysql-5.1.50 --with-mysql-bindir=/work/mysql-5.1.50-linux-x86_64-glibc23/bin --with-mysql-plugindir=/work/mysql-5.1.50-linux-x86_64-glibc23/lib/plugin
3957+
3958+ --with-mysql-source refers to the top of MySQL source directory,
3959+--with-mysql-bindir refers to where MySQL binary executables (i.e.
3960+mysql_config) are located, and --with-mysql-plugindir refers to a plugin
3961+directory where plugin libraries (*.so) are installed.
3962+
3963+ $ make
3964+ $ sudo make install
3965+
3966+ Both libhsclient and the handlersocket plugin will be installed.
3967+
3968+
3969+2. Using Handlersocket
3970+
3971+Append configuration options for handlersocket to my.cnf.
3972+
3973+ [mysqld]
3974+ loose_handlersocket_port = 9998
3975+ # the port number to bind to (for read requests)
3976+ loose_handlersocket_port_wr = 9999
3977+ # the port number to bind to (for write requests)
3978+ loose_handlersocket_threads = 16
3979+ # the number of worker threads (for read requests)
3980+ loose_handlersocket_threads_wr = 1
3981+ # the number of worker threads (for write requests)
3982+ open_files_limit = 65535
3983+ # to allow handlersocket accept many concurrent
3984+ # connections, make open_files_limit as large as
3985+ # possible.
3986+
3987+Log in to mysql as root, and execute the following query.
3988+
3989+ mysql> install plugin handlersocket soname 'handlersocket.so';
3990+
3991+If handlersocket.so is successfully installed, it starts
3992+accepting connections on port 9998 and 9999. Running
3993+'show processlist' should show handlersocket worker threads.
3994+
3995+-----------------------------------------------------------------
3996+On the client side, you need to install libhsclient for c++ apps
3997+and perl-Net-HandlerSocket for perl apps. They do not require
3998+MySQL to compile.
3999+
4000+ $ ./autogen.sh
4001+ $ ./configure --disable-handlersocket-server
4002+ $ make
4003+ $ sudo make install
4004+ $ cd perl-Net-HandlerSocket
4005+ $ perl Makefile.PL
4006+ $ make
4007+ $ sudo make install
4008+
4009+-----------------------------------------------------------------
4010+Alternatively, you can use the rpm installation. If your OS
4011+supports rpms, you can use the following commands to build and
4012+install handlersocket rpm packages.
4013+
4014+(Server side, installs HandlerSocket plugin)
4015+ $ ./autogen.sh
4016+ $ ./configure --with-mysql-source=/work/mysql-5.1.50 --with-mysql-bindir=/work/mysql-5.1.50-linux-x86_64-glibc23/bin --with-mysql-plugindir=/work/mysql-5.1.50-linux-x86_64-glibc23/lib/plugin
4017+ $ make rpm_cli
4018+ $ sudo rpm -U dist/RPMS/*/libhsclient*.rpm
4019+ $ make rpm_c
4020+ $ sudo rpm -U dist/RPMS/*/handlersocket*.rpm
4021+
4022+(Client side, installs client libraries)
4023+ $ ./autogen.sh
4024+ $ ./configure --disable-handlersocket-server
4025+ $ make rpm_cli
4026+ $ sudo rpm -U dist/RPMS/*/libhsclient*.rpm
4027+ $ make rpm_perl
4028+ $ sudo rpm -U dist/RPMS/*/perl-Net-HandlerSocket*.rpm
4029+
4030
4031=== added file 'HandlerSocket-Plugin-for-MySQL/docs-en/perl-client.en.txt'
4032--- HandlerSocket-Plugin-for-MySQL/docs-en/perl-client.en.txt 1970-01-01 00:00:00 +0000
4033+++ HandlerSocket-Plugin-for-MySQL/docs-en/perl-client.en.txt 2012-05-17 04:17:38 +0000
4034@@ -0,0 +1,126 @@
4035+
4036+-----------------------------------------------------------------
4037+To open a connection to the handlersocket plugin, you need to
4038+create a Net::HandlerSocket object.
4039+
4040+ use Net::HandlerSocket;
4041+ my $args = { host => 'localhost', port => 9998 };
4042+ my $hs = new Net::HandlerSocket($args);
4043+
4044+-----------------------------------------------------------------
4045+Before executing table operations, you need to open an index to
4046+work with.
4047+
4048+ my $err = $hs->open_index(3, 'database1', 'table1', 'PRIMARY',
4049+ 'f1,f2');
4050+ die $hs->get_error() if $res->[0] != 0;
4051+
4052+The first argument for open_index is an integer value which is
4053+used to identify an open table, which is only valid within the
4054+same Net::HandlerSocket object. The 4th argument is the name of
4055+index to open. If 'PRIMARY' is specified, the primary index is
4056+open. The 5th argument is a comma-separated list of column names.
4057+
4058+-----------------------------------------------------------------
4059+To read a record from a table using an index, call the
4060+execute_single method.
4061+
4062+ my $res = $hs->execute_single(3, '=', [ 'foo' ], 1, 0);
4063+ die $hs->get_error() if $res->[0] != 0;
4064+ shift(@$res);
4065+
4066+The first argument must be an integer which has specified as the
4067+first argument for open_index on the same Net::HandlerSocket
4068+object. The second argument specifies the search operation. The
4069+current version of handlersocket supports '=', '>=', '<=', '>',
4070+and '<'. The 3rd argument specifies the key to find, which must
4071+an arrayref whose length is equal to or smaller than the number
4072+of key columns of the index. The 4th and the 5th arguments
4073+specify the maximum number of records to be retrieved, and the
4074+number of records skipped before retrieving records. The columns
4075+to be retrieved are specified by the 5th argument for the
4076+corresponding open_index call.
4077+
4078+The execute_single method always returns an arrayref. The first
4079+element is the error code, which is 0 when no error is occured.
4080+The remaining are the field values. If more than one record is
4081+returned, it is flatten to an 1-dimensional array. For example,
4082+when 5 records that have 3 columns are returned, you can retrieve
4083+values using the following code.
4084+
4085+ die $hs->get_error() if $res->[0] != 0;
4086+ shift(@$res);
4087+ for (my $row = 0; $row < 5; ++$row) {
4088+ for (my $col = 0; $col < 3; ++$col) {
4089+ my $value = $res->[$row * 5 + $col];
4090+ # ...
4091+ }
4092+ }
4093+
4094+-----------------------------------------------------------------
4095+To update or delete records, you need to specify more arguments
4096+for the execute_single method. Note that the Net::HandlerSocket
4097+object must be connected to a handlersocket worker for write
4098+operations, which is port 9999 by default.
4099+(For safety, the port 9998 only allows read operations, and the
4100+port 9999 allows write operations also. The port 9999 allows
4101+read operations too, but slower than 9998 because of record
4102+locking etc.. Port numbers can be changed using the
4103+'handlersocket_port' and the 'handlersocket_port_wr'
4104+configuration options of mysqld.)
4105+
4106+ my $args = { host => 'localhost', port => 9999 };
4107+ my $hs = new Net::HandlerSocket($args);
4108+
4109+ my $res = $hs->execute_single(3, '=', [ 'bar' ], 1, 0, 'U',
4110+ [ 'fubar', 'hoge' ]);
4111+ die $hs->get_error() if $res->[0] != 0;
4112+ my $num_updated_rows = $res->[1];
4113+
4114+ my $res = $hs->execute_single(3, '=', [ 'baz' ], 1, 0, 'D');
4115+ die $hs->get_error() if $res->[0] != 0;
4116+ my $num_deleted_rows = $res->[1];
4117+
4118+The 6th argument for execute_single specifies the modification
4119+operation. The current version supports 'U' and 'D'. For the 'U'
4120+operation, the 7th argument specifies the new value for the row.
4121+The columns to be modified are specified by the 5th argument for
4122+the corresponding open_index call. For the 'D' operation, the
4123+7th argument can be omitted.
4124+
4125+-----------------------------------------------------------------
4126+The execute_single method can be used for inserting records also.
4127+
4128+ my $res = $hs->execute_single(3, '+', [ 'foo', 'bar', 'baz' ]);
4129+ die $hs->get_error() if $res->[0] != 0;
4130+ my $num_inserted_rows = $res->[1];
4131+
4132+The 3rd argument must be an arrayref whose elements correspond to
4133+the 5th argument for the corresponding open_index call. If there
4134+is a column which is not appeared in the 5th argument for the
4135+open_index, the default value for the column is set.
4136+
4137+-----------------------------------------------------------------
4138+Multiple operations can be executed in a single call. Executing
4139+multiple operations in a single call is much faster than
4140+executing them separatedly.
4141+
4142+ my $rarr = $hs->execute_multi([
4143+ [ 0, '>=', [ 'foo' ], 5, 0 ],
4144+ [ 2, '=', [ 'bar' ], 1, 0 ],
4145+ [ 4, '<', [ 'baz' ], 10, 5 ],
4146+ ]);
4147+ for my $res (@$rarr) {
4148+ die $hs->get_error() if $res->[0] != 0;
4149+ shift(@$res);
4150+ # ...
4151+ }
4152+
4153+-----------------------------------------------------------------
4154+When an error is occured, the first element of the returned
4155+arrayref becomes a non-zero value. A negative value indicates
4156+that an I/O error is occured and the Net::HandlerSocket object
4157+should be disposed. A positive value means that the connection is
4158+still active and the Net::HandlerSocket object can be reused
4159+later.
4160+
4161
4162=== added file 'HandlerSocket-Plugin-for-MySQL/docs-en/protocol.en.txt'
4163--- HandlerSocket-Plugin-for-MySQL/docs-en/protocol.en.txt 1970-01-01 00:00:00 +0000
4164+++ HandlerSocket-Plugin-for-MySQL/docs-en/protocol.en.txt 2012-05-17 04:17:38 +0000
4165@@ -0,0 +1,148 @@
4166+
4167+----------------------------------------------------------------------------
4168+The HandlerSocket protocol
4169+
4170+----------------------------------------------------------------------------
4171+Basic syntax
4172+
4173+- The HandlerSocket protocol is line-based. Each line ends with LF(0x0a).
4174+- Each line consists a concatenation of tokens separated by HT(0x09).
4175+- A token is either NULL or an encoded string. Note that you need to
4176+ distinguish NULL from an empty string, as most DBMs does so.
4177+- NULL is expressed as a single NUL(0x00).
4178+- An encoded string is a string with the following encoding rules.
4179+ - Characters in the range [0x10 - 0xff] are not encoded.
4180+ - A character in the range [0x00 - 0x0f] is prefixed by 0x01 and
4181+ shifted by 0x40. For example, 0x03 is encoded as 0x01 0x43.
4182+- Note that a string can be empty. A continuation of 0x09 0x09 means that
4183+ there is an empty string between them. A continuation of 0x09 0x0a means
4184+ that there is an empty string at the end of the line.
4185+
4186+----------------------------------------------------------------------------
4187+Request and Response
4188+
4189+- The HandlerSocket protocol is a simple request/response protocol. After a
4190+ connection is established, the client side sends a request, and then the
4191+ server side sends a response.
4192+- A request/response consists of a single line.
4193+- Requests can be pipelined; That is, you can send multiple requests (ie.
4194+ lines) at one time, and receive responses for them at one time.
4195+
4196+----------------------------------------------------------------------------
4197+'open_index' request
4198+
4199+The 'open_index' request has the following syntax.
4200+
4201+ P <indexid> <dbname> <tablename> <indexname> <columns>
4202+
4203+- <indexid> is a number in decimal.
4204+- <dbname>, <tablename>, and <indexname> are strings. To open the primary
4205+ key, use PRIMARY as <indexname>.
4206+- <columns> is a comma-separated list of column names.
4207+
4208+Once an 'open_index' request is issued, the HandlerSocket plugin opens the
4209+specified index and keep it open until the client connection is closed. Each
4210+open index is identified by <indexid>. If <indexid> is already open, the old
4211+open index is closed. You can open the same combination of <dbname>
4212+<tablename> <indexname> multple times, possibly with different <columns>.
4213+For efficiency, keep <indexid> small as far as possible.
4214+
4215+----------------------------------------------------------------------------
4216+Getting data
4217+
4218+The 'find' request has the following syntax.
4219+
4220+ <indexid> <op> <vlen> <v1> ... <vn> <limit> <offset>
4221+
4222+- <indexid> is a number. This number must be an <indexid> specified by a
4223+ 'open_index' request executed previously on the same connection.
4224+- <op> specifies the comparison operation to use. The current version of
4225+ HandlerSocket supports '=', '>', '>=', '<', and '<='.
4226+- <vlen> indicates the length of the trailing parameters <v1> ... <vn>. This
4227+ must be smaller than or equal to the number of index columns specified by
4228+ specified by the corresponding 'open_index' request.
4229+- <v1> ... <vn> specify the index column values to fetch.
4230+- <limit> and <offset> are numbers. These parameters can be omitted. When
4231+ omitted, it works as if 1 and 0 are specified.
4232+
4233+----------------------------------------------------------------------------
4234+Updating/Deleting data
4235+
4236+The 'find_modify' request has the following syntax.
4237+
4238+ <indexid> <op> <vlen> <v1> ... <vn> <limit> <offset> <mop> <m1> ... <mk>
4239+
4240+- <mop> is either 'U' (update) or 'D' (delete).
4241+- <m1> ... <mk> specifies the column values to set. The length of <m1> ...
4242+ <mk> must be smaller than or equal to the length of <columns> specified by
4243+ the corresponding 'open_index' request. If <mop> is 'D', these parameters
4244+ are ignored.
4245+
4246+----------------------------------------------------------------------------
4247+Inserting data
4248+
4249+The 'insert' request has the following syntax.
4250+
4251+ <indexid> '+' <vlen> <v1> ... <vn>
4252+
4253+- <vlen> indicates the length of the trailing parameters <v1> ... <vn>. This
4254+ must be smaller than or equal to the length of <columns> specified by the
4255+ corresponding 'open_index' request.
4256+- <v1> ... <vn> specify the column values to set. For columns not in
4257+ <columns>, the default values for each column are set.
4258+
4259+----------------------------------------------------------------------------
4260+Response syntax
4261+
4262+HandlerSocket returns a response of the following syntax for each request.
4263+
4264+ <errorcode> <numcolumns> <r1> ... <rn>
4265+
4266+- <errorcode> indicates whether the request has successfully executed or not.
4267+ '0' means success. Non-zero means an error.
4268+- <numcolumns> indicates the number of columns of the result set.
4269+- <r1> ... <rn> is the result set. The length of <r1> ... <rn> is always a
4270+ multiple of <numcolumns>. It is possible that <r1> ... <rn> is empty.
4271+
4272+If <errorcode> is non-zero, <numcolumns> is always 1 and <r1> indicates a
4273+human-readable error message, though sometimes <r1> is not provided.
4274+
4275+----------------------------------------------------------------------------
4276+Response for 'open_index'
4277+
4278+If 'open_index' is succeeded, HandlerSocket returns a line of the following
4279+syntax.
4280+
4281+ 0 1
4282+
4283+----------------------------------------------------------------------------
4284+Response for 'find'
4285+
4286+If 'find' is succeeded, HandlerSocket returns a line of the following
4287+syntax.
4288+
4289+ 0 <numcolumns> <r1> ... <rn>
4290+
4291+- <numcolumns> always equals to the length of <columns> of the corresponding
4292+ 'open_index' request.
4293+- <r1> ... <rn> is the result set. If N rows are found, the length of <r1>
4294+ ... <rn> becomes ( <numcolumns> * N ).
4295+
4296+----------------------------------------------------------------------------
4297+Response for 'find_modify'
4298+
4299+If 'find_modify' is succeeded, HandlerSocket returns a line of the following
4300+syntax.
4301+
4302+ 0 1 <nummod>
4303+
4304+- <nummod> is the number of modified rows.
4305+
4306+----------------------------------------------------------------------------
4307+Response for 'insert'
4308+
4309+If 'insert' is succeeded, HanderSocket returns a line of the following
4310+syntax.
4311+
4312+ 0 1
4313+
4314
4315=== added directory 'HandlerSocket-Plugin-for-MySQL/docs-ja'
4316=== added file 'HandlerSocket-Plugin-for-MySQL/docs-ja/about-handlersocket.ja.txt'
4317--- HandlerSocket-Plugin-for-MySQL/docs-ja/about-handlersocket.ja.txt 1970-01-01 00:00:00 +0000
4318+++ HandlerSocket-Plugin-for-MySQL/docs-ja/about-handlersocket.ja.txt 2012-05-17 04:17:38 +0000
4319@@ -0,0 +1,51 @@
4320+
4321+
4322+-----------------------------------------------------------------
4323+ソースコードの利用にあたっての免責事項
4324+
4325+本ソフトウェアの開発者および株式会社ディー・エヌ・エーは、本フト
4326+ウェアの不稼動、稼動不良を含む法律上の瑕疵担保責任、その他保証責
4327+任を負わないものとします。また、本ソフトウエアの開発者および株式
4328+会社ディー・エヌ・エーは、本ソフトウェアの商品性、またはお客様の
4329+特定の目的に対する適合性について、いかなる保証も負わないものとし
4330+ます。
4331+
4332+-----------------------------------------------------------------
4333+handlersocket pluginについて
4334+
4335+mysqlサーバに常駐し、innodb等のストレージエンジンへの直接のアクセ
4336+スを提供するプラグインです。handlersocketプラグインは自前のリス
4337+ナーを持ち、専用のクライアントライブラリ(libhsclient)を使ってそれ
4338+にアクセスします。
4339+
4340+mysqlの標準クライアントライブラリ(libmysql)を使ったアクセスと比べ
4341+て、以下のような利点があります。
4342+・接続あたりに消費するリソースが少ないため、同時接続数が事実上無
4343+ 制限。したがって接続数を気にせず持続接続を使えます。
4344+・高速(単純な参照クエリで3倍〜10倍程度)。
4345+・通信プロトコルがコンパクト。libmysqlを使うとデータ転送時にレ
4346+ コード名などが付随するために通信内容が冗長ですが、libhsclientで
4347+ はデータのみが転送されるため、帯域消費が少なくなります。場合に
4348+ よっては10倍以上libmysqlのほうが冗長になります。
4349+
4350+現在のバージョンでは以下のような処理をサポートしています。
4351+・指定された索引について、指定された値と完全一致するようなレコー
4352+ ドを取得。(SELECT ??? FROM tbl WHERE k1 = v1 AND k2 = v2...)。
4353+ 索引を使わない検索はサポートしていません。
4354+・指定された索引について、指定された値の位置の前後のレコードを取
4355+ 得。(SELECT ??? FROM tbl WHERE k1 >= v1 LIMIT 100)
4356+・前述のような手段で取得したレコードに対するUPDATEとDELETE
4357+・レコードのINSERT
4358+
4359+以下のような言語をサポートします。
4360+・C++。libhsclientをリンクします。
4361+・Perl。Net::HandlerSocketをuseします。
4362+
4363+現在のバージョンではGNU/Linuxでのみ動作します。
4364+
4365+-----------------------------------------------------------------
4366+既知の問題
4367+
4368+・killでhandlersocketスレッドを殺すと、スレッド数が減ったまま回復
4369+ しません。
4370+
4371
4372=== added file 'HandlerSocket-Plugin-for-MySQL/docs-ja/installation.ja.txt'
4373--- HandlerSocket-Plugin-for-MySQL/docs-ja/installation.ja.txt 1970-01-01 00:00:00 +0000
4374+++ HandlerSocket-Plugin-for-MySQL/docs-ja/installation.ja.txt 2012-05-17 04:17:38 +0000
4375@@ -0,0 +1,87 @@
4376+
4377+-----------------------------------------------------------------
4378+HandlerSocketプラグインのビルド方法(RPMを使わない方法)
4379+
4380+以下のようにしてconfigureを実行します。
4381+
4382+ $ ./autogen.sh
4383+ $ ./configure --with-mysql-source=/work/mysql-5.1.50 --with-mysql-bindir=/work/mysql-5.1.50-linux-x86_64-glibc23/bin --with-mysql-plugindir=/work/mysql-5.1.50-linux-x86_64-glibc23/lib/plugin
4384+
4385+ここで--with-mysql-sourceにはMySQLのソースコードのトップディレク
4386+トリを指定します。--with-mysql-bindirにはインストール済みのMySQL
4387+のmysql_configコマンドが有るディレクトリを指定します。
4388+その後以下のようにビルド・インストールします。
4389+
4390+ $ make
4391+ $ sudo make install
4392+
4393+-----------------------------------------------------------------
4394+クライアントライブラリのビルド方法(RPMを使わない方法)
4395+
4396+クライアントライブラリをビルドする際には、MySQLのソースコードは
4397+必要ありません。またMySQLがインストールされている必要もありません。
4398+
4399+ $ ./autogen.sh
4400+ $ ./configure --disable-handlersocket-server
4401+ $ make
4402+ $ sudo make install
4403+ $ cd perl-Net-HandlerSocket
4404+ $ perl Makefile.PL
4405+ $ make
4406+ $ sudo make install
4407+
4408+-----------------------------------------------------------------
4409+ビルド方法(RPM)
4410+
4411+以下のように実行すれば、rpmパッケージがビルド&インストールされま
4412+す。
4413+
4414+(MySQLサーバ側、HandlerSocketプラグインをインストールする)
4415+ $ ./autogen.sh
4416+ $ ./configure --with-mysql-source=/work/mysql-5.1.50 --with-mysql-bindir=/work/mysql-5.1.50-linux-x86_64-glibc23/bin --with-mysql-plugindir=/work/mysql-5.1.50-linux-x86_64-glibc23/lib/plugin
4417+ $ make rpm_cli
4418+ $ sudo rpm -U dist/RPMS/*/libhsclient*.rpm
4419+ $ make rpm_c
4420+ $ sudo rpm -U dist/RPMS/*/handlersocket*.rpm
4421+
4422+(クライアント側、クライアントライブラリをインストールする)
4423+ $ ./autogen.sh
4424+ $ ./configure --disable-handlersocket-server
4425+ $ make rpm_cli
4426+ $ sudo rpm -U dist/RPMS/*/libhsclient*.rpm
4427+ $ make rpm_perl
4428+ $ sudo rpm -U dist/RPMS/*/perl-Net-HandlerSocket*.rpm
4429+
4430+-----------------------------------------------------------------
4431+起動
4432+
4433+mysqlを起動した状態で、mysqlの設定ファイル(my.cnf等)に以下の内容を
4434+追加します。
4435+
4436+ [mysqld]
4437+ handlersocket_port = 9998
4438+ # handlersocketが接続を受け付けるポート(参照系リクエスト用)
4439+ handlersocket_port_wr = 9999
4440+ # handlersocketが接続を受け付けるポート(更新系リクエスト用)
4441+ handlersocket_address =
4442+ # handlersocketがバインドするアドレス(空のままでOK)
4443+ handlersocket_verbose = 0
4444+ # デバッグ用
4445+ handlersocket_timeout = 300
4446+ # 通信タイムアウト(秒)
4447+ handlersocket_threads = 16
4448+ # handlersocketのワーカースレッド数
4449+ thread_concurrency = 128
4450+ # handlersocketが幾つかのスレッドを占有するため、大きめの
4451+ # 値を指定してください
4452+ open_files_limit = 65535
4453+ # ソケットを大量に開けるようにするため、大きめの値を指定し
4454+ # てください
4455+
4456+以下のクエリを実行します。
4457+
4458+ mysql> install plugin handlersocket soname 'handlersocket.so';
4459+ Query OK, 0 rows affected (0.06 sec)
4460+
4461+以上でhandlersocketへクライアントからアクセスできるようになります。
4462+
4463
4464=== added file 'HandlerSocket-Plugin-for-MySQL/docs-ja/perl-client.ja.txt'
4465--- HandlerSocket-Plugin-for-MySQL/docs-ja/perl-client.ja.txt 1970-01-01 00:00:00 +0000
4466+++ HandlerSocket-Plugin-for-MySQL/docs-ja/perl-client.ja.txt 2012-05-17 04:17:38 +0000
4467@@ -0,0 +1,118 @@
4468+
4469+-----------------------------------------------------------------
4470+handlersocketプラグインへの接続を開くには、Net::HandlerSocketオブ
4471+ジェクトを作成します。
4472+
4473+ use Net::HandlerSocket;
4474+ my $args = { host => 'localhost', port => 9998 };
4475+ my $hs = new Net::HandlerSocket($args);
4476+
4477+-----------------------------------------------------------------
4478+検索などの命令を実行する前に、処理対象となる索引を開く必要があり
4479+ます。
4480+
4481+ my $err = $hs->open_index(3, 'database1', 'table1', 'PRIMARY',
4482+ 'f1,f2');
4483+ die $hs->get_error() if $res->[0] != 0;
4484+
4485+最初の引数は開く索引に付ける番号です。付けた番号は同一の
4486+Net::HandlerSocketオブジェクトについてのみ有効です。第4引数は開く
4487+索引の名前で、「PRIMARY」が指定され場合はプライマリキーが開かれま
4488+す。第5引数は「,」で区切られた列名のリストです。
4489+
4490+-----------------------------------------------------------------
4491+テーブルから索引を使って行を取得するには、execute_singleメソッド
4492+を呼びます。
4493+
4494+ my $res = $hs->execute_single(3, '=', [ 'foo' ], 1, 0);
4495+ die $hs->get_error() if $res->[0] != 0;
4496+ shift(@$res);
4497+
4498+最初の引数は索引の番号で、同じNet::HandlerSocketオブジェクトへ
4499+open_indexで付けたものでなければなりません。第2引数には操作を指定
4500+します。現在のバージョンでは、「=」、「>=」、「<=」、「>」、「<」
4501+の操作が利用可能です。第3引数は配列への参照で、これは探すべき行の
4502+キー値を指定します。配列の長さは索引のキーの個数と同じか少ない数
4503+でなければなりません。第4引数と第5引数はそれぞれ、取得する最大行
4504+数、取得前に読み飛ばす行数を指定します。取得される列は対応する
4505+open_index呼び出しの第5引数で指定されたものになります。
4506+
4507+execute_singleメソッドは常に配列への参照を返します。最初の要素は
4508+エラーコードで、これが0ならば成功を表します。残りの要素は列の値で
4509+す。もし取得されたデータが複数行の場合は、それが一つの配列へ連結
4510+された形で格納されています。例えば、5行3列のデータの場合、次のよ
4511+うなコードによってその内容を取得できます。
4512+
4513+ die $hs->get_error() if $res->[0] != 0;
4514+ shift(@$res);
4515+ for (my $row = 0; $row < 5; ++$row) {
4516+ for (my $col = 0; $col < 3; ++$col) {
4517+ my $value = $res->[$row * 5 + $col];
4518+ # ...
4519+ }
4520+ }
4521+
4522+-----------------------------------------------------------------
4523+行を更新または削除するには、更に多くの引数を指定して
4524+execute_singleメソッドを呼び出します。書き込み処理をするには、
4525+対象のNet::HandlerSocketオブジェクトは更新用handlersocketワーカ(既
4526+定ではポート9999)へ接続されたものでなくてはなりません。
4527+(安全のため、ポート9998は参照処理だけを受け付け、ポート9999は更新
4528+処理も受け付けるようになっています。ポート9999は参照処理も受け付
4529+けますが、レコードロック等の影響で遅くなります。ポート番号は
4530+mysqldの「handlersocket_port」と「handlersocket_port_wr」の設定項
4531+目で変更できます。)
4532+
4533+ my $args = { host => 'localhost', port => 9999 };
4534+ my $hs = new Net::HandlerSocket($args);
4535+
4536+ my $res = $hs->execute_single(3, '=', [ 'bar' ], 1, 0, 'U',
4537+ [ 'fubar', 'hoge' ]);
4538+ die $hs->get_error() if $res->[0] != 0;
4539+ my $num_updated_rows = $res->[1];
4540+
4541+ my $res = $hs->execute_single(3, '=', [ 'baz' ], 1, 0, 'D');
4542+ die $hs->get_error() if $res->[0] != 0;
4543+ my $num_deleted_rows = $res->[1];
4544+
4545+execute_singleの第6引数は変更処理の種類を指定します。現在のバー
4546+ジョンでは「U」と「D」が利用可能です。「U」については、第7引数で
4547+新しい値を指定します。更新される列は、対応するopen_index呼び出し
4548+の第5引数で指定されたものになります。「D」については第7引数は省
4549+略できます。
4550+
4551+-----------------------------------------------------------------
4552+execute_singleメソッドは列の挿入にも使用できます。
4553+
4554+ my $res = $hs->execute_single(3, '+', [ 'foo', 'bar', 'baz' ]);
4555+ die $hs->get_error() if $res->[0] != 0;
4556+ my $num_inserted_rows = $res->[1];
4557+
4558+第3引数は、対応するopen_index呼び出しの第5引数の列リストと同じだ
4559+けの長さの配列への参照でなければなりません。open_index呼び出しの
4560+第5引数に指定されていない列については、その列の既定値がセットされ
4561+ます。
4562+
4563+-----------------------------------------------------------------
4564+execute_multiメソッドを使えば、複数のリクエストを一つの呼び出しで
4565+実行することができます。これはリクエストを個別に実行するより高速
4566+です。
4567+
4568+ my $rarr = $hs->execute_multi([
4569+ [ 0, '>=', [ 'foo' ], 5, 0 ],
4570+ [ 2, '=', [ 'bar' ], 1, 0 ],
4571+ [ 4, '<', [ 'baz' ], 10, 5 ],
4572+ ]);
4573+ for my $res (@$rarr) {
4574+ die $hs->get_error() if $res->[0] != 0;
4575+ shift(@$res);
4576+ # ...
4577+ }
4578+
4579+-----------------------------------------------------------------
4580+エラーが起こると返値の配列参照の最初の要素が0以外になります。負の
4581+数の場合はI/Oエラーが起こったことを示し、その場合はその
4582+Net::HandlerSocketオブジェクトは破棄するべきです。正の値の場合は
4583+接続は維持されているため、そのオブジェクトはそれ以後も再利用でき
4584+ます。
4585+
4586
4587=== added file 'HandlerSocket-Plugin-for-MySQL/docs-ja/protocol.ja.txt'
4588--- HandlerSocket-Plugin-for-MySQL/docs-ja/protocol.ja.txt 1970-01-01 00:00:00 +0000
4589+++ HandlerSocket-Plugin-for-MySQL/docs-ja/protocol.ja.txt 2012-05-17 04:17:38 +0000
4590@@ -0,0 +1,94 @@
4591+
4592+-----------------------------------------------------------------
4593+handlersocketの通信プロトコル
4594+
4595+-----------------------------------------------------------------
4596+構文
4597+
4598+・コマンド行は改行(LF)で終わる。
4599+・コマンド行は複数のトークンからなり、トークン間はTABで区切られる。
4600+・トークンはNULLトークンか、文字列トークンのいずれか。
4601+・NULLトークンは単一のNUL文字であらわされる。
4602+・文字列トークンは、0バイト以上の文字列であらわされる。ただし0x10
4603+ 未満の文字については0x01を前置し、0x40を加えたコードであらわさ
4604+ れる。それ以外の文字はその文字自身のコードであらわされる。
4605+
4606+-----------------------------------------------------------------
4607+リクエストとレスポンス
4608+
4609+・接続が確立した直後の状態では、まずクライアントがコマンド行を送
4610+ る。(リクエスト)
4611+・サーバはクライアントが送ったリクエストと丁度同じ数のコマンド行
4612+ を返す。(レスポンス)
4613+・リクエストはパイプライン化してよい。つまりクライアントは前に
4614+ 送ったリクエストに対する返事を待たずに次のリクエストを送っても
4615+ よい。
4616+
4617+-----------------------------------------------------------------
4618+リクエスト
4619+
4620+・open_index命令は次のような構文を持つ。
4621+ 'P' indexid dbname tablename indexname fieldlist
4622+ indexidは開いている索引に付けられる番号で、同一接続上で後に実行
4623+ する命令の、対象索引を指定するために使われる。dbname、tablename、
4624+ indexnameはそれぞれ開きたいDB、テーブル、索引の名前。索引の名前
4625+ として"PRIMARY"を指定するとプライマリキーが開かれる。fieldlist
4626+ はカンマ区切りの列名のリスト。
4627+・find命令は次のような構文を持つ。
4628+ indexid op nflds v1 ... vn limit offset
4629+ indexidは実行対象の索引を指定する。opは索引検索の演算子(後述)。
4630+ v1からvnは可変長で、その個数はnflds。nfldsはindexidで指定された
4631+ open_index命令のindexnameの索引のfieldlistのフィールド数に等し
4632+ いか小さくなくてはならない。m2からmkは可変長で、その個数は
4633+ indexidで指定されたopen_index命令が発行された際のfieldlistに一
4634+ 致しなければならない。コマンド行のlimit以降は省略できる。limit
4635+ とoffsetは、検索条件に合致する列のうちレスポンスに返す列数の上
4636+ 限と、スキップする列数。limitとoffsetを省略した場合はそれぞれ1
4637+ と0が指定されたときと同じ動作をする。find命令はレスポンスとして、
4638+ 条件に合致した列のリストを返す。opとして指定できる演算子は次の
4639+ とおり。
4640+ '=' - v1 ... vnと一致するものを取得
4641+ '>' - v1 ... vnより大きいものを昇順に取得
4642+ '>=' - v1 ... vnに一致するか大きいものを昇順に取得
4643+ '<' - v1 ... vnより小さいものを降順に取得
4644+ '<=' - v1 ... vnに一致するか等しいものを降順に取得
4645+ nfldsが1より大きい(v1 ... vnが2個以上)ときは辞書式順序で比較さ
4646+ れる。
4647+・find_modify命令は次のような構文を持つ。
4648+ indexid op nflds v1 ... vn limit offset modop m1 ... mk
4649+ modopより前の部分はfind命令と同等で、これによって操作対象の行を
4650+ 指定する。その操作対象の行に対しmodopで指定された変更処理を実行
4651+ する。m1 ... mkは可変長で、省略できる。modopは次いずれか。
4652+ 'U' - indexidで指定されたopen_index命令のfieldlist列
4653+ の内容を、m1 ... mkの値で更新する。
4654+ 'D' - 対象の行を削除する。m1 ... mkの値は無視される。
4655+・insert命令はのような構文を持つ。
4656+ indexid '+' nflds v1 ... vn
4657+ indexidで指定されたテーブルに、列を挿入する。v1 ... vnは可変長
4658+ で、その個数はnflds。nfldsはindexidで指定されたopen_index命令の
4659+ indexnameの索引のfieldlistのフィールド数に等しいか小さくなくて
4660+ はならない。
4661+
4662+-----------------------------------------------------------------
4663+レスポンス
4664+
4665+・open_index命令が成功したとき、レスポンスは次の構文を持つ。
4666+ '0' '1'
4667+・find命令が成功したとき、レスポンスは次の構文を持つ。
4668+ '0' nflds v1 ... vn
4669+ nfldsは結果セットの列の数をあらわす。v1 ... vnは可変長で、その
4670+ 長さはnfldsの整数倍。v1 ... vnは空のこともあり、それは条件に合
4671+ 致するレコードが存在しなかったことをあらわす。結果セットが複数
4672+ 行になったときはv1 ... vnの長さがnfldsの2倍以上となり、最初の
4673+ 行から順にv1 ... vnにセットされる。
4674+・modify命令が成功したとき、レスポンスは次の構文を持つ。
4675+ '0' '1' nummod
4676+ nummodは変更が施された行数。nummodが0のときは変更された行が無
4677+ かったことをあらわす。
4678+・insert命令が成功したとき、レスポンスは次の構文を持つ。
4679+ '0' '1'
4680+・命令が失敗したとき、レスポンスは命令に関わらず次の構文を持つ。
4681+ err '1' message
4682+ errは0以外の数値で、エラーコードをあらわす。messageは人間可読な
4683+ エラーメッセージ。ただしmessageが無いこともある。
4684+
4685
4686=== added directory 'HandlerSocket-Plugin-for-MySQL/handlersocket'
4687=== added file 'HandlerSocket-Plugin-for-MySQL/handlersocket/COPYRIGHT.txt'
4688--- HandlerSocket-Plugin-for-MySQL/handlersocket/COPYRIGHT.txt 1970-01-01 00:00:00 +0000
4689+++ HandlerSocket-Plugin-for-MySQL/handlersocket/COPYRIGHT.txt 2012-05-17 04:17:38 +0000
4690@@ -0,0 +1,27 @@
4691+
4692+ Copyright (c) 2010 DeNA Co.,Ltd.
4693+ All rights reserved.
4694+
4695+ Redistribution and use in source and binary forms, with or without
4696+ modification, are permitted provided that the following conditions are met:
4697+
4698+ * Redistributions of source code must retain the above copyright
4699+ notice, this list of conditions and the following disclaimer.
4700+ * Redistributions in binary form must reproduce the above copyright
4701+ notice, this list of conditions and the following disclaimer in the
4702+ documentation and/or other materials provided with the distribution.
4703+ * Neither the name of DeNA Co.,Ltd. nor the names of its contributors
4704+ may be used to endorse or promote products derived from this software
4705+ without specific prior written permission.
4706+
4707+ THIS SOFTWARE IS PROVIDED BY DeNA Co.,Ltd. "AS IS" AND ANY EXPRESS OR
4708+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
4709+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
4710+ EVENT SHALL DeNA Co.,Ltd. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
4711+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
4712+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
4713+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
4714+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
4715+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
4716+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4717+
4718
4719=== added file 'HandlerSocket-Plugin-for-MySQL/handlersocket/Makefile.am'
4720--- HandlerSocket-Plugin-for-MySQL/handlersocket/Makefile.am 1970-01-01 00:00:00 +0000
4721+++ HandlerSocket-Plugin-for-MySQL/handlersocket/Makefile.am 2012-05-17 04:17:38 +0000
4722@@ -0,0 +1,10 @@
4723+pkgplugindir = $(PLUGIN_DIR)
4724+noinst_HEADERS = database.hpp hstcpsvr.hpp hstcpsvr_worker.hpp mysql_incl.hpp
4725+pkgplugin_LTLIBRARIES = handlersocket.la
4726+handlersocket_la_LDFLAGS = -module ../libhsclient/libhsclient.la
4727+handlersocket_la_CFLAGS = $(MYSQL_INC) $(MYSQL_CFLAGS) $(AM_CFLAGS) \
4728+ -I../libhsclient
4729+handlersocket_la_CXXFLAGS = $(MYSQL_INC) $(MYSQL_CFLAGS) $(AM_CFLAGS) \
4730+ -I../libhsclient
4731+handlersocket_la_SOURCES = database.cpp handlersocket.cpp \
4732+ hstcpsvr_worker.cpp hstcpsvr.cpp
4733
4734=== added file 'HandlerSocket-Plugin-for-MySQL/handlersocket/Makefile.plain.template'
4735--- HandlerSocket-Plugin-for-MySQL/handlersocket/Makefile.plain.template 1970-01-01 00:00:00 +0000
4736+++ HandlerSocket-Plugin-for-MySQL/handlersocket/Makefile.plain.template 2012-05-17 04:17:38 +0000
4737@@ -0,0 +1,31 @@
4738+
4739+MYSQL_INC = HANDLERSOCKET_MYSQL_INC
4740+MYSQL_LIB = HANDLERSOCKET_MYSQL_LIB
4741+
4742+CXX = g++ -Wall -g -fno-rtti -fno-exceptions -fPIC -DPIC
4743+LIBS = $(MYSQL_LIB) -lhsclient -lpthread -lz
4744+CXXFLAGS = -I/usr/include/handlersocket $(MYSQL_INC)
4745+LDFLAGS =
4746+
4747+CXXFLAGS += -O3 -DNDEBUG
4748+
4749+HANDLERSOCKET_OBJS = database.o hstcpsvr.o hstcpsvr_worker.o
4750+
4751+all: handlersocket.so
4752+
4753+handlersocket.so: $(HANDLERSOCKET_OBJS) handlersocket.cpp
4754+ $(CXX) $(CXXFLAGS) -fno-strict-aliasing -shared $^ -o $@ $(LDFLAGS) \
4755+ -Wl,-soname -Wl,$@ $(LIBS)
4756+clean:
4757+ rm -f *.a *.so *.o
4758+
4759+LIBDIR = $(shell \
4760+ if [ -e /usr/lib64/mysql ]; then echo /usr/lib64; else echo /usr/lib; fi)
4761+
4762+install: handlersocket.so
4763+ sudo sh -c 'ulimit -c unlimited ; /etc/init.d/mysql stop ; \
4764+ cp handlersocket.so handlersocket.so.cpy && \
4765+ mv handlersocket.so.cpy \
4766+ $(LIBDIR)/mysql/plugin/handlersocket.so && \
4767+ /etc/init.d/mysql start'
4768+
4769
4770=== added file 'HandlerSocket-Plugin-for-MySQL/handlersocket/database.cpp'
4771--- HandlerSocket-Plugin-for-MySQL/handlersocket/database.cpp 1970-01-01 00:00:00 +0000
4772+++ HandlerSocket-Plugin-for-MySQL/handlersocket/database.cpp 2012-05-17 04:17:38 +0000
4773@@ -0,0 +1,1183 @@
4774+
4775+// vim:sw=2:ai
4776+
4777+/*
4778+ * Copyright (C) 2010 DeNA Co.,Ltd.. All rights reserved.
4779+ * See COPYRIGHT.txt for details.
4780+ */
4781+
4782+#include <stdlib.h>
4783+#include <stdio.h>
4784+#include <string.h>
4785+
4786+#include "database.hpp"
4787+#include "string_util.hpp"
4788+#include "escape.hpp"
4789+#include "mysql_incl.hpp"
4790+
4791+#define DBG_KEY(x)
4792+#define DBG_SHUT(x)
4793+#define DBG_LOCK(x)
4794+#define DBG_THR(x)
4795+#define DBG_CMP(x)
4796+#define DBG_FLD(x)
4797+#define DBG_FILTER(x)
4798+#define DBG_REFCNT(x)
4799+#define DBG_KEYLEN(x)
4800+#define DBG_DELETED
4801+
4802+/* status variables */
4803+unsigned long long int open_tables_count;
4804+unsigned long long int close_tables_count;
4805+unsigned long long int lock_tables_count;
4806+unsigned long long int unlock_tables_count;
4807+unsigned long long int index_exec_count;
4808+
4809+namespace dena {
4810+
4811+prep_stmt::prep_stmt()
4812+ : dbctx(0), table_id(static_cast<size_t>(-1)),
4813+ idxnum(static_cast<size_t>(-1))
4814+{
4815+}
4816+prep_stmt::prep_stmt(dbcontext_i *c, size_t tbl, size_t idx,
4817+ const fields_type& rf, const fields_type& ff)
4818+ : dbctx(c), table_id(tbl), idxnum(idx), ret_fields(rf), filter_fields(ff)
4819+{
4820+ if (dbctx) {
4821+ dbctx->table_addref(table_id);
4822+ }
4823+}
4824+prep_stmt::~prep_stmt()
4825+{
4826+ if (dbctx) {
4827+ dbctx->table_release(table_id);
4828+ }
4829+}
4830+
4831+prep_stmt::prep_stmt(const prep_stmt& x)
4832+ : dbctx(x.dbctx), table_id(x.table_id), idxnum(x.idxnum),
4833+ ret_fields(x.ret_fields), filter_fields(x.filter_fields)
4834+{
4835+ if (dbctx) {
4836+ dbctx->table_addref(table_id);
4837+ }
4838+}
4839+
4840+prep_stmt&
4841+prep_stmt::operator =(const prep_stmt& x)
4842+{
4843+ if (this != &x) {
4844+ if (dbctx) {
4845+ dbctx->table_release(table_id);
4846+ }
4847+ dbctx = x.dbctx;
4848+ table_id = x.table_id;
4849+ idxnum = x.idxnum;
4850+ ret_fields = x.ret_fields;
4851+ filter_fields = x.filter_fields;
4852+ if (dbctx) {
4853+ dbctx->table_addref(table_id);
4854+ }
4855+ }
4856+ return *this;
4857+}
4858+
4859+struct database : public database_i, private noncopyable {
4860+ database(const config& c);
4861+ virtual ~database();
4862+ virtual dbcontext_ptr create_context(bool for_write) volatile;
4863+ virtual void stop() volatile;
4864+ virtual const config& get_conf() const volatile;
4865+ public:
4866+ int child_running;
4867+ private:
4868+ config conf;
4869+};
4870+
4871+struct tablevec_entry {
4872+ TABLE *table;
4873+ size_t refcount;
4874+ bool modified;
4875+ tablevec_entry() : table(0), refcount(0), modified(false) { }
4876+};
4877+
4878+struct expr_user_lock : private noncopyable {
4879+ expr_user_lock(THD *thd, int timeout)
4880+ : lck_key("handlersocket_wr", 16, &my_charset_latin1),
4881+ lck_timeout(timeout),
4882+ lck_func_get_lock(&lck_key, &lck_timeout),
4883+ lck_func_release_lock(&lck_key)
4884+ {
4885+ lck_key.fix_fields(thd, 0);
4886+ lck_timeout.fix_fields(thd, 0);
4887+ lck_func_get_lock.fix_fields(thd, 0);
4888+ lck_func_release_lock.fix_fields(thd, 0);
4889+ }
4890+ long long get_lock() {
4891+ return lck_func_get_lock.val_int();
4892+ }
4893+ long long release_lock() {
4894+ return lck_func_release_lock.val_int();
4895+ }
4896+ private:
4897+ Item_string lck_key;
4898+ Item_int lck_timeout;
4899+ Item_func_get_lock lck_func_get_lock;
4900+ Item_func_release_lock lck_func_release_lock;
4901+};
4902+
4903+struct dbcontext : public dbcontext_i, private noncopyable {
4904+ dbcontext(volatile database *d, bool for_write);
4905+ virtual ~dbcontext();
4906+ virtual void init_thread(const void *stack_botton,
4907+ volatile int& shutdown_flag);
4908+ virtual void term_thread();
4909+ virtual bool check_alive();
4910+ virtual void lock_tables_if();
4911+ virtual void unlock_tables_if();
4912+ virtual bool get_commit_error();
4913+ virtual void clear_error();
4914+ virtual void close_tables_if();
4915+ virtual void table_addref(size_t tbl_id);
4916+ virtual void table_release(size_t tbl_id);
4917+ virtual void cmd_open(dbcallback_i& cb, const cmd_open_args& args);
4918+ virtual void cmd_exec(dbcallback_i& cb, const cmd_exec_args& args);
4919+ virtual void set_statistics(size_t num_conns, size_t num_active);
4920+ private:
4921+ int set_thread_message(const char *fmt, ...)
4922+ __attribute__((format (printf, 2, 3)));
4923+ bool parse_fields(TABLE *const table, const char *str,
4924+ prep_stmt::fields_type& flds);
4925+ void cmd_insert_internal(dbcallback_i& cb, const prep_stmt& pst,
4926+ const string_ref *fvals, size_t fvalslen);
4927+ void cmd_sql_internal(dbcallback_i& cb, const prep_stmt& pst,
4928+ const string_ref *fvals, size_t fvalslen);
4929+ void cmd_find_internal(dbcallback_i& cb, const prep_stmt& pst,
4930+ ha_rkey_function find_flag, const cmd_exec_args& args);
4931+ size_t calc_filter_buf_size(TABLE *table, const prep_stmt& pst,
4932+ const record_filter *filters);
4933+ bool fill_filter_buf(TABLE *table, const prep_stmt& pst,
4934+ const record_filter *filters, uchar *filter_buf, size_t len);
4935+ int check_filter(dbcallback_i& cb, TABLE *table, const prep_stmt& pst,
4936+ const record_filter *filters, const uchar *filter_buf);
4937+ void resp_record(dbcallback_i& cb, TABLE *const table, const prep_stmt& pst);
4938+ void dump_record(dbcallback_i& cb, TABLE *const table, const prep_stmt& pst);
4939+ int modify_record(dbcallback_i& cb, TABLE *const table,
4940+ const prep_stmt& pst, const cmd_exec_args& args, char mod_op,
4941+ size_t& modified_count);
4942+ private:
4943+ typedef std::vector<tablevec_entry> table_vec_type;
4944+ typedef std::pair<std::string, std::string> table_name_type;
4945+ typedef std::map<table_name_type, size_t> table_map_type;
4946+ private:
4947+ volatile database *const dbref;
4948+ bool for_write_flag;
4949+ THD *thd;
4950+ MYSQL_LOCK *lock;
4951+ bool lock_failed;
4952+ std::auto_ptr<expr_user_lock> user_lock;
4953+ int user_level_lock_timeout;
4954+ bool user_level_lock_locked;
4955+ bool commit_error;
4956+ std::vector<char> info_message_buf;
4957+ table_vec_type table_vec;
4958+ table_map_type table_map;
4959+};
4960+
4961+database::database(const config& c)
4962+ : child_running(1), conf(c)
4963+{
4964+}
4965+
4966+database::~database()
4967+{
4968+}
4969+
4970+dbcontext_ptr
4971+database::create_context(bool for_write) volatile
4972+{
4973+ return dbcontext_ptr(new dbcontext(this, for_write));
4974+}
4975+
4976+void
4977+database::stop() volatile
4978+{
4979+ child_running = false;
4980+}
4981+
4982+const config&
4983+database::get_conf() const volatile
4984+{
4985+ return const_cast<const config&>(conf);
4986+}
4987+
4988+database_ptr
4989+database_i::create(const config& conf)
4990+{
4991+ return database_ptr(new database(conf));
4992+}
4993+
4994+dbcontext::dbcontext(volatile database *d, bool for_write)
4995+ : dbref(d), for_write_flag(for_write), thd(0), lock(0), lock_failed(false),
4996+ user_level_lock_timeout(0), user_level_lock_locked(false),
4997+ commit_error(false)
4998+{
4999+ info_message_buf.resize(8192);
5000+ user_level_lock_timeout = d->get_conf().get_int("wrlock_timeout", 12);
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches