Merge lp:~raghavendra-prabhu/percona-xtradb-cluster/release-5.5.31 into lp:percona-xtradb-cluster/percona-xtradb-cluster-5.5

Proposed by Raghavendra D Prabhu
Status: Merged
Approved by: Laurynas Biveinis
Approved revision: no longer in the source branch.
Merged at revision: 388
Proposed branch: lp:~raghavendra-prabhu/percona-xtradb-cluster/release-5.5.31
Merge into: lp:percona-xtradb-cluster/percona-xtradb-cluster-5.5
Diff against target: 152169 lines (+73046/-69330)
333 files modified
Makefile.ps (+2/-2)
Percona-Server/BUILD/compile-alpha-debug (+2/-1)
Percona-Server/BUILD/compile-amd64-debug-max (+2/-1)
Percona-Server/BUILD/compile-amd64-max (+2/-1)
Percona-Server/BUILD/compile-darwin-mwcc (+2/-1)
Percona-Server/BUILD/compile-hpux11-parisc2-aCC (+2/-1)
Percona-Server/BUILD/compile-irix-mips64-mipspro (+2/-1)
Percona-Server/BUILD/compile-ndb-autotest (+1/-1)
Percona-Server/BUILD/compile-pentium (+2/-1)
Percona-Server/BUILD/compile-pentium-debug-max-no-embedded (+2/-1)
Percona-Server/BUILD/compile-pentium-debug-max-no-ndb (+1/-1)
Percona-Server/BUILD/compile-pentium-max (+2/-1)
Percona-Server/BUILD/compile-pentium-pgcc (+2/-1)
Percona-Server/BUILD/compile-ppc-debug (+2/-1)
Percona-Server/BUILD/compile-ppc-debug-max (+2/-1)
Percona-Server/BUILD/compile-ppc-debug-max-no-ndb (+2/-1)
Percona-Server/BUILD/compile-ppc-max (+2/-1)
Percona-Server/BUILD/compile-solaris-sparc-debug (+2/-1)
Percona-Server/BUILD/compile-solaris-sparc-purify (+2/-1)
Percona-Server/VERSION (+1/-1)
Percona-Server/client/client_priv.h (+1/-1)
Percona-Server/client/completion_hash.h (+2/-1)
Percona-Server/client/echo.c (+2/-1)
Percona-Server/client/get_password.c (+2/-1)
Percona-Server/client/mysqlcheck.c (+61/-27)
Percona-Server/client/mysqldump.c (+1/-1)
Percona-Server/client/mysqltest.cc (+4/-1)
Percona-Server/client/sql_string.cc (+2/-2)
Percona-Server/cmake/configure.pl (+1/-1)
Percona-Server/cmake/create_initial_db.cmake.in (+1/-1)
Percona-Server/cmake/make_dist.cmake.in (+1/-1)
Percona-Server/cmake/mysql_version.cmake (+1/-1)
Percona-Server/cmake/package_name.cmake (+1/-1)
Percona-Server/cmake/plugin.cmake (+1/-1)
Percona-Server/cmake/ssl.cmake (+1/-1)
Percona-Server/cmake/wsrep.cmake (+1/-1)
Percona-Server/cmake/zlib.cmake (+6/-2)
Percona-Server/configure.cmake (+1/-1)
Percona-Server/extra/charset2html.c (+2/-1)
Percona-Server/extra/yassl/CMakeLists.txt (+1/-1)
Percona-Server/extra/yassl/examples/client/client.cpp (+1/-1)
Percona-Server/extra/yassl/examples/echoclient/echoclient.cpp (+1/-1)
Percona-Server/extra/yassl/examples/echoserver/echoserver.cpp (+1/-1)
Percona-Server/extra/yassl/examples/server/server.cpp (+1/-1)
Percona-Server/extra/yassl/include/buffer.hpp (+1/-1)
Percona-Server/extra/yassl/include/cert_wrapper.hpp (+1/-2)
Percona-Server/extra/yassl/include/lock.hpp (+1/-1)
Percona-Server/extra/yassl/include/openssl/prefix_ssl.h (+1/-2)
Percona-Server/extra/yassl/include/socket_wrapper.hpp (+1/-1)
Percona-Server/extra/yassl/include/yassl_error.hpp (+3/-3)
Percona-Server/extra/yassl/include/yassl_imp.hpp (+1/-2)
Percona-Server/extra/yassl/include/yassl_int.hpp (+1/-1)
Percona-Server/extra/yassl/include/yassl_types.hpp (+6/-3)
Percona-Server/extra/yassl/src/buffer.cpp (+1/-2)
Percona-Server/extra/yassl/src/cert_wrapper.cpp (+1/-2)
Percona-Server/extra/yassl/src/crypto_wrapper.cpp (+1/-1)
Percona-Server/extra/yassl/src/handshake.cpp (+36/-2)
Percona-Server/extra/yassl/src/lock.cpp (+1/-1)
Percona-Server/extra/yassl/src/make.bat (+1/-1)
Percona-Server/extra/yassl/src/socket_wrapper.cpp (+1/-1)
Percona-Server/extra/yassl/src/ssl.cpp (+1/-2)
Percona-Server/extra/yassl/src/template_instnt.cpp (+2/-1)
Percona-Server/extra/yassl/src/yassl.cpp (+1/-1)
Percona-Server/extra/yassl/src/yassl_error.cpp (+5/-1)
Percona-Server/extra/yassl/src/yassl_imp.cpp (+172/-26)
Percona-Server/extra/yassl/taocrypt/benchmark/benchmark.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/benchmark/make.bat (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/aes.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/asn.hpp (+1/-2)
Percona-Server/extra/yassl/taocrypt/include/block.hpp (+1/-2)
Percona-Server/extra/yassl/taocrypt/include/blowfish.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/des.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/hash.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/hc128.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/integer.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/kernelc.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/misc.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/modes.hpp (+1/-2)
Percona-Server/extra/yassl/taocrypt/include/pwdbased.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/rabbit.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/rsa.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/runtime.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/include/types.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/mySTL/stdexcept.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/mySTL/vector.hpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/aes.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/aestables.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/algebra.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/arc4.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/blowfish.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/coding.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/dsa.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/hash.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/hc128.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/make.bat (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/md4.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/md5.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/misc.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/rabbit.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/random.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/ripemd.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/rsa.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/sha.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/template_instnt.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/src/twofish.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/test/make.bat (+1/-1)
Percona-Server/extra/yassl/taocrypt/test/memory.cpp (+1/-1)
Percona-Server/extra/yassl/taocrypt/test/test.cpp (+1/-1)
Percona-Server/extra/yassl/testsuite/make.bat (+1/-1)
Percona-Server/extra/yassl/testsuite/test.hpp (+1/-1)
Percona-Server/extra/yassl/testsuite/testsuite.cpp (+1/-1)
Percona-Server/include/base64.h (+2/-1)
Percona-Server/include/errmsg.h (+1/-0)
Percona-Server/include/ft_global.h (+1/-1)
Percona-Server/include/m_ctype.h (+3/-1)
Percona-Server/include/m_string.h (+1/-1)
Percona-Server/include/my_base.h (+1/-0)
Percona-Server/include/my_md5.h (+2/-1)
Percona-Server/include/my_sys.h (+1/-1)
Percona-Server/include/my_user.h (+2/-1)
Percona-Server/include/my_xml.h (+2/-1)
Percona-Server/include/myisampack.h (+1/-1)
Percona-Server/include/mysql.h (+1/-1)
Percona-Server/include/mysql/service_my_snprintf.h (+1/-1)
Percona-Server/include/mysql/thread_pool_priv.h (+1/-1)
Percona-Server/include/mysql_time.h (+2/-1)
Percona-Server/include/mysql_version.h.in (+2/-1)
Percona-Server/include/welcome_copyright_notice.h (+1/-1)
Percona-Server/libmysql/CMakeLists.txt (+5/-2)
Percona-Server/libmysql/errmsg.c (+1/-0)
Percona-Server/libmysql/libmysql.c (+8/-1)
Percona-Server/libmysql/libmysql.map (+146/-0)
Percona-Server/mysql-test/collections/default.experimental (+1/-0)
Percona-Server/mysql-test/include/get_relay_log_pos.inc (+1/-1)
Percona-Server/mysql-test/include/rpl_init.inc (+0/-3)
Percona-Server/mysql-test/mysql-test-run.pl (+23/-4)
Percona-Server/mysql-test/r/cast.result (+18/-0)
Percona-Server/mysql-test/r/change_user_notembedded.result (+5/-0)
Percona-Server/mysql-test/r/ctype_utf8mb4.result (+18/-0)
Percona-Server/mysql-test/r/failed_auth_3909.result (+20/-0)
Percona-Server/mysql-test/r/join_outer.result (+32/-0)
Percona-Server/mysql-test/r/mysqltest.result (+3/-3)
Percona-Server/mysql-test/r/partition.result (+2/-2)
Percona-Server/mysql-test/r/percona_server_variables_debug.result (+2/-0)
Percona-Server/mysql-test/r/percona_server_variables_release.result (+1/-0)
Percona-Server/mysql-test/r/show_check.result (+9/-9)
Percona-Server/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result (+1/-0)
Percona-Server/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test (+3/-1)
Percona-Server/mysql-test/suite/binlog/t/disabled.def (+1/-1)
Percona-Server/mysql-test/suite/innodb/r/innodb_bug14147491.result (+15/-4)
Percona-Server/mysql-test/suite/innodb/t/innodb_bug12400341.test (+4/-0)
Percona-Server/mysql-test/suite/innodb/t/innodb_bug14147491.test (+45/-9)
Percona-Server/mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result (+11605/-11605)
Percona-Server/mysql-test/suite/parts/r/partition_alter1_1_innodb.result (+32/-32)
Percona-Server/mysql-test/suite/parts/r/partition_alter1_2_innodb.result (+21002/-21002)
Percona-Server/mysql-test/suite/parts/r/partition_alter2_1_1_innodb.result (+40/-40)
Percona-Server/mysql-test/suite/parts/r/partition_alter2_1_2_innodb.result (+40/-40)
Percona-Server/mysql-test/suite/parts/r/partition_alter2_2_1_innodb.result (+11354/-11354)
Percona-Server/mysql-test/suite/parts/r/partition_alter2_2_2_innodb.result (+40/-40)
Percona-Server/mysql-test/suite/parts/r/partition_alter4_innodb.result (+208/-208)
Percona-Server/mysql-test/suite/parts/r/partition_basic_innodb.result (+23390/-23390)
Percona-Server/mysql-test/suite/parts/r/partition_engine_innodb.result (+11/-11)
Percona-Server/mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result (+12/-0)
Percona-Server/mysql-test/suite/rpl/r/rpl_percona_bug1092593.result (+20/-0)
Percona-Server/mysql-test/suite/rpl/r/rpl_row_until.result (+12/-10)
Percona-Server/mysql-test/suite/rpl/r/rpl_stm_until.result (+1/-11)
Percona-Server/mysql-test/suite/rpl/t/disabled.def (+0/-1)
Percona-Server/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test (+12/-0)
Percona-Server/mysql-test/suite/rpl/t/rpl_percona_bug1092593-slave.opt (+1/-0)
Percona-Server/mysql-test/suite/rpl/t/rpl_percona_bug1092593.test (+81/-0)
Percona-Server/mysql-test/suite/rpl/t/rpl_row_until.test (+52/-25)
Percona-Server/mysql-test/suite/rpl/t/rpl_stm_until.test (+2/-33)
Percona-Server/mysql-test/suite/sys_vars/r/innodb_buffer_pool_evict_basic.result (+7/-0)
Percona-Server/mysql-test/suite/sys_vars/r/innodb_use_atomic_writes_basic.result (+30/-0)
Percona-Server/mysql-test/suite/sys_vars/t/innodb_buffer_pool_evict_basic.test (+10/-0)
Percona-Server/mysql-test/suite/sys_vars/t/innodb_use_atomic_writes_basic.test (+29/-0)
Percona-Server/mysql-test/t/cast.test (+13/-0)
Percona-Server/mysql-test/t/change_user_notembedded.test (+24/-0)
Percona-Server/mysql-test/t/ctype_utf8mb4.test (+15/-0)
Percona-Server/mysql-test/t/failed_auth_3909.test (+37/-0)
Percona-Server/mysql-test/t/join_outer.test (+30/-0)
Percona-Server/mysql-test/t/mysql_plugin.test (+16/-50)
Percona-Server/mysql-test/t/percona_bug1170103.test (+23/-0)
Percona-Server/mysys/default.c (+37/-0)
Percona-Server/mysys/errors.c (+2/-2)
Percona-Server/mysys/mf_keycache.c (+2/-1)
Percona-Server/mysys/my_lockmem.c (+1/-1)
Percona-Server/mysys/my_malloc.c (+9/-3)
Percona-Server/mysys/my_once.c (+1/-1)
Percona-Server/mysys/my_write.c (+3/-3)
Percona-Server/mysys/thr_alarm.c (+8/-14)
Percona-Server/packaging/WiX/mysql_server.wxs.in (+5/-2)
Percona-Server/packaging/rpm-uln/mysql.spec.sh (+18/-11)
Percona-Server/regex/my_regex.h (+1/-1)
Percona-Server/regex/regcomp.c (+1/-1)
Percona-Server/scripts/CMakeLists.txt (+1/-1)
Percona-Server/scripts/clustercheck.sh (+2/-2)
Percona-Server/scripts/mysql_system_tables_data.sql (+9/-5)
Percona-Server/scripts/mysqld_safe.sh (+17/-4)
Percona-Server/scripts/pyclustercheck (+109/-0)
Percona-Server/scripts/wsrep_sst_common.sh (+8/-1)
Percona-Server/scripts/wsrep_sst_mysqldump.sh (+8/-8)
Percona-Server/scripts/wsrep_sst_rsync.sh (+33/-3)
Percona-Server/scripts/wsrep_sst_xtrabackup.sh (+293/-36)
Percona-Server/sql/CMakeLists.txt (+3/-9)
Percona-Server/sql/db.opt (+2/-0)
Percona-Server/sql/ha_partition.cc (+469/-25)
Percona-Server/sql/ha_partition.h (+16/-4)
Percona-Server/sql/handler.cc (+16/-2)
Percona-Server/sql/item.cc (+2/-2)
Percona-Server/sql/item.h (+19/-1)
Percona-Server/sql/item_cmpfunc.cc (+4/-3)
Percona-Server/sql/item_func.cc (+2/-2)
Percona-Server/sql/item_func.h (+12/-9)
Percona-Server/sql/item_sum.cc (+4/-0)
Percona-Server/sql/key.cc (+72/-44)
Percona-Server/sql/key.h (+3/-1)
Percona-Server/sql/log.h (+6/-0)
Percona-Server/sql/log_event.cc (+40/-5)
Percona-Server/sql/log_event.h (+28/-2)
Percona-Server/sql/mysqld.cc (+52/-9)
Percona-Server/sql/mysqld.h (+1/-0)
Percona-Server/sql/opt_range.cc (+91/-19)
Percona-Server/sql/partition_element.h (+3/-4)
Percona-Server/sql/partition_info.cc (+286/-2)
Percona-Server/sql/partition_info.h (+16/-1)
Percona-Server/sql/rpl_utility.cc (+1/-0)
Percona-Server/sql/set_var.cc (+7/-10)
Percona-Server/sql/set_var.h (+23/-7)
Percona-Server/sql/slave.cc (+0/-17)
Percona-Server/sql/sp_head.cc (+2/-1)
Percona-Server/sql/sql_acl.cc (+50/-7)
Percona-Server/sql/sql_admin.cc (+6/-2)
Percona-Server/sql/sql_admin.h (+3/-1)
Percona-Server/sql/sql_binlog.cc (+1/-1)
Percona-Server/sql/sql_class.cc (+23/-6)
Percona-Server/sql/sql_class.h (+1/-0)
Percona-Server/sql/sql_handler.cc (+10/-5)
Percona-Server/sql/sql_parse.cc (+24/-1)
Percona-Server/sql/sql_partition.cc (+200/-19)
Percona-Server/sql/sql_partition.h (+3/-2)
Percona-Server/sql/sql_partition_admin.cc (+3/-1)
Percona-Server/sql/sql_prepare.cc (+4/-3)
Percona-Server/sql/sql_repl.cc (+17/-33)
Percona-Server/sql/sql_select.cc (+5/-4)
Percona-Server/sql/sql_show.cc (+23/-15)
Percona-Server/sql/sql_string.cc (+1/-1)
Percona-Server/sql/sql_table.cc (+7/-4)
Percona-Server/sql/sql_view.cc (+9/-3)
Percona-Server/sql/sql_yacc.yy (+22/-3)
Percona-Server/sql/sys_vars.cc (+1/-1)
Percona-Server/sql/tztime.cc (+3/-0)
Percona-Server/sql/wsrep_hton.cc (+2/-0)
Percona-Server/sql/wsrep_mysqld.cc (+11/-2)
Percona-Server/sql/wsrep_mysqld.h (+1/-0)
Percona-Server/sql/wsrep_var.cc (+1/-0)
Percona-Server/storage/innobase/btr/btr0cur.c (+27/-20)
Percona-Server/storage/innobase/buf/buf0buf.c (+14/-5)
Percona-Server/storage/innobase/buf/buf0rea.c (+1/-1)
Percona-Server/storage/innobase/dict/dict0crea.c (+9/-0)
Percona-Server/storage/innobase/dict/dict0dict.c (+13/-3)
Percona-Server/storage/innobase/dyn/dyn0dyn.c (+4/-4)
Percona-Server/storage/innobase/fil/fil0fil.c (+24/-0)
Percona-Server/storage/innobase/handler/ha_innodb.cc (+169/-14)
Percona-Server/storage/innobase/handler/ha_innodb.h (+1/-0)
Percona-Server/storage/innobase/handler/i_s.cc (+70/-1)
Percona-Server/storage/innobase/ibuf/ibuf0ibuf.c (+11/-1)
Percona-Server/storage/innobase/include/db0err.h (+1/-0)
Percona-Server/storage/innobase/include/dyn0dyn.h (+50/-38)
Percona-Server/storage/innobase/include/dyn0dyn.ic (+42/-101)
Percona-Server/storage/innobase/include/ha_prototypes.h (+11/-0)
Percona-Server/storage/innobase/include/mtr0mtr.h (+6/-4)
Percona-Server/storage/innobase/include/page0zip.ic (+3/-3)
Percona-Server/storage/innobase/include/srv0srv.h (+10/-0)
Percona-Server/storage/innobase/include/trx0i_s.h (+16/-0)
Percona-Server/storage/innobase/include/trx0sys.h (+15/-15)
Percona-Server/storage/innobase/include/ut0dbg.h (+0/-40)
Percona-Server/storage/innobase/lock/lock0lock.c (+6/-1)
Percona-Server/storage/innobase/mtr/mtr0mtr.c (+80/-77)
Percona-Server/storage/innobase/os/os0file.c (+60/-0)
Percona-Server/storage/innobase/os/os0proc.c (+9/-0)
Percona-Server/storage/innobase/page/page0zip.c (+6/-5)
Percona-Server/storage/innobase/read/read0read.c (+6/-0)
Percona-Server/storage/innobase/row/row0ins.c (+12/-10)
Percona-Server/storage/innobase/row/row0mysql.c (+1/-1)
Percona-Server/storage/innobase/row/row0sel.c (+7/-3)
Percona-Server/storage/innobase/row/row0upd.c (+64/-10)
Percona-Server/storage/innobase/srv/srv0srv.c (+46/-15)
Percona-Server/storage/innobase/srv/srv0start.c (+10/-0)
Percona-Server/storage/innobase/sync/sync0arr.c (+4/-4)
Percona-Server/storage/innobase/trx/trx0i_s.c (+15/-0)
Percona-Server/storage/innobase/trx/trx0sys.c (+3/-1)
Percona-Server/storage/innobase/trx/trx0trx.c (+13/-0)
Percona-Server/storage/innobase/ut/ut0dbg.c (+1/-33)
Percona-Server/storage/innobase/ut/ut0ut.c (+2/-0)
Percona-Server/storage/myisam/mi_close.c (+6/-3)
Percona-Server/storage/myisam/mi_create.c (+8/-4)
Percona-Server/storage/myisam/mi_open.c (+29/-8)
Percona-Server/storage/myisam/mi_write.c (+8/-5)
Percona-Server/storage/myisam/myisampack.c (+2/-1)
Percona-Server/storage/perfschema/pfs_engine_table.cc (+4/-4)
Percona-Server/storage/perfschema/pfs_global.cc (+2/-2)
Percona-Server/storage/perfschema/pfs_global.h (+2/-2)
Percona-Server/strings/ctype-bin.c (+20/-7)
Percona-Server/strings/ctype-mb.c (+39/-12)
Percona-Server/strings/ctype-simple.c (+20/-6)
Percona-Server/strings/ctype-uca.c (+19/-7)
Percona-Server/strings/ctype-utf8.c (+23/-10)
Percona-Server/strings/ctype.c (+2/-0)
Percona-Server/strings/decimal.c (+2/-2)
Percona-Server/support-files/MySQL-shared-compat.spec.sh (+1/-1)
Percona-Server/support-files/mysql.server.sh (+24/-4)
Percona-Server/support-files/mysql.spec.sh (+124/-57)
Percona-Server/tests/mysql_client_test.c (+196/-160)
Percona-Server/unittest/mysys/my_vsnprintf-t.c (+3/-1)
Percona-Server/vio/viossl.c (+3/-0)
WSREP-REVISION (+1/-1)
build/build-dpkg.sh (+19/-6)
build/build-rpm.sh (+1/-2)
build/debian/additions/debian-start (+7/-0)
build/debian/control (+5/-4)
build/debian/percona-xtradb-cluster-server-5.5.install (+1/-0)
build/debian/percona-xtradb-cluster-server-5.5.mysql.init (+131/-31)
build/debian/rules (+3/-3)
build/percona-shared-compat.spec (+1/-1)
build/percona-xtradb-cluster.spec (+39/-33)
build/rpm/mysql-dubious-exports.patch (+158/-0)
doc-ps/source/conf.py (+1/-1)
doc-ps/source/performance/innodb_lazy_drop_table.rst (+5/-0)
doc-ps/source/performance/threadpool.rst (+32/-45)
doc-ps/source/release-notes/Percona-Server-5.5.30-30.2.rst (+78/-0)
doc-ps/source/release-notes/release-notes_index.rst (+1/-0)
doc-ps/source/upstream-bug-fixes.rst (+48/-18)
To merge this branch: bzr merge lp:~raghavendra-prabhu/percona-xtradb-cluster/release-5.5.31
Reviewer Review Type Date Requested Status
Laurynas Biveinis (community) Approve
Review via email: mp+168543@code.launchpad.net

Description of the change

Review required after the co-ordinates are changed. I have tested this and it looks good.

To post a comment you must log in.
Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote :

Ignore the diff shown in this MP (don't know how all of that got here)

The diff (from fix) is only the https://bazaar.launchpad.net/~raghavendra-prabhu/percona-xtradb-cluster/release-5.5.31/revision/416 (from revision 416).

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

Looks good to me.

If disk format compatibility between PXC and MySQL + Galera libs is important, then it's an important patch to push to Galera upstream.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Makefile.ps'
--- Makefile.ps 2013-04-18 16:15:44 +0000
+++ Makefile.ps 2013-06-23 08:01:44 +0000
@@ -1,7 +1,7 @@
1FETCH_CMD=wget1FETCH_CMD=wget
2MASTER_SITE=http://s3.amazonaws.com/percona.com/downloads/community2MASTER_SITE=http://s3.amazonaws.com/percona.com/downloads/community
3MYSQL_VERSION=5.5.303MYSQL_VERSION=5.5.31
4PERCONA_SERVER_VERSION=rel30.24PERCONA_SERVER_VERSION=rel30.3
5PERCONA_SERVER ?=Percona-Server-$(MYSQL_VERSION)-$(PERCONA_SERVER_VERSION)5PERCONA_SERVER ?=Percona-Server-$(MYSQL_VERSION)-$(PERCONA_SERVER_VERSION)
6PERCONA_SERVER_SHORT_1 ?=Percona-Server-$(MYSQL_VERSION)6PERCONA_SERVER_SHORT_1 ?=Percona-Server-$(MYSQL_VERSION)
7PERCONA_SERVER_SHORT_2 ?=Percona-Server7PERCONA_SERVER_SHORT_2 ?=Percona-Server
88
=== modified file 'Percona-Server/BUILD/compile-alpha-debug'
--- Percona-Server/BUILD/compile-alpha-debug 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-alpha-debug 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2000, 2005 MySQL AB3# Copyright (c) 2000, 2001, 2005-2007 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-amd64-debug-max'
--- Percona-Server/BUILD/compile-amd64-debug-max 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-amd64-debug-max 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2005 MySQL AB3# Copyright (c) 2005, 2006 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-amd64-max'
--- Percona-Server/BUILD/compile-amd64-max 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-amd64-max 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2005 MySQL AB3# Copyright (c) 2005, 2006 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-darwin-mwcc'
--- Percona-Server/BUILD/compile-darwin-mwcc 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-darwin-mwcc 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2005 MySQL AB3# Copyright (c) 2005, 2006 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-hpux11-parisc2-aCC'
--- Percona-Server/BUILD/compile-hpux11-parisc2-aCC 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-hpux11-parisc2-aCC 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#!/bin/sh1#!/bin/sh
22
3# Copyright (C) 2004, 2005 MySQL AB3# Copyright (c) 2004, 2005, 2007 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-irix-mips64-mipspro'
--- Percona-Server/BUILD/compile-irix-mips64-mipspro 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-irix-mips64-mipspro 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#!/bin/sh1#!/bin/sh
22
3# Copyright (C) 2004, 2005 MySQL AB3# Copyright (c) 2004, 2005, 2007 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-ndb-autotest'
--- Percona-Server/BUILD/compile-ndb-autotest 2010-12-29 00:26:31 +0000
+++ Percona-Server/BUILD/compile-ndb-autotest 2013-06-23 08:01:44 +0000
@@ -1,6 +1,6 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2006 MySQL AB3# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
4# 4#
5# This program is free software; you can redistribute it and/or modify5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by6# it under the terms of the GNU General Public License as published by
77
=== modified file 'Percona-Server/BUILD/compile-pentium'
--- Percona-Server/BUILD/compile-pentium 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-pentium 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2000, 2002 MySQL AB3# Copyright (c) 2000-2002, 2007 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-pentium-debug-max-no-embedded'
--- Percona-Server/BUILD/compile-pentium-debug-max-no-embedded 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-pentium-debug-max-no-embedded 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2004, 2005 MySQL AB3# Copyright (c) 2004-2006 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-pentium-debug-max-no-ndb'
--- Percona-Server/BUILD/compile-pentium-debug-max-no-ndb 2010-12-29 00:26:31 +0000
+++ Percona-Server/BUILD/compile-pentium-debug-max-no-ndb 2013-06-23 08:01:44 +0000
@@ -1,6 +1,6 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2005, 2007 MySQL AB3# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
4# 4#
5# This program is free software; you can redistribute it and/or modify5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by6# it under the terms of the GNU General Public License as published by
77
=== modified file 'Percona-Server/BUILD/compile-pentium-max'
--- Percona-Server/BUILD/compile-pentium-max 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-pentium-max 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2001, 2005 MySQL AB3# Copyright (c) 2001-2006 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-pentium-pgcc'
--- Percona-Server/BUILD/compile-pentium-pgcc 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-pentium-pgcc 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2000, 2005 MySQL AB3# Copyright (c) 2000, 2001, 2005, 2007 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-ppc-debug'
--- Percona-Server/BUILD/compile-ppc-debug 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-ppc-debug 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2004 MySQL AB3# Copyright (c) 2004, 2006 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-ppc-debug-max'
--- Percona-Server/BUILD/compile-ppc-debug-max 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-ppc-debug-max 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2004, 2005 MySQL AB3# Copyright (c) 2004-2006 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-ppc-debug-max-no-ndb'
--- Percona-Server/BUILD/compile-ppc-debug-max-no-ndb 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-ppc-debug-max-no-ndb 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2005 MySQL AB3# Copyright (c) 2005, 2006 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-ppc-max'
--- Percona-Server/BUILD/compile-ppc-max 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-ppc-max 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2004, 2005 MySQL AB3# Copyright (c) 2004-2006 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-solaris-sparc-debug'
--- Percona-Server/BUILD/compile-solaris-sparc-debug 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-solaris-sparc-debug 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#!/bin/sh1#!/bin/sh
22
3# Copyright (C) 2001, 2005 MySQL AB3# Copyright (c) 2001, 2002, 2005-2007 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/BUILD/compile-solaris-sparc-purify'
--- Percona-Server/BUILD/compile-solaris-sparc-purify 2010-12-28 23:47:05 +0000
+++ Percona-Server/BUILD/compile-solaris-sparc-purify 2013-06-23 08:01:44 +0000
@@ -1,6 +1,7 @@
1#! /bin/sh1#! /bin/sh
22
3# Copyright (C) 2000, 2005 MySQL AB3# Copyright (c) 2000-2002, 2005-2007 MySQL AB
4# Use is subject to license terms
4# 5#
5# This program is free software; you can redistribute it and/or modify6# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by7# it under the terms of the GNU General Public License as published by
78
=== modified file 'Percona-Server/VERSION'
--- Percona-Server/VERSION 2013-03-21 16:54:18 +0000
+++ Percona-Server/VERSION 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1MYSQL_VERSION_MAJOR=51MYSQL_VERSION_MAJOR=5
2MYSQL_VERSION_MINOR=52MYSQL_VERSION_MINOR=5
3MYSQL_VERSION_PATCH=303MYSQL_VERSION_PATCH=31
4MYSQL_VERSION_EXTRA=4MYSQL_VERSION_EXTRA=
55
=== modified file 'Percona-Server/client/client_priv.h'
--- Percona-Server/client/client_priv.h 2012-08-07 06:10:00 +0000
+++ Percona-Server/client/client_priv.h 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/client/completion_hash.h'
--- Percona-Server/client/completion_hash.h 2010-12-28 18:57:23 +0000
+++ Percona-Server/client/completion_hash.h 2013-06-23 08:01:44 +0000
@@ -1,4 +1,5 @@
1/* Copyright (C) 2000-2002 MySQL AB1/* Copyright (c) 2000-2002, 2006 MySQL AB
2 Use is subject to license terms
23
3 This program is free software; you can redistribute it and/or4 This program is free software; you can redistribute it and/or
4 modify it under the terms of the GNU Library General Public5 modify it under the terms of the GNU Library General Public
56
=== modified file 'Percona-Server/client/echo.c'
--- Percona-Server/client/echo.c 2007-03-20 17:31:49 +0000
+++ Percona-Server/client/echo.c 2013-06-23 08:01:44 +0000
@@ -1,4 +1,5 @@
1/* Copyright (C) 2000 MySQL AB1/* Copyright (c) 2000, 2007 MySQL AB
2 Use is subject to license terms
23
3 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
56
=== modified file 'Percona-Server/client/get_password.c'
--- Percona-Server/client/get_password.c 2008-02-19 17:45:11 +0000
+++ Percona-Server/client/get_password.c 2013-06-23 08:01:44 +0000
@@ -1,4 +1,5 @@
1/* Copyright (C) 2000 MySQL AB1/* Copyright (c) 2000, 2001, 2003, 2006, 2008 MySQL AB
2 Use is subject to license terms
23
3 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
56
=== modified file 'Percona-Server/client/mysqlcheck.c'
--- Percona-Server/client/mysqlcheck.c 2012-08-07 13:37:13 +0000
+++ Percona-Server/client/mysqlcheck.c 2013-06-23 08:01:44 +0000
@@ -15,7 +15,7 @@
15 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA15 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16*/16*/
1717
18#define CHECK_VERSION "2.5.0"18#define CHECK_VERSION "2.5.1"
1919
20#include "client_priv.h"20#include "client_priv.h"
21#include <m_ctype.h>21#include <m_ctype.h>
@@ -29,6 +29,10 @@
29#define EX_USAGE 129#define EX_USAGE 1
30#define EX_MYSQLERR 230#define EX_MYSQLERR 2
3131
32/* ALTER instead of repair. */
33#define MAX_ALTER_STR_SIZE 128 * 1024
34#define KEY_PARTITIONING_CHANGED_STR "KEY () partitioning changed"
35
32static MYSQL mysql_connection, *sock = 0;36static MYSQL mysql_connection, *sock = 0;
33static my_bool opt_alldbs = 0, opt_check_only_changed = 0, opt_extended = 0,37static my_bool opt_alldbs = 0, opt_check_only_changed = 0, opt_extended = 0,
34 opt_compress = 0, opt_databases = 0, opt_fast = 0,38 opt_compress = 0, opt_databases = 0, opt_fast = 0,
@@ -44,7 +48,7 @@
44 *default_charset= 0, *current_host= 0;48 *default_charset= 0, *current_host= 0;
45static char *opt_plugin_dir= 0, *opt_default_auth= 0;49static char *opt_plugin_dir= 0, *opt_default_auth= 0;
46static int first_error = 0;50static int first_error = 0;
47DYNAMIC_ARRAY tables4repair, tables4rebuild;51DYNAMIC_ARRAY tables4repair, tables4rebuild, alter_table_cmds;
48#ifdef HAVE_SMEM52#ifdef HAVE_SMEM
49static char *shared_memory_base_name=0;53static char *shared_memory_base_name=0;
50#endif54#endif
@@ -591,6 +595,17 @@
591} /* process_all_tables_in_db */595} /* process_all_tables_in_db */
592596
593597
598static int run_query(const char *query)
599{
600 if (mysql_query(sock, query))
601 {
602 fprintf(stderr, "Failed to %s\n", query);
603 fprintf(stderr, "Error: %s\n", mysql_error(sock));
604 return 1;
605 }
606 return 0;
607}
608
594609
595static int fix_table_storage_name(const char *name)610static int fix_table_storage_name(const char *name)
596{611{
@@ -599,12 +614,7 @@
599 if (strncmp(name, "#mysql50#", 9))614 if (strncmp(name, "#mysql50#", 9))
600 return 1;615 return 1;
601 sprintf(qbuf, "RENAME TABLE `%s` TO `%s`", name, name + 9);616 sprintf(qbuf, "RENAME TABLE `%s` TO `%s`", name, name + 9);
602 if (mysql_query(sock, qbuf))617 rc= run_query(qbuf);
603 {
604 fprintf(stderr, "Failed to %s\n", qbuf);
605 fprintf(stderr, "Error: %s\n", mysql_error(sock));
606 rc= 1;
607 }
608 if (verbose)618 if (verbose)
609 printf("%-50s %s\n", name, rc ? "FAILED" : "OK");619 printf("%-50s %s\n", name, rc ? "FAILED" : "OK");
610 return rc;620 return rc;
@@ -617,12 +627,7 @@
617 if (strncmp(name, "#mysql50#", 9))627 if (strncmp(name, "#mysql50#", 9))
618 return 1;628 return 1;
619 sprintf(qbuf, "ALTER DATABASE `%s` UPGRADE DATA DIRECTORY NAME", name);629 sprintf(qbuf, "ALTER DATABASE `%s` UPGRADE DATA DIRECTORY NAME", name);
620 if (mysql_query(sock, qbuf))630 rc= run_query(qbuf);
621 {
622 fprintf(stderr, "Failed to %s\n", qbuf);
623 fprintf(stderr, "Error: %s\n", mysql_error(sock));
624 rc= 1;
625 }
626 if (verbose)631 if (verbose)
627 printf("%-50s %s\n", name, rc ? "FAILED" : "OK");632 printf("%-50s %s\n", name, rc ? "FAILED" : "OK");
628 return rc;633 return rc;
@@ -685,13 +690,7 @@
685static int disable_binlog()690static int disable_binlog()
686{691{
687 const char *stmt= "SET SQL_LOG_BIN=0";692 const char *stmt= "SET SQL_LOG_BIN=0";
688 if (mysql_query(sock, stmt))693 return run_query(stmt);
689 {
690 fprintf(stderr, "Failed to %s\n", stmt);
691 fprintf(stderr, "Error: %s\n", mysql_error(sock));
692 return 1;
693 }
694 return 0;
695}694}
696695
697static int handle_request_for_tables(char *tables, uint length)696static int handle_request_for_tables(char *tables, uint length)
@@ -761,12 +760,14 @@
761 MYSQL_RES *res;760 MYSQL_RES *res;
762 MYSQL_ROW row;761 MYSQL_ROW row;
763 char prev[NAME_LEN*2+2];762 char prev[NAME_LEN*2+2];
763 char prev_alter[MAX_ALTER_STR_SIZE];
764 uint i;764 uint i;
765 my_bool found_error=0, table_rebuild=0;765 my_bool found_error=0, table_rebuild=0;
766766
767 res = mysql_use_result(sock);767 res = mysql_use_result(sock);
768768
769 prev[0] = '\0';769 prev[0] = '\0';
770 prev_alter[0]= 0;
770 for (i = 0; (row = mysql_fetch_row(res)); i++)771 for (i = 0; (row = mysql_fetch_row(res)); i++)
771 {772 {
772 int changed = strcmp(prev, row[0]);773 int changed = strcmp(prev, row[0]);
@@ -783,12 +784,18 @@
783 strcmp(row[3],"OK"))784 strcmp(row[3],"OK"))
784 {785 {
785 if (table_rebuild)786 if (table_rebuild)
786 insert_dynamic(&tables4rebuild, (uchar*) prev);787 {
788 if (prev_alter[0])
789 insert_dynamic(&alter_table_cmds, (uchar*) prev_alter);
790 else
791 insert_dynamic(&tables4rebuild, (uchar*) prev);
792 }
787 else793 else
788 insert_dynamic(&tables4repair, (uchar*) prev);794 insert_dynamic(&tables4repair, (uchar*) prev);
789 }795 }
790 found_error=0;796 found_error=0;
791 table_rebuild=0;797 table_rebuild=0;
798 prev_alter[0]= 0;
792 if (opt_silent)799 if (opt_silent)
793 continue;800 continue;
794 }801 }
@@ -797,11 +804,30 @@
797 else if (!status && changed)804 else if (!status && changed)
798 {805 {
799 printf("%s\n%-9s: %s", row[0], row[2], row[3]);806 printf("%s\n%-9s: %s", row[0], row[2], row[3]);
800 if (strcmp(row[2],"note"))807 if (opt_auto_repair && strcmp(row[2],"note"))
801 {808 {
802 found_error=1;809 const char *alter_txt= strstr(row[3], "ALTER TABLE");
803 if (opt_auto_repair && strstr(row[3], "ALTER TABLE") != NULL)810 found_error=1;
811 if (alter_txt)
812 {
804 table_rebuild=1;813 table_rebuild=1;
814 if (!strncmp(row[3], KEY_PARTITIONING_CHANGED_STR,
815 strlen(KEY_PARTITIONING_CHANGED_STR)) &&
816 strstr(alter_txt, "PARTITION BY"))
817 {
818 if (strlen(alter_txt) >= MAX_ALTER_STR_SIZE)
819 {
820 printf("Error: Alter command too long (>= %d),"
821 " please do \"%s\" or dump/reload to fix it!\n",
822 MAX_ALTER_STR_SIZE,
823 alter_txt);
824 table_rebuild= 0;
825 prev_alter[0]= 0;
826 }
827 else
828 strcpy(prev_alter, alter_txt);
829 }
830 }
805 }831 }
806 }832 }
807 else833 else
@@ -813,7 +839,12 @@
813 if (found_error && opt_auto_repair && what_to_do != DO_REPAIR)839 if (found_error && opt_auto_repair && what_to_do != DO_REPAIR)
814 {840 {
815 if (table_rebuild)841 if (table_rebuild)
816 insert_dynamic(&tables4rebuild, (uchar*) prev);842 {
843 if (prev_alter[0])
844 insert_dynamic(&alter_table_cmds, (uchar*) prev_alter);
845 else
846 insert_dynamic(&tables4rebuild, (uchar*) prev);
847 }
817 else848 else
818 insert_dynamic(&tables4repair, (uchar*) prev);849 insert_dynamic(&tables4repair, (uchar*) prev);
819 }850 }
@@ -915,7 +946,8 @@
915946
916 if (opt_auto_repair &&947 if (opt_auto_repair &&
917 (my_init_dynamic_array(&tables4repair, sizeof(char)*(NAME_LEN*2+2),16,64) ||948 (my_init_dynamic_array(&tables4repair, sizeof(char)*(NAME_LEN*2+2),16,64) ||
918 my_init_dynamic_array(&tables4rebuild, sizeof(char)*(NAME_LEN*2+2),16,64)))949 my_init_dynamic_array(&tables4rebuild, sizeof(char)*(NAME_LEN*2+2),16,64) ||
950 my_init_dynamic_array(&alter_table_cmds, MAX_ALTER_STR_SIZE, 0, 1)))
919 {951 {
920 first_error = 1;952 first_error = 1;
921 goto end;953 goto end;
@@ -943,6 +975,8 @@
943 }975 }
944 for (i = 0; i < tables4rebuild.elements ; i++)976 for (i = 0; i < tables4rebuild.elements ; i++)
945 rebuild_table((char*) dynamic_array_ptr(&tables4rebuild, i));977 rebuild_table((char*) dynamic_array_ptr(&tables4rebuild, i));
978 for (i = 0; i < alter_table_cmds.elements ; i++)
979 run_query((char*) dynamic_array_ptr(&alter_table_cmds, i));
946 }980 }
947 end:981 end:
948 dbDisconnect(current_host);982 dbDisconnect(current_host);
949983
=== modified file 'Percona-Server/client/mysqldump.c'
--- Percona-Server/client/mysqldump.c 2013-04-18 16:15:44 +0000
+++ Percona-Server/client/mysqldump.c 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/client/mysqltest.cc'
--- Percona-Server/client/mysqltest.cc 2013-03-21 16:54:18 +0000
+++ Percona-Server/client/mysqltest.cc 2013-06-23 08:01:44 +0000
@@ -4075,7 +4075,10 @@
4075 cur_con->name, ds_user.str, ds_passwd.str, ds_db.str));4075 cur_con->name, ds_user.str, ds_passwd.str, ds_db.str));
40764076
4077 if (mysql_change_user(mysql, ds_user.str, ds_passwd.str, ds_db.str))4077 if (mysql_change_user(mysql, ds_user.str, ds_passwd.str, ds_db.str))
4078 die("change user failed: %s", mysql_error(mysql));4078 handle_error(command, mysql_errno(mysql), mysql_error(mysql),
4079 mysql_sqlstate(mysql), &ds_res);
4080 else
4081 handle_no_error(command);
40794082
4080 dynstr_free(&ds_user);4083 dynstr_free(&ds_user);
4081 dynstr_free(&ds_passwd);4084 dynstr_free(&ds_passwd);
40824085
=== modified file 'Percona-Server/client/sql_string.cc'
--- Percona-Server/client/sql_string.cc 2012-10-10 20:32:32 +0000
+++ Percona-Server/client/sql_string.cc 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
@@ -735,7 +735,7 @@
735{735{
736 if (from->Alloced_length >= from_length)736 if (from->Alloced_length >= from_length)
737 return from;737 return from;
738 if (from->alloced || !to || from == to)738 if ((from->alloced && (from->Alloced_length != 0)) || !to || from == to)
739 {739 {
740 (void) from->realloc(from_length);740 (void) from->realloc(from_length);
741 return from;741 return from;
742742
=== modified file 'Percona-Server/cmake/configure.pl'
--- Percona-Server/cmake/configure.pl 2013-01-16 01:34:54 +0000
+++ Percona-Server/cmake/configure.pl 2013-06-23 08:01:44 +0000
@@ -1,6 +1,6 @@
1#!/usr/bin/perl1#!/usr/bin/perl
22
3# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.3# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
4# 4#
5# This program is free software; you can redistribute it and/or modify5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by6# it under the terms of the GNU General Public License as published by
77
=== modified file 'Percona-Server/cmake/create_initial_db.cmake.in'
--- Percona-Server/cmake/create_initial_db.cmake.in 2012-10-03 14:05:07 +0000
+++ Percona-Server/cmake/create_initial_db.cmake.in 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.1# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
2# 2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/cmake/make_dist.cmake.in'
--- Percona-Server/cmake/make_dist.cmake.in 2012-03-22 15:16:11 +0000
+++ Percona-Server/cmake/make_dist.cmake.in 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.1# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
2# 2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/cmake/mysql_version.cmake'
--- Percona-Server/cmake/mysql_version.cmake 2012-10-23 11:41:34 +0000
+++ Percona-Server/cmake/mysql_version.cmake 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.1# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
2# 2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/cmake/package_name.cmake'
--- Percona-Server/cmake/package_name.cmake 2012-10-23 11:41:34 +0000
+++ Percona-Server/cmake/package_name.cmake 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.1# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
2#2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/cmake/plugin.cmake'
--- Percona-Server/cmake/plugin.cmake 2012-10-24 15:06:43 +0000
+++ Percona-Server/cmake/plugin.cmake 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.1# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
2# 2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/cmake/ssl.cmake'
--- Percona-Server/cmake/ssl.cmake 2012-07-24 13:15:58 +0000
+++ Percona-Server/cmake/ssl.cmake 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.1# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
2# 2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/cmake/wsrep.cmake'
--- Percona-Server/cmake/wsrep.cmake 2013-04-15 18:56:19 +0000
+++ Percona-Server/cmake/wsrep.cmake 2013-06-23 08:01:44 +0000
@@ -17,7 +17,7 @@
17# so WSREP_VERSION is produced regardless17# so WSREP_VERSION is produced regardless
1818
19# Set the patch version19# Set the patch version
20SET(WSREP_PATCH_VERSION "7.4")20SET(WSREP_PATCH_VERSION "7.5")
2121
22# Obtain patch revision number22# Obtain patch revision number
23SET(WSREP_PATCH_REVNO $ENV{WSREP_REV})23SET(WSREP_PATCH_REVNO $ENV{WSREP_REV})
2424
=== modified file 'Percona-Server/cmake/zlib.cmake'
--- Percona-Server/cmake/zlib.cmake 2011-06-30 15:46:53 +0000
+++ Percona-Server/cmake/zlib.cmake 2013-06-23 08:01:44 +0000
@@ -57,13 +57,17 @@
57 INCLUDE(CheckFunctionExists)57 INCLUDE(CheckFunctionExists)
58 SET(CMAKE_REQUIRED_LIBRARIES z)58 SET(CMAKE_REQUIRED_LIBRARIES z)
59 CHECK_FUNCTION_EXISTS(crc32 HAVE_CRC32)59 CHECK_FUNCTION_EXISTS(crc32 HAVE_CRC32)
60 CHECK_FUNCTION_EXISTS(compressBound HAVE_COMPRESSBOUND)
61 CHECK_FUNCTION_EXISTS(deflateBound HAVE_DEFLATEBOUND)
60 SET(CMAKE_REQUIRED_LIBRARIES)62 SET(CMAKE_REQUIRED_LIBRARIES)
61 IF(HAVE_CRC32)63 IF(HAVE_CRC32 AND HAVE_COMPRESSBOUND AND HAVE_DEFLATEBOUND)
62 SET(ZLIB_LIBRARY z CACHE INTERNAL "System zlib library")64 SET(ZLIB_LIBRARY z CACHE INTERNAL "System zlib library")
63 SET(WITH_ZLIB "system" CACHE STRING "Which zlib to use (possible values are 'bundled' or 'system')")65 SET(WITH_ZLIB "system" CACHE STRING
66 "Which zlib to use (possible values are 'bundled' or 'system')")
64 SET(ZLIB_SOURCES "")67 SET(ZLIB_SOURCES "")
65 ELSE()68 ELSE()
66 SET(ZLIB_FOUND FALSE CACHE INTERNAL "Zlib found but not usable")69 SET(ZLIB_FOUND FALSE CACHE INTERNAL "Zlib found but not usable")
70 MESSAGE(STATUS "system zlib found but not usable")
67 ENDIF()71 ENDIF()
68 ENDIF()72 ENDIF()
69 IF(NOT ZLIB_FOUND)73 IF(NOT ZLIB_FOUND)
7074
=== modified file 'Percona-Server/configure.cmake'
--- Percona-Server/configure.cmake 2013-02-06 07:02:45 +0000
+++ Percona-Server/configure.cmake 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
11
2# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.2# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
3# 3#
4# This program is free software; you can redistribute it and/or modify4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by5# it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/charset2html.c'
--- Percona-Server/extra/charset2html.c 2008-03-29 14:15:06 +0000
+++ Percona-Server/extra/charset2html.c 2013-06-23 08:01:44 +0000
@@ -1,4 +1,5 @@
1/* Copyright (C) 2000 MySQL AB1/* Copyright (c) 2000, 2002-2004, 2007, 2008 MySQL AB
2 Use is subject to license terms
23
3 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
56
=== modified file 'Percona-Server/extra/yassl/CMakeLists.txt'
--- Percona-Server/extra/yassl/CMakeLists.txt 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/CMakeLists.txt 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.1# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
2# 2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/extra/yassl/examples/client/client.cpp'
--- Percona-Server/extra/yassl/examples/client/client.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/examples/client/client.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2006 MySQL AB2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/examples/echoclient/echoclient.cpp'
--- Percona-Server/extra/yassl/examples/echoclient/echoclient.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/examples/echoclient/echoclient.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2006 MySQL AB2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/examples/echoserver/echoserver.cpp'
--- Percona-Server/extra/yassl/examples/echoserver/echoserver.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/examples/echoserver/echoserver.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2006 MySQL AB2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/examples/server/server.cpp'
--- Percona-Server/extra/yassl/examples/server/server.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/examples/server/server.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2006 MySQL AB2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/include/buffer.hpp'
--- Percona-Server/extra/yassl/include/buffer.hpp 2012-02-13 11:40:12 +0000
+++ Percona-Server/extra/yassl/include/buffer.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/include/cert_wrapper.hpp'
--- Percona-Server/extra/yassl/include/cert_wrapper.hpp 2012-02-10 09:41:54 +0000
+++ Percona-Server/extra/yassl/include/cert_wrapper.hpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2007 MySQL AB, 2008 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
76
=== modified file 'Percona-Server/extra/yassl/include/lock.hpp'
--- Percona-Server/extra/yassl/include/lock.hpp 2012-11-21 13:44:15 +0000
+++ Percona-Server/extra/yassl/include/lock.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/include/openssl/prefix_ssl.h'
--- Percona-Server/extra/yassl/include/openssl/prefix_ssl.h 2012-02-10 09:39:51 +0000
+++ Percona-Server/extra/yassl/include/openssl/prefix_ssl.h 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2006, 2007 MySQL AB, 2008 Sun Microsystems, Inc.2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
76
=== modified file 'Percona-Server/extra/yassl/include/socket_wrapper.hpp'
--- Percona-Server/extra/yassl/include/socket_wrapper.hpp 2012-02-13 11:40:12 +0000
+++ Percona-Server/extra/yassl/include/socket_wrapper.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/include/yassl_error.hpp'
--- Percona-Server/extra/yassl/include/yassl_error.hpp 2012-11-21 13:44:15 +0000
+++ Percona-Server/extra/yassl/include/yassl_error.hpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2007 MySQL AB, 2010 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
@@ -53,7 +52,8 @@
53 badVersion_error = 117,52 badVersion_error = 117,
54 compress_error = 118,53 compress_error = 118,
55 decompress_error = 119,54 decompress_error = 119,
56 pms_version_error = 12055 pms_version_error = 120,
56 sanityCipher_error = 121
5757
58 // !!!! add error message to .cpp !!!!58 // !!!! add error message to .cpp !!!!
5959
6060
=== modified file 'Percona-Server/extra/yassl/include/yassl_imp.hpp'
--- Percona-Server/extra/yassl/include/yassl_imp.hpp 2012-02-10 09:41:54 +0000
+++ Percona-Server/extra/yassl/include/yassl_imp.hpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2007 MySQL AB, 2008 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
76
=== modified file 'Percona-Server/extra/yassl/include/yassl_int.hpp'
--- Percona-Server/extra/yassl/include/yassl_int.hpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/include/yassl_int.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/include/yassl_types.hpp'
--- Percona-Server/extra/yassl/include/yassl_types.hpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/include/yassl_types.hpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2007 MySQL AB, 2008 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
@@ -220,7 +219,11 @@
220const int MAX_RECORD_SIZE = 16384; // 2^14, max size by standard219const int MAX_RECORD_SIZE = 16384; // 2^14, max size by standard
221const int COMPRESS_EXTRA = 1024; // extra compression possible addition220const int COMPRESS_EXTRA = 1024; // extra compression possible addition
222const int SESSION_FLUSH_COUNT = 256; // when to flush session cache221const int SESSION_FLUSH_COUNT = 256; // when to flush session cache
223222const int MAX_PAD_SIZE = 256; // max TLS padding size
223const int COMPRESS_CONSTANT = 13; // compression calculation constant
224const int COMPRESS_UPPER = 55; // compression calculation numerator
225const int COMPRESS_LOWER = 64; // compression calculation denominator
226const int COMPRESS_DUMMY_SIZE = 64; // compression dummy round size
224227
225typedef uint8 Cipher; // first byte is always 0x00 for SSLv3 & TLS228typedef uint8 Cipher; // first byte is always 0x00 for SSLv3 & TLS
226229
227230
=== modified file 'Percona-Server/extra/yassl/src/buffer.cpp'
--- Percona-Server/extra/yassl/src/buffer.cpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/src/buffer.cpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2007 MySQL AB, 2009 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
76
=== modified file 'Percona-Server/extra/yassl/src/cert_wrapper.cpp'
--- Percona-Server/extra/yassl/src/cert_wrapper.cpp 2012-11-21 13:44:15 +0000
+++ Percona-Server/extra/yassl/src/cert_wrapper.cpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2007 MySQL AB, 2008, 2009 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
76
=== modified file 'Percona-Server/extra/yassl/src/crypto_wrapper.cpp'
--- Percona-Server/extra/yassl/src/crypto_wrapper.cpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/src/crypto_wrapper.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/src/handshake.cpp'
--- Percona-Server/extra/yassl/src/handshake.cpp 2013-03-21 16:54:18 +0000
+++ Percona-Server/extra/yassl/src/handshake.cpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2008 MySQL AB, 2009 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
@@ -221,12 +220,45 @@
221}220}
222221
223222
223// sanity checks on encrypted message size
224static int sanity_check_message(SSL& ssl, uint msgSz)
225{
226 uint minSz = 0;
227
228 if (ssl.getSecurity().get_parms().cipher_type_ == block) {
229 uint blockSz = ssl.getCrypto().get_cipher().get_blockSize();
230 if (msgSz % blockSz)
231 return -1;
232
233 minSz = ssl.getSecurity().get_parms().hash_size_ + 1; // pad byte too
234 if (blockSz > minSz)
235 minSz = blockSz;
236
237 if (ssl.isTLSv1_1())
238 minSz += blockSz; // explicit IV
239 }
240 else { // stream
241 minSz = ssl.getSecurity().get_parms().hash_size_;
242 }
243
244 if (msgSz < minSz)
245 return -1;
246
247 return 0;
248}
249
250
224// decrypt input message in place, store size in case needed later251// decrypt input message in place, store size in case needed later
225void decrypt_message(SSL& ssl, input_buffer& input, uint sz)252void decrypt_message(SSL& ssl, input_buffer& input, uint sz)
226{253{
227 input_buffer plain(sz);254 input_buffer plain(sz);
228 opaque* cipher = input.get_buffer() + input.get_current();255 opaque* cipher = input.get_buffer() + input.get_current();
229256
257 if (sanity_check_message(ssl, sz) != 0) {
258 ssl.SetError(sanityCipher_error);
259 return;
260 }
261
230 ssl.useCrypto().use_cipher().decrypt(plain.get_buffer(), cipher, sz);262 ssl.useCrypto().use_cipher().decrypt(plain.get_buffer(), cipher, sz);
231 memcpy(cipher, plain.get_buffer(), sz);263 memcpy(cipher, plain.get_buffer(), sz);
232 ssl.useSecurity().use_parms().encrypt_size_ = sz;264 ssl.useSecurity().use_parms().encrypt_size_ = sz;
@@ -774,6 +806,8 @@
774 return 0;806 return 0;
775 }807 }
776 decrypt_message(ssl, buffer, hdr.length_);808 decrypt_message(ssl, buffer, hdr.length_);
809 if (ssl.GetError())
810 return 0;
777 }811 }
778 812
779 mySTL::auto_ptr<Message> msg(mf.CreateObject(hdr.type_));813 mySTL::auto_ptr<Message> msg(mf.CreateObject(hdr.type_));
780814
=== modified file 'Percona-Server/extra/yassl/src/lock.cpp'
--- Percona-Server/extra/yassl/src/lock.cpp 2012-11-21 13:44:15 +0000
+++ Percona-Server/extra/yassl/src/lock.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/src/make.bat'
--- Percona-Server/extra/yassl/src/make.bat 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/src/make.bat 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1REM Copyright (C) 2006, 2007 MySQL AB1REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
2REM 2REM
3REM This program is free software; you can redistribute it and/or modify3REM This program is free software; you can redistribute it and/or modify
4REM it under the terms of the GNU General Public License as published by4REM it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/extra/yassl/src/socket_wrapper.cpp'
--- Percona-Server/extra/yassl/src/socket_wrapper.cpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/src/socket_wrapper.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/src/ssl.cpp'
--- Percona-Server/extra/yassl/src/ssl.cpp 2012-11-21 13:44:15 +0000
+++ Percona-Server/extra/yassl/src/ssl.cpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2007 MySQL AB, 2008-2010 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
76
=== modified file 'Percona-Server/extra/yassl/src/template_instnt.cpp'
--- Percona-Server/extra/yassl/src/template_instnt.cpp 2009-05-15 12:57:51 +0000
+++ Percona-Server/extra/yassl/src/template_instnt.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,6 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000-2008 MySQL AB
3 Use is subject to license terms
34
4 This program is free software; you can redistribute it and/or modify5 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by6 it under the terms of the GNU General Public License as published by
67
=== modified file 'Percona-Server/extra/yassl/src/yassl.cpp'
--- Percona-Server/extra/yassl/src/yassl.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/src/yassl.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/src/yassl_error.cpp'
--- Percona-Server/extra/yassl/src/yassl_error.cpp 2012-11-21 13:44:15 +0000
+++ Percona-Server/extra/yassl/src/yassl_error.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
@@ -144,6 +144,10 @@
144 strncpy(buffer, "bad PreMasterSecret version error", max);144 strncpy(buffer, "bad PreMasterSecret version error", max);
145 break;145 break;
146146
147 case sanityCipher_error :
148 strncpy(buffer, "sanity check on cipher text size error", max);
149 break;
150
147 // openssl errors151 // openssl errors
148 case SSL_ERROR_WANT_READ :152 case SSL_ERROR_WANT_READ :
149 strncpy(buffer, "the read operation would block", max);153 strncpy(buffer, "the read operation would block", max);
150154
=== modified file 'Percona-Server/extra/yassl/src/yassl_imp.cpp'
--- Percona-Server/extra/yassl/src/yassl_imp.cpp 2012-03-02 12:23:52 +0000
+++ Percona-Server/extra/yassl/src/yassl_imp.cpp 2013-06-23 08:01:44 +0000
@@ -972,30 +972,193 @@
972}972}
973973
974974
975// check all bytes for equality
976static int constant_compare(const byte* a, const byte* b, int len)
977{
978 int good = 0;
979 int bad = 0;
980
981 for (int i = 0; i < len; i++) {
982 if (a[i] == b[i])
983 good++;
984 else
985 bad++;
986 }
987
988 if (good == len)
989 return 0;
990 else
991 return 0 - bad; // failure
992}
993
994
995// check bytes for pad value
996static int pad_check(const byte* input, byte pad, int len)
997{
998 int good = 0;
999 int bad = 0;
1000
1001 for (int i = 0; i < len; i++) {
1002 if (input[i] == pad)
1003 good++;
1004 else
1005 bad++;
1006 }
1007
1008 if (good == len)
1009 return 0;
1010 else
1011 return 0 - bad; // failure
1012}
1013
1014
1015// get number of compression rounds
1016static inline int get_rounds(int pLen, int padLen, int t)
1017{
1018 int roundL1 = 1; // round ups
1019 int roundL2 = 1;
1020
1021 int L1 = COMPRESS_CONSTANT + pLen - t;
1022 int L2 = COMPRESS_CONSTANT + pLen - padLen - 1 - t;
1023
1024 L1 -= COMPRESS_UPPER;
1025 L2 -= COMPRESS_UPPER;
1026
1027 if ( (L1 % COMPRESS_LOWER) == 0)
1028 roundL1 = 0;
1029 if ( (L2 % COMPRESS_LOWER) == 0)
1030 roundL2 = 0;
1031
1032 L1 /= COMPRESS_LOWER;
1033 L2 /= COMPRESS_LOWER;
1034
1035 L1 += roundL1;
1036 L2 += roundL2;
1037
1038 return L1 - L2;
1039}
1040
1041
1042// do compression rounds on dummy data
1043static inline void compress_rounds(SSL& ssl, int rounds, const byte* dummy)
1044{
1045 if (rounds) {
1046 Digest* digest = NULL;
1047
1048 MACAlgorithm ma = ssl.getSecurity().get_parms().mac_algorithm_;
1049 if (ma == sha)
1050 digest = NEW_YS SHA;
1051 else if (ma == md5)
1052 digest = NEW_YS MD5;
1053 else if (ma == rmd)
1054 digest = NEW_YS RMD;
1055 else
1056 return;
1057
1058 for (int i = 0; i < rounds; i++)
1059 digest->update(dummy, COMPRESS_LOWER);
1060
1061 ysDelete(digest);
1062 }
1063}
1064
1065
1066// timing resistant pad verification
1067static int timing_verify(SSL& ssl, const byte* input, int padLen, int t,
1068 int pLen)
1069{
1070 byte verify[SHA_LEN];
1071 byte dummy[MAX_PAD_SIZE];
1072
1073 memset(dummy, 1, sizeof(dummy));
1074
1075 if ( (t + padLen + 1) > pLen) {
1076 pad_check(dummy, (byte)padLen, MAX_PAD_SIZE);
1077 if (ssl.isTLS())
1078 TLS_hmac(ssl, verify, input, pLen - t, application_data, 1);
1079 else
1080 hmac(ssl, verify, input, pLen - t, application_data, 1);
1081 constant_compare(verify, input + pLen - t, t);
1082
1083 return -1;
1084 }
1085
1086 if (pad_check(input + pLen - (padLen + 1), (byte)padLen, padLen + 1) != 0) {
1087 pad_check(dummy, (byte)padLen, MAX_PAD_SIZE - padLen - 1);
1088 if (ssl.isTLS())
1089 TLS_hmac(ssl, verify, input, pLen - t, application_data, 1);
1090 else
1091 hmac(ssl, verify, input, pLen - t, application_data, 1);
1092 constant_compare(verify, input + pLen - t, t);
1093
1094 return -1;
1095 }
1096
1097 pad_check(dummy, (byte)padLen, MAX_PAD_SIZE - padLen - 1);
1098 if (ssl.isTLS())
1099 TLS_hmac(ssl, verify, input, pLen - padLen - 1 - t, application_data,1);
1100 else
1101 hmac(ssl, verify, input, pLen - padLen - 1 - t, application_data, 1);
1102
1103 compress_rounds(ssl, get_rounds(pLen, padLen, t), dummy);
1104
1105 if (constant_compare(verify, input + (pLen - padLen - 1 - t), t) != 0)
1106 return -1;
1107
1108 return 0;
1109}
1110
1111
975// Process handler for Data1112// Process handler for Data
976void Data::Process(input_buffer& input, SSL& ssl)1113void Data::Process(input_buffer& input, SSL& ssl)
977{1114{
978 int msgSz = ssl.getSecurity().get_parms().encrypt_size_;1115 int msgSz = ssl.getSecurity().get_parms().encrypt_size_;
979 int pad = 0, padSz = 0;1116 int pad = 0, padSz = 0;
980 int ivExtra = 0;1117 int ivExtra = 0;
1118 int digestSz = ssl.getCrypto().get_digest().get_digestSize();
1119 const byte* rawData = input.get_buffer() + input.get_current();
1120 opaque verify[SHA_LEN];
9811121
982 if (ssl.getSecurity().get_parms().cipher_type_ == block) {1122 if (ssl.getSecurity().get_parms().cipher_type_ == block) {
983 if (ssl.isTLSv1_1()) // IV1123 if (ssl.isTLSv1_1()) // IV
984 ivExtra = ssl.getCrypto().get_cipher().get_blockSize();1124 ivExtra = ssl.getCrypto().get_cipher().get_blockSize();
985 pad = *(input.get_buffer() + input.get_current() + msgSz -ivExtra - 1);1125 pad = *(input.get_buffer() + input.get_current() + msgSz -ivExtra - 1);
986 padSz = 1;1126 padSz = 1;
987 }1127
988 int digestSz = ssl.getCrypto().get_digest().get_digestSize();1128 if (ssl.isTLS()) {
1129 if (timing_verify(ssl, rawData, pad,digestSz, msgSz-ivExtra) != 0) {
1130 ssl.SetError(verify_error);
1131 return;
1132 }
1133 }
1134 else { // SSLv3, some don't do this padding right
1135 int sz3 = msgSz - digestSz - pad - 1;
1136 hmac(ssl, verify, rawData, sz3, application_data, true);
1137 if (constant_compare(verify, rawData + sz3, digestSz) != 0) {
1138 ssl.SetError(verify_error);
1139 return;
1140 }
1141 }
1142 }
1143 else { // stream
1144 int streamSz = msgSz - digestSz;
1145 if (ssl.isTLS())
1146 TLS_hmac(ssl, verify, rawData, streamSz, application_data, true);
1147 else
1148 hmac(ssl, verify, rawData, streamSz, application_data, true);
1149 if (constant_compare(verify, rawData + streamSz, digestSz) != 0) {
1150 ssl.SetError(verify_error);
1151 return;
1152 }
1153 }
1154
989 int dataSz = msgSz - ivExtra - digestSz - pad - padSz;1155 int dataSz = msgSz - ivExtra - digestSz - pad - padSz;
990 opaque verify[SHA_LEN];
9911156
992 if (dataSz < 0) {1157 if (dataSz < 0) {
993 ssl.SetError(bad_input);1158 ssl.SetError(bad_input);
994 return;1159 return;
995 }1160 }
9961161
997 const byte* rawData = input.get_buffer() + input.get_current();
998
999 // read data1162 // read data
1000 if (dataSz) { // could be compressed1163 if (dataSz) { // could be compressed
1001 if (ssl.CompressionOn()) {1164 if (ssl.CompressionOn()) {
@@ -1013,27 +1176,10 @@
1013 input.read(data->get_buffer(), dataSz);1176 input.read(data->get_buffer(), dataSz);
1014 data->add_size(dataSz);1177 data->add_size(dataSz);
1015 }1178 }
10161179 }
1017 if (ssl.isTLS())1180
1018 TLS_hmac(ssl, verify, rawData, dataSz, application_data, true);1181 // advance past mac and fill
1019 else1182 input.set_current(input.get_current() + digestSz + pad + padSz);
1020 hmac(ssl, verify, rawData, dataSz, application_data, true);
1021 }
1022
1023 // read mac and skip fill
1024 opaque mac[SHA_LEN];
1025 input.read(mac, digestSz);
1026 input.set_current(input.get_current() + pad + padSz);
1027
1028 // verify
1029 if (dataSz) {
1030 if (memcmp(mac, verify, digestSz)) {
1031 ssl.SetError(verify_error);
1032 return;
1033 }
1034 }
1035 else
1036 ssl.get_SEQIncrement(true); // even though no data, increment verify
1037}1183}
10381184
10391185
10401186
=== modified file 'Percona-Server/extra/yassl/taocrypt/benchmark/benchmark.cpp'
--- Percona-Server/extra/yassl/taocrypt/benchmark/benchmark.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/benchmark/benchmark.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2006, 2007 MySQL AB2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/benchmark/make.bat'
--- Percona-Server/extra/yassl/taocrypt/benchmark/make.bat 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/benchmark/make.bat 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1REM Copyright (C) 2006, 2007 MySQL AB1REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
2REM 2REM
3REM This program is free software; you can redistribute it and/or modify3REM This program is free software; you can redistribute it and/or modify
4REM it under the terms of the GNU General Public License as published by4REM it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/aes.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/aes.hpp 2012-11-21 13:44:15 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/aes.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/asn.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/asn.hpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/asn.hpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2007 MySQL AB, 2010 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
76
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/block.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/block.hpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/block.hpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2007 MySQL AB, 2009 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
76
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/blowfish.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/blowfish.hpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/blowfish.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/des.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/des.hpp 2012-02-13 11:40:12 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/des.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/hash.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/hash.hpp 2012-02-13 11:40:12 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/hash.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/hc128.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/hc128.hpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/hc128.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 3
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/integer.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/integer.hpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/integer.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/kernelc.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/kernelc.hpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/kernelc.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/misc.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/misc.hpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/misc.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/modes.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/modes.hpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/modes.hpp 2013-06-23 08:01:44 +0000
@@ -1,6 +1,5 @@
1/*1/*
2 Copyright (c) 2005-2007 MySQL AB, 2009 Sun Microsystems, Inc.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 Use is subject to license terms.
43
5 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
76
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/pwdbased.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/pwdbased.hpp 2012-11-21 13:44:15 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/pwdbased.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/rabbit.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/rabbit.hpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/rabbit.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 3
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/rsa.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/rsa.hpp 2012-02-13 11:40:12 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/rsa.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/runtime.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/runtime.hpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/runtime.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/include/types.hpp'
--- Percona-Server/extra/yassl/taocrypt/include/types.hpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/include/types.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/mySTL/stdexcept.hpp'
--- Percona-Server/extra/yassl/taocrypt/mySTL/stdexcept.hpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/mySTL/stdexcept.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/mySTL/vector.hpp'
--- Percona-Server/extra/yassl/taocrypt/mySTL/vector.hpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/mySTL/vector.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/aes.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/aes.cpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/aes.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/aestables.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/aestables.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/aestables.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/algebra.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/algebra.cpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/algebra.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/arc4.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/arc4.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/arc4.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/blowfish.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/blowfish.cpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/blowfish.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/coding.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/coding.cpp 2012-11-21 13:44:15 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/coding.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/dsa.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/dsa.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/dsa.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/hash.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/hash.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/hash.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/hc128.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/hc128.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/hc128.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 3
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/make.bat'
--- Percona-Server/extra/yassl/taocrypt/src/make.bat 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/make.bat 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1REM Copyright (C) 2006, 2007 MySQL AB1REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
2REM 2REM
3REM This program is free software; you can redistribute it and/or modify3REM This program is free software; you can redistribute it and/or modify
4REM it under the terms of the GNU General Public License as published by4REM it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/md4.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/md4.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/md4.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/md5.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/md5.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/md5.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/misc.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/misc.cpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/misc.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/rabbit.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/rabbit.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/rabbit.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 3
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/random.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/random.cpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/random.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/ripemd.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/ripemd.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/ripemd.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/rsa.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/rsa.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/rsa.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/sha.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/sha.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/sha.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/template_instnt.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/template_instnt.cpp 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/template_instnt.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2000-2007 MySQL AB2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/src/twofish.cpp'
--- Percona-Server/extra/yassl/taocrypt/src/twofish.cpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/taocrypt/src/twofish.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/test/make.bat'
--- Percona-Server/extra/yassl/taocrypt/test/make.bat 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/taocrypt/test/make.bat 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1REM Copyright (C) 2006, 2007 MySQL AB1REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
2REM 2REM
3REM This program is free software; you can redistribute it and/or modify3REM This program is free software; you can redistribute it and/or modify
4REM it under the terms of the GNU General Public License as published by4REM it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/extra/yassl/taocrypt/test/memory.cpp'
--- Percona-Server/extra/yassl/taocrypt/test/memory.cpp 2012-11-21 13:44:15 +0000
+++ Percona-Server/extra/yassl/taocrypt/test/memory.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/taocrypt/test/test.cpp'
--- Percona-Server/extra/yassl/taocrypt/test/test.cpp 2012-02-13 11:40:12 +0000
+++ Percona-Server/extra/yassl/taocrypt/test/test.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2006, 2007 MySQL AB2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/testsuite/make.bat'
--- Percona-Server/extra/yassl/testsuite/make.bat 2012-02-10 14:33:27 +0000
+++ Percona-Server/extra/yassl/testsuite/make.bat 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1REM Copyright (C) 2006, 2007 MySQL AB1REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
2REM 2REM
3REM This program is free software; you can redistribute it and/or modify3REM This program is free software; you can redistribute it and/or modify
4REM it under the terms of the GNU General Public License as published by4REM it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/extra/yassl/testsuite/test.hpp'
--- Percona-Server/extra/yassl/testsuite/test.hpp 2012-02-13 12:44:54 +0000
+++ Percona-Server/extra/yassl/testsuite/test.hpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/extra/yassl/testsuite/testsuite.cpp'
--- Percona-Server/extra/yassl/testsuite/testsuite.cpp 2012-02-13 11:40:12 +0000
+++ Percona-Server/extra/yassl/testsuite/testsuite.cpp 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (C) 2006, 2007 MySQL AB2 Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/include/base64.h'
--- Percona-Server/include/base64.h 2006-12-23 19:20:40 +0000
+++ Percona-Server/include/base64.h 2013-06-23 08:01:44 +0000
@@ -1,4 +1,5 @@
1/* Copyright (C) 2003 MySQL AB1/* Copyright (c) 2003-2006 MySQL AB
2 Use is subject to license terms
23
3 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
56
=== modified file 'Percona-Server/include/errmsg.h'
--- Percona-Server/include/errmsg.h 2011-06-30 15:46:53 +0000
+++ Percona-Server/include/errmsg.h 2013-06-23 08:01:44 +0000
@@ -25,6 +25,7 @@
25void init_client_errs(void);25void init_client_errs(void);
26void finish_client_errs(void);26void finish_client_errs(void);
27extern const char *client_errors[]; /* Error messages */27extern const char *client_errors[]; /* Error messages */
28extern const char **mysql_client_errors; /* Error messages */
28#ifdef __cplusplus29#ifdef __cplusplus
29}30}
30#endif31#endif
3132
=== modified file 'Percona-Server/include/ft_global.h'
--- Percona-Server/include/ft_global.h 2011-06-30 15:46:53 +0000
+++ Percona-Server/include/ft_global.h 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1/* Copyright (c) 2000-2007 MySQL AB, 2009 Sun Microsystems, Inc.1/* Copyright (c) 2000-2005, 2007 MySQL AB, 2009 Sun Microsystems, Inc.
2 Use is subject to license terms.2 Use is subject to license terms.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
55
=== modified file 'Percona-Server/include/m_ctype.h'
--- Percona-Server/include/m_ctype.h 2012-02-16 09:48:16 +0000
+++ Percona-Server/include/m_ctype.h 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.1/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
22
3 This program is free software; you can redistribute it and/or modify3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by4 it under the terms of the GNU General Public License as published by
@@ -149,6 +149,8 @@
149struct charset_info_st;149struct charset_info_st;
150150
151151
152extern int (*my_string_stack_guard)(int);
153
152/* See strings/CHARSET_INFO.txt for information about this structure */154/* See strings/CHARSET_INFO.txt for information about this structure */
153typedef struct my_collation_handler_st155typedef struct my_collation_handler_st
154{156{
155157
=== modified file 'Percona-Server/include/m_string.h'
--- Percona-Server/include/m_string.h 2013-02-24 13:36:00 +0000
+++ Percona-Server/include/m_string.h 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/include/my_base.h'
--- Percona-Server/include/my_base.h 2012-03-01 08:27:43 +0000
+++ Percona-Server/include/my_base.h 2013-06-23 08:01:44 +0000
@@ -319,6 +319,7 @@
319#define HA_CREATE_PAGE_CHECKSUM 32319#define HA_CREATE_PAGE_CHECKSUM 32
320#define HA_CREATE_DELAY_KEY_WRITE 64320#define HA_CREATE_DELAY_KEY_WRITE 64
321#define HA_CREATE_RELIES_ON_SQL_LAYER 128321#define HA_CREATE_RELIES_ON_SQL_LAYER 128
322#define HA_CREATE_INTERNAL_TABLE 256
322323
323/*324/*
324 The following flags (OR-ed) are passed to handler::info() method.325 The following flags (OR-ed) are passed to handler::info() method.
325326
=== modified file 'Percona-Server/include/my_md5.h'
--- Percona-Server/include/my_md5.h 2009-09-23 21:32:31 +0000
+++ Percona-Server/include/my_md5.h 2013-06-23 08:01:44 +0000
@@ -1,7 +1,8 @@
1#ifndef MY_MD5_INCLUDED1#ifndef MY_MD5_INCLUDED
2#define MY_MD5_INCLUDED2#define MY_MD5_INCLUDED
33
4/* Copyright (C) 2000 MySQL AB4/* Copyright (c) 2000, 2001, 2007 MySQL AB, 2009 Sun Microsystems, Inc.
5 Use is subject to license terms
56
6 This program is free software; you can redistribute it and/or modify7 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by8 it under the terms of the GNU General Public License as published by
89
=== modified file 'Percona-Server/include/my_sys.h'
--- Percona-Server/include/my_sys.h 2013-03-21 16:54:18 +0000
+++ Percona-Server/include/my_sys.h 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.1/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
22
3 This program is free software; you can redistribute it and/or modify3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by4 it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/include/my_user.h'
--- Percona-Server/include/my_user.h 2007-05-10 09:59:39 +0000
+++ Percona-Server/include/my_user.h 2013-06-23 08:01:44 +0000
@@ -1,4 +1,5 @@
1/* Copyright (C) 2005 MySQL AB1/* Copyright (c) 2005-2007 MySQL AB
2 Use is subject to license terms
23
3 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
56
=== modified file 'Percona-Server/include/my_xml.h'
--- Percona-Server/include/my_xml.h 2007-05-10 09:59:39 +0000
+++ Percona-Server/include/my_xml.h 2013-06-23 08:01:44 +0000
@@ -1,4 +1,5 @@
1/* Copyright (C) 2000 MySQL AB1/* Copyright (c) 2000, 2002, 2003, 2005, 2007 MySQL AB
2 Use is subject to license terms
23
3 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
56
=== modified file 'Percona-Server/include/myisampack.h'
--- Percona-Server/include/myisampack.h 2011-06-30 15:46:53 +0000
+++ Percona-Server/include/myisampack.h 2013-06-23 08:01:44 +0000
@@ -1,7 +1,7 @@
1#ifndef MYISAMPACK_INCLUDED1#ifndef MYISAMPACK_INCLUDED
2#define MYISAMPACK_INCLUDED2#define MYISAMPACK_INCLUDED
33
4/* Copyright (c) 2000-2002, 2004, 2006 MySQL AB, 2009 Sun Microsystems, Inc.4/* Copyright (c) 2000-2002, 2004 MySQL AB, 2009 Sun Microsystems, Inc.
5 Use is subject to license terms.5 Use is subject to license terms.
66
7 This program is free software; you can redistribute it and/or modify7 This program is free software; you can redistribute it and/or modify
88
=== modified file 'Percona-Server/include/mysql.h'
--- Percona-Server/include/mysql.h 2012-07-05 06:55:20 +0000
+++ Percona-Server/include/mysql.h 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.1/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
22
3 This program is free software; you can redistribute it and/or modify3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by4 it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/include/mysql/service_my_snprintf.h'
--- Percona-Server/include/mysql/service_my_snprintf.h 2013-03-21 16:54:18 +0000
+++ Percona-Server/include/mysql/service_my_snprintf.h 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1#ifndef MYSQL_SERVICE_MY_SNPRINTF_INCLUDED1#ifndef MYSQL_SERVICE_MY_SNPRINTF_INCLUDED
2/* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.2/* Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/include/mysql/thread_pool_priv.h'
--- Percona-Server/include/mysql/thread_pool_priv.h 2013-03-21 16:54:18 +0000
+++ Percona-Server/include/mysql/thread_pool_priv.h 2013-06-23 08:01:44 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.2 Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
33
4 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
66
=== modified file 'Percona-Server/include/mysql_time.h'
--- Percona-Server/include/mysql_time.h 2006-12-31 00:02:27 +0000
+++ Percona-Server/include/mysql_time.h 2013-06-23 08:01:44 +0000
@@ -1,4 +1,5 @@
1/* Copyright (C) 2004 MySQL AB1/* Copyright (c) 2004, 2006 MySQL AB
2 Use is subject to license terms
23
3 This program is free software; you can redistribute it and/or modify4 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by5 it under the terms of the GNU General Public License as published by
56
=== modified file 'Percona-Server/include/mysql_version.h.in'
--- Percona-Server/include/mysql_version.h.in 2007-09-13 14:19:46 +0000
+++ Percona-Server/include/mysql_version.h.in 2013-06-23 08:01:44 +0000
@@ -1,4 +1,5 @@
1/* Copyright Abandoned 1996, 1999, 2001 MySQL AB1/* Copyright (c) 1996, 1999-2004, 2007 MySQL AB
2 Use is subject to license terms
2 This file is public domain and comes with NO WARRANTY of any kind */3 This file is public domain and comes with NO WARRANTY of any kind */
34
4/* Version numbers for protocol & mysqld */5/* Version numbers for protocol & mysqld */
56
=== modified file 'Percona-Server/include/welcome_copyright_notice.h'
--- Percona-Server/include/welcome_copyright_notice.h 2013-03-21 16:54:18 +0000
+++ Percona-Server/include/welcome_copyright_notice.h 2013-06-23 08:01:44 +0000
@@ -1,4 +1,4 @@
1/* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.1/* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
22
3 This program is free software; you can redistribute it and/or modify3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by4 it under the terms of the GNU General Public License as published by
55
=== modified file 'Percona-Server/libmysql/CMakeLists.txt'
--- Percona-Server/libmysql/CMakeLists.txt 2012-02-16 09:48:16 +0000
+++ Percona-Server/libmysql/CMakeLists.txt 2013-06-23 08:01:44 +0000
@@ -208,8 +208,11 @@
208 IF(NOT libmysql_link_flag)208 IF(NOT libmysql_link_flag)
209 SET(libmysql_link_flags)209 SET(libmysql_link_flags)
210 ENDIF()210 ENDIF()
211 SET_TARGET_PROPERTIES(libmysql PROPERTIES LINK_FLAGS 211 IF(INSTALL_LAYOUT STREQUAL "RPM")
212 "${libmysql_link_flags} ${LINK_FLAG_NO_UNDEFINED}")212 SET_TARGET_PROPERTIES(libmysql PROPERTIES LINK_FLAGS "${libmysql_link_flags} -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libmysql.map ${LINK_FLAG_NO_UNDEFINED}")
213 ELSE()
214 SET_TARGET_PROPERTIES(libmysql PROPERTIES LINK_FLAGS "${libmysql_link_flags} ${LINK_FLAG_NO_UNDEFINED}")
215 ENDIF(INSTALL_LAYOUT STREQUAL "RPM")
213 ENDIF() 216 ENDIF()
214 # clean direct output needs to be set several targets have the same name217 # clean direct output needs to be set several targets have the same name
215 #(mysqlclient in this case)218 #(mysqlclient in this case)
216219
=== modified file 'Percona-Server/libmysql/errmsg.c'
--- Percona-Server/libmysql/errmsg.c 2011-06-30 15:46:53 +0000
+++ Percona-Server/libmysql/errmsg.c 2013-06-23 08:01:44 +0000
@@ -23,6 +23,7 @@
23#include <my_sys.h>23#include <my_sys.h>
24#include "errmsg.h"24#include "errmsg.h"
2525
26const char **mysql_client_errors = client_errors;
26const char *client_errors[]=27const char *client_errors[]=
27{28{
28 "Unknown MySQL error",29 "Unknown MySQL error",
2930
=== modified file 'Percona-Server/libmysql/libmysql.c'
--- Percona-Server/libmysql/libmysql.c 2013-03-22 03:29:56 +0000
+++ Percona-Server/libmysql/libmysql.c 2013-06-23 08:01:44 +0000
@@ -2107,7 +2107,14 @@
2107 DBUG_RETURN(1);2107 DBUG_RETURN(1);
2108 }2108 }
21092109
2110 net_clear(net, 1); /* Sets net->write_pos */2110 if (net->vio)
2111 net_clear(net, 1); /* Sets net->write_pos */
2112 else
2113 {
2114 set_stmt_errmsg(stmt, net);
2115 DBUG_RETURN(1);
2116 }
2117
2111 /* Reserve place for null-marker bytes */2118 /* Reserve place for null-marker bytes */
2112 null_count= (stmt->param_count+7) /8;2119 null_count= (stmt->param_count+7) /8;
2113 if (my_realloc_str(net, null_count + 1))2120 if (my_realloc_str(net, null_count + 1))
21142121
=== added file 'Percona-Server/libmysql/libmysql.map'
--- Percona-Server/libmysql/libmysql.map 1970-01-01 00:00:00 +0000
+++ Percona-Server/libmysql/libmysql.map 2013-06-23 08:01:44 +0000
@@ -0,0 +1,146 @@
1# symbols exported from mysql 5.1
2libmysqlclient_16 {
3 global:
4 _fini;
5 _init;
6 my_init;
7 myodbc_remove_escape;
8 mysql_affected_rows;
9 mysql_autocommit;
10 mysql_change_user;
11 mysql_character_set_name;
12 mysql_close;
13 mysql_commit;
14 mysql_data_seek;
15 mysql_debug;
16 mysql_dump_debug_info;
17 mysql_embedded;
18 mysql_eof;
19 mysql_errno;
20 mysql_error;
21 mysql_escape_string;
22 mysql_fetch_field;
23 mysql_fetch_field_direct;
24 mysql_fetch_fields;
25 mysql_fetch_lengths;
26 mysql_fetch_row;
27 mysql_field_count;
28 mysql_field_seek;
29 mysql_field_tell;
30 mysql_free_result;
31 mysql_get_character_set_info;
32 mysql_get_client_info;
33 mysql_get_client_version;
34 mysql_get_host_info;
35 mysql_get_parameters;
36 mysql_get_proto_info;
37 mysql_get_server_info;
38 mysql_get_server_version;
39 mysql_get_ssl_cipher;
40 mysql_hex_string;
41 mysql_info;
42 mysql_init;
43 mysql_insert_id;
44 mysql_kill;
45 mysql_list_dbs;
46 mysql_list_fields;
47 mysql_list_processes;
48 mysql_list_tables;
49 mysql_more_results;
50 mysql_next_result;
51 mysql_num_fields;
52 mysql_num_rows;
53 mysql_options;
54 mysql_ping;
55 mysql_query;
56 mysql_read_query_result;
57 mysql_real_connect;
58 mysql_real_escape_string;
59 mysql_real_query;
60 mysql_refresh;
61 mysql_rollback;
62 mysql_row_seek;
63 mysql_row_tell;
64 mysql_select_db;
65 mysql_send_query;
66 mysql_server_end;
67 mysql_server_init;
68 mysql_set_character_set;
69 mysql_set_local_infile_default;
70 mysql_set_local_infile_handler;
71 mysql_set_server_option;
72 mysql_shutdown;
73 mysql_sqlstate;
74 mysql_ssl_set;
75 mysql_stat;
76 mysql_stmt_affected_rows;
77 mysql_stmt_attr_get;
78 mysql_stmt_attr_set;
79 mysql_stmt_bind_param;
80 mysql_stmt_bind_result;
81 mysql_stmt_close;
82 mysql_stmt_data_seek;
83 mysql_stmt_errno;
84 mysql_stmt_error;
85 mysql_stmt_execute;
86 mysql_stmt_fetch;
87 mysql_stmt_fetch_column;
88 mysql_stmt_field_count;
89 mysql_stmt_free_result;
90 mysql_stmt_init;
91 mysql_stmt_insert_id;
92 mysql_stmt_num_rows;
93 mysql_stmt_param_count;
94 mysql_stmt_param_metadata;
95 mysql_stmt_prepare;
96 mysql_stmt_reset;
97 mysql_stmt_result_metadata;
98 mysql_stmt_row_seek;
99 mysql_stmt_row_tell;
100 mysql_stmt_send_long_data;
101 mysql_stmt_sqlstate;
102 mysql_stmt_store_result;
103 mysql_store_result;
104 mysql_thread_end;
105 mysql_thread_id;
106 mysql_thread_init;
107 mysql_thread_safe;
108 mysql_use_result;
109 mysql_warning_count;
110# These are documented in Paul DuBois' MySQL book, so we treat them as part
111# of the de-facto API.
112 free_defaults;
113 handle_options;
114 load_defaults;
115 my_print_help;
116# This isn't really documented anywhere, but it seems to be part of the
117# de-facto API as well. We're not going to export the deprecated version
118# make_scrambled_password, however.
119 my_make_scrambled_password;
120 local:
121 *;
122};
123# symbols added in mysql 5.5
124libmysqlclient_18 {
125 global:
126 mysql_client_find_plugin;
127 mysql_client_register_plugin;
128 mysql_load_plugin;
129 mysql_load_plugin_v;
130 mysql_plugin_options;
131 mysql_stmt_next_result;
132#
133# Ideally the following symbols wouldn't be exported, but various applications
134# require them. We limit the namespace damage by prefixing mysql_
135# (see mysql-dubious-exports.patch), which means the symbols are not present
136# in libmysqlclient_16.
137#
138# mysql-connector-odbc requires these
139 mysql_default_charset_info;
140 mysql_get_charset;
141 mysql_get_charset_by_csname;
142 mysql_net_realloc;
143# PHP's mysqli.so requires this (via the ER() macro)
144 client_errors;
145 mysql_client_errors;
146};
0147
=== modified file 'Percona-Server/mysql-test/collections/default.experimental'
--- Percona-Server/mysql-test/collections/default.experimental 2013-03-21 16:54:18 +0000
+++ Percona-Server/mysql-test/collections/default.experimental 2013-06-23 08:01:44 +0000
@@ -6,6 +6,7 @@
6funcs_1.charset_collation_1 # depends on compile-time decisions6funcs_1.charset_collation_1 # depends on compile-time decisions
77
8main.func_math @freebsd # Bug#11751977 2010-05-04 alik main.func_math fails on FreeBSD in PB28main.func_math @freebsd # Bug#11751977 2010-05-04 alik main.func_math fails on FreeBSD in PB2
9main.kill @solaris # Bug#16064876 2013-01-02 prthirum main.kill fails on sol10 sparc64
9main.lock_multi_bug38499 # Bug#11755645 2009-09-19 alik main.lock_multi_bug38499 times out sporadically10main.lock_multi_bug38499 # Bug#11755645 2009-09-19 alik main.lock_multi_bug38499 times out sporadically
10main.outfile_loaddata @solaris # Bug#11755168 2010-01-20 alik Test "outfile_loaddata" fails (reproducible)11main.outfile_loaddata @solaris # Bug#11755168 2010-01-20 alik Test "outfile_loaddata" fails (reproducible)
11main.signal_demo3 @solaris # Bug#11753919 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun12main.signal_demo3 @solaris # Bug#11753919 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
1213
=== modified file 'Percona-Server/mysql-test/include/get_relay_log_pos.inc'
--- Percona-Server/mysql-test/include/get_relay_log_pos.inc 2010-10-21 07:37:10 +0000
+++ Percona-Server/mysql-test/include/get_relay_log_pos.inc 2013-06-23 08:01:44 +0000
@@ -40,7 +40,6 @@
40# '# .... end_log_pos 46'40# '# .... end_log_pos 46'
41eval LOAD DATA LOCAL INFILE '$_tmp_file' INTO TABLE mysqlbinlog_events41eval LOAD DATA LOCAL INFILE '$_tmp_file' INTO TABLE mysqlbinlog_events
42 LINES STARTING BY '#' (c2) SET c1 = NULL;42 LINES STARTING BY '#' (c2) SET c1 = NULL;
43--enable_warnings
4443
45# Event pos in relay log file is inserted into table events_at44# Event pos in relay log file is inserted into table events_at
46CREATE TEMPORARY TABLE events_at(c1 INT AUTO_INCREMENT KEY, c2 varchar(256))45CREATE TEMPORARY TABLE events_at(c1 INT AUTO_INCREMENT KEY, c2 varchar(256))
@@ -49,6 +48,7 @@
49# Event pos in master log file is inserted into table events_pos48# Event pos in master log file is inserted into table events_pos
50CREATE TEMPORARY TABLE events_pos(c1 INT AUTO_INCREMENT KEY, c2 varchar(256))49CREATE TEMPORARY TABLE events_pos(c1 INT AUTO_INCREMENT KEY, c2 varchar(256))
51 SELECT c2 FROM mysqlbinlog_events WHERE c2 LIKE '% end_log_pos %' ORDER BY c1;50 SELECT c2 FROM mysqlbinlog_events WHERE c2 LIKE '% end_log_pos %' ORDER BY c1;
51--enable_warnings
5252
53# events_at events_pos53# events_at events_pos
54# c1------c2-------------------------- c1------c2------------------------54# c1------c2-------------------------- c1------c2------------------------
5555
=== modified file 'Percona-Server/mysql-test/include/rpl_init.inc'
--- Percona-Server/mysql-test/include/rpl_init.inc 2010-12-20 14:15:01 +0000
+++ Percona-Server/mysql-test/include/rpl_init.inc 2013-06-23 08:01:44 +0000
@@ -7,7 +7,6 @@
7# well as extra connections server_1_1, server_2_1, ...,7# well as extra connections server_1_1, server_2_1, ...,
8# server_N_1. server_I and server_I_1 are connections to the same8# server_N_1. server_I and server_I_1 are connections to the same
9# server.9# server.
10# - Sets up @@auto_increment_increment and @@auto_increment_increment.
11# - Verifies that @@server_id of all servers are different.10# - Verifies that @@server_id of all servers are different.
12# - Calls RESET MASTER, RESET SLAVE, USE test, CHANGE MASTER, START SLAVE.11# - Calls RESET MASTER, RESET SLAVE, USE test, CHANGE MASTER, START SLAVE.
13# - Sets the connection to server_1 before exiting.12# - Sets the connection to server_1 before exiting.
@@ -179,8 +178,6 @@
179 RESET MASTER;178 RESET MASTER;
180 RESET SLAVE;179 RESET SLAVE;
181 }180 }
182 eval SET auto_increment_increment= $rpl_server_count;
183 eval SET auto_increment_offset= $_rpl_server;
184181
185 --dec $_rpl_server182 --dec $_rpl_server
186}183}
187184
=== modified file 'Percona-Server/mysql-test/mysql-test-run.pl'
--- Percona-Server/mysql-test/mysql-test-run.pl 2013-03-21 16:54:18 +0000
+++ Percona-Server/mysql-test/mysql-test-run.pl 2013-06-23 08:01:44 +0000
@@ -700,9 +700,11 @@
700 mtr_report("\nRetrying test $tname, ".700 mtr_report("\nRetrying test $tname, ".
701 "attempt($retries/$opt_retry)...\n");701 "attempt($retries/$opt_retry)...\n");
702 #saving the log file as filename.failed in case of retry702 #saving the log file as filename.failed in case of retry
703 my $worker_logdir= $result->{savedir};703 if ( $result->is_failed() ) {
704 my $log_file_name=dirname($worker_logdir)."/".$result->{shortname}.".log";704 my $worker_logdir= $result->{savedir};
705 rename $log_file_name,$log_file_name.".failed";705 my $log_file_name=dirname($worker_logdir)."/".$result->{shortname}.".log";
706 rename $log_file_name,$log_file_name.".failed";
707 }
706 delete($result->{result});708 delete($result->{result});
707 $result->{retries}= $retries+1;709 $result->{retries}= $retries+1;
708 $result->write_test($sock, 'TESTCASE');710 $result->write_test($sock, 'TESTCASE');
@@ -3844,6 +3846,7 @@
38443846
3845sub run_testcase ($) {3847sub run_testcase ($) {
3846 my $tinfo= shift;3848 my $tinfo= shift;
3849 my $print_freq=20;
38473850
3848 mtr_verbose("Running test:", $tinfo->{name});3851 mtr_verbose("Running test:", $tinfo->{name});
3849 resfile_report_test($tinfo) if $opt_resfile;3852 resfile_report_test($tinfo) if $opt_resfile;
@@ -4003,6 +4006,7 @@
4003 my $test= start_mysqltest($tinfo);4006 my $test= start_mysqltest($tinfo);
4004 # Set only when we have to keep waiting after expectedly died server4007 # Set only when we have to keep waiting after expectedly died server
4005 my $keep_waiting_proc = 0;4008 my $keep_waiting_proc = 0;
4009 my $print_timeout= start_timer($print_freq * 60);
40064010
4007 while (1)4011 while (1)
4008 {4012 {
@@ -4027,7 +4031,22 @@
4027 }4031 }
4028 if (! $keep_waiting_proc)4032 if (! $keep_waiting_proc)
4029 {4033 {
4030 $proc= My::SafeProcess->wait_any_timeout($test_timeout);4034 if($test_timeout > $print_timeout)
4035 {
4036 $proc= My::SafeProcess->wait_any_timeout($print_timeout);
4037 if ( $proc->{timeout} )
4038 {
4039 #print out that the test is still on
4040 mtr_print("Test still running: $tinfo->{name}");
4041 #reset the timer
4042 $print_timeout= start_timer($print_freq * 60);
4043 next;
4044 }
4045 }
4046 else
4047 {
4048 $proc= My::SafeProcess->wait_any_timeout($test_timeout);
4049 }
4031 }4050 }
40324051
4033 # Will be restored if we need to keep waiting4052 # Will be restored if we need to keep waiting
40344053
=== modified file 'Percona-Server/mysql-test/r/cast.result'
--- Percona-Server/mysql-test/r/cast.result 2012-02-22 10:20:52 +0000
+++ Percona-Server/mysql-test/r/cast.result 2013-06-23 08:01:44 +0000
@@ -477,4 +477,22 @@
477AND CAST(a AS BINARY)=x'65736D697468';477AND CAST(a AS BINARY)=x'65736D697468';
478a478a
479DROP TABLE t1;479DROP TABLE t1;
480#
481# Bug#13581962 HIGH MEMORY USAGE ATTEMPT, THEN CRASH WITH
482# LONGTEXT, UNION, USER VARIABLE
483# Bug#14096619 UNABLE TO RESTORE DATABASE DUMP
484#
485CREATE TABLE t1 AS SELECT CONCAT(CAST(REPEAT('9', 1000) AS SIGNED)),
486CONCAT(CAST(REPEAT('9', 1000) AS UNSIGNED));
487Warnings:
488Warning 1292 Truncated incorrect INTEGER value: '99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999'
489Warning 1292 Truncated incorrect INTEGER value: '99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999'
490SHOW CREATE TABLE t1;
491Table Create Table
492t1 CREATE TABLE `t1` (
493 `CONCAT(CAST(REPEAT('9', 1000) AS SIGNED))` varchar(21) NOT NULL DEFAULT '',
494 `CONCAT(CAST(REPEAT('9', 1000) AS UNSIGNED))` varchar(21) NOT NULL DEFAULT ''
495) ENGINE=MyISAM DEFAULT CHARSET=latin1
496DROP TABLE t1;
497# End of test for Bug#13581962, Bug#14096619
480End of 5.1 tests498End of 5.1 tests
481499
=== added file 'Percona-Server/mysql-test/r/change_user_notembedded.result'
--- Percona-Server/mysql-test/r/change_user_notembedded.result 1970-01-01 00:00:00 +0000
+++ Percona-Server/mysql-test/r/change_user_notembedded.result 2013-06-23 08:01:44 +0000
@@ -0,0 +1,5 @@
1ERROR 28000: Access denied for user 'foo'@'localhost' (using password: YES)
2ERROR 28000: Access denied for user 'foo'@'localhost' (using password: NO)
3ERROR 28000: Access denied for user 'foo'@'localhost' (using password: YES)
4ERROR 08S01: Unknown command
5ERROR 08S01: Unknown command
06
=== modified file 'Percona-Server/mysql-test/r/ctype_utf8mb4.result'
--- Percona-Server/mysql-test/r/ctype_utf8mb4.result 2010-09-28 15:15:58 +0000
+++ Percona-Server/mysql-test/r/ctype_utf8mb4.result 2013-06-23 08:01:44 +0000
@@ -2539,6 +2539,24 @@
2539) ENGINE=MyISAM DEFAULT CHARSET=latin12539) ENGINE=MyISAM DEFAULT CHARSET=latin1
2540DROP TABLE t1, t2;2540DROP TABLE t1, t2;
2541#2541#
2542# Bug#13581962 HIGH MEMORY USAGE ATTEMPT, THEN CRASH WITH
2543# LONGTEXT, UNION, USER VARIABLE
2544# Bug#14096619 UNABLE TO RESTORE DATABASE DUMP
2545#
2546CREATE TABLE t1(f1 LONGTEXT CHARACTER SET utf8mb4);
2547INSERT INTO t1 VALUES ('a');
2548SELECT @a:= CAST(f1 AS SIGNED) FROM t1
2549UNION ALL
2550SELECT CAST(f1 AS SIGNED) FROM t1;
2551@a:= CAST(f1 AS SIGNED)
25520
25530
2554Warnings:
2555Warning 1292 Truncated incorrect INTEGER value: 'a'
2556Warning 1292 Truncated incorrect INTEGER value: 'a'
2557DROP TABLE t1;
2558# End of test for Bug#13581962,Bug#14096619
2559#
2542# End of 5.5 tests2560# End of 5.5 tests
2543#2561#
2544#2562#
25452563
=== added file 'Percona-Server/mysql-test/r/failed_auth_3909.result'
--- Percona-Server/mysql-test/r/failed_auth_3909.result 1970-01-01 00:00:00 +0000
+++ Percona-Server/mysql-test/r/failed_auth_3909.result 2013-06-23 08:01:44 +0000
@@ -0,0 +1,20 @@
1optimize table mysql.user;
2Table Op Msg_type Msg_text
3mysql.user optimize status OK
4insert mysql.user (user,plugin) values ('foo','bar'),('bar','bar'),('baz','bar');
5Warnings:
6Warning 1364 Field 'ssl_cipher' doesn't have a default value
7Warning 1364 Field 'x509_issuer' doesn't have a default value
8Warning 1364 Field 'x509_subject' doesn't have a default value
9flush privileges;
10connect(localhost,u1,,test,MASTER_PORT,MASTER_SOCKET);
11ERROR HY000: Plugin 'bar' is not loaded
12connect(localhost,u2,,test,MASTER_PORT,MASTER_SOCKET);
13ERROR 28000: Access denied for user 'u2'@'localhost' (using password: NO)
14connect(localhost,u2,password,test,MASTER_PORT,MASTER_SOCKET);
15ERROR 28000: Access denied for user 'u2'@'localhost' (using password: YES)
16ERROR HY000: Plugin 'bar' is not loaded
17ERROR 28000: Access denied for user 'u2'@'localhost' (using password: NO)
18ERROR 28000: Access denied for user 'u2'@'localhost' (using password: YES)
19delete from mysql.user where plugin = 'bar';
20flush privileges;
021
=== modified file 'Percona-Server/mysql-test/r/join_outer.result'
--- Percona-Server/mysql-test/r/join_outer.result 2012-02-07 16:32:04 +0000
+++ Percona-Server/mysql-test/r/join_outer.result 2013-06-23 08:01:44 +0000
@@ -1702,4 +1702,36 @@
1702f1702f
1703117031
1704DROP TABLE t1;1704DROP TABLE t1;
1705#
1706# Bug#13068506 - QUERY WITH GROUP BY ON NON-AGGR COLUMN RETURNS
1707# WRONG RESULT
1708#
1709CREATE TABLE t1 (i1 int);
1710INSERT INTO t1 VALUES (100), (101);
1711CREATE TABLE t2 (i2 int, i3 int);
1712INSERT INTO t2 VALUES (20,1),(10,2);
1713CREATE TABLE t3 (i4 int(11));
1714INSERT INTO t3 VALUES (1),(2);
1715
1716SELECT (
1717SELECT MAX( t2.i2 )
1718FROM t3 RIGHT JOIN t2 ON ( t2.i3 = 2 )
1719WHERE t2.i3 <> t1.i1
1720) AS field1
1721FROM t1;;
1722field1
172320
172420
1725
1726SELECT (
1727SELECT MAX( t2.i2 )
1728FROM t3 RIGHT JOIN t2 ON ( t2.i3 = 2 )
1729WHERE t2.i3 <> t1.i1
1730) AS field1
1731FROM t1 GROUP BY field1;;
1732field1
173320
1734
1735drop table t1,t2,t3;
1736# End of test for Bug#13068506
1705End of 5.1 tests1737End of 5.1 tests
17061738
=== modified file 'Percona-Server/mysql-test/r/mysqltest.result'
--- Percona-Server/mysql-test/r/mysqltest.result 2011-11-08 14:55:25 +0000
+++ Percona-Server/mysql-test/r/mysqltest.result 2013-06-23 08:01:44 +0000
@@ -922,9 +922,9 @@
922b varchar(255) YES NULL 922b varchar(255) YES NULL
923c datetime YES NULL 923c datetime YES NULL
924drop table t1;924drop table t1;
925mysqltest: At line 1: change user failed: Unknown database 'inexistent'925mysqltest: At line 1: query 'change_user root,,inexistent' failed: 1049: Unknown database 'inexistent'
926mysqltest: At line 1: change user failed: Access denied for user 'inexistent'@'localhost' (using password: NO)926mysqltest: At line 1: query 'change_user inexistent,,test' failed: 1045: Access denied for user 'inexistent'@'localhost' (using password: NO)
927mysqltest: At line 1: change user failed: Access denied for user 'root'@'localhost' (using password: YES)927mysqltest: At line 1: query 'change_user root,inexistent,test' failed: 1045: Access denied for user 'root'@'localhost' (using password: YES)
928REPLACED_FILE1.txt928REPLACED_FILE1.txt
929file1.txt929file1.txt
930file2.txt930file2.txt
931931
=== modified file 'Percona-Server/mysql-test/r/partition.result'
--- Percona-Server/mysql-test/r/partition.result 2012-01-27 12:21:21 +0000
+++ Percona-Server/mysql-test/r/partition.result 2013-06-23 08:01:44 +0000
@@ -1758,13 +1758,13 @@
1758partition by key (a);1758partition by key (a);
1759REPAIR TABLE t1;1759REPAIR TABLE t1;
1760Table Op Msg_type Msg_text1760Table Op Msg_type Msg_text
1761test.t1 repair note The storage engine for the table doesn't support repair1761test.t1 repair status OK
1762OPTIMIZE TABLE t1;1762OPTIMIZE TABLE t1;
1763Table Op Msg_type Msg_text1763Table Op Msg_type Msg_text
1764test.t1 optimize note The storage engine for the table doesn't support optimize1764test.t1 optimize note The storage engine for the table doesn't support optimize
1765CHECK TABLE t1;1765CHECK TABLE t1;
1766Table Op Msg_type Msg_text1766Table Op Msg_type Msg_text
1767test.t1 check note The storage engine for the table doesn't support check1767test.t1 check status OK
1768ANALYZE TABLE t1;1768ANALYZE TABLE t1;
1769Table Op Msg_type Msg_text1769Table Op Msg_type Msg_text
1770test.t1 analyze note The storage engine for the table doesn't support analyze1770test.t1 analyze note The storage engine for the table doesn't support analyze
17711771
=== modified file 'Percona-Server/mysql-test/r/percona_server_variables_debug.result'
--- Percona-Server/mysql-test/r/percona_server_variables_debug.result 2013-04-04 10:52:07 +0000
+++ Percona-Server/mysql-test/r/percona_server_variables_debug.result 2013-06-23 08:01:44 +0000
@@ -89,6 +89,7 @@
89INNODB_AUTOEXTEND_INCREMENT89INNODB_AUTOEXTEND_INCREMENT
90INNODB_AUTOINC_LOCK_MODE90INNODB_AUTOINC_LOCK_MODE
91INNODB_BLOCKING_BUFFER_POOL_RESTORE91INNODB_BLOCKING_BUFFER_POOL_RESTORE
92INNODB_BUFFER_POOL_EVICT
92INNODB_BUFFER_POOL_INSTANCES93INNODB_BUFFER_POOL_INSTANCES
93INNODB_BUFFER_POOL_POPULATE94INNODB_BUFFER_POOL_POPULATE
94INNODB_BUFFER_POOL_RESTORE_AT_STARTUP95INNODB_BUFFER_POOL_RESTORE_AT_STARTUP
@@ -177,6 +178,7 @@
177INNODB_TRACK_CHANGED_PAGES178INNODB_TRACK_CHANGED_PAGES
178INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG179INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG
179INNODB_TRX_RSEG_N_SLOTS_DEBUG180INNODB_TRX_RSEG_N_SLOTS_DEBUG
181INNODB_USE_ATOMIC_WRITES
180INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT182INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT
181INNODB_USE_NATIVE_AIO183INNODB_USE_NATIVE_AIO
182INNODB_USE_SYS_MALLOC184INNODB_USE_SYS_MALLOC
183185
=== modified file 'Percona-Server/mysql-test/r/percona_server_variables_release.result'
--- Percona-Server/mysql-test/r/percona_server_variables_release.result 2013-04-04 10:52:07 +0000
+++ Percona-Server/mysql-test/r/percona_server_variables_release.result 2013-06-23 08:01:44 +0000
@@ -170,6 +170,7 @@
170INNODB_THREAD_CONCURRENCY_TIMER_BASED170INNODB_THREAD_CONCURRENCY_TIMER_BASED
171INNODB_THREAD_SLEEP_DELAY171INNODB_THREAD_SLEEP_DELAY
172INNODB_TRACK_CHANGED_PAGES172INNODB_TRACK_CHANGED_PAGES
173INNODB_USE_ATOMIC_WRITES
173INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT174INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT
174INNODB_USE_NATIVE_AIO175INNODB_USE_NATIVE_AIO
175INNODB_USE_SYS_MALLOC176INNODB_USE_SYS_MALLOC
176177
=== modified file 'Percona-Server/mysql-test/r/show_check.result'
--- Percona-Server/mysql-test/r/show_check.result 2013-01-16 01:34:54 +0000
+++ Percona-Server/mysql-test/r/show_check.result 2013-06-23 08:01:44 +0000
@@ -15,7 +15,7 @@
15def Table 253 128 7 Y 0 31 815def Table 253 128 7 Y 0 31 8
16def Op 253 10 5 Y 0 31 816def Op 253 10 5 Y 0 31 8
17def Msg_type 253 10 6 Y 0 31 817def Msg_type 253 10 6 Y 0 31 8
18def Msg_text 253 255 27 Y 0 31 818def Msg_text 250 393216 27 Y 0 31 8
19Table Op Msg_type Msg_text19Table Op Msg_type Msg_text
20test.t1 check status Table is already up to date20test.t1 check status Table is already up to date
21check table t1 fast;21check table t1 fast;
@@ -23,7 +23,7 @@
23def Table 253 128 7 Y 0 31 823def Table 253 128 7 Y 0 31 8
24def Op 253 10 5 Y 0 31 824def Op 253 10 5 Y 0 31 8
25def Msg_type 253 10 6 Y 0 31 825def Msg_type 253 10 6 Y 0 31 8
26def Msg_text 253 255 27 Y 0 31 826def Msg_text 250 393216 27 Y 0 31 8
27Table Op Msg_type Msg_text27Table Op Msg_type Msg_text
28test.t1 check status Table is already up to date28test.t1 check status Table is already up to date
29check table t1 changed;29check table t1 changed;
@@ -31,7 +31,7 @@
31def Table 253 128 7 Y 0 31 831def Table 253 128 7 Y 0 31 8
32def Op 253 10 5 Y 0 31 832def Op 253 10 5 Y 0 31 8
33def Msg_type 253 10 6 Y 0 31 833def Msg_type 253 10 6 Y 0 31 8
34def Msg_text 253 255 2 Y 0 31 834def Msg_text 250 393216 2 Y 0 31 8
35Table Op Msg_type Msg_text35Table Op Msg_type Msg_text
36test.t1 check status OK36test.t1 check status OK
37insert into t1 values (5,5,5);37insert into t1 values (5,5,5);
@@ -40,7 +40,7 @@
40def Table 253 128 7 Y 0 31 840def Table 253 128 7 Y 0 31 8
41def Op 253 10 5 Y 0 31 841def Op 253 10 5 Y 0 31 8
42def Msg_type 253 10 6 Y 0 31 842def Msg_type 253 10 6 Y 0 31 8
43def Msg_text 253 255 2 Y 0 31 843def Msg_text 250 393216 2 Y 0 31 8
44Table Op Msg_type Msg_text44Table Op Msg_type Msg_text
45test.t1 check status OK45test.t1 check status OK
46check table t1 medium;46check table t1 medium;
@@ -48,7 +48,7 @@
48def Table 253 128 7 Y 0 31 848def Table 253 128 7 Y 0 31 8
49def Op 253 10 5 Y 0 31 849def Op 253 10 5 Y 0 31 8
50def Msg_type 253 10 6 Y 0 31 850def Msg_type 253 10 6 Y 0 31 8
51def Msg_text 253 255 2 Y 0 31 851def Msg_text 250 393216 2 Y 0 31 8
52Table Op Msg_type Msg_text52Table Op Msg_type Msg_text
53test.t1 check status OK53test.t1 check status OK
54check table t1 extended;54check table t1 extended;
@@ -56,7 +56,7 @@
56def Table 253 128 7 Y 0 31 856def Table 253 128 7 Y 0 31 8
57def Op 253 10 5 Y 0 31 857def Op 253 10 5 Y 0 31 8
58def Msg_type 253 10 6 Y 0 31 858def Msg_type 253 10 6 Y 0 31 8
59def Msg_text 253 255 2 Y 0 31 859def Msg_text 250 393216 2 Y 0 31 8
60Table Op Msg_type Msg_text60Table Op Msg_type Msg_text
61test.t1 check status OK61test.t1 check status OK
62show index from t1;62show index from t1;
@@ -88,7 +88,7 @@
88def Table 253 128 7 Y 0 31 888def Table 253 128 7 Y 0 31 8
89def Op 253 10 8 Y 0 31 889def Op 253 10 8 Y 0 31 8
90def Msg_type 253 10 6 Y 0 31 890def Msg_type 253 10 6 Y 0 31 8
91def Msg_text 253 255 2 Y 0 31 891def Msg_text 250 393216 2 Y 0 31 8
92Table Op Msg_type Msg_text92Table Op Msg_type Msg_text
93test.t1 optimize status OK93test.t1 optimize status OK
94optimize table t1;94optimize table t1;
@@ -160,7 +160,7 @@
160def Table 253 128 7 Y 0 31 8160def Table 253 128 7 Y 0 31 8
161def Op 253 10 7 Y 0 31 8161def Op 253 10 7 Y 0 31 8
162def Msg_type 253 10 6 Y 0 31 8162def Msg_type 253 10 6 Y 0 31 8
163def Msg_text 253 255 2 Y 0 31 8163def Msg_text 250 393216 2 Y 0 31 8
164Table Op Msg_type Msg_text164Table Op Msg_type Msg_text
165test.t1 analyze status OK165test.t1 analyze status OK
166show index from t1;166show index from t1;
@@ -177,7 +177,7 @@
177def Table 253 128 7 Y 0 31 8177def Table 253 128 7 Y 0 31 8
178def Op 253 10 6 Y 0 31 8178def Op 253 10 6 Y 0 31 8
179def Msg_type 253 10 6 Y 0 31 8179def Msg_type 253 10 6 Y 0 31 8
180def Msg_text 253 255 2 Y 0 31 8180def Msg_text 250 393216 2 Y 0 31 8
181Table Op Msg_type Msg_text181Table Op Msg_type Msg_text
182test.t1 repair status OK182test.t1 repair status OK
183show index from t1;183show index from t1;
184184
=== modified file 'Percona-Server/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result'
--- Percona-Server/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result 2010-06-01 23:25:08 +0000
+++ Percona-Server/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result 2013-06-23 08:01:44 +0000
@@ -48,6 +48,7 @@
48################################################################################48################################################################################
49# CLEAN UP #49# CLEAN UP #
50################################################################################50################################################################################
51flush tables;
51UNINSTALL PLUGIN example;52UNINSTALL PLUGIN example;
52SET @@global.binlog_format = @old_binlog_format;53SET @@global.binlog_format = @old_binlog_format;
53SET @@session.binlog_format = @old_binlog_format;54SET @@session.binlog_format = @old_binlog_format;
5455
=== modified file 'Percona-Server/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test'
--- Percona-Server/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test 2010-06-01 23:25:08 +0000
+++ Percona-Server/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test 2013-06-23 08:01:44 +0000
@@ -26,7 +26,8 @@
26--source include/have_log_bin.inc26--source include/have_log_bin.inc
2727
28SET @old_binlog_format= @@global.binlog_format;28SET @old_binlog_format= @@global.binlog_format;
29INSTALL PLUGIN example SONAME 'ha_example.so';29--replace_regex /\.dll/.so/
30eval INSTALL PLUGIN example SONAME '$EXAMPLE_PLUGIN';
3031
31--echo ################################################################################32--echo ################################################################################
32--echo # Verifies if ER_BINLOG_STMT_MODE_AND_ROW_ENGINE happens by setting the binlog33--echo # Verifies if ER_BINLOG_STMT_MODE_AND_ROW_ENGINE happens by setting the binlog
@@ -90,6 +91,7 @@
90--echo ################################################################################91--echo ################################################################################
91--echo # CLEAN UP #92--echo # CLEAN UP #
92--echo ################################################################################93--echo ################################################################################
94flush tables;
93UNINSTALL PLUGIN example;95UNINSTALL PLUGIN example;
94SET @@global.binlog_format = @old_binlog_format;96SET @@global.binlog_format = @old_binlog_format;
95SET @@session.binlog_format = @old_binlog_format;97SET @@session.binlog_format = @old_binlog_format;
9698
=== modified file 'Percona-Server/mysql-test/suite/binlog/t/disabled.def'
--- Percona-Server/mysql-test/suite/binlog/t/disabled.def 2011-05-24 06:40:38 +0000
+++ Percona-Server/mysql-test/suite/binlog/t/disabled.def 2013-06-23 08:01:44 +0000
@@ -10,4 +10,4 @@
10#10#
11##############################################################################11##############################################################################
12binlog_truncate_innodb : BUG#11764459 2010-10-20 anitha Originally disabled due to BUG#42643. Product bug fixed, but test changes needed12binlog_truncate_innodb : BUG#11764459 2010-10-20 anitha Originally disabled due to BUG#42643. Product bug fixed, but test changes needed
13binlog_spurious_ddl_errors : BUG#11761680 2010-06-03 alik binlog_spurious_ddl_errors.test fails, thus disabled13binlog_spurious_ddl_errors : BUG#11761680 2013-01-18 astha Fixed on mysql-5.6 and trunk
1414
=== modified file 'Percona-Server/mysql-test/suite/innodb/r/innodb_bug14147491.result'
--- Percona-Server/mysql-test/suite/innodb/r/innodb_bug14147491.result 2012-11-19 09:28:51 +0000
+++ Percona-Server/mysql-test/suite/innodb/r/innodb_bug14147491.result 2013-06-23 08:01:44 +0000
@@ -4,14 +4,25 @@
4CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) ENGINE=InnoDB;4CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) ENGINE=InnoDB;
5INSERT INTO t1 (b) VALUES ('corrupt me');5INSERT INTO t1 (b) VALUES ('corrupt me');
6INSERT INTO t1 (b) VALUES ('corrupt me');6INSERT INTO t1 (b) VALUES ('corrupt me');
7# Restart server to flush buffers7# Write file to make mysql-test-run.pl expect the "crash", but don't
8# start it until it's told to
9# We give 30 seconds to do a clean shutdown because we do not want
10# to redo apply the pages of t1.ibd at the time of recovery.
11# We want SQL to initiate the first access to t1.ibd.
12# Wait until disconnected.
13# Backup the t1.ibd before corrupting
8# Corrupt the table14# Corrupt the table
9Munged a string.15Munged a string.
10Munged a string.16Munged a string.
11# Write file to make mysql-test-run.pl expect crash and restart17# Write file to make mysql-test-run.pl start up the server again
18SET DEBUG = '+d,innodb_page_corruption_retries';
19# Write file to make mysql-test-run.pl expect the "crash", but don't
20# start it until it's told to
21# The below SELECT query will crash the server because some pages
22# on the disk are corrupted
12SELECT * FROM t1;23SELECT * FROM t1;
13ERROR HY000: Lost connection to MySQL server during query24ERROR HY000: Lost connection to MySQL server during query
14# Turn on reconnect25# Restore the original t1.ibd
15# Wait for server to fully start26# Write file to make mysql-test-run.pl start up the server again
16# Cleanup27# Cleanup
17DROP TABLE t1;28DROP TABLE t1;
1829
=== modified file 'Percona-Server/mysql-test/suite/innodb/t/innodb_bug12400341.test'
--- Percona-Server/mysql-test/suite/innodb/t/innodb_bug12400341.test 2012-01-10 05:23:20 +0000
+++ Percona-Server/mysql-test/suite/innodb/t/innodb_bug12400341.test 2013-06-23 08:01:44 +0000
@@ -7,6 +7,10 @@
7 --skip Test requires InnoDB built with UNIV_DEBUG definition.7 --skip Test requires InnoDB built with UNIV_DEBUG definition.
8}8}
99
10# Don't test under valgrind, undo slots of the previous test might exist still
11# and cause unstable result.
12--source include/not_valgrind.inc
13
10call mtr.add_suppression("InnoDB: Warning: cannot find a free slot for an undo log. Do you have too");14call mtr.add_suppression("InnoDB: Warning: cannot find a free slot for an undo log. Do you have too");
1115
12--disable_query_log16--disable_query_log
1317
=== modified file 'Percona-Server/mysql-test/suite/innodb/t/innodb_bug14147491.test'
--- Percona-Server/mysql-test/suite/innodb/t/innodb_bug14147491.test 2012-11-19 09:28:51 +0000
+++ Percona-Server/mysql-test/suite/innodb/t/innodb_bug14147491.test 2013-06-23 08:01:44 +0000
@@ -10,6 +10,8 @@
10source include/not_embedded.inc;10source include/not_embedded.inc;
11# Require InnoDB11# Require InnoDB
12source include/have_innodb.inc;12source include/have_innodb.inc;
13# Require Debug for SET DEBUG
14source include/have_debug.inc;
1315
14CALL mtr.add_suppression("InnoDB: Error: Unable to read tablespace .* page no .* into the buffer pool after 100 attempts");16CALL mtr.add_suppression("InnoDB: Error: Unable to read tablespace .* page no .* into the buffer pool after 100 attempts");
15CALL mtr.add_suppression("InnoDB: Warning: database page corruption or a failed");17CALL mtr.add_suppression("InnoDB: Warning: database page corruption or a failed");
@@ -27,13 +29,26 @@
27--enable_query_log29--enable_query_log
28INSERT INTO t1 (b) VALUES ('corrupt me');30INSERT INTO t1 (b) VALUES ('corrupt me');
2931
30--echo # Restart server to flush buffers
31source include/restart_mysqld.inc;
32
33--echo # Corrupt the table
34let $MYSQLD_DATADIR=`select @@datadir`;32let $MYSQLD_DATADIR=`select @@datadir`;
35let t1_IBD = $MYSQLD_DATADIR/test/t1.ibd;33let t1_IBD = $MYSQLD_DATADIR/test/t1.ibd;
3634
35--echo # Write file to make mysql-test-run.pl expect the "crash", but don't
36--echo # start it until it's told to
37--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
38
39--echo # We give 30 seconds to do a clean shutdown because we do not want
40--echo # to redo apply the pages of t1.ibd at the time of recovery.
41--echo # We want SQL to initiate the first access to t1.ibd.
42shutdown_server 30;
43
44--echo # Wait until disconnected.
45--source include/wait_until_disconnected.inc
46
47--echo # Backup the t1.ibd before corrupting
48--copy_file $t1_IBD $MYSQLD_DATADIR/test/t1.ibd.backup
49
50--echo # Corrupt the table
51
37perl;52perl;
38use strict;53use strict;
39use warnings;54use warnings;
@@ -59,17 +74,38 @@
59close IBD_FILE;74close IBD_FILE;
60EOF75EOF
6176
62--echo # Write file to make mysql-test-run.pl expect crash and restart77--echo # Write file to make mysql-test-run.pl start up the server again
63--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect78--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
6479--enable_reconnect
80--source include/wait_until_connected_again.inc
81
82SET DEBUG = '+d,innodb_page_corruption_retries';
83
84--echo # Write file to make mysql-test-run.pl expect the "crash", but don't
85--echo # start it until it's told to
86--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
87
88--echo # The below SELECT query will crash the server because some pages
89--echo # on the disk are corrupted
65--error 201390--error 2013
66SELECT * FROM t1;91SELECT * FROM t1;
6792
68--echo # Turn on reconnect93# The below mtr command --remove_file fails randomly on windows with
94# error number 13 which is permission denied on nix systems. We sleep
95# 1 second hoping that any process holding lock on t1.ibd is released.
96SLEEP 1;
97
98--echo # Restore the original t1.ibd
99--remove_file $MYSQLD_DATADIR/test/t1.ibd
100--move_file $MYSQLD_DATADIR/test/t1.ibd.backup $MYSQLD_DATADIR/test/t1.ibd
101
102--echo # Write file to make mysql-test-run.pl start up the server again
103--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
69--enable_reconnect104--enable_reconnect
70
71--echo # Wait for server to fully start
72--source include/wait_until_connected_again.inc105--source include/wait_until_connected_again.inc
73106
107# Note SET DEBUG = '-d,innodb_page_corruption_retries' is not required
108# because the session information is lost after server restart
109
74--echo # Cleanup110--echo # Cleanup
75DROP TABLE t1;111DROP TABLE t1;
76112
=== modified file 'Percona-Server/mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result'
--- Percona-Server/mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result 2009-11-25 08:19:34 +0000
+++ Percona-Server/mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result 2013-06-23 08:01:44 +0000
@@ -531,7 +531,7 @@
531# check layout success: 1531# check layout success: 1
532REPAIR TABLE t1 EXTENDED;532REPAIR TABLE t1 EXTENDED;
533Table Op Msg_type Msg_text533Table Op Msg_type Msg_text
534test.t1 repair note The storage engine for the table doesn't support repair534test.t1 repair status OK
535# check layout success: 1535# check layout success: 1
536TRUNCATE t1;536TRUNCATE t1;
537 537
@@ -1023,7 +1023,7 @@
1023# check layout success: 11023# check layout success: 1
1024REPAIR TABLE t1 EXTENDED;1024REPAIR TABLE t1 EXTENDED;
1025Table Op Msg_type Msg_text1025Table Op Msg_type Msg_text
1026test.t1 repair note The storage engine for the table doesn't support repair1026test.t1 repair status OK
1027# check layout success: 11027# check layout success: 1
1028TRUNCATE t1;1028TRUNCATE t1;
1029 1029
@@ -1530,7 +1530,7 @@
1530# check layout success: 11530# check layout success: 1
1531REPAIR TABLE t1 EXTENDED;1531REPAIR TABLE t1 EXTENDED;
1532Table Op Msg_type Msg_text1532Table Op Msg_type Msg_text
1533test.t1 repair note The storage engine for the table doesn't support repair1533test.t1 repair status OK
1534# check layout success: 11534# check layout success: 1
1535TRUNCATE t1;1535TRUNCATE t1;
1536 1536
@@ -2031,7 +2031,7 @@
2031# check layout success: 12031# check layout success: 1
2032REPAIR TABLE t1 EXTENDED;2032REPAIR TABLE t1 EXTENDED;
2033Table Op Msg_type Msg_text2033Table Op Msg_type Msg_text
2034test.t1 repair note The storage engine for the table doesn't support repair2034test.t1 repair status OK
2035# check layout success: 12035# check layout success: 1
2036TRUNCATE t1;2036TRUNCATE t1;
2037 2037
@@ -2530,7 +2530,7 @@
2530# check layout success: 12530# check layout success: 1
2531REPAIR TABLE t1 EXTENDED;2531REPAIR TABLE t1 EXTENDED;
2532Table Op Msg_type Msg_text2532Table Op Msg_type Msg_text
2533test.t1 repair note The storage engine for the table doesn't support repair2533test.t1 repair status OK
2534# check layout success: 12534# check layout success: 1
2535TRUNCATE t1;2535TRUNCATE t1;
2536 2536
@@ -3040,7 +3040,7 @@
3040# check layout success: 13040# check layout success: 1
3041REPAIR TABLE t1 EXTENDED;3041REPAIR TABLE t1 EXTENDED;
3042Table Op Msg_type Msg_text3042Table Op Msg_type Msg_text
3043test.t1 repair note The storage engine for the table doesn't support repair3043test.t1 repair status OK
3044# check layout success: 13044# check layout success: 1
3045TRUNCATE t1;3045TRUNCATE t1;
3046 3046
@@ -3552,7 +3552,7 @@
3552# check layout success: 13552# check layout success: 1
3553REPAIR TABLE t1 EXTENDED;3553REPAIR TABLE t1 EXTENDED;
3554Table Op Msg_type Msg_text3554Table Op Msg_type Msg_text
3555test.t1 repair note The storage engine for the table doesn't support repair3555test.t1 repair status OK
3556# check layout success: 13556# check layout success: 1
3557TRUNCATE t1;3557TRUNCATE t1;
3558 3558
@@ -4052,7 +4052,7 @@
4052# check layout success: 14052# check layout success: 1
4053REPAIR TABLE t1 EXTENDED;4053REPAIR TABLE t1 EXTENDED;
4054Table Op Msg_type Msg_text4054Table Op Msg_type Msg_text
4055test.t1 repair note The storage engine for the table doesn't support repair4055test.t1 repair status OK
4056# check layout success: 14056# check layout success: 1
4057TRUNCATE t1;4057TRUNCATE t1;
4058 4058
@@ -4545,7 +4545,7 @@
4545# check layout success: 14545# check layout success: 1
4546REPAIR TABLE t1 EXTENDED;4546REPAIR TABLE t1 EXTENDED;
4547Table Op Msg_type Msg_text4547Table Op Msg_type Msg_text
4548test.t1 repair note The storage engine for the table doesn't support repair4548test.t1 repair status OK
4549# check layout success: 14549# check layout success: 1
4550TRUNCATE t1;4550TRUNCATE t1;
4551 4551
@@ -5037,7 +5037,7 @@
5037# check layout success: 15037# check layout success: 1
5038REPAIR TABLE t1 EXTENDED;5038REPAIR TABLE t1 EXTENDED;
5039Table Op Msg_type Msg_text5039Table Op Msg_type Msg_text
5040test.t1 repair note The storage engine for the table doesn't support repair5040test.t1 repair status OK
5041# check layout success: 15041# check layout success: 1
5042TRUNCATE t1;5042TRUNCATE t1;
5043 5043
@@ -5544,7 +5544,7 @@
5544# check layout success: 15544# check layout success: 1
5545REPAIR TABLE t1 EXTENDED;5545REPAIR TABLE t1 EXTENDED;
5546Table Op Msg_type Msg_text5546Table Op Msg_type Msg_text
5547test.t1 repair note The storage engine for the table doesn't support repair5547test.t1 repair status OK
5548# check layout success: 15548# check layout success: 1
5549TRUNCATE t1;5549TRUNCATE t1;
5550 5550
@@ -6045,7 +6045,7 @@
6045# check layout success: 16045# check layout success: 1
6046REPAIR TABLE t1 EXTENDED;6046REPAIR TABLE t1 EXTENDED;
6047Table Op Msg_type Msg_text6047Table Op Msg_type Msg_text
6048test.t1 repair note The storage engine for the table doesn't support repair6048test.t1 repair status OK
6049# check layout success: 16049# check layout success: 1
6050TRUNCATE t1;6050TRUNCATE t1;
6051 6051
@@ -6544,7 +6544,7 @@
6544# check layout success: 16544# check layout success: 1
6545REPAIR TABLE t1 EXTENDED;6545REPAIR TABLE t1 EXTENDED;
6546Table Op Msg_type Msg_text6546Table Op Msg_type Msg_text
6547test.t1 repair note The storage engine for the table doesn't support repair6547test.t1 repair status OK
6548# check layout success: 16548# check layout success: 1
6549TRUNCATE t1;6549TRUNCATE t1;
6550 6550
@@ -7054,7 +7054,7 @@
7054# check layout success: 17054# check layout success: 1
7055REPAIR TABLE t1 EXTENDED;7055REPAIR TABLE t1 EXTENDED;
7056Table Op Msg_type Msg_text7056Table Op Msg_type Msg_text
7057test.t1 repair note The storage engine for the table doesn't support repair7057test.t1 repair status OK
7058# check layout success: 17058# check layout success: 1
7059TRUNCATE t1;7059TRUNCATE t1;
7060 7060
@@ -7566,7 +7566,7 @@
7566# check layout success: 17566# check layout success: 1
7567REPAIR TABLE t1 EXTENDED;7567REPAIR TABLE t1 EXTENDED;
7568Table Op Msg_type Msg_text7568Table Op Msg_type Msg_text
7569test.t1 repair note The storage engine for the table doesn't support repair7569test.t1 repair status OK
7570# check layout success: 17570# check layout success: 1
7571TRUNCATE t1;7571TRUNCATE t1;
7572 7572
@@ -8066,7 +8066,7 @@
8066# check layout success: 18066# check layout success: 1
8067REPAIR TABLE t1 EXTENDED;8067REPAIR TABLE t1 EXTENDED;
8068Table Op Msg_type Msg_text8068Table Op Msg_type Msg_text
8069test.t1 repair note The storage engine for the table doesn't support repair8069test.t1 repair status OK
8070# check layout success: 18070# check layout success: 1
8071TRUNCATE t1;8071TRUNCATE t1;
8072 8072
@@ -8576,7 +8576,7 @@
8576# check layout success: 18576# check layout success: 1
8577REPAIR TABLE t1 EXTENDED;8577REPAIR TABLE t1 EXTENDED;
8578Table Op Msg_type Msg_text8578Table Op Msg_type Msg_text
8579test.t1 repair note The storage engine for the table doesn't support repair8579test.t1 repair status OK
8580# check layout success: 18580# check layout success: 1
8581TRUNCATE t1;8581TRUNCATE t1;
8582 8582
@@ -9084,7 +9084,7 @@
9084# check layout success: 19084# check layout success: 1
9085REPAIR TABLE t1 EXTENDED;9085REPAIR TABLE t1 EXTENDED;
9086Table Op Msg_type Msg_text9086Table Op Msg_type Msg_text
9087test.t1 repair note The storage engine for the table doesn't support repair9087test.t1 repair status OK
9088# check layout success: 19088# check layout success: 1
9089TRUNCATE t1;9089TRUNCATE t1;
9090 9090
@@ -9607,7 +9607,7 @@
9607# check layout success: 19607# check layout success: 1
9608REPAIR TABLE t1 EXTENDED;9608REPAIR TABLE t1 EXTENDED;
9609Table Op Msg_type Msg_text9609Table Op Msg_type Msg_text
9610test.t1 repair note The storage engine for the table doesn't support repair9610test.t1 repair status OK
9611# check layout success: 19611# check layout success: 1
9612TRUNCATE t1;9612TRUNCATE t1;
9613 9613
@@ -10124,7 +10124,7 @@
10124# check layout success: 110124# check layout success: 1
10125REPAIR TABLE t1 EXTENDED;10125REPAIR TABLE t1 EXTENDED;
10126Table Op Msg_type Msg_text10126Table Op Msg_type Msg_text
10127test.t1 repair note The storage engine for the table doesn't support repair10127test.t1 repair status OK
10128# check layout success: 110128# check layout success: 1
10129TRUNCATE t1;10129TRUNCATE t1;
10130 10130
@@ -10639,7 +10639,7 @@
10639# check layout success: 110639# check layout success: 1
10640REPAIR TABLE t1 EXTENDED;10640REPAIR TABLE t1 EXTENDED;
10641Table Op Msg_type Msg_text10641Table Op Msg_type Msg_text
10642test.t1 repair note The storage engine for the table doesn't support repair10642test.t1 repair status OK
10643# check layout success: 110643# check layout success: 1
10644TRUNCATE t1;10644TRUNCATE t1;
10645 10645
@@ -11165,7 +11165,7 @@
11165# check layout success: 111165# check layout success: 1
11166REPAIR TABLE t1 EXTENDED;11166REPAIR TABLE t1 EXTENDED;
11167Table Op Msg_type Msg_text11167Table Op Msg_type Msg_text
11168test.t1 repair note The storage engine for the table doesn't support repair11168test.t1 repair status OK
11169# check layout success: 111169# check layout success: 1
11170TRUNCATE t1;11170TRUNCATE t1;
11171 11171
@@ -11693,7 +11693,7 @@
11693# check layout success: 111693# check layout success: 1
11694REPAIR TABLE t1 EXTENDED;11694REPAIR TABLE t1 EXTENDED;
11695Table Op Msg_type Msg_text11695Table Op Msg_type Msg_text
11696test.t1 repair note The storage engine for the table doesn't support repair11696test.t1 repair status OK
11697# check layout success: 111697# check layout success: 1
11698TRUNCATE t1;11698TRUNCATE t1;
11699 11699
@@ -12209,7 +12209,7 @@
12209# check layout success: 112209# check layout success: 1
12210REPAIR TABLE t1 EXTENDED;12210REPAIR TABLE t1 EXTENDED;
12211Table Op Msg_type Msg_text12211Table Op Msg_type Msg_text
12212test.t1 repair note The storage engine for the table doesn't support repair12212test.t1 repair status OK
12213# check layout success: 112213# check layout success: 1
12214TRUNCATE t1;12214TRUNCATE t1;
12215 12215
@@ -12718,7 +12718,7 @@
12718# check layout success: 112718# check layout success: 1
12719REPAIR TABLE t1 EXTENDED;12719REPAIR TABLE t1 EXTENDED;
12720Table Op Msg_type Msg_text12720Table Op Msg_type Msg_text
12721test.t1 repair note The storage engine for the table doesn't support repair12721test.t1 repair status OK
12722# check layout success: 112722# check layout success: 1
12723TRUNCATE t1;12723TRUNCATE t1;
12724 12724
@@ -13226,7 +13226,7 @@
13226# check layout success: 113226# check layout success: 1
13227REPAIR TABLE t1 EXTENDED;13227REPAIR TABLE t1 EXTENDED;
13228Table Op Msg_type Msg_text13228Table Op Msg_type Msg_text
13229test.t1 repair note The storage engine for the table doesn't support repair13229test.t1 repair status OK
13230# check layout success: 113230# check layout success: 1
13231TRUNCATE t1;13231TRUNCATE t1;
13232 13232
@@ -13749,7 +13749,7 @@
13749# check layout success: 113749# check layout success: 1
13750REPAIR TABLE t1 EXTENDED;13750REPAIR TABLE t1 EXTENDED;
13751Table Op Msg_type Msg_text13751Table Op Msg_type Msg_text
13752test.t1 repair note The storage engine for the table doesn't support repair13752test.t1 repair status OK
13753# check layout success: 113753# check layout success: 1
13754TRUNCATE t1;13754TRUNCATE t1;
13755 13755
@@ -14266,7 +14266,7 @@
14266# check layout success: 114266# check layout success: 1
14267REPAIR TABLE t1 EXTENDED;14267REPAIR TABLE t1 EXTENDED;
14268Table Op Msg_type Msg_text14268Table Op Msg_type Msg_text
14269test.t1 repair note The storage engine for the table doesn't support repair14269test.t1 repair status OK
14270# check layout success: 114270# check layout success: 1
14271TRUNCATE t1;14271TRUNCATE t1;
14272 14272
@@ -14781,7 +14781,7 @@
14781# check layout success: 114781# check layout success: 1
14782REPAIR TABLE t1 EXTENDED;14782REPAIR TABLE t1 EXTENDED;
14783Table Op Msg_type Msg_text14783Table Op Msg_type Msg_text
14784test.t1 repair note The storage engine for the table doesn't support repair14784test.t1 repair status OK
14785# check layout success: 114785# check layout success: 1
14786TRUNCATE t1;14786TRUNCATE t1;
14787 14787
@@ -15307,7 +15307,7 @@
15307# check layout success: 115307# check layout success: 1
15308REPAIR TABLE t1 EXTENDED;15308REPAIR TABLE t1 EXTENDED;
15309Table Op Msg_type Msg_text15309Table Op Msg_type Msg_text
15310test.t1 repair note The storage engine for the table doesn't support repair15310test.t1 repair status OK
15311# check layout success: 115311# check layout success: 1
15312TRUNCATE t1;15312TRUNCATE t1;
15313 15313
@@ -15835,7 +15835,7 @@
15835# check layout success: 115835# check layout success: 1
15836REPAIR TABLE t1 EXTENDED;15836REPAIR TABLE t1 EXTENDED;
15837Table Op Msg_type Msg_text15837Table Op Msg_type Msg_text
15838test.t1 repair note The storage engine for the table doesn't support repair15838test.t1 repair status OK
15839# check layout success: 115839# check layout success: 1
15840TRUNCATE t1;15840TRUNCATE t1;
15841 15841
@@ -16351,7 +16351,7 @@
16351# check layout success: 116351# check layout success: 1
16352REPAIR TABLE t1 EXTENDED;16352REPAIR TABLE t1 EXTENDED;
16353Table Op Msg_type Msg_text16353Table Op Msg_type Msg_text
16354test.t1 repair note The storage engine for the table doesn't support repair16354test.t1 repair status OK
16355# check layout success: 116355# check layout success: 1
16356TRUNCATE t1;16356TRUNCATE t1;
16357 16357
@@ -16846,11579 +16846,11579 @@
16846# check layout success: 116846# check layout success: 1
16847REPAIR TABLE t1 EXTENDED;16847REPAIR TABLE t1 EXTENDED;
16848Table Op Msg_type Msg_text16848Table Op Msg_type Msg_text
16849test.t1 repair note The storage engine for the table doesn't support repair
16850# check layout success: 1
16851TRUNCATE t1;
16852
16853# check TRUNCATE success: 1
16854# check layout success: 1
16855# End usability test (inc/partition_check.inc)
16856DROP TABLE t1;
16857CREATE TABLE t1 (
16858f_int1 INTEGER,
16859f_int2 INTEGER,
16860f_char1 CHAR(20),
16861f_char2 CHAR(20),
16862f_charbig VARCHAR(1000)
16863
16864)
16865PARTITION BY KEY(f_int1,f_int2) PARTITIONS 5;
16866INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
16867SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
16868WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
16869ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_int1);
16870INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
16871SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
16872WHERE f_int1 BETWEEN @max_row_div2 AND @max_row;
16873# Start usability test (inc/partition_check.inc)
16874create_command
16875SHOW CREATE TABLE t1;
16876Table Create Table
16877t1 CREATE TABLE `t1` (
16878 `f_int1` int(11) NOT NULL DEFAULT '0',
16879 `f_int2` int(11) NOT NULL DEFAULT '0',
16880 `f_char1` char(20) DEFAULT NULL,
16881 `f_char2` char(20) DEFAULT NULL,
16882 `f_charbig` varchar(1000) DEFAULT NULL,
16883 PRIMARY KEY (`f_int2`,`f_int1`),
16884 UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
16885) ENGINE=InnoDB DEFAULT CHARSET=latin1
16886/*!50100 PARTITION BY KEY (f_int1,f_int2)
16887PARTITIONS 5 */
16888
16889# check prerequisites-1 success: 1
16890# check COUNT(*) success: 1
16891# check MIN/MAX(f_int1) success: 1
16892# check MIN/MAX(f_int2) success: 1
16893INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
16894SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
16895CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
16896WHERE f_int1 IN (2,3);
16897ERROR 23000: Duplicate entry '2-2' for key 'PRIMARY'
16898# check prerequisites-3 success: 1
16899# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
16900INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
16901SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
16902CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
16903WHERE f_int1 IN (2,3);
16904DELETE FROM t1 WHERE f_charbig = 'delete me';
16905INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
16906SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
16907CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
16908WHERE f_int1 IN (2,3);
16909DELETE FROM t1 WHERE f_charbig = 'delete me';
16910# check read via f_int1 success: 1
16911# check read via f_int2 success: 1
16912
16913# check multiple-1 success: 1
16914DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
16915
16916# check multiple-2 success: 1
16917INSERT INTO t1 SELECT * FROM t0_template
16918WHERE MOD(f_int1,3) = 0;
16919
16920# check multiple-3 success: 1
16921UPDATE t1 SET f_int1 = f_int1 + @max_row
16922WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
16923AND @max_row_div2 + @max_row_div4;
16924
16925# check multiple-4 success: 1
16926DELETE FROM t1
16927WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
16928AND @max_row_div2 + @max_row_div4 + @max_row;
16929
16930# check multiple-5 success: 1
16931SELECT COUNT(*) INTO @try_count FROM t0_template
16932WHERE MOD(f_int1,3) = 0
16933AND f_int1 BETWEEN @max_row_div2 AND @max_row;
16934SELECT COUNT(*) INTO @clash_count
16935FROM t1 INNER JOIN t0_template USING(f_int1)
16936WHERE MOD(f_int1,3) = 0
16937AND f_int1 BETWEEN @max_row_div2 AND @max_row;
16938SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
16939INSERT INTO t1
16940SET f_int1 = @cur_value , f_int2 = @cur_value,
16941f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
16942f_charbig = '#SINGLE#';
16943
16944# check single-1 success: 1
16945SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
16946INSERT INTO t1
16947SET f_int1 = @cur_value , f_int2 = @cur_value,
16948f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
16949f_charbig = '#SINGLE#';
16950
16951# check single-2 success: 1
16952SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
16953SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
16954UPDATE t1 SET f_int1 = @cur_value2
16955WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
16956
16957# check single-3 success: 1
16958SET @cur_value1= -1;
16959SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
16960UPDATE t1 SET f_int1 = @cur_value1
16961WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
16962
16963# check single-4 success: 1
16964SELECT MAX(f_int1) INTO @cur_value FROM t1;
16965DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
16966
16967# check single-5 success: 1
16968DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
16969
16970# check single-6 success: 1
16971INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
16972
16973# check single-7 success: 1
16974DELETE FROM t1 WHERE f_charbig = '#2147483647##';
16975DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
16976INSERT t1 SET f_int1 = 0 , f_int2 = 0,
16977f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
16978f_charbig = '#NULL#';
16979INSERT INTO t1
16980SET f_int1 = NULL , f_int2 = -@max_row,
16981f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
16982f_charbig = '#NULL#';
16983ERROR 23000: Column 'f_int1' cannot be null
16984# check null success: 1
16985DELETE FROM t1
16986WHERE f_int1 = 0 AND f_int2 = 0
16987AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
16988AND f_charbig = '#NULL#';
16989INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
16990SELECT f_int1, f_int1, '', '', 'was inserted'
16991 FROM t0_template source_tab
16992WHERE MOD(f_int1,3) = 0
16993AND f_int1 BETWEEN @max_row_div2 AND @max_row
16994ON DUPLICATE KEY
16995UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
16996f_int2 = 2 * @max_row + source_tab.f_int1,
16997f_charbig = 'was updated';
16998
16999# check unique-1-a success: 1
17000
17001# check unique-1-b success: 1
17002DELETE FROM t1 WHERE f_charbig = 'was inserted';
17003UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17004f_int2 = CAST(f_char1 AS SIGNED INT),
17005f_charbig = CONCAT('===',f_char1,'===')
17006WHERE f_charbig = 'was updated';
17007REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17008SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
17009 FROM t0_template source_tab
17010WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
17011
17012# check replace success: 1
17013DELETE FROM t1
17014WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
17015DELETE FROM t1
17016WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
17017f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
17018UPDATE t1 SET f_int2 = f_int1,
17019f_char1 = CAST(f_int1 AS CHAR),
17020f_char2 = CAST(f_int1 AS CHAR),
17021f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
17022WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
17023SET AUTOCOMMIT= 0;
17024INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17025SELECT f_int1, f_int1, '', '', 'was inserted'
17026FROM t0_template source_tab
17027WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
17028
17029# check transactions-1 success: 1
17030COMMIT WORK;
17031
17032# check transactions-2 success: 1
17033ROLLBACK WORK;
17034
17035# check transactions-3 success: 1
17036DELETE FROM t1 WHERE f_charbig = 'was inserted';
17037COMMIT WORK;
17038ROLLBACK WORK;
17039
17040# check transactions-4 success: 1
17041INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17042SELECT f_int1, f_int1, '', '', 'was inserted'
17043FROM t0_template source_tab
17044WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
17045
17046# check transactions-5 success: 1
17047ROLLBACK WORK;
17048
17049# check transactions-6 success: 1
17050# INFO: Storage engine used for t1 seems to be transactional.
17051COMMIT;
17052
17053# check transactions-7 success: 1
17054DELETE FROM t1 WHERE f_charbig = 'was inserted';
17055COMMIT WORK;
17056SET @@session.sql_mode = 'traditional';
17057SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
17058INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17059SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
17060'', '', 'was inserted' FROM t0_template
17061WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
17062ERROR 22012: Division by 0
17063COMMIT;
17064
17065# check transactions-8 success: 1
17066# INFO: Storage engine used for t1 seems to be able to revert
17067# changes made by the failing statement.
17068SET @@session.sql_mode = '';
17069SET AUTOCOMMIT= 1;
17070DELETE FROM t1 WHERE f_charbig = 'was inserted';
17071COMMIT WORK;
17072UPDATE t1 SET f_charbig = REPEAT('b', 1000);
17073
17074# check special-1 success: 1
17075UPDATE t1 SET f_charbig = '';
17076
17077# check special-2 success: 1
17078UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
17079INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
17080SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
17081WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17082INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17083SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17084'just inserted' FROM t0_template
17085WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17086CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
17087BEGIN
17088UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17089f_charbig = 'updated by trigger'
17090 WHERE f_int1 = new.f_int1;
17091END|
17092INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17093SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
17094WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17095
17096# check trigger-1 success: 1
17097DROP TRIGGER trg_1;
17098UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17099f_int2 = CAST(f_char1 AS SIGNED INT),
17100f_charbig = 'just inserted'
17101 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17102DELETE FROM t0_aux
17103WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17104INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17105SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17106'just inserted' FROM t0_template
17107WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17108CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
17109BEGIN
17110UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17111f_charbig = 'updated by trigger'
17112 WHERE f_int1 = new.f_int1;
17113END|
17114INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17115SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
17116WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17117
17118# check trigger-2 success: 1
17119DROP TRIGGER trg_1;
17120UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17121f_int2 = CAST(f_char1 AS SIGNED INT),
17122f_charbig = 'just inserted'
17123 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17124DELETE FROM t0_aux
17125WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17126INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17127SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17128'just inserted' FROM t0_template
17129WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17130CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
17131BEGIN
17132UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17133f_charbig = 'updated by trigger'
17134 WHERE f_int1 = new.f_int1;
17135END|
17136UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
17137WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17138
17139# check trigger-3 success: 1
17140DROP TRIGGER trg_1;
17141UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17142f_int2 = CAST(f_char1 AS SIGNED INT),
17143f_charbig = 'just inserted'
17144 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17145DELETE FROM t0_aux
17146WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17147INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17148SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17149'just inserted' FROM t0_template
17150WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17151CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
17152BEGIN
17153UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17154f_charbig = 'updated by trigger'
17155 WHERE f_int1 = - old.f_int1;
17156END|
17157UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
17158WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17159
17160# check trigger-4 success: 1
17161DROP TRIGGER trg_1;
17162UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17163f_int2 = CAST(f_char1 AS SIGNED INT),
17164f_charbig = 'just inserted'
17165 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17166DELETE FROM t0_aux
17167WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17168INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17169SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17170'just inserted' FROM t0_template
17171WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17172CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
17173BEGIN
17174UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17175f_charbig = 'updated by trigger'
17176 WHERE f_int1 = new.f_int1;
17177END|
17178UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
17179WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17180
17181# check trigger-5 success: 1
17182DROP TRIGGER trg_1;
17183UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17184f_int2 = CAST(f_char1 AS SIGNED INT),
17185f_charbig = 'just inserted'
17186 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17187DELETE FROM t0_aux
17188WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17189INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17190SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17191'just inserted' FROM t0_template
17192WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17193CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
17194BEGIN
17195UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17196f_charbig = 'updated by trigger'
17197 WHERE f_int1 = - old.f_int1;
17198END|
17199UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
17200WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17201
17202# check trigger-6 success: 1
17203DROP TRIGGER trg_1;
17204UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17205f_int2 = CAST(f_char1 AS SIGNED INT),
17206f_charbig = 'just inserted'
17207 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17208DELETE FROM t0_aux
17209WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17210INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17211SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17212'just inserted' FROM t0_template
17213WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17214CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
17215BEGIN
17216UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17217f_charbig = 'updated by trigger'
17218 WHERE f_int1 = - old.f_int1;
17219END|
17220DELETE FROM t0_aux
17221WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17222
17223# check trigger-7 success: 1
17224DROP TRIGGER trg_1;
17225UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17226f_int2 = CAST(f_char1 AS SIGNED INT),
17227f_charbig = 'just inserted'
17228 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17229DELETE FROM t0_aux
17230WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17231INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17232SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17233'just inserted' FROM t0_template
17234WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17235CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
17236BEGIN
17237UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17238f_charbig = 'updated by trigger'
17239 WHERE f_int1 = - old.f_int1;
17240END|
17241DELETE FROM t0_aux
17242WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17243
17244# check trigger-8 success: 1
17245DROP TRIGGER trg_1;
17246UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17247f_int2 = CAST(f_char1 AS SIGNED INT),
17248f_charbig = 'just inserted'
17249 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17250DELETE FROM t0_aux
17251WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17252DELETE FROM t1
17253WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17254CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
17255BEGIN
17256SET new.f_int1 = old.f_int1 + @max_row,
17257new.f_int2 = old.f_int2 - @max_row,
17258new.f_charbig = '####updated per update trigger####';
17259END|
17260UPDATE t1
17261SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
17262f_charbig = '####updated per update statement itself####';
17263
17264# check trigger-9 success: 1
17265DROP TRIGGER trg_2;
17266UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17267f_int2 = CAST(f_char1 AS SIGNED INT),
17268f_charbig = CONCAT('===',f_char1,'===');
17269CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
17270BEGIN
17271SET new.f_int1 = new.f_int1 + @max_row,
17272new.f_int2 = new.f_int2 - @max_row,
17273new.f_charbig = '####updated per update trigger####';
17274END|
17275UPDATE t1
17276SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
17277f_charbig = '####updated per update statement itself####';
17278
17279# check trigger-10 success: 1
17280DROP TRIGGER trg_2;
17281UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17282f_int2 = CAST(f_char1 AS SIGNED INT),
17283f_charbig = CONCAT('===',f_char1,'===');
17284CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
17285BEGIN
17286SET new.f_int1 = @my_max1 + @counter,
17287new.f_int2 = @my_min2 - @counter,
17288new.f_charbig = '####updated per insert trigger####';
17289SET @counter = @counter + 1;
17290END|
17291SET @counter = 1;
17292SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
17293INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17294SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
17295CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
17296WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
17297ORDER BY f_int1;
17298DROP TRIGGER trg_3;
17299
17300# check trigger-11 success: 1
17301DELETE FROM t1
17302WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
17303AND f_int2 <> CAST(f_char1 AS SIGNED INT)
17304AND f_charbig = '####updated per insert trigger####';
17305CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
17306BEGIN
17307SET new.f_int1 = @my_max1 + @counter,
17308new.f_int2 = @my_min2 - @counter,
17309new.f_charbig = '####updated per insert trigger####';
17310SET @counter = @counter + 1;
17311END|
17312SET @counter = 1;
17313SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
17314INSERT INTO t1 (f_char1, f_char2, f_charbig)
17315SELECT CAST(f_int1 AS CHAR),
17316CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
17317WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
17318ORDER BY f_int1;
17319DROP TRIGGER trg_3;
17320
17321# check trigger-12 success: 1
17322DELETE FROM t1
17323WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
17324AND f_int2 <> CAST(f_char1 AS SIGNED INT)
17325AND f_charbig = '####updated per insert trigger####';
17326ANALYZE TABLE t1;
17327Table Op Msg_type Msg_text
17328test.t1 analyze status OK
17329CHECK TABLE t1 EXTENDED;
17330Table Op Msg_type Msg_text
17331test.t1 check status OK
17332CHECKSUM TABLE t1 EXTENDED;
17333Table Checksum
17334test.t1 <some_value>
17335OPTIMIZE TABLE t1;
17336Table Op Msg_type Msg_text
17337test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
17338test.t1 optimize status OK
17339# check layout success: 1
17340REPAIR TABLE t1 EXTENDED;
17341Table Op Msg_type Msg_text
17342test.t1 repair note The storage engine for the table doesn't support repair
17343# check layout success: 1
17344TRUNCATE t1;
17345
17346# check TRUNCATE success: 1
17347# check layout success: 1
17348# End usability test (inc/partition_check.inc)
17349DROP TABLE t1;
17350CREATE TABLE t1 (
17351f_int1 INTEGER,
17352f_int2 INTEGER,
17353f_char1 CHAR(20),
17354f_char2 CHAR(20),
17355f_charbig VARCHAR(1000)
17356
17357)
17358PARTITION BY LIST(MOD(f_int1 + f_int2,4))
17359(PARTITION part_3 VALUES IN (-3),
17360PARTITION part_2 VALUES IN (-2),
17361PARTITION part_1 VALUES IN (-1),
17362PARTITION part_N VALUES IN (NULL),
17363PARTITION part0 VALUES IN (0),
17364PARTITION part1 VALUES IN (1),
17365PARTITION part2 VALUES IN (2),
17366PARTITION part3 VALUES IN (3));
17367INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
17368SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
17369WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
17370ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_int1);
17371INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
17372SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
17373WHERE f_int1 BETWEEN @max_row_div2 AND @max_row;
17374# Start usability test (inc/partition_check.inc)
17375create_command
17376SHOW CREATE TABLE t1;
17377Table Create Table
17378t1 CREATE TABLE `t1` (
17379 `f_int1` int(11) NOT NULL DEFAULT '0',
17380 `f_int2` int(11) NOT NULL DEFAULT '0',
17381 `f_char1` char(20) DEFAULT NULL,
17382 `f_char2` char(20) DEFAULT NULL,
17383 `f_charbig` varchar(1000) DEFAULT NULL,
17384 PRIMARY KEY (`f_int2`,`f_int1`),
17385 UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
17386) ENGINE=InnoDB DEFAULT CHARSET=latin1
17387/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4))
17388(PARTITION part_3 VALUES IN (-3) ENGINE = InnoDB,
17389 PARTITION part_2 VALUES IN (-2) ENGINE = InnoDB,
17390 PARTITION part_1 VALUES IN (-1) ENGINE = InnoDB,
17391 PARTITION part_N VALUES IN (NULL) ENGINE = InnoDB,
17392 PARTITION part0 VALUES IN (0) ENGINE = InnoDB,
17393 PARTITION part1 VALUES IN (1) ENGINE = InnoDB,
17394 PARTITION part2 VALUES IN (2) ENGINE = InnoDB,
17395 PARTITION part3 VALUES IN (3) ENGINE = InnoDB) */
17396
17397# check prerequisites-1 success: 1
17398# check COUNT(*) success: 1
17399# check MIN/MAX(f_int1) success: 1
17400# check MIN/MAX(f_int2) success: 1
17401INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17402SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
17403CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
17404WHERE f_int1 IN (2,3);
17405ERROR 23000: Duplicate entry '2-2' for key 'PRIMARY'
17406# check prerequisites-3 success: 1
17407# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
17408INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17409SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
17410CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
17411WHERE f_int1 IN (2,3);
17412DELETE FROM t1 WHERE f_charbig = 'delete me';
17413INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17414SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
17415CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
17416WHERE f_int1 IN (2,3);
17417DELETE FROM t1 WHERE f_charbig = 'delete me';
17418# check read via f_int1 success: 1
17419# check read via f_int2 success: 1
17420
17421# check multiple-1 success: 1
17422DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
17423
17424# check multiple-2 success: 1
17425INSERT INTO t1 SELECT * FROM t0_template
17426WHERE MOD(f_int1,3) = 0;
17427
17428# check multiple-3 success: 1
17429UPDATE t1 SET f_int1 = f_int1 + @max_row
17430WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
17431AND @max_row_div2 + @max_row_div4;
17432
17433# check multiple-4 success: 1
17434DELETE FROM t1
17435WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
17436AND @max_row_div2 + @max_row_div4 + @max_row;
17437
17438# check multiple-5 success: 1
17439SELECT COUNT(*) INTO @try_count FROM t0_template
17440WHERE MOD(f_int1,3) = 0
17441AND f_int1 BETWEEN @max_row_div2 AND @max_row;
17442SELECT COUNT(*) INTO @clash_count
17443FROM t1 INNER JOIN t0_template USING(f_int1)
17444WHERE MOD(f_int1,3) = 0
17445AND f_int1 BETWEEN @max_row_div2 AND @max_row;
17446SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
17447INSERT INTO t1
17448SET f_int1 = @cur_value , f_int2 = @cur_value,
17449f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
17450f_charbig = '#SINGLE#';
17451
17452# check single-1 success: 1
17453SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
17454INSERT INTO t1
17455SET f_int1 = @cur_value , f_int2 = @cur_value,
17456f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
17457f_charbig = '#SINGLE#';
17458
17459# check single-2 success: 1
17460SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
17461SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
17462UPDATE t1 SET f_int1 = @cur_value2
17463WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
17464
17465# check single-3 success: 1
17466SET @cur_value1= -1;
17467SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
17468UPDATE t1 SET f_int1 = @cur_value1
17469WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
17470
17471# check single-4 success: 1
17472SELECT MAX(f_int1) INTO @cur_value FROM t1;
17473DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
17474
17475# check single-5 success: 1
17476DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
17477
17478# check single-6 success: 1
17479INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
17480
17481# check single-7 success: 1
17482DELETE FROM t1 WHERE f_charbig = '#2147483647##';
17483DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
17484INSERT t1 SET f_int1 = 0 , f_int2 = 0,
17485f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
17486f_charbig = '#NULL#';
17487INSERT INTO t1
17488SET f_int1 = NULL , f_int2 = -@max_row,
17489f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
17490f_charbig = '#NULL#';
17491ERROR 23000: Column 'f_int1' cannot be null
17492# check null success: 1
17493DELETE FROM t1
17494WHERE f_int1 = 0 AND f_int2 = 0
17495AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
17496AND f_charbig = '#NULL#';
17497INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17498SELECT f_int1, f_int1, '', '', 'was inserted'
17499 FROM t0_template source_tab
17500WHERE MOD(f_int1,3) = 0
17501AND f_int1 BETWEEN @max_row_div2 AND @max_row
17502ON DUPLICATE KEY
17503UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
17504f_int2 = 2 * @max_row + source_tab.f_int1,
17505f_charbig = 'was updated';
17506
17507# check unique-1-a success: 1
17508
17509# check unique-1-b success: 1
17510DELETE FROM t1 WHERE f_charbig = 'was inserted';
17511UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17512f_int2 = CAST(f_char1 AS SIGNED INT),
17513f_charbig = CONCAT('===',f_char1,'===')
17514WHERE f_charbig = 'was updated';
17515REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17516SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
17517 FROM t0_template source_tab
17518WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
17519
17520# check replace success: 1
17521DELETE FROM t1
17522WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
17523DELETE FROM t1
17524WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
17525f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
17526UPDATE t1 SET f_int2 = f_int1,
17527f_char1 = CAST(f_int1 AS CHAR),
17528f_char2 = CAST(f_int1 AS CHAR),
17529f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
17530WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
17531SET AUTOCOMMIT= 0;
17532INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17533SELECT f_int1, f_int1, '', '', 'was inserted'
17534FROM t0_template source_tab
17535WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
17536
17537# check transactions-1 success: 1
17538COMMIT WORK;
17539
17540# check transactions-2 success: 1
17541ROLLBACK WORK;
17542
17543# check transactions-3 success: 1
17544DELETE FROM t1 WHERE f_charbig = 'was inserted';
17545COMMIT WORK;
17546ROLLBACK WORK;
17547
17548# check transactions-4 success: 1
17549INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17550SELECT f_int1, f_int1, '', '', 'was inserted'
17551FROM t0_template source_tab
17552WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
17553
17554# check transactions-5 success: 1
17555ROLLBACK WORK;
17556
17557# check transactions-6 success: 1
17558# INFO: Storage engine used for t1 seems to be transactional.
17559COMMIT;
17560
17561# check transactions-7 success: 1
17562DELETE FROM t1 WHERE f_charbig = 'was inserted';
17563COMMIT WORK;
17564SET @@session.sql_mode = 'traditional';
17565SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
17566INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17567SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
17568'', '', 'was inserted' FROM t0_template
17569WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
17570ERROR 22012: Division by 0
17571COMMIT;
17572
17573# check transactions-8 success: 1
17574# INFO: Storage engine used for t1 seems to be able to revert
17575# changes made by the failing statement.
17576SET @@session.sql_mode = '';
17577SET AUTOCOMMIT= 1;
17578DELETE FROM t1 WHERE f_charbig = 'was inserted';
17579COMMIT WORK;
17580UPDATE t1 SET f_charbig = REPEAT('b', 1000);
17581
17582# check special-1 success: 1
17583UPDATE t1 SET f_charbig = '';
17584
17585# check special-2 success: 1
17586UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
17587INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
17588SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
17589WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17590INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17591SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17592'just inserted' FROM t0_template
17593WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17594CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
17595BEGIN
17596UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17597f_charbig = 'updated by trigger'
17598 WHERE f_int1 = new.f_int1;
17599END|
17600INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17601SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
17602WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17603
17604# check trigger-1 success: 1
17605DROP TRIGGER trg_1;
17606UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17607f_int2 = CAST(f_char1 AS SIGNED INT),
17608f_charbig = 'just inserted'
17609 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17610DELETE FROM t0_aux
17611WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17612INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17613SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17614'just inserted' FROM t0_template
17615WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17616CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
17617BEGIN
17618UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17619f_charbig = 'updated by trigger'
17620 WHERE f_int1 = new.f_int1;
17621END|
17622INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17623SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
17624WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17625
17626# check trigger-2 success: 1
17627DROP TRIGGER trg_1;
17628UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17629f_int2 = CAST(f_char1 AS SIGNED INT),
17630f_charbig = 'just inserted'
17631 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17632DELETE FROM t0_aux
17633WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17634INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17635SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17636'just inserted' FROM t0_template
17637WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17638CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
17639BEGIN
17640UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17641f_charbig = 'updated by trigger'
17642 WHERE f_int1 = new.f_int1;
17643END|
17644UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
17645WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17646
17647# check trigger-3 success: 1
17648DROP TRIGGER trg_1;
17649UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17650f_int2 = CAST(f_char1 AS SIGNED INT),
17651f_charbig = 'just inserted'
17652 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17653DELETE FROM t0_aux
17654WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17655INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17656SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17657'just inserted' FROM t0_template
17658WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17659CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
17660BEGIN
17661UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17662f_charbig = 'updated by trigger'
17663 WHERE f_int1 = - old.f_int1;
17664END|
17665UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
17666WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17667
17668# check trigger-4 success: 1
17669DROP TRIGGER trg_1;
17670UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17671f_int2 = CAST(f_char1 AS SIGNED INT),
17672f_charbig = 'just inserted'
17673 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17674DELETE FROM t0_aux
17675WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17676INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17677SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17678'just inserted' FROM t0_template
17679WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17680CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
17681BEGIN
17682UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17683f_charbig = 'updated by trigger'
17684 WHERE f_int1 = new.f_int1;
17685END|
17686UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
17687WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17688
17689# check trigger-5 success: 1
17690DROP TRIGGER trg_1;
17691UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17692f_int2 = CAST(f_char1 AS SIGNED INT),
17693f_charbig = 'just inserted'
17694 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17695DELETE FROM t0_aux
17696WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17697INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17698SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17699'just inserted' FROM t0_template
17700WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17701CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
17702BEGIN
17703UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17704f_charbig = 'updated by trigger'
17705 WHERE f_int1 = - old.f_int1;
17706END|
17707UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
17708WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17709
17710# check trigger-6 success: 1
17711DROP TRIGGER trg_1;
17712UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17713f_int2 = CAST(f_char1 AS SIGNED INT),
17714f_charbig = 'just inserted'
17715 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17716DELETE FROM t0_aux
17717WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17718INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17719SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17720'just inserted' FROM t0_template
17721WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17722CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
17723BEGIN
17724UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17725f_charbig = 'updated by trigger'
17726 WHERE f_int1 = - old.f_int1;
17727END|
17728DELETE FROM t0_aux
17729WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17730
17731# check trigger-7 success: 1
17732DROP TRIGGER trg_1;
17733UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17734f_int2 = CAST(f_char1 AS SIGNED INT),
17735f_charbig = 'just inserted'
17736 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17737DELETE FROM t0_aux
17738WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17739INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
17740SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
17741'just inserted' FROM t0_template
17742WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17743CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
17744BEGIN
17745UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
17746f_charbig = 'updated by trigger'
17747 WHERE f_int1 = - old.f_int1;
17748END|
17749DELETE FROM t0_aux
17750WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
17751
17752# check trigger-8 success: 1
17753DROP TRIGGER trg_1;
17754UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17755f_int2 = CAST(f_char1 AS SIGNED INT),
17756f_charbig = 'just inserted'
17757 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
17758DELETE FROM t0_aux
17759WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17760DELETE FROM t1
17761WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
17762CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
17763BEGIN
17764SET new.f_int1 = old.f_int1 + @max_row,
17765new.f_int2 = old.f_int2 - @max_row,
17766new.f_charbig = '####updated per update trigger####';
17767END|
17768UPDATE t1
17769SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
17770f_charbig = '####updated per update statement itself####';
17771
17772# check trigger-9 success: 1
17773DROP TRIGGER trg_2;
17774UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17775f_int2 = CAST(f_char1 AS SIGNED INT),
17776f_charbig = CONCAT('===',f_char1,'===');
17777CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
17778BEGIN
17779SET new.f_int1 = new.f_int1 + @max_row,
17780new.f_int2 = new.f_int2 - @max_row,
17781new.f_charbig = '####updated per update trigger####';
17782END|
17783UPDATE t1
17784SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
17785f_charbig = '####updated per update statement itself####';
17786
17787# check trigger-10 success: 1
17788DROP TRIGGER trg_2;
17789UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
17790f_int2 = CAST(f_char1 AS SIGNED INT),
17791f_charbig = CONCAT('===',f_char1,'===');
17792CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
17793BEGIN
17794SET new.f_int1 = @my_max1 + @counter,
17795new.f_int2 = @my_min2 - @counter,
17796new.f_charbig = '####updated per insert trigger####';
17797SET @counter = @counter + 1;
17798END|
17799SET @counter = 1;
17800SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
17801INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17802SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
17803CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
17804WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
17805ORDER BY f_int1;
17806DROP TRIGGER trg_3;
17807
17808# check trigger-11 success: 1
17809DELETE FROM t1
17810WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
17811AND f_int2 <> CAST(f_char1 AS SIGNED INT)
17812AND f_charbig = '####updated per insert trigger####';
17813CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
17814BEGIN
17815SET new.f_int1 = @my_max1 + @counter,
17816new.f_int2 = @my_min2 - @counter,
17817new.f_charbig = '####updated per insert trigger####';
17818SET @counter = @counter + 1;
17819END|
17820SET @counter = 1;
17821SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
17822INSERT INTO t1 (f_char1, f_char2, f_charbig)
17823SELECT CAST(f_int1 AS CHAR),
17824CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
17825WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
17826ORDER BY f_int1;
17827DROP TRIGGER trg_3;
17828
17829# check trigger-12 success: 1
17830DELETE FROM t1
17831WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
17832AND f_int2 <> CAST(f_char1 AS SIGNED INT)
17833AND f_charbig = '####updated per insert trigger####';
17834ANALYZE TABLE t1;
17835Table Op Msg_type Msg_text
17836test.t1 analyze status OK
17837CHECK TABLE t1 EXTENDED;
17838Table Op Msg_type Msg_text
17839test.t1 check status OK
17840CHECKSUM TABLE t1 EXTENDED;
17841Table Checksum
17842test.t1 <some_value>
17843OPTIMIZE TABLE t1;
17844Table Op Msg_type Msg_text
17845test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
17846test.t1 optimize status OK
17847# check layout success: 1
17848REPAIR TABLE t1 EXTENDED;
17849Table Op Msg_type Msg_text
17850test.t1 repair note The storage engine for the table doesn't support repair
17851# check layout success: 1
17852TRUNCATE t1;
17853
17854# check TRUNCATE success: 1
17855# check layout success: 1
17856# End usability test (inc/partition_check.inc)
17857DROP TABLE t1;
17858CREATE TABLE t1 (
17859f_int1 INTEGER,
17860f_int2 INTEGER,
17861f_char1 CHAR(20),
17862f_char2 CHAR(20),
17863f_charbig VARCHAR(1000)
17864
17865)
17866PARTITION BY RANGE((f_int1 + f_int2) DIV 2)
17867(PARTITION parta VALUES LESS THAN (0),
17868PARTITION partb VALUES LESS THAN (5),
17869PARTITION partc VALUES LESS THAN (10),
17870PARTITION partd VALUES LESS THAN (10 + 5),
17871PARTITION parte VALUES LESS THAN (20),
17872PARTITION partf VALUES LESS THAN (2147483646));
17873INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
17874SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
17875WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
17876ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_int1);
17877INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
17878SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
17879WHERE f_int1 BETWEEN @max_row_div2 AND @max_row;
17880# Start usability test (inc/partition_check.inc)
17881create_command
17882SHOW CREATE TABLE t1;
17883Table Create Table
17884t1 CREATE TABLE `t1` (
17885 `f_int1` int(11) NOT NULL DEFAULT '0',
17886 `f_int2` int(11) NOT NULL DEFAULT '0',
17887 `f_char1` char(20) DEFAULT NULL,
17888 `f_char2` char(20) DEFAULT NULL,
17889 `f_charbig` varchar(1000) DEFAULT NULL,
17890 PRIMARY KEY (`f_int2`,`f_int1`),
17891 UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
17892) ENGINE=InnoDB DEFAULT CHARSET=latin1
17893/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2)
17894(PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB,
17895 PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB,
17896 PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB,
17897 PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB,
17898 PARTITION parte VALUES LESS THAN (20) ENGINE = InnoDB,
17899 PARTITION partf VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
17900
17901# check prerequisites-1 success: 1
17902# check COUNT(*) success: 1
17903# check MIN/MAX(f_int1) success: 1
17904# check MIN/MAX(f_int2) success: 1
17905INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17906SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
17907CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
17908WHERE f_int1 IN (2,3);
17909ERROR 23000: Duplicate entry '2-2' for key 'PRIMARY'
17910# check prerequisites-3 success: 1
17911# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
17912INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17913SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
17914CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
17915WHERE f_int1 IN (2,3);
17916DELETE FROM t1 WHERE f_charbig = 'delete me';
17917INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
17918SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
17919CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
17920WHERE f_int1 IN (2,3);
17921DELETE FROM t1 WHERE f_charbig = 'delete me';
17922# check read via f_int1 success: 1
17923# check read via f_int2 success: 1
17924
17925# check multiple-1 success: 1
17926DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
17927
17928# check multiple-2 success: 1
17929INSERT INTO t1 SELECT * FROM t0_template
17930WHERE MOD(f_int1,3) = 0;
17931
17932# check multiple-3 success: 1
17933UPDATE t1 SET f_int1 = f_int1 + @max_row
17934WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
17935AND @max_row_div2 + @max_row_div4;
17936
17937# check multiple-4 success: 1
17938DELETE FROM t1
17939WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
17940AND @max_row_div2 + @max_row_div4 + @max_row;
17941
17942# check multiple-5 success: 1
17943SELECT COUNT(*) INTO @try_count FROM t0_template
17944WHERE MOD(f_int1,3) = 0
17945AND f_int1 BETWEEN @max_row_div2 AND @max_row;
17946SELECT COUNT(*) INTO @clash_count
17947FROM t1 INNER JOIN t0_template USING(f_int1)
17948WHERE MOD(f_int1,3) = 0
17949AND f_int1 BETWEEN @max_row_div2 AND @max_row;
17950SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
17951INSERT INTO t1
17952SET f_int1 = @cur_value , f_int2 = @cur_value,
17953f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
17954f_charbig = '#SINGLE#';
17955
17956# check single-1 success: 1
17957SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
17958INSERT INTO t1
17959SET f_int1 = @cur_value , f_int2 = @cur_value,
17960f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
17961f_charbig = '#SINGLE#';
17962
17963# check single-2 success: 1
17964SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
17965SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
17966UPDATE t1 SET f_int1 = @cur_value2
17967WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
17968
17969# check single-3 success: 1
17970SET @cur_value1= -1;
17971SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
17972UPDATE t1 SET f_int1 = @cur_value1
17973WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
17974
17975# check single-4 success: 1
17976SELECT MAX(f_int1) INTO @cur_value FROM t1;
17977DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
17978
17979# check single-5 success: 1
17980DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
17981
17982# check single-6 success: 1
17983INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
17984ERROR HY000: Table has no partition for value 2147483647
17985DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
17986INSERT t1 SET f_int1 = 0 , f_int2 = 0,
17987f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
17988f_charbig = '#NULL#';
17989INSERT INTO t1
17990SET f_int1 = NULL , f_int2 = -@max_row,
17991f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
17992f_charbig = '#NULL#';
17993ERROR 23000: Column 'f_int1' cannot be null
17994# check null success: 1
17995DELETE FROM t1
17996WHERE f_int1 = 0 AND f_int2 = 0
17997AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
17998AND f_charbig = '#NULL#';
17999INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18000SELECT f_int1, f_int1, '', '', 'was inserted'
18001 FROM t0_template source_tab
18002WHERE MOD(f_int1,3) = 0
18003AND f_int1 BETWEEN @max_row_div2 AND @max_row
18004ON DUPLICATE KEY
18005UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
18006f_int2 = 2 * @max_row + source_tab.f_int1,
18007f_charbig = 'was updated';
18008
18009# check unique-1-a success: 1
18010
18011# check unique-1-b success: 1
18012DELETE FROM t1 WHERE f_charbig = 'was inserted';
18013UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18014f_int2 = CAST(f_char1 AS SIGNED INT),
18015f_charbig = CONCAT('===',f_char1,'===')
18016WHERE f_charbig = 'was updated';
18017REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18018SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
18019 FROM t0_template source_tab
18020WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
18021
18022# check replace success: 1
18023DELETE FROM t1
18024WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
18025DELETE FROM t1
18026WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
18027f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
18028UPDATE t1 SET f_int2 = f_int1,
18029f_char1 = CAST(f_int1 AS CHAR),
18030f_char2 = CAST(f_int1 AS CHAR),
18031f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
18032WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
18033SET AUTOCOMMIT= 0;
18034INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18035SELECT f_int1, f_int1, '', '', 'was inserted'
18036FROM t0_template source_tab
18037WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
18038
18039# check transactions-1 success: 1
18040COMMIT WORK;
18041
18042# check transactions-2 success: 1
18043ROLLBACK WORK;
18044
18045# check transactions-3 success: 1
18046DELETE FROM t1 WHERE f_charbig = 'was inserted';
18047COMMIT WORK;
18048ROLLBACK WORK;
18049
18050# check transactions-4 success: 1
18051INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18052SELECT f_int1, f_int1, '', '', 'was inserted'
18053FROM t0_template source_tab
18054WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
18055
18056# check transactions-5 success: 1
18057ROLLBACK WORK;
18058
18059# check transactions-6 success: 1
18060# INFO: Storage engine used for t1 seems to be transactional.
18061COMMIT;
18062
18063# check transactions-7 success: 1
18064DELETE FROM t1 WHERE f_charbig = 'was inserted';
18065COMMIT WORK;
18066SET @@session.sql_mode = 'traditional';
18067SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
18068INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18069SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
18070'', '', 'was inserted' FROM t0_template
18071WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
18072ERROR 22012: Division by 0
18073COMMIT;
18074
18075# check transactions-8 success: 1
18076# INFO: Storage engine used for t1 seems to be able to revert
18077# changes made by the failing statement.
18078SET @@session.sql_mode = '';
18079SET AUTOCOMMIT= 1;
18080DELETE FROM t1 WHERE f_charbig = 'was inserted';
18081COMMIT WORK;
18082UPDATE t1 SET f_charbig = REPEAT('b', 1000);
18083
18084# check special-1 success: 1
18085UPDATE t1 SET f_charbig = '';
18086
18087# check special-2 success: 1
18088UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
18089INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
18090SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
18091WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18092INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18093SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18094'just inserted' FROM t0_template
18095WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18096CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
18097BEGIN
18098UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18099f_charbig = 'updated by trigger'
18100 WHERE f_int1 = new.f_int1;
18101END|
18102INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18103SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
18104WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18105
18106# check trigger-1 success: 1
18107DROP TRIGGER trg_1;
18108UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18109f_int2 = CAST(f_char1 AS SIGNED INT),
18110f_charbig = 'just inserted'
18111 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18112DELETE FROM t0_aux
18113WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18114INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18115SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18116'just inserted' FROM t0_template
18117WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18118CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
18119BEGIN
18120UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18121f_charbig = 'updated by trigger'
18122 WHERE f_int1 = new.f_int1;
18123END|
18124INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18125SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
18126WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18127
18128# check trigger-2 success: 1
18129DROP TRIGGER trg_1;
18130UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18131f_int2 = CAST(f_char1 AS SIGNED INT),
18132f_charbig = 'just inserted'
18133 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18134DELETE FROM t0_aux
18135WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18136INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18137SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18138'just inserted' FROM t0_template
18139WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18140CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
18141BEGIN
18142UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18143f_charbig = 'updated by trigger'
18144 WHERE f_int1 = new.f_int1;
18145END|
18146UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
18147WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18148
18149# check trigger-3 success: 1
18150DROP TRIGGER trg_1;
18151UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18152f_int2 = CAST(f_char1 AS SIGNED INT),
18153f_charbig = 'just inserted'
18154 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18155DELETE FROM t0_aux
18156WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18157INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18158SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18159'just inserted' FROM t0_template
18160WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18161CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
18162BEGIN
18163UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18164f_charbig = 'updated by trigger'
18165 WHERE f_int1 = - old.f_int1;
18166END|
18167UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
18168WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18169
18170# check trigger-4 success: 1
18171DROP TRIGGER trg_1;
18172UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18173f_int2 = CAST(f_char1 AS SIGNED INT),
18174f_charbig = 'just inserted'
18175 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18176DELETE FROM t0_aux
18177WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18178INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18179SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18180'just inserted' FROM t0_template
18181WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18182CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
18183BEGIN
18184UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18185f_charbig = 'updated by trigger'
18186 WHERE f_int1 = new.f_int1;
18187END|
18188UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
18189WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18190
18191# check trigger-5 success: 1
18192DROP TRIGGER trg_1;
18193UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18194f_int2 = CAST(f_char1 AS SIGNED INT),
18195f_charbig = 'just inserted'
18196 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18197DELETE FROM t0_aux
18198WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18199INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18200SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18201'just inserted' FROM t0_template
18202WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18203CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
18204BEGIN
18205UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18206f_charbig = 'updated by trigger'
18207 WHERE f_int1 = - old.f_int1;
18208END|
18209UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
18210WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18211
18212# check trigger-6 success: 1
18213DROP TRIGGER trg_1;
18214UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18215f_int2 = CAST(f_char1 AS SIGNED INT),
18216f_charbig = 'just inserted'
18217 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18218DELETE FROM t0_aux
18219WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18220INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18221SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18222'just inserted' FROM t0_template
18223WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18224CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
18225BEGIN
18226UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18227f_charbig = 'updated by trigger'
18228 WHERE f_int1 = - old.f_int1;
18229END|
18230DELETE FROM t0_aux
18231WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18232
18233# check trigger-7 success: 1
18234DROP TRIGGER trg_1;
18235UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18236f_int2 = CAST(f_char1 AS SIGNED INT),
18237f_charbig = 'just inserted'
18238 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18239DELETE FROM t0_aux
18240WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18241INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18242SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18243'just inserted' FROM t0_template
18244WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18245CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
18246BEGIN
18247UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18248f_charbig = 'updated by trigger'
18249 WHERE f_int1 = - old.f_int1;
18250END|
18251DELETE FROM t0_aux
18252WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18253
18254# check trigger-8 success: 1
18255DROP TRIGGER trg_1;
18256UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18257f_int2 = CAST(f_char1 AS SIGNED INT),
18258f_charbig = 'just inserted'
18259 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18260DELETE FROM t0_aux
18261WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18262DELETE FROM t1
18263WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18264CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
18265BEGIN
18266SET new.f_int1 = old.f_int1 + @max_row,
18267new.f_int2 = old.f_int2 - @max_row,
18268new.f_charbig = '####updated per update trigger####';
18269END|
18270UPDATE t1
18271SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
18272f_charbig = '####updated per update statement itself####';
18273
18274# check trigger-9 success: 1
18275DROP TRIGGER trg_2;
18276UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18277f_int2 = CAST(f_char1 AS SIGNED INT),
18278f_charbig = CONCAT('===',f_char1,'===');
18279CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
18280BEGIN
18281SET new.f_int1 = new.f_int1 + @max_row,
18282new.f_int2 = new.f_int2 - @max_row,
18283new.f_charbig = '####updated per update trigger####';
18284END|
18285UPDATE t1
18286SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
18287f_charbig = '####updated per update statement itself####';
18288
18289# check trigger-10 success: 1
18290DROP TRIGGER trg_2;
18291UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18292f_int2 = CAST(f_char1 AS SIGNED INT),
18293f_charbig = CONCAT('===',f_char1,'===');
18294CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
18295BEGIN
18296SET new.f_int1 = @my_max1 + @counter,
18297new.f_int2 = @my_min2 - @counter,
18298new.f_charbig = '####updated per insert trigger####';
18299SET @counter = @counter + 1;
18300END|
18301SET @counter = 1;
18302SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
18303INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18304SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
18305CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
18306WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
18307ORDER BY f_int1;
18308DROP TRIGGER trg_3;
18309
18310# check trigger-11 success: 1
18311DELETE FROM t1
18312WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
18313AND f_int2 <> CAST(f_char1 AS SIGNED INT)
18314AND f_charbig = '####updated per insert trigger####';
18315CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
18316BEGIN
18317SET new.f_int1 = @my_max1 + @counter,
18318new.f_int2 = @my_min2 - @counter,
18319new.f_charbig = '####updated per insert trigger####';
18320SET @counter = @counter + 1;
18321END|
18322SET @counter = 1;
18323SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
18324INSERT INTO t1 (f_char1, f_char2, f_charbig)
18325SELECT CAST(f_int1 AS CHAR),
18326CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
18327WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
18328ORDER BY f_int1;
18329DROP TRIGGER trg_3;
18330
18331# check trigger-12 success: 1
18332DELETE FROM t1
18333WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
18334AND f_int2 <> CAST(f_char1 AS SIGNED INT)
18335AND f_charbig = '####updated per insert trigger####';
18336ANALYZE TABLE t1;
18337Table Op Msg_type Msg_text
18338test.t1 analyze status OK
18339CHECK TABLE t1 EXTENDED;
18340Table Op Msg_type Msg_text
18341test.t1 check status OK
18342CHECKSUM TABLE t1 EXTENDED;
18343Table Checksum
18344test.t1 <some_value>
18345OPTIMIZE TABLE t1;
18346Table Op Msg_type Msg_text
18347test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
18348test.t1 optimize status OK
18349# check layout success: 1
18350REPAIR TABLE t1 EXTENDED;
18351Table Op Msg_type Msg_text
18352test.t1 repair note The storage engine for the table doesn't support repair
18353# check layout success: 1
18354TRUNCATE t1;
18355
18356# check TRUNCATE success: 1
18357# check layout success: 1
18358# End usability test (inc/partition_check.inc)
18359DROP TABLE t1;
18360CREATE TABLE t1 (
18361f_int1 INTEGER,
18362f_int2 INTEGER,
18363f_char1 CHAR(20),
18364f_char2 CHAR(20),
18365f_charbig VARCHAR(1000)
18366
18367)
18368PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int2) SUBPARTITIONS 2
18369(PARTITION parta VALUES LESS THAN (0),
18370PARTITION partb VALUES LESS THAN (5),
18371PARTITION partc VALUES LESS THAN (10),
18372PARTITION partd VALUES LESS THAN (2147483646));
18373INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
18374SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
18375WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1;
18376ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_int1);
18377INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
18378SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template
18379WHERE f_int1 BETWEEN @max_row_div2 AND @max_row;
18380# Start usability test (inc/partition_check.inc)
18381create_command
18382SHOW CREATE TABLE t1;
18383Table Create Table
18384t1 CREATE TABLE `t1` (
18385 `f_int1` int(11) NOT NULL DEFAULT '0',
18386 `f_int2` int(11) NOT NULL DEFAULT '0',
18387 `f_char1` char(20) DEFAULT NULL,
18388 `f_char2` char(20) DEFAULT NULL,
18389 `f_charbig` varchar(1000) DEFAULT NULL,
18390 PRIMARY KEY (`f_int2`,`f_int1`),
18391 UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
18392) ENGINE=InnoDB DEFAULT CHARSET=latin1
18393/*!50100 PARTITION BY RANGE (f_int1)
18394SUBPARTITION BY HASH (f_int2)
18395SUBPARTITIONS 2
18396(PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB,
18397 PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB,
18398 PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB,
18399 PARTITION partd VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
18400
18401# check prerequisites-1 success: 1
18402# check COUNT(*) success: 1
18403# check MIN/MAX(f_int1) success: 1
18404# check MIN/MAX(f_int2) success: 1
18405INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18406SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
18407CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
18408WHERE f_int1 IN (2,3);
18409ERROR 23000: Duplicate entry '2-2' for key 'PRIMARY'
18410# check prerequisites-3 success: 1
18411# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
18412INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18413SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
18414CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
18415WHERE f_int1 IN (2,3);
18416DELETE FROM t1 WHERE f_charbig = 'delete me';
18417INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18418SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
18419CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
18420WHERE f_int1 IN (2,3);
18421DELETE FROM t1 WHERE f_charbig = 'delete me';
18422# check read via f_int1 success: 1
18423# check read via f_int2 success: 1
18424
18425# check multiple-1 success: 1
18426DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
18427
18428# check multiple-2 success: 1
18429INSERT INTO t1 SELECT * FROM t0_template
18430WHERE MOD(f_int1,3) = 0;
18431
18432# check multiple-3 success: 1
18433UPDATE t1 SET f_int1 = f_int1 + @max_row
18434WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
18435AND @max_row_div2 + @max_row_div4;
18436
18437# check multiple-4 success: 1
18438DELETE FROM t1
18439WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
18440AND @max_row_div2 + @max_row_div4 + @max_row;
18441
18442# check multiple-5 success: 1
18443SELECT COUNT(*) INTO @try_count FROM t0_template
18444WHERE MOD(f_int1,3) = 0
18445AND f_int1 BETWEEN @max_row_div2 AND @max_row;
18446SELECT COUNT(*) INTO @clash_count
18447FROM t1 INNER JOIN t0_template USING(f_int1)
18448WHERE MOD(f_int1,3) = 0
18449AND f_int1 BETWEEN @max_row_div2 AND @max_row;
18450SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
18451INSERT INTO t1
18452SET f_int1 = @cur_value , f_int2 = @cur_value,
18453f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
18454f_charbig = '#SINGLE#';
18455
18456# check single-1 success: 1
18457SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
18458INSERT INTO t1
18459SET f_int1 = @cur_value , f_int2 = @cur_value,
18460f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
18461f_charbig = '#SINGLE#';
18462
18463# check single-2 success: 1
18464SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
18465SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
18466UPDATE t1 SET f_int1 = @cur_value2
18467WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
18468
18469# check single-3 success: 1
18470SET @cur_value1= -1;
18471SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
18472UPDATE t1 SET f_int1 = @cur_value1
18473WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
18474
18475# check single-4 success: 1
18476SELECT MAX(f_int1) INTO @cur_value FROM t1;
18477DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
18478
18479# check single-5 success: 1
18480DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
18481
18482# check single-6 success: 1
18483INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
18484ERROR HY000: Table has no partition for value 2147483647
18485DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
18486INSERT t1 SET f_int1 = 0 , f_int2 = 0,
18487f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
18488f_charbig = '#NULL#';
18489INSERT INTO t1
18490SET f_int1 = NULL , f_int2 = -@max_row,
18491f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
18492f_charbig = '#NULL#';
18493ERROR 23000: Column 'f_int1' cannot be null
18494# check null success: 1
18495DELETE FROM t1
18496WHERE f_int1 = 0 AND f_int2 = 0
18497AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
18498AND f_charbig = '#NULL#';
18499INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18500SELECT f_int1, f_int1, '', '', 'was inserted'
18501 FROM t0_template source_tab
18502WHERE MOD(f_int1,3) = 0
18503AND f_int1 BETWEEN @max_row_div2 AND @max_row
18504ON DUPLICATE KEY
18505UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
18506f_int2 = 2 * @max_row + source_tab.f_int1,
18507f_charbig = 'was updated';
18508
18509# check unique-1-a success: 1
18510
18511# check unique-1-b success: 1
18512DELETE FROM t1 WHERE f_charbig = 'was inserted';
18513UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18514f_int2 = CAST(f_char1 AS SIGNED INT),
18515f_charbig = CONCAT('===',f_char1,'===')
18516WHERE f_charbig = 'was updated';
18517REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18518SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
18519 FROM t0_template source_tab
18520WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
18521
18522# check replace success: 1
18523DELETE FROM t1
18524WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
18525DELETE FROM t1
18526WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
18527f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
18528UPDATE t1 SET f_int2 = f_int1,
18529f_char1 = CAST(f_int1 AS CHAR),
18530f_char2 = CAST(f_int1 AS CHAR),
18531f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
18532WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
18533SET AUTOCOMMIT= 0;
18534INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18535SELECT f_int1, f_int1, '', '', 'was inserted'
18536FROM t0_template source_tab
18537WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
18538
18539# check transactions-1 success: 1
18540COMMIT WORK;
18541
18542# check transactions-2 success: 1
18543ROLLBACK WORK;
18544
18545# check transactions-3 success: 1
18546DELETE FROM t1 WHERE f_charbig = 'was inserted';
18547COMMIT WORK;
18548ROLLBACK WORK;
18549
18550# check transactions-4 success: 1
18551INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18552SELECT f_int1, f_int1, '', '', 'was inserted'
18553FROM t0_template source_tab
18554WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
18555
18556# check transactions-5 success: 1
18557ROLLBACK WORK;
18558
18559# check transactions-6 success: 1
18560# INFO: Storage engine used for t1 seems to be transactional.
18561COMMIT;
18562
18563# check transactions-7 success: 1
18564DELETE FROM t1 WHERE f_charbig = 'was inserted';
18565COMMIT WORK;
18566SET @@session.sql_mode = 'traditional';
18567SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
18568INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
18569SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
18570'', '', 'was inserted' FROM t0_template
18571WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
18572ERROR 22012: Division by 0
18573COMMIT;
18574
18575# check transactions-8 success: 1
18576# INFO: Storage engine used for t1 seems to be able to revert
18577# changes made by the failing statement.
18578SET @@session.sql_mode = '';
18579SET AUTOCOMMIT= 1;
18580DELETE FROM t1 WHERE f_charbig = 'was inserted';
18581COMMIT WORK;
18582UPDATE t1 SET f_charbig = REPEAT('b', 1000);
18583
18584# check special-1 success: 1
18585UPDATE t1 SET f_charbig = '';
18586
18587# check special-2 success: 1
18588UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
18589INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
18590SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
18591WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18592INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18593SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18594'just inserted' FROM t0_template
18595WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18596CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
18597BEGIN
18598UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18599f_charbig = 'updated by trigger'
18600 WHERE f_int1 = new.f_int1;
18601END|
18602INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18603SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
18604WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18605
18606# check trigger-1 success: 1
18607DROP TRIGGER trg_1;
18608UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18609f_int2 = CAST(f_char1 AS SIGNED INT),
18610f_charbig = 'just inserted'
18611 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18612DELETE FROM t0_aux
18613WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18614INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18615SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18616'just inserted' FROM t0_template
18617WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18618CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
18619BEGIN
18620UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18621f_charbig = 'updated by trigger'
18622 WHERE f_int1 = new.f_int1;
18623END|
18624INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18625SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
18626WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18627
18628# check trigger-2 success: 1
18629DROP TRIGGER trg_1;
18630UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18631f_int2 = CAST(f_char1 AS SIGNED INT),
18632f_charbig = 'just inserted'
18633 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18634DELETE FROM t0_aux
18635WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18636INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18637SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18638'just inserted' FROM t0_template
18639WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18640CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
18641BEGIN
18642UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18643f_charbig = 'updated by trigger'
18644 WHERE f_int1 = new.f_int1;
18645END|
18646UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
18647WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18648
18649# check trigger-3 success: 1
18650DROP TRIGGER trg_1;
18651UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18652f_int2 = CAST(f_char1 AS SIGNED INT),
18653f_charbig = 'just inserted'
18654 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18655DELETE FROM t0_aux
18656WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18657INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18658SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18659'just inserted' FROM t0_template
18660WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18661CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
18662BEGIN
18663UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18664f_charbig = 'updated by trigger'
18665 WHERE f_int1 = - old.f_int1;
18666END|
18667UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
18668WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18669
18670# check trigger-4 success: 1
18671DROP TRIGGER trg_1;
18672UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18673f_int2 = CAST(f_char1 AS SIGNED INT),
18674f_charbig = 'just inserted'
18675 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18676DELETE FROM t0_aux
18677WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18678INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18679SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18680'just inserted' FROM t0_template
18681WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18682CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
18683BEGIN
18684UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18685f_charbig = 'updated by trigger'
18686 WHERE f_int1 = new.f_int1;
18687END|
18688UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
18689WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18690
18691# check trigger-5 success: 1
18692DROP TRIGGER trg_1;
18693UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18694f_int2 = CAST(f_char1 AS SIGNED INT),
18695f_charbig = 'just inserted'
18696 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18697DELETE FROM t0_aux
18698WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18699INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18700SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18701'just inserted' FROM t0_template
18702WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18703CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
18704BEGIN
18705UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18706f_charbig = 'updated by trigger'
18707 WHERE f_int1 = - old.f_int1;
18708END|
18709UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
18710WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18711
18712# check trigger-6 success: 1
18713DROP TRIGGER trg_1;
18714UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18715f_int2 = CAST(f_char1 AS SIGNED INT),
18716f_charbig = 'just inserted'
18717 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18718DELETE FROM t0_aux
18719WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18720INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18721SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18722'just inserted' FROM t0_template
18723WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18724CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
18725BEGIN
18726UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18727f_charbig = 'updated by trigger'
18728 WHERE f_int1 = - old.f_int1;
18729END|
18730DELETE FROM t0_aux
18731WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18732
18733# check trigger-7 success: 1
18734DROP TRIGGER trg_1;
18735UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18736f_int2 = CAST(f_char1 AS SIGNED INT),
18737f_charbig = 'just inserted'
18738 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18739DELETE FROM t0_aux
18740WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18741INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
18742SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
18743'just inserted' FROM t0_template
18744WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18745CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
18746BEGIN
18747UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
18748f_charbig = 'updated by trigger'
18749 WHERE f_int1 = - old.f_int1;
18750END|
18751DELETE FROM t0_aux
18752WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
18753
18754# check trigger-8 success: 1
18755DROP TRIGGER trg_1;
18756UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18757f_int2 = CAST(f_char1 AS SIGNED INT),
18758f_charbig = 'just inserted'
18759 WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
18760DELETE FROM t0_aux
18761WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18762DELETE FROM t1
18763WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
18764CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
18765BEGIN
18766SET new.f_int1 = old.f_int1 + @max_row,
18767new.f_int2 = old.f_int2 - @max_row,
18768new.f_charbig = '####updated per update trigger####';
18769END|
18770UPDATE t1
18771SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
18772f_charbig = '####updated per update statement itself####';
18773
18774# check trigger-9 success: 1
18775DROP TRIGGER trg_2;
18776UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
18777f_int2 = CAST(f_char1 AS SIGNED INT),
18778f_charbig = CONCAT('===',f_char1,'===');
18779CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
18780BEGIN
18781SET new.f_int1 = new.f_int1 + @max_row,
18782new.f_int2 = new.f_int2 - @max_row,
18783new.f_charbig = '####updated per update trigger####';
18784END|
18785UPDATE t1
18786SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
18787f_charbig = '####updated per update statement itself####';
18788
18789# check trigger-10 success: 1
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches