Merge from the latest mariadb-10.0.
added: include/mysql/service_kill_statement.h libmysql/libmysql_rpm_version.in libmysql/rpm_support.cc libservices/kill_statement_service.c mysql-test/include/ctype_heap.inc mysql-test/include/ctype_strtoll10.inc mysql-test/r/change_user_notembedded.result mysql-test/r/create_delayed.result mysql-test/r/ctype_utf16le.result mysql-test/r/failed_auth_3909.result mysql-test/r/gis2.result mysql-test/r/grant_lowercase.result mysql-test/r/group_by_innodb.result mysql-test/r/information_schema2.result mysql-test/suite/innodb/r/innodb_bug14704286.result mysql-test/suite/innodb/t/innodb_bug14704286.test mysql-test/suite/plugins/r/audit_null_debug.result mysql-test/suite/plugins/r/cassandra.result mysql-test/suite/plugins/r/cassandra_qcache.result mysql-test/suite/plugins/t/audit_null_debug.test mysql-test/suite/plugins/t/cassandra.opt mysql-test/suite/plugins/t/cassandra.test mysql-test/suite/plugins/t/cassandra_qcache.opt mysql-test/suite/plugins/t/cassandra_qcache.test mysql-test/suite/rpl/r/rpl_password_boundaries.result mysql-test/suite/rpl/t/rpl_password_boundaries.test mysql-test/suite/sys_vars/r/innodb_locking_fake_changes_basic.result mysql-test/suite/sys_vars/r/innodb_max_bitmap_file_size_basic.result mysql-test/suite/sys_vars/t/innodb_locking_fake_changes_basic.test mysql-test/suite/sys_vars/t/innodb_max_bitmap_file_size_basic.test mysql-test/t/change_user_notembedded.test mysql-test/t/create_delayed.test mysql-test/t/ctype_utf16le.test mysql-test/t/failed_auth_3909.test mysql-test/t/gis2.test mysql-test/t/grant_lowercase.opt mysql-test/t/grant_lowercase.test mysql-test/t/group_by_innodb.test mysql-test/t/information_schema2.test packaging/rpm-uln/ packaging/rpm-uln/CMakeLists.txt packaging/rpm-uln/README-ULN packaging/rpm-uln/README.mysql-docs packaging/rpm-uln/filter-requires-mysql.sh packaging/rpm-uln/generate-tarball.sh packaging/rpm-uln/my.cnf packaging/rpm-uln/my_config.h packaging/rpm-uln/mysql-5.5-errno.patch packaging/rpm-uln/mysql-5.5-fix-tests.patch packaging/rpm-uln/mysql-5.5-libdir.patch packaging/rpm-uln/mysql-5.5-mtr1.patch packaging/rpm-uln/mysql-5.5-stack-guard.patch packaging/rpm-uln/mysql-5.5-testing.patch packaging/rpm-uln/mysql-chain-certs.patch packaging/rpm-uln/mysql-embedded-check.c packaging/rpm-uln/mysql-expired-certs.patch packaging/rpm-uln/mysql-install-test.patch packaging/rpm-uln/mysql-strmov.patch packaging/rpm-uln/mysql.init packaging/rpm-uln/mysql.spec.sh packaging/rpm-uln/scriptstub.c scripts/mysql_performance_tables.sql storage/cassandra/ storage/cassandra/CMakeLists.txt storage/cassandra/cassandra.cnf storage/cassandra/cassandra_se.cc storage/cassandra/cassandra_se.h storage/cassandra/gen-cpp/ storage/cassandra/gen-cpp/Cassandra.cpp storage/cassandra/gen-cpp/Cassandra.h storage/cassandra/gen-cpp/Cassandra_server.skeleton.cpp storage/cassandra/gen-cpp/cassandra_constants.cpp storage/cassandra/gen-cpp/cassandra_constants.h storage/cassandra/gen-cpp/cassandra_types.cpp storage/cassandra/gen-cpp/cassandra_types.h storage/cassandra/ha_cassandra.cc storage/cassandra/ha_cassandra.h storage/innobase/mysql-test/storage_engine/alter_tablespace.rdiff renamed: mysql-test/include/mysqlbinlog_row_engine.inc => mysql-test/extra/binlog_tests/mysqlbinlog_row_engine.inc mysql-test/r/mysqlbinlog-cp932.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog-cp932.result mysql-test/r/mysqlbinlog2.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result mysql-test/r/mysqlbinlog_base64.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_base64.result mysql-test/r/mysqlbinlog_row.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result mysql-test/r/mysqlbinlog_row_innodb.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result mysql-test/r/mysqlbinlog_row_myisam.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result mysql-test/r/mysqlbinlog_row_trans.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result mysql-test/suite/innodb/t/innodb-autoinc-master.opt => mysql-test/suite/innodb/t/innodb-autoinc.opt mysql-test/t/mysqlbinlog-cp932-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932-master.opt mysql-test/t/mysqlbinlog-cp932.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932.test mysql-test/t/mysqlbinlog2-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog2-master.opt mysql-test/t/mysqlbinlog2.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test mysql-test/t/mysqlbinlog_base64.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_base64.test mysql-test/t/mysqlbinlog_row-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row-master.opt mysql-test/t/mysqlbinlog_row.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test mysql-test/t/mysqlbinlog_row_innodb-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb-master.opt mysql-test/t/mysqlbinlog_row_innodb.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb.test mysql-test/t/mysqlbinlog_row_myisam-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam-master.opt mysql-test/t/mysqlbinlog_row_myisam.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam.test mysql-test/t/mysqlbinlog_row_trans-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans-master.opt mysql-test/t/mysqlbinlog_row_trans.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test mysql-test/t/plugin_load_option-master.opt => mysql-test/t/plugin_load_option.opt modified: BUILD/FINISH.sh BUILD/SETUP.sh CMakeLists.txt TODO VERSION client/completion_hash.cc client/mysql.cc client/mysql_upgrade.c client/mysqlbinlog.cc client/mysqlcheck.c client/mysqldump.c client/mysqltest.cc cmake/build_configurations/mysql_release.cmake cmake/character_sets.cmake cmake/configure.pl cmake/cpack_rpm.cmake cmake/create_initial_db.cmake.in cmake/info_macros.cmake.in cmake/install_layout.cmake cmake/mysql_version.cmake cmake/package_name.cmake cmake/plugin.cmake debian/dist/Debian/mariadb-server-10.0.files debian/dist/Debian/rules debian/dist/Ubuntu/mariadb-server-10.0.files debian/dist/Ubuntu/rules debian/patches/38_scripts__mysqld_safe.sh__signals.dpatch extra/comp_err.c extra/replace.c extra/resolve_stack_dump.c include/hash.h include/heap.h include/m_ctype.h include/ma_dyncol.h include/my_dir.h include/my_global.h include/my_pthread.h include/my_sys.h include/my_tree.h include/myisamchk.h include/mysql.h.pp include/mysql/plugin.h include/mysql/plugin_audit.h.pp include/mysql/plugin_auth.h.pp include/mysql/plugin_ftparser.h.pp include/mysql/service_thd_wait.h include/mysql/services.h include/mysql_com.h include/service_versions.h include/violite.h libmysql/CMakeLists.txt libmysql/libmysql.c libmysqld/CMakeLists.txt libmysqld/emb_qcache.cc libmysqld/lib_sql.cc libservices/CMakeLists.txt mysql-test/extra/binlog_tests/binlog.test mysql-test/include/have_dbi_dbd-mysql.inc mysql-test/include/plugin.defs mysql-test/include/rpl_start_server.inc mysql-test/lib/v1/mysql-test-run.pl mysql-test/mysql-test-run.pl mysql-test/r/alias.result mysql-test/r/contributors.result mysql-test/r/create.result mysql-test/r/ctype_ucs.result mysql-test/r/ctype_utf16.result mysql-test/r/ctype_utf32.result mysql-test/r/ctype_utf8.result mysql-test/r/datetime_456.result mysql-test/r/derived_view.result mysql-test/r/distinct.result mysql-test/r/dyncol.result mysql-test/r/func_encrypt_ucs2.result mysql-test/r/func_gconcat.result mysql-test/r/func_misc.result mysql-test/r/func_time.result mysql-test/r/group_by.result mysql-test/r/group_min_max.result mysql-test/r/handlersocket.result mysql-test/r/loaddata.result mysql-test/r/mysql.result mysql-test/r/mysqltest.result mysql-test/r/plugin.result mysql-test/r/plugin_auth.result mysql-test/r/show_check.result mysql-test/r/show_explain.result mysql-test/r/sp.result mysql-test/r/sp_notembedded.result mysql-test/r/stat_tables_par.result mysql-test/r/stat_tables_par_innodb.result mysql-test/r/subselect.result mysql-test/r/subselect3.result mysql-test/r/subselect3_jcl6.result mysql-test/r/subselect4.result mysql-test/r/subselect_innodb.result mysql-test/r/subselect_mat_cost.result mysql-test/r/subselect_no_mat.result mysql-test/r/subselect_no_opts.result mysql-test/r/subselect_no_scache.result mysql-test/r/subselect_sj.result mysql-test/r/subselect_sj_jcl6.result mysql-test/r/sum_distinct-big.result mysql-test/r/type_year.result mysql-test/r/user_var.result mysql-test/r/view.result mysql-test/suite.pm mysql-test/suite/binlog/r/binlog_database.result mysql-test/suite/binlog/r/binlog_row_annotate.result mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_verbose.result mysql-test/suite/engines/funcs/r/tc_rename_error.result mysql-test/suite/engines/iuds/r/insert_time.result mysql-test/suite/funcs_1/datadict/processlist_priv.inc mysql-test/suite/funcs_1/datadict/processlist_val.inc mysql-test/suite/funcs_1/r/innodb_func_view.result mysql-test/suite/funcs_1/r/is_columns_is.result mysql-test/suite/funcs_1/r/is_columns_is_embedded.result mysql-test/suite/funcs_1/r/memory_func_view.result mysql-test/suite/funcs_1/r/myisam_func_view.result mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result mysql-test/suite/funcs_1/r/processlist_priv_ps.result mysql-test/suite/funcs_1/r/processlist_val_no_prot.result mysql-test/suite/funcs_1/r/processlist_val_ps.result mysql-test/suite/innodb/r/binlog_consistent.result mysql-test/suite/innodb/r/innodb-autoinc.result mysql-test/suite/innodb/r/innodb-zip.result mysql-test/suite/innodb/r/innodb.result mysql-test/suite/innodb/r/innodb_bug53591.result mysql-test/suite/innodb/r/innodb_prefix_index_liftedlimit.result mysql-test/suite/innodb/t/innodb-autoinc.test mysql-test/suite/innodb/t/innodb-zip.test mysql-test/suite/innodb/t/innodb.test mysql-test/suite/innodb/t/innodb_bug53591.test mysql-test/suite/innodb/t/innodb_prefix_index_liftedlimit.test mysql-test/suite/maria/truncate.result mysql-test/suite/maria/truncate.test mysql-test/suite/multi_source/multisource.result mysql-test/suite/multi_source/multisource.test mysql-test/suite/perfschema/include/upgrade_check.inc mysql-test/suite/perfschema/r/digest_table_full.result mysql-test/suite/perfschema/r/func_file_io.result mysql-test/suite/perfschema/r/func_mutex.result mysql-test/suite/perfschema/r/pfs_upgrade.result mysql-test/suite/perfschema/r/statement_digest.result mysql-test/suite/perfschema/r/statement_digest_consumers.result mysql-test/suite/perfschema/r/statement_digest_long_query.result mysql-test/suite/perfschema/t/func_file_io.test mysql-test/suite/perfschema/t/func_mutex.test mysql-test/suite/plugins/suite.pm mysql-test/suite/rpl/r/rpl_semi_sync.result mysql-test/suite/rpl/t/rpl_semi_sync.test mysql-test/suite/sphinx/sphinx.result mysql-test/suite/storage_engine/misc.result mysql-test/suite/sys_vars/r/character_set_client_basic.result mysql-test/suite/sys_vars/r/character_set_connection_basic.result mysql-test/suite/sys_vars/r/character_set_database_basic.result mysql-test/suite/sys_vars/r/character_set_filesystem_basic.result mysql-test/suite/sys_vars/r/character_set_results_basic.result mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result mysql-test/suite/sys_vars/r/innodb_changed_pages_limit_basic.result mysql-test/suite/sys_vars/r/pseudo_thread_id_basic.result mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test mysql-test/suite/sys_vars/t/innodb_changed_pages_limit_basic.test mysql-test/suite/sys_vars/t/pseudo_thread_id_basic.test mysql-test/suite/vcol/r/vcol_misc.result mysql-test/suite/vcol/t/vcol_misc.test mysql-test/t/alias.test mysql-test/t/ctype_ucs.test mysql-test/t/ctype_utf16.test mysql-test/t/ctype_utf32.test mysql-test/t/ctype_utf8.test mysql-test/t/derived_view.test mysql-test/t/distinct.test mysql-test/t/dyncol.test mysql-test/t/file_contents.test mysql-test/t/func_gconcat.test mysql-test/t/func_misc.test mysql-test/t/group_by.test mysql-test/t/group_min_max.test mysql-test/t/loaddata.test mysql-test/t/mysql.test mysql-test/t/plugin.test mysql-test/t/plugin_auth.test mysql-test/t/show_check.test mysql-test/t/show_explain.test mysql-test/t/sp.test mysql-test/t/sp_notembedded.test mysql-test/t/stat_tables_par.test mysql-test/t/subselect4.test mysql-test/t/subselect_innodb.test mysql-test/t/subselect_sj.test mysql-test/t/sum_distinct-big.test mysql-test/t/user_var.test mysql-test/t/view.test mysql-test/valgrind.supp mysys/array.c mysys/charset-def.c mysys/default.c mysys/hash.c mysys/ma_dyncol.c mysys/mf_tempdir.c mysys/my_alloc.c mysys/my_chmod.c mysys/my_chsize.c mysys/my_copy.c mysys/my_create.c mysys/my_delete.c mysys/my_error.c mysys/my_fopen.c mysys/my_fstream.c mysys/my_getwd.c mysys/my_lib.c mysys/my_lock.c mysys/my_malloc.c mysys/my_open.c mysys/my_pread.c mysys/my_read.c mysys/my_redel.c mysys/my_rename.c mysys/my_seek.c mysys/my_sync.c mysys/my_thr_init.c mysys/my_write.c mysys/mysys_priv.h mysys/safemalloc.c mysys/string.c mysys/tree.c mysys/waiting_threads.c plugin/feedback/utils.cc scripts/CMakeLists.txt scripts/mysql_install_db.pl.in scripts/mysql_install_db.sh scripts/mysql_system_tables.sql scripts/mysql_system_tables_fix.sql scripts/mysqlaccess.sh scripts/mysqld_multi.sh scripts/mysqld_safe.sh sql-common/client.c sql-common/client_plugin.c sql/CMakeLists.txt sql/debug_sync.cc sql/event_data_objects.cc sql/event_db_repository.cc sql/event_scheduler.cc sql/events.cc sql/field.cc sql/field.h sql/filesort.cc sql/filesort_utils.cc sql/ha_ndbcluster.cc sql/ha_ndbcluster_binlog.cc sql/ha_partition.cc sql/ha_partition.h sql/handler.cc sql/handler.h sql/hostname.cc sql/item.cc sql/item.h sql/item_cmpfunc.cc sql/item_cmpfunc.h sql/item_create.cc sql/item_create.h sql/item_func.cc sql/item_func.h sql/item_geofunc.cc sql/item_geofunc.h sql/item_row.cc sql/item_strfunc.cc sql/item_strfunc.h sql/item_subselect.cc sql/item_sum.cc sql/item_sum.h sql/item_timefunc.cc sql/item_timefunc.h sql/item_xmlfunc.cc sql/item_xmlfunc.h sql/lex.h sql/log.cc sql/log_event.cc sql/log_event.h sql/log_event_old.cc sql/mdl.cc sql/mysqld.cc sql/mysqld.h sql/net_serv.cc sql/opt_range.cc sql/opt_range_mrr.cc sql/opt_subselect.cc sql/protocol.cc sql/records.cc sql/rpl_filter.cc sql/rpl_handler.cc sql/rpl_handler.h sql/rpl_mi.cc sql/rpl_mi.h sql/rpl_rli.cc sql/rpl_tblmap.cc sql/rpl_utility.cc sql/scheduler.cc sql/set_var.cc sql/set_var.h sql/slave.cc sql/sp.cc sql/sp_head.cc sql/sp_pcontext.cc sql/sp_rcontext.cc sql/sp_rcontext.h sql/sql_acl.cc sql/sql_analyse.h sql/sql_array.h sql/sql_audit.cc sql/sql_audit.h sql/sql_base.cc sql/sql_base.h sql/sql_cache.cc sql/sql_class.cc sql/sql_class.h sql/sql_connect.cc sql/sql_const.h sql/sql_db.cc sql/sql_delete.cc sql/sql_error.cc sql/sql_error.h sql/sql_handler.cc sql/sql_help.cc sql/sql_insert.cc sql/sql_join_cache.cc sql/sql_lex.cc sql/sql_lex.h sql/sql_list.h sql/sql_load.cc sql/sql_parse.cc sql/sql_plugin.cc sql/sql_plugin_services.h sql/sql_prepare.cc sql/sql_priv.h sql/sql_profile.cc sql/sql_profile.h sql/sql_reload.cc sql/sql_repl.cc sql/sql_repl.h sql/sql_select.cc sql/sql_servers.cc sql/sql_show.cc sql/sql_signal.cc sql/sql_statistics.cc sql/sql_string.cc sql/sql_string.h sql/sql_table.cc sql/sql_test.cc sql/sql_time.cc sql/sql_trigger.cc sql/sql_truncate.cc sql/sql_udf.cc sql/sql_union.cc sql/sql_update.cc sql/sql_yacc.yy sql/sys_vars.cc sql/sys_vars.h sql/table.cc sql/table.h sql/thr_malloc.cc sql/thr_malloc.h sql/tztime.cc sql/uniques.cc sql/unireg.cc storage/archive/ha_archive.cc storage/archive/ha_archive.h storage/csv/ha_tina.cc storage/federated/ha_federated.cc storage/federated/ha_federated.h storage/federatedx/federatedx_io_mysql.cc storage/federatedx/ha_federatedx.cc storage/federatedx/ha_federatedx.h storage/heap/ha_heap.cc storage/heap/heapdef.h storage/heap/hp_block.c storage/heap/hp_create.c storage/heap/hp_open.c storage/heap/hp_write.c storage/innobase/btr/btr0btr.cc storage/innobase/btr/btr0cur.cc storage/innobase/buf/buf0buf.cc storage/innobase/buf/buf0lru.cc storage/innobase/dict/dict0dict.cc storage/innobase/fil/fil0fil.cc storage/innobase/fts/fts0fts.cc storage/innobase/handler/ha_innodb.cc storage/innobase/handler/ha_innodb.h storage/innobase/handler/handler0alter.cc storage/innobase/ibuf/ibuf0ibuf.cc storage/innobase/include/btr0cur.h storage/innobase/include/dict0mem.h storage/innobase/include/fil0fil.h storage/innobase/include/lock0lock.h storage/innobase/include/page0zip.h storage/innobase/include/row0undo.h storage/innobase/include/row0upd.ic storage/innobase/lock/lock0lock.cc storage/innobase/log/log0recv.cc storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.rdiff storage/innobase/os/os0file.cc storage/innobase/page/page0cur.cc storage/innobase/page/page0page.cc storage/innobase/page/page0zip.cc storage/innobase/row/row0mysql.cc storage/innobase/row/row0sel.cc storage/innobase/row/row0umod.cc storage/innobase/row/row0undo.cc storage/maria/ha_maria.cc storage/maria/ma_bitmap.c storage/maria/ma_blockrec.c storage/maria/ma_check.c storage/maria/ma_ft_boolean_search.c storage/maria/ma_ft_nlq_search.c storage/maria/ma_ft_parser.c storage/maria/ma_loghandler.c storage/maria/ma_open.c storage/maria/ma_sort.c storage/maria/ma_write.c storage/maria/maria_pack.c storage/maria/unittest/sequence_storage.c storage/myisam/ft_boolean_search.c storage/myisam/ft_nlq_search.c storage/myisam/ft_parser.c storage/myisam/ft_stopwords.c storage/myisam/mi_check.c storage/myisam/mi_open.c storage/myisam/mi_write.c storage/myisam/myisamchk.c storage/myisam/myisamlog.c storage/myisam/myisampack.c storage/myisam/sort.c storage/myisammrg/ha_myisammrg.cc storage/myisammrg/mysql-test/storage_engine/vcol.rdiff storage/perfschema/pfs.cc storage/perfschema/pfs_check.cc storage/perfschema/pfs_instr.cc storage/perfschema/pfs_server.cc storage/sphinx/ha_sphinx.cc storage/xtradb/btr/btr0cur.c storage/xtradb/btr/btr0pcur.c storage/xtradb/buf/buf0lru.c storage/xtradb/buf/buf0rea.c storage/xtradb/fsp/fsp0fsp.c storage/xtradb/handler/ha_innodb.cc storage/xtradb/handler/ha_innodb.h storage/xtradb/handler/i_s.cc storage/xtradb/ibuf/ibuf0ibuf.c storage/xtradb/include/btr0btr.h storage/xtradb/include/btr0cur.h storage/xtradb/include/log0online.h storage/xtradb/include/srv0srv.h storage/xtradb/include/univ.i storage/xtradb/include/ut0ut.h storage/xtradb/include/ut0ut.ic storage/xtradb/lock/lock0lock.c storage/xtradb/log/log0log.c storage/xtradb/log/log0online.c storage/xtradb/os/os0file.c storage/xtradb/row/row0ins.c storage/xtradb/row/row0mysql.c storage/xtradb/row/row0upd.c storage/xtradb/srv/srv0srv.c storage/xtradb/srv/srv0start.c strings/ctype-latin1.c strings/ctype-ucs2.c strings/my_vsnprintf.c support-files/compiler_warnings.supp support-files/mysql.spec.sh tests/mysql_client_test.c vio/viosocket.c win/create_def_file.js mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb.test mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam.test pending merges: Sergei Golubchik 2013-03-28 MDEV-4207 Invalid code in fts_savepoint_rele... Alexander Barkov 2013-03-28 Fixing test failure in the previous comm... Alexander Barkov 2013-03-28 Merging utf16le from MySQL-5.6 Vladislav Vaintroub 2013-02-19 MDEV-156 Threadpool - add thd_wait_be... Michael Widenius 2013-02-15 [merge] Automatic merge Elena Stepanova 2013-02-08 Fix for MDEV-4149, backport from 10.0: timour@askmonty.org 2013-02-07 MDEV-537 Make multi-column non-top le... Sergei Golubchik 2013-02-05 set THR_THD key and current_thd=NULL as ... sanja@askmonty.org 2013-02-04 [merge] merge sanja@askmonty.org 2013-02-04 MDEV-3873: post-merge fix. Sergei Golubchik 2013-02-04 missing cast added Sergey Petrunya 2013-02-04 Skip cassandra_qcache.test if there is no... Sergey Petrunya 2013-02-04 [merge] Merge fix for MDEV-3997. Sergey Petrunya 2013-02-04 MDEV-3997: Querying a Cassandra table on ... Sergey Petrunya 2013-02-04 Fix mysql-test/suite/plugins/suite.pm to ... sanja@askmonty.org 2013-02-04 [merge] merge sanja@askmonty.org 2013-02-04 MDEV-4091: Dynamic columns C functions... knielsen@knielse... 2013-01-31 MDEV-4121: binlog.binlog_row_binlog s... Sergei Golubchik 2013-02-02 remove "invisible sysvars" oxymoron Sergei Golubchik 2013-01-31 fix for a valgrind builds. Sergei Golubchik 2013-01-31 avoid mtr errors for --plugin-add=EXAMPL... Sergei Golubchik 2013-01-31 skip cassandra.test unless cassandra is ... Sergei Golubchik 2013-01-31 [merge] 10.0-base merge Sergei Golubchik 2013-01-30 don't disable the cassandra engine by de... knielsen@knielse... 2013-01-30 MDEV-3984: Double free of Master_info... Sergei Golubchik 2013-01-29 move cassandra-related code from cmake/c... Sergei Golubchik 2013-01-29 buildbot fixes for storage/cassandra/CMa... Sergei Golubchik 2013-01-29 [merge] 5.5 merge Sergei Golubchik 2013-01-29 more changes for fedora18 Sergei Golubchik 2013-01-29 fix 'compat' rpm for fedora18 Vladislav Vaintroub 2013-01-28 fix embedded build with for cmake 2.6... timour@askmonty.org 2013-01-28 Fix for MDEV-3948, and backport of th... Sergei Golubchik 2013-01-28 [merge] 5.3 merge Sergei Golubchik 2013-01-28 [merge] 5.2 merge Sergei Golubchik 2013-01-28 compilation error with -Wuninitialized -... Sergei Golubchik 2013-01-25 [merge] 5.1 merge Sergei Golubchik 2013-01-25 MDEV-729 lp:998028 - Server crashes on n... Sergei Golubchik 2013-01-25 MDEV-759 lp:998340 - Valgrind complains ... Sergei Golubchik 2013-01-26 MDEV-3875 Wrong result (missing row) on ... sanja@askmonty.org 2013-01-25 The problem was that expression with f... sanja@askmonty.org 2013-01-28 MDEV-4091: Dynamic columns C functions... Vladislav Vaintroub 2013-01-26 [merge] Merge MDEV-3842, MDEV-3923, M... Vladislav Vaintroub 2013-01-25 fix embedded Vladislav Vaintroub 2013-01-25 Fix embedded build Vladislav Vaintroub 2013-01-25 MDEV-3842, MDEV-3923 : Vladislav Vaintroub 2013-01-25 MDEV-3971 : problems installing Mari... Michael Widenius 2013-01-26 [merge] Automatic merge Michael Widenius 2013-01-25 Fixed MDEV-3890: Server crash inserting ... Sergei Golubchik 2013-01-25 [merge] 5.3 merge Sergei Golubchik 2013-01-25 [merge] 5.2 merge Sergei Golubchik 2013-01-25 MDEV-4040 Replace deprecated SET OPTION ... Sergei Golubchik 2013-01-25 MDEV-3909 remote user enumeration Sergei Golubchik 2013-01-25 report "using password: YES/NO" correctl... Sergei Golubchik 2013-01-25 MDEV-3915 COM_CHANGE_USER allows fast pa... Igor Babaev 2013-01-23 [merge] Merge 5.3->5.5 Igor Babaev 2013-01-21 [merge] Merge 5.2->5.3 Igor Babaev 2013-01-21 [merge] Merge 5.1->5.2 Igor Babaev 2013-01-21 [merge] Merge. Igor Babaev 2013-01-21 Fixed bug mdev-4063 (bug #56927). Sergei Golubchik 2013-01-21 MDEV-4029 SELECT on information_schema u... Igor Babaev 2013-01-19 Corrected the test case for bug mdev-3938. Igor Babaev 2013-01-16 Corrected the fix for bug mdev-3938. Igor Babaev 2013-01-15 Fixed bug mdev-3938. sanja@montyprogr... 2013-01-16 MDEV-4056 fix. timour@askmonty.org 2013-01-17 MDEV-3900 Optimizer difference betwee... sanja@montyprogr... 2013-01-17 backport of: sanja@montyprogr... 2013-01-16 MDEV-3988 fix. Igor Babaev 2013-01-11 Fixed bug mdev-4025. Vladislav Vaintroub 2013-01-11 MDEV-4020 : Make sure strmov symbol i... Sergei Golubchik 2013-01-23 remove one particularly stupid test Sergei Golubchik 2013-01-21 MDEV-4069 thd_wait_end does not called i... sanja@montyprogr... 2013-01-22 Fixed typo in the function name. sanja@montyprogr... 2013-01-21 MDEV-3873: fixed functions absend in ... Sergei Golubchik 2013-01-20 fix a strict aliasing warning - remove a... Sergei Golubchik 2013-01-20 MDEV-3952 Incompatible change in MariaDB... Sergei Golubchik 2013-01-20 MDEV-3934 Assertion `((keypart_map+1) & ... Sergei Golubchik 2013-01-20 MDEV-4029 SELECT on information_schema u... Sergei Golubchik 2013-01-19 MDEV-3832 MariaDB conflicts with package... Sergei Golubchik 2013-01-18 MDEV-633 lp:1024058 - mysqld XA crash in... Sergei Golubchik 2013-01-18 simplify THD::binlog_setup_trx_data() usage Sergei Golubchik 2013-01-18 MDEV-3908 crash in multi-table delete an... Sergei Golubchik 2013-01-18 MDEV-4065 thd_kill_statement service Vladislav Vaintroub 2013-01-18 Fix Windows installers' bootstrapper ... Michael Widenius 2013-01-17 Don't reset maybe_null in update_used_ta... Michael Widenius 2013-01-17 Fixed compiler warning Sergei Golubchik 2013-01-16 [merge] xtradb merge. Percona-Server-5.5... Sergei Golubchik 2013-01-15 Percona-Server-5.5.28-rel29.3 Sergei Golubchik 2013-01-15 Test case and a different fix for MySQL ... Sergei Golubchik 2013-01-15 small cleanups Sergei Golubchik 2013-01-15 backport a test case for a 5.5 bug fix f... Sergei Golubchik 2013-01-15 [merge] mysql-5.5.29 merge Dmitry Lenev 2012-12-10 Bug #15954896 "SP, MULTI-TABLE DELETE AND LO... mysql-builder@or... 2012-12-07 Harin Vadodaria 2012-12-06 Bug#15912213: BUFFER OVERFLOW IN ACL_GET() Gleb Shchepa 2012-12-05 Bug #15948123: SERVER WORKS INCORRECT WITH L... Gleb Shchepa 2012-12-05 Bug #15948123: SERVER WORKS INCORRECT WITH L... Joerg Bruehe 2012-11-08 Building RPMs for ULN: Joerg Bruehe 2012-11-08 Placement change: Tor Didriksen 2012-11-01 [merge] merge 5.1 => 5.5 Venkata Sidagam 2012-10-31 BUG#13556441: CHECK AND REPAIR TABLE SHOU... Ashish Agarwal 2012-10-31 [merge] BUG#14485479: Merge into mysql-5.5... Ashish Agarwal 2012-10-31 BUG#14485479: INSTALL AUDIT PLUGIN HANGS I... Anirudh Mangipudi 2012-10-30 [merge] BUG#11754894: MYISAMCHK ERROR H... Anirudh Mangipudi 2012-10-30 [merge] BUG#11754894: MYISAMCHK ERROR H... Anirudh Mangipudi 2012-10-30 BUG#11754894: MYISAMCHK ERROR HAS INCOR... Shivji Kumar Jha 2012-10-30 [merge] BUG#14659685: main.mysqlbinlog_r... mysql-builder@or... 2012-10-29 mysql-builder@or... 2012-10-29 [merge] mysql-builder@or... 2012-10-29 Alexander Nozdrin 2012-10-29 [merge] Merge from 5.1. Tor Didriksen 2012-10-24 Bug#14737559 BZR JOIN PLUGIN TREES INTO INT... Tor Didriksen 2012-10-23 [merge] local merge Tor Didriksen 2012-10-23 Use MESSAGE(STATUS ...) as we don't want an... Marko Mäkelä 2012-10-22 [merge] Merge mysql-5.1 to mysql-5.5. Nuno Carvalho 2012-10-21 [merge] BUG#14629727: USER_VAR_EVENT IS MIS... Nuno Carvalho 2012-10-21 [merge] BUG#14629727: USER_VAR_EVENT IS MIS... Nuno Carvalho 2012-10-21 [merge] BUG#14629727: USER_VAR_EVENT IS MIS... Nuno Carvalho 2012-10-12 [merge] BUG#14629727: USER_VAR_EVENT IS MIS... Joerg Bruehe 2012-10-19 Fix formatting in 'INFO_BIN' on Windows - ba... Joerg Bruehe 2012-10-19 [merge] Upmerge a backport - empty Annamalai Gurusami 2012-10-19 Bug #14226171 EXCESSIVE ROW LOCKING W... Neeraj Bisht 2012-10-18 [merge] Bug#13726751 - 8 BYTE MEMORY LEAK IN... Marko Mäkelä 2012-10-18 [merge] Merge mysql-5.1 to mysql-5.5. Krunal Bauskar 2012-10-17 [merge] merge from mysql-5.1 -> mysql-5.5 Krunal Bauskar 2012-10-17 removing .... will re-add using merge. for... Tatjana Azundris... 2012-10-17 [merge] NULL merge mysql-builder@or... 2012-10-17 [merge] mysql-builder@or... 2012-08-27 mysql-builder@or... 2012-08-22 mysql-builder@or... 2012-08-22 mysql-builder@or... 2012-08-09 mysql-builder@or... 2012-08-09 mysql-builder@or... 2012-08-08 mysql-builder@or... 2012-07-25 mysql-builder@or... 2012-07-24 mysql-builder@or... 2012-07-23 mysql-builder@or... 2012-07-23 mysql-builder@or... 2012-07-20 mysql-builder@or... 2012-07-19 mysql-builder@or... 2012-07-19 mysql-builder@or... 2012-07-18 mysql-builder@or... 2012-07-17 mysql-builder@or... 2012-06-28 mysql-builder@or... 2012-06-22 mysql-builder@or... 2012-06-21 mysql-builder@or... 2012-06-20 mysql-builder@or... 2012-06-20 mysql-builder@or... 2012-06-19 mysql-builder@or... 2012-06-11 mysql-builder@or... 2012-06-08 mysql-builder@or... 2012-06-04 mysql-builder@or... 2012-04-28 mysql-builder@or... 2012-02-16 mysql-builder@or... 2011-06-28 mysql-builder@or... 2011-06-09 mysql-builder@or... 2011-04-18 mysql-builder@or... 2011-03-18 mysql-builder@or... 2011-03-11 mysql-builder@or... 2011-03-05 mysql-builder@or... 2011-03-04 mysql-builder@or... 2011-03-02 mysql-builder@or... 2011-03-02 mysql-builder@or... 2011-03-02 mysql-builder@or... 2011-03-01 mysql-builder@or... 2011-02-22 mysql-builder@or... 2011-02-22 mysql-builder@or... 2011-02-14 mysql-builder@or... 2011-02-09 [merge] mysql-builder@or... 2011-02-09 mysql-builder@or... 2011-02-09 mysql-builder@or... 2011-02-08 mysql-builder@or... 2011-02-08 mysql-builder@or... 2011-02-09 mysql-builder@or... 2011-02-05 mysql-builder@or... 2010-12-29 mysql-builder@or... 2010-12-29 mysql-builder@or... 2010-12-28 mysql-builder@or... 2010-12-27 mysql-builder@or... 2010-09-06 mysql-builder@or... 2010-08-09 mysql-builder@or... 2010-06-23 mysql-builder@or... 2010-06-09 mysql-builder@or... 2010-06-08 mysql-builder@or... 2012-02-16 mysql-builder@or... 2012-01-31 mysql-builder@or... 2012-01-26 mysql-builder@or... 2011-09-08 mysql-builder@or... 2011-09-08 mysql-builder@or... 2011-09-28 mysql-builder@or... 2011-09-01 mysql-builder@or... 2011-08-30 mysql-builder@or... 2011-08-26 mysql-builder@or... 2011-08-24 mysql-builder@or... 2011-08-18 mysql-builder@or... 2011-07-22 mysql-builder@or... 2011-05-20 mysql-builder@or... 2011-03-22 mysql-builder@or... 2011-01-21 mysql-builder@or... 2011-01-20 mysql-builder@or... 2011-01-19 mysql-builder@or... 2011-01-19 mysql-builder@or... 2011-01-19 mysql-builder@or... 2011-01-13 mysql-builder@or... 2011-01-13 mysql-builder@or... 2011-01-07 [merge] mysql-builder@or... 2011-01-06 mysql-builder@or... 2011-01-06 mysql-builder@or... 2010-11-30 mysql-builder@or... 2010-11-25 mysql-builder@or... 2010-11-25 mysql-builder@or... 2010-11-25 mysql-builder@or... 2010-11-25 mysql-builder@or... 2012-08-28 mysql-builder@or... 2012-07-25 mysql-builder@or... 2012-03-19 mysql-builder@or... 2011-12-21 mysql-builder@or... 2011-09-21 [merge] mysql-builder@or... 2011-08-19 [merge] mysql-builder@or... 2011-08-18 mysql-builder@or... 2011-08-15 mysql-builder@or... 2011-07-28 mysql-builder@or... 2011-07-26 mysql-builder@or... 2011-07-26 mysql-builder@or... 2011-06-20 mysql-builder@or... 2011-06-14 mysql-builder@or... 2011-06-11 mysql-builder@or... 2011-06-10 mysql-builder@or... 2011-06-10 mysql-builder@or... 2011-06-10 mysql-builder@or... 2011-06-09 mysql-builder@or... 2011-06-06 mysql-builder@or... 2011-06-03 mysql-builder@or... 2011-06-02 mysql-builder@or... 2011-06-01 mysql-builder@or... 2011-06-01 mysql-builder@or... 2011-06-01 mysql-builder@or... 2011-06-01 mysql-builder@or... 2011-06-01 mysql-builder@or... 2011-06-01 mysql-builder@or... 2011-06-01 mysql-builder@or... 2011-05-30 mysql-builder@or... 2011-05-30 mysql-builder@or... 2011-05-30 mysql-builder@or... 2011-05-30 mysql-builder@or... 2011-05-30 mysql-builder@or... 2011-05-26 mysql-builder@or... 2011-05-26 mysql-builder@or... 2011-05-26 mysql-builder@or... 2011-05-26 mysql-builder@or... 2011-05-26 mysql-builder@or... 2011-05-25 mysql-builder@or... 2011-05-25 mysql-builder@or... 2011-05-25 mysql-builder@or... 2011-05-25 mysql-builder@or... 2011-05-25 mysql-builder@or... 2011-05-25 mysql-builder@or... 2012-10-17 mysql-builder@or... 2012-10-16 mysql-builder@or... 2012-09-21 mysql-builder@or... 2011-11-17 mysql-builder@or... 2011-09-28 mysql-builder@or... 2011-09-28 mysql-builder@or... 2011-09-21 [merge] mysql-builder@or... 2011-09-08 mysql-builder@or... 2011-09-07 mysql-builder@or... 2011-09-07 mysql-builder@or... 2011-09-07 [merge] mysql-builder@or... 2011-09-02 mysql-builder@or... 2011-09-01 mysql-builder@or... 2011-09-01 mysql-builder@or... 2011-05-20 mysql-builder@or... 2011-04-28 mysql-builder@or... 2011-04-28 mysql-builder@or... 2011-02-04 mysql-builder@or... 2010-11-29 mysql-builder@or... 2010-11-27 mysql-builder@or... 2010-11-23 mysql-builder@or... 2010-11-18 mysql-builder@or... 2010-11-18 mysql-builder@or... 2010-11-18 mysql-builder@or... 2010-11-18 mysql-builder@or... 2010-10-29 mysql-builder@or... 2010-10-29 mysql-builder@or... 2010-10-16 mysql-builder@or... 2010-10-16 mysql-builder@or... 2010-10-16 mysql-builder@or... 2010-10-15 mysql-builder@or... 2010-10-15 mysql-builder@or... 2010-10-15 mysql-builder@or... 2010-10-15 mysql-builder@or... 2010-10-14 mysql-builder@or... 2010-10-14 mysql-builder@or... 2010-10-13 mysql-builder@or... 2010-10-12 mysql-builder@or... 2010-10-12 mysql-builder@or... 2010-10-12 Yasufumi Kinoshita 2012-10-17 [merge] Bug #13702112 : WAIT_FOR_READ ... Tatjana Azundris... 2012-10-17 [merge] Bug#11764559: UMASK IS IGNORE... Neeraj Bisht 2012-10-16 [merge] Bug#11745891 - LAST_INSERT(ID) DOES ... mysql-builder@or... 2012-10-16 Marko Mäkelä 2012-10-16 [merge] Merge mysql-5.1 to mysql-5.5. Krunal Bauskar 2012-10-15 removed warning message as they have chang... Krunal Bauskar 2012-10-15 bug#14704286 Marc Alff 2012-10-12 [merge] Merge mysql-5.1 --> mysql-5.5 Vasil Dimov 2012-10-10 [merge] Null merge mysql-5.1 -> mysql-5.5 (th... Vasil Dimov 2012-10-09 [merge] Merge mysql-5.1 -> mysql-5.5 Harin Vadodaria 2012-10-09 Bug #14211140: CRASH WHEN GRANTING OR REV... Annamalai Gurusami 2012-10-09 Fixing a compilation issue. Praveenkumar Hul... 2012-10-08 Bug#11756600 - SLAVE THREAD CAN CRASH... Annamalai Gurusami 2012-10-08 Bug #14036214 MYSQLD CRASHES WHEN EXEC... Marko Mäkelä 2012-10-08 [merge] Merge mysql-5.1 to mysql-5.5. Jon Olav Hauglid 2012-10-04 Bug#14640599 MEMORY LEAK WHEN EXECUTING ... Tor Didriksen 2012-10-03 Bug#13713525 CREATE_INITIAL_DB.CMAKE IS FAI... Jon Olav Hauglid 2012-10-03 Bug#14495351: CRASH IN HA_PARTITION::HAN... Mattias Jonsson 2012-09-10 Bug#14495351: CRASH IN HA_PARTITION::HAND... Serge Kozlov 2012-10-02 BUG#12604949. Increased timeout for switchin... Tor Didriksen 2012-10-01 [merge] merge 5.1 => 5.5 Joerg Bruehe 2012-10-01 [merge] Empty upmerge of 5.1.66 into 5.5 hery.ramilison@o... 2012-10-01 Merge from mysql-5.5.28-release Annamalai Gurusami 2012-09-28 [merge] Merge from mysql-5.1 to mysql-... mysql-builder@or... 2012-09-27 Akhila Maddukuri 2012-09-27 Description: mysql-builder@or... 2012-09-26 [merge] Akhila Maddukuri 2012-09-26 [merge] Description: Tor Didriksen 2012-09-25 [merge] merge 5.1 => 5.5 mysql-builder@or... 2012-09-25 [merge] mysql-builder@or... 2012-09-25 [merge] Jon Olav Hauglid 2012-09-25 [merge] Merge from mysql-5.1 to mysql-5.5 Raghav Kapoor 2012-09-25 [merge] BUG#13864642: DROP/CREATE USER BEHA... Rohit Kalhans 2012-09-23 [merge] bug#14548159: upmerge from mysql-5.... Rohit Kalhans 2012-09-22 [merge] upmerge to bug#14548159 Nirbhay Choubey 2012-09-21 [merge] Merge of fix for Bug#14645196 fro... Joerg Bruehe 2012-09-21 [merge] Merge changes for ULN RPMs into main... Joerg Bruehe 2012-09-18 Spec file for ULN RPMs: Joerg Bruehe 2012-07-26 Spec file: Declare conflicts with the ULN RPMs. Joerg Bruehe 2012-07-26 ULN spec file: Some comment or message text ... Joerg Bruehe 2012-07-26 Spec file: transfer the 'runselftest' macro ... Joerg Bruehe 2012-07-26 Spec file for ULN RPMs: Joerg Bruehe 2012-07-26 Spec file polishing: Handle 'MySQL-*' and 'm... Joerg Bruehe 2012-07-25 [merge] Merge 5.5.27 into the tree for ULN R... Joerg Bruehe 2012-06-14 Copyright text in the spec file for ULN RPMs. Joerg Bruehe 2012-06-12 One file still missing for ULN RPMs. Joerg Bruehe 2012-06-12 Still work on getting the "SPECIFIC-ULN/" fi... Joerg Bruehe 2012-06-11 Protect traditional RPMs that "SPECIFIC-ULN/... Joerg Bruehe 2012-06-11 cmake syntax error: missed ${...} Joerg Bruehe 2012-06-11 Files in "SPECIFIC-ULN" need to be mentioned... Joerg Bruehe 2012-06-11 Adape "SPECIFIC-ULN/mysql-5.5-libdir.patch" ... Joerg Bruehe 2012-06-11 More changes to supporting the build of RPMs... Joerg Bruehe 2012-06-08 First version of supporting the build of RPM... Inaam Rana 2012-09-20 Bug#14594600 ASSERT FROM DROP TABLE CONCURRENT... mysql-builder@or... 2012-09-20 Marko Mäkelä 2012-09-20 [merge] Null merge mysql-5.1 to mysql-5.5. Marko Mäkelä 2012-09-20 Do not try innodb_change_buffering_debug=2. Marko Mäkelä 2012-09-19 [merge] Merge mysql-5.1 to mysql-5.5. Tor Didriksen 2012-09-18 Bug#14542543 FIX BUG #12694872 IN 5.5 Marko Mäkelä 2012-09-17 [merge] Null merge mysql-5.1 to mysql-5.5. Marko Mäkelä 2012-09-17 [merge] Merge mysql-5.5 to working copy. Harin Vadodaria 2012-09-17 [merge] Bug#11753779: MAX_CONNECT_ERRORS ... Marko Mäkelä 2012-09-17 [merge] Merge mysql-5.1 to mysql-5.5. Sujatha Sivakumar 2012-09-17 [merge] merge from 5.1 to 5.5 mysql-builder@or... 2012-09-12 [merge] Tor Didriksen 2012-09-12 [merge] merge 5.1 => 5.5 Georgi Kodinov 2012-09-11 [merge] merge Jon Olav Hauglid 2012-09-11 WL#6454: Deprecate SHOW AUTHORS and SHOW... Georgi Kodinov 2012-08-27 Bug #13548161: MYSQLD_SAFE IMPROVEMENTS FO... Georgi Kodinov 2012-08-24 Bug #14181049: MYSQL_INSTALL_DB.PL CREATES... Andrei Elkin 2012-09-10 [merge] merge bug14597605 to 5.5. Marc Alff 2012-09-07 [merge] Local merge Marc Alff 2012-09-07 [merge] local merge Akhil Mohan 2012-09-07 [merge] Empty version change upmerge Marc Alff 2012-09-07 Bug#14072995 - PERFSCHEMA.FUNC_FILE_IO FAILS WI... Marc Alff 2012-09-07 Bug#14100113 - PERFSCHEMA.FUNC_MUTEX FAILS WITH... Tor Didriksen 2012-09-07 Bug#14593123 CONFIGURE.PL WITH CMAKE2.8 BRE... Tor Didriksen 2012-09-05 [merge] merge 5.1 => 5.5 Annamalai Gurusami 2012-09-04 Bug #14500557 CRASH WHEN USING LONG IN... Annamalai Gurusami 2012-09-03 [merge] Merge from mysql-5.1 to mysql-... Annamalai Gurusami 2012-09-01 [merge] Merge from mysql-5.1 to mysql-... mysql-builder@or... 2012-08-31 [merge] Marko Mäkelä 2012-08-30 [merge] Merge mysql-5.1 to mysql-5.5. Jorgen Loland 2012-08-30 [merge] Null-merge from 5.1 mysql-builder@or... 2012-08-29 Tor Didriksen 2012-08-28 [merge] merge 5.5.28-release => 5.5 mysql-builder@or... 2012-08-27 Aditya A 2012-08-27 Bug#14145950 AUTO_INCREMENT ON DOUBLE WILL FAIL ... hery.ramilison@o... 2012-08-24 Raise version number after cloning 5.... Sergei Golubchik 2013-01-15 update debian patch to apply Sergei Golubchik 2013-01-15 [merge] 5.3 merge Sergei Golubchik 2013-01-10 [merge] 5.2->5.3 merge Sergei Golubchik 2013-01-10 [merge] 5.1 merge Sergei Golubchik 2013-01-09 [merge] mysql-5.1.67 merge Joerg Bruehe 2012-12-07 Last-minute fix to 5.1.67, akhil.mohan@orac... 2012-11-29 applying patch for BUG15912213 Tor Didriksen 2012-11-01 Bug#14840488 VALGRIND ERRORS IN MYSQL_CLIEN... Anirudh Mangipudi 2012-10-30 BUG#11754894: MYISAMCHK ERROR HAS INCOR... Shivji Kumar Jha 2012-10-30 BUG#14659685 - main.mysqlbinlog_row_myis... mysql-builder@or... 2012-10-29 Alexander Nozdrin 2012-10-29 Fix sp_notembedded.test. Marko Mäkelä 2012-10-22 Backport from 5.6: Bug#14769820 ASSERT FLEN ... Nuno Carvalho 2012-10-21 BUG#14629727: USER_VAR_EVENT IS MISSING RAN... Nuno Carvalho 2012-10-21 [merge] BUG#14629727: USER_VAR_EVENT IS MIS... Nuno Carvalho 2012-10-12 BUG#14629727: USER_VAR_EVENT IS MISSING RAN... Joerg Bruehe 2012-10-19 [merge] Automerge into main 5.1 Joerg Bruehe 2012-09-11 Backport this change from MySQL 5.5 to 5.1: Neeraj Bisht 2012-10-18 Bug#13726751 - 8 BYTE MEMORY LEAK IN DO_SAVE... Marko Mäkelä 2012-10-18 Bug#14758405: ALTER TABLE: ADDING SERIAL NUL... Krunal Bauskar 2012-10-17 bug#14765606: ensure select is active befo... Tatjana Azundris... 2012-10-17 [merge] Bug#11764559: UMASK IS IGNORE... Tatjana Azundris... 2012-10-17 Bug#11764559: UMASK IS IGNORED BY ERR... Yasufumi Kinoshita 2012-10-17 Bug #13702112 : WAIT_FOR_READ IS STUCK... Neeraj Bisht 2012-10-16 Bug#11745891 - LAST_INSERT(ID) DOES NOT SUPP... Marko Mäkelä 2012-10-16 Bug#14729221 IN-PLACE ALTER TABLE REPORTS ''... Krunal Bauskar 2012-10-15 bug#14704286 Marc Alff 2012-10-12 Bug#14629232 SECURITY VULNERABILITY WITH SHOW P... Vasil Dimov 2012-10-10 Fix compilation error in debug mode: Vasil Dimov 2012-10-09 Port the test for Bug#14708715 from 5.1/innod... Vasil Dimov 2012-10-09 Update the ChangeLog with the fix of Bug#1470... Vasil Dimov 2012-10-09 Fix Bug#14708715 CREATE TABLE MEMORY LEAK ON ... Marko Mäkelä 2012-10-08 Bug#14731482 UPDATE OR DELETE CORRUPTS A REC... Tor Didriksen 2012-10-01 Bug#14683676 ENDLESS MEMORY CONSUMPTION IN ... Joerg Bruehe 2012-10-01 [merge] Merge 5.1.66 into main 5.1 Annamalai Gurusami 2012-09-28 Bug #13249921 ASSERT !BPAGE->FILE_PAGE... mysql-builder@or... 2012-09-26 Akhila Maddukuri 2012-09-26 Description: Tor Didriksen 2012-09-25 Backport mysql-builder@or... 2012-09-25 mysql-builder@or... 2012-09-25 Jon Olav Hauglid 2012-09-25 Bug#14621627 THREAD CACHE IS UNFAIR Raghav Kapoor 2012-09-25 BUG#13864642: DROP/CREATE USER BEHAVING ODDLY Rohit Kalhans 2012-09-23 BUG#14548159: Followup patch to fix some is... Rohit Kalhans 2012-09-22 BUG#14548159: NUMEROUS CASES OF INCORRECT I... Nirbhay Choubey 2012-09-21 Bug#14645196 MYSQL CLIENT'S USE COMMAND F... mysql-builder@or... 2012-09-20 Marko Mäkelä 2012-09-19 Bug#14636528 INNODB CHANGE BUFFERING IS NOT ... Marko Mäkelä 2012-09-17 [merge] Merge mysql-5.1 to working copy. Harin Vadodaria 2012-09-17 Bug#11753779: MAX_CONNECT_ERRORS WORKS ON... Marko Mäkelä 2012-09-17 Bug#12701488 ASSERT PAGE_ZIP_VALIDATE, UNIV_... Sujatha Sivakumar 2012-09-17 Bug#11750014:ASSERTION TRX_DATA->EMPTY(... mysql-builder@or... 2012-09-12 Tor Didriksen 2012-09-12 Backport Bug#13724099 Andrei Elkin 2012-09-10 [merge] merge bug14597605 to the main repo. Andrei Elkin 2012-09-10 Bug#14597605 Issue with Null-value user on s... akhil.mohan@orac... 2012-09-07 Raise version number after cloning 5.... Sergei Golubchik 2012-12-04 proactive s/strmov/strnmov/ in sql_acl.c... Vladislav Vaintroub 2012-12-21 [merge] merge Vladislav Vaintroub 2012-12-21 Support VS2012. Exclude compiler-defi... Vladislav Vaintroub 2012-12-21 [merge] merge Vladislav Vaintroub 2012-12-06 MDEV-3918: myisamchk bogus error for... Sergei Golubchik 2012-12-11 one-byte overflow with old passwords Vladislav Vaintroub 2012-11-26 Fix broken feedback plugin after MDEV... Vladislav Vaintroub 2012-11-23 MDEV-712 - LP:1024239 - Mysqlclient... Vladislav Vaintroub 2012-11-22 [merge] merge 5.1 Vladislav Vaintroub 2012-11-22 Feedback plugin now recognizes Windo... Sergei Golubchik 2013-01-08 MDEV-3942 FROM_DAYS(<timestamp column>) ... sanja@askmonty.org 2012-12-28 MDEV-3873 & MDEV-3876 & MDEV-3912 : Wr... timour@askmonty.org 2012-12-19 MDEV-3928: Assertion `example' failed... sanja@montyprogr... 2012-12-05 MDEV-3914 fix. Sergei Golubchik 2012-11-23 bump the version to 5.3.11 Igor Babaev 2012-11-22 [merge] Merge Igor Babaev 2012-11-21 Fixed LP bug #1002146 (bug mdev-645). Sergei Golubchik 2013-01-15 remove thd_mark_as_hard_kill() timour@askmonty.org 2013-01-15 Fix for bug MDEV-3992, second attempt timour@askmonty.org 2013-01-14 Fix for bug MDEV-3992 Michael Widenius 2013-01-11 Buildbot fixes and cleanups: Michael Widenius 2013-01-11 Fixed crashing bug in GROUP_CONCAT with ... Michael Widenius 2013-01-11 Fixed problem with failing mysql_upgrade... Michael Widenius 2013-01-11 Fixed MDEV-4013: Password length in repl... Michael Widenius 2013-01-11 Fixed some race conditons and bugs relat... Michael Widenius 2013-01-10 Fix for MDEV-4009: main.delayed sporadic... Sergei Golubchik 2013-01-09 MDEV-3846 REFRESH_CHECKPOINT and REFRESH... Sergei Golubchik 2013-01-09 MDEV-3985 crash: uninstall soname 'a' Sergei Golubchik 2013-01-08 MDEV-3883 Show global status not in order Sergei Golubchik 2013-01-08 MDEV-3987 uninitialized read in Item_con... Sergei Golubchik 2013-01-07 non-functional cleanup, clarifying CONVE... Sergei Golubchik 2013-01-28 my_alloca() when it's mapped to malloc()... Sergei Golubchik 2013-01-24 fix ha_cassandra to compile Sergei Golubchik 2013-01-24 workaround for incorrectly (?) generated... Sergei Golubchik 2013-01-24 race conditions in show_explain.test Sergei Golubchik 2013-01-23 main.partition_myisam crashes in embedded. Sergei Golubchik 2013-01-23 fix the failing federated.federated_inno... Sergei Golubchik 2013-01-23 32-bit fix: first cast the value to a si... Sergei Golubchik 2013-01-23 test suite fixes Sergei Golubchik 2013-01-23 cleanup: Sergei Golubchik 2013-01-23 cleanup: Sergei Golubchik 2013-01-23 cleanup: remove unused init_dynamic_arra... Sergei Golubchik 2013-01-23 cleanup: use MYF() for mysys flags Michael Widenius 2013-01-23 MDEV-4011 Added per thread memory counti... Jani Tolonen 2013-01-23 MDEV-3931 Cassandra SE packaging knielsen@knielse... 2013-01-21 Fix uninitialised variable in binlog ... knielsen@knielse... 2013-01-16 Fix missing #include Elena Stepanova 2013-01-16 [merge] MDEV-3990: engine tests went out ... Elena Stepanova 2013-01-13 MDEV-3990: engine tests went out of sync ... sanja@askmonty.org 2013-01-14 Compiler warning fixed. Igor Babaev 2013-01-13 [merge] Merged the fix for bug mdev-4019. Igor Babaev 2013-01-13 Fixed bug mdev-4019. sanja@askmonty.org 2013-01-11 Windows compiler warnings fix. sanja@askmonty.org 2013-01-11 Fix windows compiler warnings. sanja@askmonty.org 2013-01-10 fixed crossplatform double values repr... Sergey Petrunya 2013-01-10 MDEV-3982: show_explain.test fails, times... sanja@askmonty.org 2013-01-10 32 bit systems warnings fixed. sanja@askmonty.org 2013-01-10 append_identifier() declaration fixed. sanja@askmonty.org 2013-01-10 fix cassandra SE test to be working in... sanja@askmonty.org 2013-01-10 Make cassandra not built by default sanja@askmonty.org 2013-01-10 [merge] Cassandra SE merge sanja@askmonty.org 2013-01-10 Make cassandra module and do not load ... sanja@askmonty.org 2013-01-09 fixed feature counter. sanja@askmonty.org 2013-01-09 The library interface fixed. sanja@askmonty.org 2013-01-09 MDEV-4005 fix. Sergey Petrunya 2012-12-24 Post-merge fixes: sanja@askmonty.org 2012-12-23 [merge] pre-merge sanja@askmonty.org 2012-12-23 Post-post review fixes. sanja@askmonty.org 2012-12-23 backport to 5.5 dyncol changes and nam... Sergey Petrunya 2012-12-20 Cassandra Storage Engine: Address review ... Sergey Petrunya 2012-12-20 Cassandra Storage Engine: Address review ... Sergey Petrunya 2012-12-20 Cassandra Storage Engine: sanja@montyprogr... 2012-09-30 Check of deleting whole dynamic columns. sanja@montyprogr... 2012-09-29 Fix of MDEV-565: Server crashes in ha... Sergey Petrunya 2012-09-28 Include cassandra storage engine in tarballs Sergey Petrunya 2012-09-28 Fix compile: expect Thrift where it is at... Sergey Petrunya 2012-09-28 Fix compile warnings sanja@montyprogr... 2012-09-28 Ending spaces removed. sanja@montyprogr... 2012-09-28 MDEV-506 Cassandra dynamic columns ac... sanja@montyprogr... 2012-09-28 MDEV-377 Name support for dynamic col... Sergey Petrunya 2012-09-27 Cassandra SE: lazy connections Sergey Petrunya 2012-09-27 Cassandra SE Sergey Petrunya 2012-09-26 - Update testcases Sergey Petrunya 2012-09-26 Cassandra SE: Sergey Petrunya 2012-09-26 Cassandra SE: Add capability to retry fai... Sergey Petrunya 2012-09-25 Cassandra SE: more datatypes support Sergey Petrunya 2012-09-24 Cassandra SE: varint datatype support: Sergey Petrunya 2012-09-24 Cassandra SE Sergey Petrunya 2012-09-22 Cassandra SE: make consistency settings u... Sergey Petrunya 2012-09-20 Cassandra SE: Sergey Petrunya 2012-09-16 Cassandra SE: Sergey Petrunya 2012-09-14 MDEV-530: Cassandra SE: Locking is incorrect Sergey Petrunya 2012-09-14 Cassandra SE Sergey Petrunya 2012-09-14 Cassandra SE Sergey Petrunya 2012-09-12 Cassandra SE: small optimization: StringC... Sergey Petrunya 2012-09-12 Update test results after last cset Sergey Petrunya 2012-09-10 Cassandra SE: add support for reading cou... Sergey Petrunya 2012-09-10 Cassandra SE Sergey Petrunya 2012-09-07 Cassandra SE: added support for boolean t... Sergey Petrunya 2012-08-31 MDEV-498: Cassandra: Inserting a timestam... Sergey Petrunya 2012-08-31 Cassandra SE Sergey Petrunya 2012-08-29 Cassandra SE: fix batched insert to flush... Sergey Petrunya 2012-08-29 Fix for the previous cset: Field::store_T... Sergey Petrunya 2012-08-29 Cassandra SE: Timestamp data type support. Sergey Petrunya 2012-08-29 Cassandra SE Sergey Petrunya 2012-08-29 Cassandra storage engine: add @@rnd_batch... Sergey Petrunya 2012-08-28 MDEV-494, part #1: phantom row for big fu... Sergey Petrunya 2012-08-28 MDEV-480: TRUNCATE TABLE on a Cassandra t... Sergey Petrunya 2012-08-27 Cassandra storage engine: BKA support Sergey Petrunya 2012-08-26 Cassandra storage engine: bulk INSERT sup... Sergey Petrunya 2012-08-23 - Enable mapping of CHAR(n) Sergey Petrunya 2012-08-23 # MDEV-476: Cassandra: Server crashes in ... Sergey Petrunya 2012-08-21 Make ha_cassandra work with filesort(). Sergey Petrunya 2012-08-20 Read records in batches when doing full t... Sergey Petrunya 2012-08-19 position() and rnd_pos() implementations. Sergey Petrunya 2012-08-19 MDEV-431: Cassandra storage engine Sergey Petrunya 2012-08-19 MDEV-431: Cassandra storage engine Sergey Petrunya 2012-08-18 MDEV-431: Cassandra storage engine Sergey Petrunya 2012-08-18 MDEV-431: Cassandra storage engine Sergey Petrunya 2012-08-18 MDEV-431: Cassandra storage engine Sergey Petrunya 2012-08-17 Initial commit for Cassandra storage engine.
This commit is contained in:
commit
73d39bba95
@ -27,6 +27,11 @@ then
|
||||
configure="$configure --print"
|
||||
fi
|
||||
|
||||
if test "$AM_EXTRA_MAKEFLAGS" = "VERBOSE=1" -o "$verbose_make" = "1"
|
||||
then
|
||||
configure="$configure --verbose"
|
||||
fi
|
||||
|
||||
commands="\
|
||||
/bin/rm -rf configure;
|
||||
/bin/rm -rf CMakeCache.txt CMakeFiles/
|
||||
@ -45,7 +50,7 @@ if [ -z "$just_configure" -a -z "$just_clean" ]
|
||||
then
|
||||
commands="$commands
|
||||
|
||||
$make $AM_MAKEFLAGS $AM_EXTRA_MAKEFLAGS $EXTRA_MAKEFLAGS"
|
||||
$make $AM_MAKEFLAGS $AM_EXTRA_MAKEFLAGS"
|
||||
|
||||
if [ "x$strip" = "xyes" ]
|
||||
then
|
||||
|
@ -30,6 +30,11 @@ Usage: $0 [-h|-n] [configure-options]
|
||||
-h, --help Show this help message.
|
||||
-n, --just-print Don't actually run any commands; just print them.
|
||||
-c, --just-configure Stop after running configure.
|
||||
--extra-configs=xxx Add this to configure options
|
||||
--extra-flags=xxx Add this C and CXX flags
|
||||
--extra-cflags=xxx Add this to C flags
|
||||
--extra-cxxflags=xxx Add this to CXX flags
|
||||
--verbose Print out full compile lines
|
||||
--with-debug=full Build with full debug(no optimizations, keep call stack).
|
||||
--warning-mode=[old|pedantic|maintainer]
|
||||
Influences the debug flags. Old is default.
|
||||
@ -64,6 +69,8 @@ parse_options()
|
||||
just_configure=1;;
|
||||
-n | --just-print | --print)
|
||||
just_print=1;;
|
||||
--verbose)
|
||||
verbose_make=1;;
|
||||
-h | --help)
|
||||
usage
|
||||
exit 0;;
|
||||
@ -89,6 +96,7 @@ just_configure=
|
||||
warning_mode=
|
||||
maintainer_mode=
|
||||
full_debug=
|
||||
verbose_make=
|
||||
|
||||
parse_options "$@"
|
||||
|
||||
|
@ -20,6 +20,7 @@ if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.6)
|
||||
CMAKE_POLICY(VERSION 2.8)
|
||||
endif()
|
||||
|
||||
MESSAGE(STATUS "Running cmake version ${CMAKE_VERSION}")
|
||||
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
|
||||
|
||||
@ -324,6 +325,7 @@ IF(NOT WITHOUT_SERVER)
|
||||
IF(EXISTS ${CMAKE_SOURCE_DIR}/internal/CMakeLists.txt)
|
||||
ADD_SUBDIRECTORY(internal)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(packaging/rpm-uln)
|
||||
ENDIF()
|
||||
|
||||
IF(UNIX)
|
||||
|
1
TODO
1
TODO
@ -52,7 +52,6 @@ Sergei's notes:
|
||||
anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y (don't binlog rolled back changes)
|
||||
mysql-test/suite/perfschema/disabled.def
|
||||
why --source include/have_innodb.inc in lots of tests? (with no other changes)
|
||||
WTF "invisible sysvars" ?
|
||||
Sys_var_tx_read_only not needed (must be the same as Sys_var_tx_isolation)
|
||||
SIGNAL/RESIGNAL ?
|
||||
fix mysql-test to know the difference between compiled-in innodb and compiled-in xtradb
|
||||
|
2
VERSION
2
VERSION
@ -4,5 +4,5 @@
|
||||
#
|
||||
MYSQL_VERSION_MAJOR=10
|
||||
MYSQL_VERSION_MINOR=0
|
||||
MYSQL_VERSION_PATCH=0
|
||||
MYSQL_VERSION_PATCH=1
|
||||
MYSQL_VERSION_EXTRA=
|
||||
|
@ -49,7 +49,7 @@ int completion_hash_init(HashTable *ht, uint nSize)
|
||||
ht->initialized = 0;
|
||||
return FAILURE;
|
||||
}
|
||||
init_alloc_root(&ht->mem_root, 8192, 0);
|
||||
init_alloc_root(&ht->mem_root, 8192, 0, MYF(0));
|
||||
ht->pHashFunction = hashpjw;
|
||||
ht->nTableSize = nSize;
|
||||
ht->initialized = 1;
|
||||
|
@ -1157,7 +1157,7 @@ int main(int argc,char *argv[])
|
||||
}
|
||||
glob_buffer.realloc(512);
|
||||
completion_hash_init(&ht, 128);
|
||||
init_alloc_root(&hash_mem_root, 16384, 0);
|
||||
init_alloc_root(&hash_mem_root, 16384, 0, MYF(0));
|
||||
bzero((char*) &mysql, sizeof(mysql));
|
||||
if (sql_connect(current_host,current_db,current_user,opt_password,
|
||||
opt_silent))
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
#include <welcome_copyright_notice.h> /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
|
||||
|
||||
#define VER "1.2"
|
||||
#define VER "1.3"
|
||||
|
||||
#ifdef HAVE_SYS_WAIT_H
|
||||
#include <sys/wait.h>
|
||||
@ -148,6 +148,8 @@ static struct my_option my_long_options[]=
|
||||
&opt_user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"verbose", 'v', "Display more output about the process.",
|
||||
&opt_not_used, &opt_not_used, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
|
||||
{"version", 'V', "Output version information and exit.", 0, 0, 0,
|
||||
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"write-binlog", OPT_WRITE_BINLOG,
|
||||
"All commands including mysqlcheck are binlogged. Enabled by default;"
|
||||
"use --skip-write-binlog when commands should not be sent to replication slaves.",
|
||||
@ -298,6 +300,11 @@ get_one_option(int optid, const struct my_option *opt,
|
||||
}
|
||||
add_option= 0;
|
||||
break;
|
||||
case 'V':
|
||||
printf("%s Ver %s Distrib %s, for %s (%s)\n",
|
||||
my_progname, VER, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE);
|
||||
die(0);
|
||||
break;
|
||||
case OPT_SILENT:
|
||||
opt_verbose= 0;
|
||||
add_option= 0;
|
||||
|
@ -278,8 +278,8 @@ public:
|
||||
|
||||
int init()
|
||||
{
|
||||
return init_dynamic_array(&file_names, sizeof(File_name_record),
|
||||
100, 100);
|
||||
return my_init_dynamic_array(&file_names, sizeof(File_name_record),
|
||||
100, 100, MYF(0));
|
||||
}
|
||||
|
||||
void init_by_dir_name(const char *dir)
|
||||
@ -2393,7 +2393,7 @@ int main(int argc, char** argv)
|
||||
|
||||
my_init_time(); // for time functions
|
||||
|
||||
init_alloc_root(&s_mem_root, 16384, 0);
|
||||
init_alloc_root(&s_mem_root, 16384, 0, MYF(0));
|
||||
if (load_defaults("my", load_groups, &argc, &argv))
|
||||
exit(1);
|
||||
|
||||
|
@ -998,8 +998,10 @@ int main(int argc, char **argv)
|
||||
}
|
||||
|
||||
if (opt_auto_repair &&
|
||||
(my_init_dynamic_array(&tables4repair, sizeof(char)*(NAME_LEN*2+2),16,64) ||
|
||||
my_init_dynamic_array(&tables4rebuild, sizeof(char)*(NAME_LEN*2+2),16,64)))
|
||||
(my_init_dynamic_array(&tables4repair, sizeof(char)*(NAME_LEN*2+2),16,
|
||||
64, MYF(0)) ||
|
||||
my_init_dynamic_array(&tables4rebuild, sizeof(char)*(NAME_LEN*2+2),16,
|
||||
64, MYF(0))))
|
||||
goto end;
|
||||
|
||||
if (opt_alldbs)
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2000, 2012, Oracle and/or its affiliates.
|
||||
Copyright (c) 2010, 2012, Monty Program Ab.
|
||||
Copyright (c) 2010, 2013, Monty Program Ab.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -1182,13 +1182,13 @@ check_consistent_binlog_pos(char *binlog_pos_file, char *binlog_pos_offset)
|
||||
found= 0;
|
||||
while ((row= mysql_fetch_row(res)))
|
||||
{
|
||||
if (0 == strcmp(row[0], "binlog_snapshot_file"))
|
||||
if (0 == strcmp(row[0], "Binlog_snapshot_file"))
|
||||
{
|
||||
if (binlog_pos_file)
|
||||
strmake(binlog_pos_file, row[1], FN_REFLEN-1);
|
||||
found++;
|
||||
}
|
||||
else if (0 == strcmp(row[0], "binlog_snapshot_position"))
|
||||
else if (0 == strcmp(row[0], "Binlog_snapshot_position"))
|
||||
{
|
||||
if (binlog_pos_offset)
|
||||
strmake(binlog_pos_offset, row[1], LONGLONG_LEN);
|
||||
@ -4587,7 +4587,7 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
|
||||
if (init_dumping(db, init_dumping_tables))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
init_alloc_root(&root, 8192, 0);
|
||||
init_alloc_root(&root, 8192, 0, MYF(0));
|
||||
if (!(dump_tables= pos= (char**) alloc_root(&root, tables * sizeof(char *))))
|
||||
die(EX_EOM, "alloc_root failure.");
|
||||
|
||||
|
@ -1660,12 +1660,12 @@ int cat_file(DYNAMIC_STRING* ds, const char* filename)
|
||||
{
|
||||
int fd;
|
||||
size_t len;
|
||||
char buff[512];
|
||||
char buff[16384];
|
||||
|
||||
if ((fd= my_open(filename, O_RDONLY, MYF(0))) < 0)
|
||||
return 1;
|
||||
while((len= my_read(fd, (uchar*)&buff,
|
||||
sizeof(buff), MYF(0))) > 0)
|
||||
sizeof(buff)-1, MYF(0))) > 0)
|
||||
{
|
||||
char *p= buff, *start= buff;
|
||||
while (p < buff+len)
|
||||
@ -1676,7 +1676,8 @@ int cat_file(DYNAMIC_STRING* ds, const char* filename)
|
||||
/* Add fake newline instead of cr and output the line */
|
||||
*p= '\n';
|
||||
p++; /* Step past the "fake" newline */
|
||||
dynstr_append_mem(ds, start, p-start);
|
||||
*p= 0;
|
||||
replace_dynstr_append_mem(ds, start, p-start);
|
||||
p++; /* Step past the "fake" newline */
|
||||
start= p;
|
||||
}
|
||||
@ -1684,7 +1685,8 @@ int cat_file(DYNAMIC_STRING* ds, const char* filename)
|
||||
p++;
|
||||
}
|
||||
/* Output any chars that migh be left */
|
||||
dynstr_append_mem(ds, start, p-start);
|
||||
*p= 0;
|
||||
replace_dynstr_append_mem(ds, start, p-start);
|
||||
}
|
||||
my_close(fd, MYF(0));
|
||||
return 0;
|
||||
@ -4397,7 +4399,10 @@ void do_change_user(struct st_command *command)
|
||||
cur_con->name, ds_user.str, ds_passwd.str, ds_db.str));
|
||||
|
||||
if (mysql_change_user(mysql, ds_user.str, ds_passwd.str, ds_db.str))
|
||||
die("change user failed: %s", mysql_error(mysql));
|
||||
handle_error(command, mysql_errno(mysql), mysql_error(mysql),
|
||||
mysql_sqlstate(mysql), &ds_res);
|
||||
else
|
||||
handle_no_error(command);
|
||||
|
||||
dynstr_free(&ds_user);
|
||||
dynstr_free(&ds_passwd);
|
||||
@ -5174,7 +5179,7 @@ typedef struct
|
||||
|
||||
static st_error global_error_names[] =
|
||||
{
|
||||
{ "<No error>", -1U, "" },
|
||||
{ "<No error>", ~0U, "" },
|
||||
#include <mysqld_ername.h>
|
||||
{ 0, 0, 0 }
|
||||
};
|
||||
@ -7288,7 +7293,7 @@ void init_win_path_patterns()
|
||||
|
||||
DBUG_ENTER("init_win_path_patterns");
|
||||
|
||||
my_init_dynamic_array(&patterns, sizeof(const char*), 16, 16);
|
||||
my_init_dynamic_array(&patterns, sizeof(const char*), 16, 16, MYF(0));
|
||||
|
||||
/* Loop through all paths in the array */
|
||||
for (i= 0; i < num_paths; i++)
|
||||
@ -8901,7 +8906,7 @@ int main(int argc, char **argv)
|
||||
cur_block->ok= TRUE; /* Outer block should always be executed */
|
||||
cur_block->cmd= cmd_none;
|
||||
|
||||
my_init_dynamic_array(&q_lines, sizeof(struct st_command*), 1024, 1024);
|
||||
my_init_dynamic_array(&q_lines, sizeof(struct st_command*), 1024, 1024, MYF(0));
|
||||
|
||||
if (my_hash_init2(&var_hash, 64, charset_info,
|
||||
128, 0, 0, get_var_key, var_free, MYF(0)))
|
||||
@ -8931,7 +8936,7 @@ int main(int argc, char **argv)
|
||||
#endif
|
||||
|
||||
init_dynamic_string(&ds_res, "", 2048, 2048);
|
||||
init_alloc_root(&require_file_root, 1024, 1024);
|
||||
init_alloc_root(&require_file_root, 1024, 1024, MYF(0));
|
||||
|
||||
parse_args(argc, argv);
|
||||
|
||||
@ -9877,7 +9882,7 @@ struct st_replace_regex* init_replace_regex(char* expr)
|
||||
/* my_malloc() will die on fail with MY_FAE */
|
||||
res=(struct st_replace_regex*)my_malloc(
|
||||
sizeof(*res)+expr_len ,MYF(MY_FAE+MY_WME));
|
||||
my_init_dynamic_array(&res->regex_arr,sizeof(struct st_regex),128,128);
|
||||
my_init_dynamic_array(&res->regex_arr,sizeof(struct st_regex), 128, 128, MYF(0));
|
||||
|
||||
buf= (char*)res + sizeof(*res);
|
||||
expr_end= expr + expr_len;
|
||||
@ -10932,7 +10937,7 @@ void dynstr_append_sorted(DYNAMIC_STRING* ds, DYNAMIC_STRING *ds_input,
|
||||
if (!*start)
|
||||
DBUG_VOID_RETURN; /* No input */
|
||||
|
||||
my_init_dynamic_array(&lines, sizeof(const char*), 32, 32);
|
||||
my_init_dynamic_array(&lines, sizeof(const char*), 32, 32, MYF(0));
|
||||
|
||||
if (keep_header)
|
||||
{
|
||||
|
@ -46,6 +46,8 @@ SET(FEATURE_SET_large 5)
|
||||
SET(FEATURE_SET_xlarge 6)
|
||||
SET(FEATURE_SET_community 7)
|
||||
|
||||
#SET(WITH_CASSANDRA_STORAGE_ENGINE ON)
|
||||
|
||||
IF(FEATURE_SET)
|
||||
STRING(TOLOWER ${FEATURE_SET} feature_set)
|
||||
SET(num ${FEATURE_SET_${feature_set}})
|
||||
|
@ -25,14 +25,14 @@ ENDIF()
|
||||
SET(CHARSETS ${DEFAULT_CHARSET} latin1 utf8 utf8mb4)
|
||||
SET(CHARSETS_COMPLEX
|
||||
big5 cp1250 cp932 eucjpms euckr gb2312 gbk latin1 latin2
|
||||
sjis tis620 ucs2 ujis utf8 utf8mb4 utf16 utf32)
|
||||
sjis tis620 ucs2 ujis utf8 utf8mb4 utf16 utf16le utf32)
|
||||
|
||||
SET(CHARSETS_AVAILABLE
|
||||
binary armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257
|
||||
cp850 cp852 cp866 cp932 dec8 eucjpms euckr gb2312 gbk geostd8
|
||||
greek hebrew hp8 keybcs2 koi8r koi8u
|
||||
latin1 latin2 latin5 latin7 macce macroman
|
||||
sjis swe7 tis620 ucs2 ujis utf8 utf8mb4 utf16 utf32)
|
||||
sjis swe7 tis620 ucs2 ujis utf8 utf8mb4 utf16 utf16le utf32)
|
||||
|
||||
|
||||
SET (EXTRA_CHARSETS "all")
|
||||
|
@ -222,6 +222,21 @@ foreach my $option (@ARGV)
|
||||
$cmakeargs = $cmakeargs." -DENABLE_GCOV=ON";
|
||||
next;
|
||||
}
|
||||
if ($option =~ /verbose/)
|
||||
{
|
||||
$cmakeargs = $cmakeargs." -DCMAKE_VERBOSE_MAKEFILE=1";
|
||||
next;
|
||||
}
|
||||
if ($option =~ /with-client-ldflags/)
|
||||
{
|
||||
print("configure.pl : ignoring $option\n");
|
||||
next;
|
||||
}
|
||||
if ($option =~ /with-mysqld-ldflags=/)
|
||||
{
|
||||
print("configure.pl : ignoring $option\n");
|
||||
next;
|
||||
}
|
||||
|
||||
$option = uc($option);
|
||||
$option =~ s/-/_/g;
|
||||
|
@ -64,10 +64,31 @@ SET(CPACK_RPM_SPEC_MORE_DEFINE "${CPACK_RPM_SPEC_MORE_DEFINE}
|
||||
|
||||
SET(CPACK_RPM_PACKAGE_REQUIRES "MariaDB-common")
|
||||
|
||||
SET(CPACK_RPM_server_USER_FILELIST "%ignore /etc" "%ignore /etc/init.d" "%config(noreplace) /etc/my.cnf.d/*")
|
||||
SET(CPACK_RPM_common_USER_FILELIST "%config(noreplace) /etc/my.cnf")
|
||||
SET(CPACK_RPM_shared_USER_FILELIST "%config(noreplace) /etc/my.cnf.d/*")
|
||||
SET(CPACK_RPM_client_USER_FILELIST "%config(noreplace) /etc/my.cnf.d/*")
|
||||
SET(ignored
|
||||
"%ignore /etc"
|
||||
"%ignore /etc/init.d"
|
||||
"%ignore /etc/logrotate.d"
|
||||
"%ignore /usr"
|
||||
"%ignore /usr/bin"
|
||||
"%ignore /usr/include"
|
||||
"%ignore /usr/lib"
|
||||
"%ignore /usr/lib64"
|
||||
"%ignore /usr/sbin"
|
||||
"%ignore /usr/share"
|
||||
"%ignore /usr/share/aclocal"
|
||||
"%ignore /usr/share/doc"
|
||||
"%ignore /usr/share/man"
|
||||
"%ignore /usr/share/man/man1*"
|
||||
"%ignore /usr/share/man/man8*"
|
||||
)
|
||||
|
||||
SET(CPACK_RPM_server_USER_FILELIST ${ignored} "%config(noreplace) /etc/my.cnf.d/*")
|
||||
SET(CPACK_RPM_common_USER_FILELIST ${ignored} "%config(noreplace) /etc/my.cnf")
|
||||
SET(CPACK_RPM_shared_USER_FILELIST ${ignored} "%config(noreplace) /etc/my.cnf.d/*")
|
||||
SET(CPACK_RPM_client_USER_FILELIST ${ignored} "%config(noreplace) /etc/my.cnf.d/*")
|
||||
SET(CPACK_RPM_compat_USER_FILELIST ${ignored})
|
||||
SET(CPACK_RPM_devel_USER_FILELIST ${ignored})
|
||||
SET(CPACK_RPM_test_USER_FILELIST ${ignored})
|
||||
|
||||
SET(CPACK_RPM_client_PACKAGE_OBSOLETES "mysql-client MySQL-client MySQL-OurDelta-client")
|
||||
SET(CPACK_RPM_client_PACKAGE_PROVIDES "MariaDB-client MySQL-client mysql-client")
|
||||
@ -88,8 +109,8 @@ SET(CPACK_RPM_server_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files
|
||||
SET(CPACK_RPM_server_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postin.sh)
|
||||
SET(CPACK_RPM_server_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postun.sh)
|
||||
|
||||
SET(CPACK_RPM_shared_PACKAGE_OBSOLETES "mysql-shared MySQL-shared-standard MySQL-shared-pro MySQL-shared-pro-cert MySQL-shared-pro-gpl MySQL-shared-pro-gpl-cert MySQL-shared MySQL-OurDelta-shared")
|
||||
SET(CPACK_RPM_shared_PACKAGE_PROVIDES "MariaDB-shared MySQL-shared mysql-shared libmysqlclient.so.18 libmysqlclient.so.18(libmysqlclient_16) libmysqlclient.so.18(libmysqlclient_18) libmysqlclient_r.so.18 libmysqlclient_r.so.18(libmysqlclient_18)")
|
||||
SET(CPACK_RPM_shared_PACKAGE_OBSOLETES "mysql-shared MySQL-shared-standard MySQL-shared-pro MySQL-shared-pro-cert MySQL-shared-pro-gpl MySQL-shared-pro-gpl-cert MySQL-shared MySQL-OurDelta-shared mysql-libs")
|
||||
SET(CPACK_RPM_shared_PACKAGE_PROVIDES "MariaDB-shared MySQL-shared mysql-shared libmysqlclient.so.18 libmysqlclient.so.18(libmysqlclient_16) libmysqlclient.so.18(libmysqlclient_18) libmysqlclient_r.so.18 libmysqlclient_r.so.18(libmysqlclient_18) mysql-libs")
|
||||
SET(CPACK_RPM_shared_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
||||
SET(CPACK_RPM_shared_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
||||
|
||||
@ -97,7 +118,7 @@ SET(CPACK_RPM_test_PACKAGE_OBSOLETES "mysql-test MySQL-test MySQL-OurDelta-test"
|
||||
SET(CPACK_RPM_test_PACKAGE_PROVIDES "MariaDB-test MySQL-test mysql-test")
|
||||
|
||||
# workaround for lots of perl dependencies added by rpmbuild
|
||||
SET(CPACK_RPM_test_PACKAGE_PROVIDES "${CPACK_RPM_test_PACKAGE_PROVIDES} perl(lib::mtr_gcov.pl) perl(lib::mtr_gprof.pl) perl(lib::mtr_io.pl) perl(lib::mtr_misc.pl) perl(lib::mtr_process.pl) perl(lib::v1/mtr_cases.pl) perl(lib::v1/mtr_gcov.pl) perl(lib::v1/mtr_gprof.pl) perl(lib::v1/mtr_im.pl) perl(lib::v1/mtr_io.pl) perl(lib::v1/mtr_match.pl) perl(lib::v1/mtr_misc.pl) perl(lib::v1/mtr_process.pl) perl(lib::v1/mtr_report.pl) perl(lib::v1/mtr_stress.pl) perl(lib::v1/mtr_timer.pl) perl(lib::v1/mtr_unique.pl) perl(mtr_misc.pl)")
|
||||
SET(CPACK_RPM_test_PACKAGE_PROVIDES "${CPACK_RPM_test_PACKAGE_PROVIDES} perl(lib::mtr_gcov.pl) perl(lib::mtr_gprof.pl) perl(lib::mtr_io.pl) perl(lib::mtr_misc.pl) perl(lib::mtr_process.pl) perl(lib::v1/mtr_cases.pl) perl(lib::v1/mtr_gcov.pl) perl(lib::v1/mtr_gprof.pl) perl(lib::v1/mtr_im.pl) perl(lib::v1/mtr_io.pl) perl(lib::v1/mtr_match.pl) perl(lib::v1/mtr_misc.pl) perl(lib::v1/mtr_process.pl) perl(lib::v1/mtr_report.pl) perl(lib::v1/mtr_stress.pl) perl(lib::v1/mtr_timer.pl) perl(lib::v1/mtr_unique.pl) perl(mtr_cases) perl(mtr_io.pl) perl(mtr_match) perl(mtr_misc.pl) perl(mtr_report) perl(mtr_results) perl(mtr_unique)")
|
||||
|
||||
# If we want to build build MariaDB-shared-compat,
|
||||
# extract compat libraries from MariaDB-shared-5.3 rpm
|
||||
|
@ -31,7 +31,7 @@ ENDIF()
|
||||
|
||||
# Create bootstrapper SQL script
|
||||
FILE(WRITE bootstrap.sql "use mysql;\n" )
|
||||
FOREACH(FILENAME mysql_system_tables.sql mysql_system_tables_data.sql)
|
||||
FOREACH(FILENAME mysql_system_tables.sql mysql_system_tables_data.sql mysql_performance_tables.sql)
|
||||
FILE(STRINGS ${CMAKE_SOURCE_DIR}/scripts/${FILENAME} CONTENTS)
|
||||
FOREACH(STR ${CONTENTS})
|
||||
IF(NOT STR MATCHES "@current_hostname")
|
||||
@ -68,10 +68,13 @@ EXECUTE_PROCESS(
|
||||
COMMAND "@CMAKE_COMMAND@" -E echo Executing ${BOOTSTRAP_COMMAND}
|
||||
)
|
||||
EXECUTE_PROCESS (
|
||||
COMMAND "@CMAKE_COMMAND@" -E echo input file bootstrap.sql, current directory ${CWD}
|
||||
COMMAND "@CMAKE_COMMAND@" -E
|
||||
echo input file bootstrap.sql, current directory ${CWD}
|
||||
)
|
||||
EXECUTE_PROCESS (
|
||||
COMMAND ${BOOTSTRAP_COMMAND} INPUT_FILE bootstrap.sql OUTPUT_VARIABLE OUT
|
||||
COMMAND ${BOOTSTRAP_COMMAND}
|
||||
INPUT_FILE bootstrap.sql
|
||||
OUTPUT_VARIABLE OUT
|
||||
ERROR_VARIABLE ERR
|
||||
RESULT_VARIABLE RESULT
|
||||
)
|
||||
@ -80,3 +83,6 @@ IF(NOT RESULT EQUAL 0)
|
||||
MESSAGE(FATAL_ERROR "Could not create initial database \n ${OUT} \n ${ERR}")
|
||||
ENDIF()
|
||||
|
||||
EXECUTE_PROCESS (
|
||||
COMMAND "@CMAKE_COMMAND@" -E touch ${CMAKE_CURRENT_BINARY_DIR}/initdb.dep
|
||||
)
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -82,9 +82,11 @@ MACRO(CREATE_INFO_BIN)
|
||||
|
||||
FILE(WRITE ${INFO_BIN} "===== Information about the build process: =====\n")
|
||||
IF (WIN32)
|
||||
EXECUTE_PROCESS(COMMAND cmd /c date /T OUTPUT_VARIABLE TMP_DATE)
|
||||
EXECUTE_PROCESS(COMMAND cmd /c date /T
|
||||
OUTPUT_VARIABLE TMP_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
ELSEIF(UNIX)
|
||||
EXECUTE_PROCESS(COMMAND date "+%Y-%m-%d %H:%M:%S" OUTPUT_VARIABLE TMP_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
EXECUTE_PROCESS(COMMAND date "+%Y-%m-%d %H:%M:%S"
|
||||
OUTPUT_VARIABLE TMP_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
ELSE()
|
||||
SET(TMP_DATE "(no date command known for this platform)")
|
||||
ENDIF()
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -100,7 +100,10 @@ ENDIF()
|
||||
# just use if(INSTALL_PLUGINTESTDIR).
|
||||
# The plugin must set its own install path for tests
|
||||
#
|
||||
FILE(GLOB plugin_tests ${CMAKE_SOURCE_DIR}/plugin/*/tests)
|
||||
FILE(GLOB plugin_tests
|
||||
${CMAKE_SOURCE_DIR}/plugin/*/tests
|
||||
${CMAKE_SOURCE_DIR}/internal/plugin/*/tests
|
||||
)
|
||||
|
||||
#
|
||||
# STANDALONE layout
|
||||
|
@ -56,7 +56,7 @@ IF(NOT "${MAJOR_VERSION}" MATCHES "[0-9]+" OR
|
||||
ENDIF()
|
||||
|
||||
SET(VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}${EXTRA_VERSION}")
|
||||
MESSAGE("-- MariaDB ${VERSION}")
|
||||
MESSAGE(STATUS "MariaDB ${VERSION}")
|
||||
SET(MYSQL_BASE_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}" CACHE INTERNAL "MySQL Base version")
|
||||
SET(MYSQL_NO_DASH_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}")
|
||||
# Use NDBVERSION irregardless of whether this is Cluster or not, if not
|
||||
|
@ -130,7 +130,7 @@ IF(NOT VERSION)
|
||||
SET(package_name "mariadb${PRODUCT_TAG}-${VERSION}-${SYSTEM_NAME_AND_PROCESSOR}")
|
||||
ENDIF()
|
||||
|
||||
MESSAGE("-- Packaging as: ${package_name}")
|
||||
MESSAGE(STATUS "Packaging as: ${package_name}")
|
||||
|
||||
# Sometimes package suffix is added (something like "-icc-glibc23")
|
||||
IF(PACKAGE_SUFFIX)
|
||||
|
@ -39,6 +39,7 @@ MACRO(PLUGIN_APPEND_COLLECTIONS plugin)
|
||||
GET_FILENAME_COMPONENT(fname ${cfile} NAME)
|
||||
FILE(APPEND ${CMAKE_SOURCE_DIR}/mysql-test/collections/${fname} "${contents}")
|
||||
FILE(APPEND ${fcopied} "${fname}\n")
|
||||
MESSAGE(STATUS "Appended ${cfile}")
|
||||
ENDFOREACH()
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
1
debian/dist/Debian/mariadb-server-10.0.files
vendored
1
debian/dist/Debian/mariadb-server-10.0.files
vendored
@ -61,4 +61,5 @@ usr/share/mysql/errmsg-utf8.txt
|
||||
usr/share/mysql/fill_help_tables.sql
|
||||
usr/share/mysql/mysql_system_tables_data.sql
|
||||
usr/share/mysql/mysql_system_tables.sql
|
||||
usr/share/mysql/mysql_performance_tables.sql
|
||||
usr/share/mysql/mysql_test_data_timezone.sql
|
||||
|
2
debian/dist/Debian/rules
vendored
2
debian/dist/Debian/rules
vendored
@ -84,7 +84,7 @@ build-stamp: configure
|
||||
@echo "RULES.$@"
|
||||
dh_testdir
|
||||
|
||||
cd $(builddir) && $(MAKE) $(MAKE_J)
|
||||
cd $(builddir) && $(MAKE) $(MAKE_J) $(AM_EXTRA_MAKEFLAGS)
|
||||
|
||||
ifeq ($(findstring nocheck,$(DEB_BUILD_OPTIONS)),)
|
||||
# Don't know why the following is necessary...
|
||||
|
1
debian/dist/Ubuntu/mariadb-server-10.0.files
vendored
1
debian/dist/Ubuntu/mariadb-server-10.0.files
vendored
@ -63,4 +63,5 @@ usr/share/mysql/errmsg-utf8.txt
|
||||
usr/share/mysql/fill_help_tables.sql
|
||||
usr/share/mysql/mysql_system_tables_data.sql
|
||||
usr/share/mysql/mysql_system_tables.sql
|
||||
usr/share/mysql/mysql_performance_tables.sql
|
||||
usr/share/mysql/mysql_test_data_timezone.sql
|
||||
|
2
debian/dist/Ubuntu/rules
vendored
2
debian/dist/Ubuntu/rules
vendored
@ -84,7 +84,7 @@ build-stamp: configure
|
||||
@echo "RULES.$@"
|
||||
dh_testdir
|
||||
|
||||
cd $(builddir) && $(MAKE) $(MAKE_J)
|
||||
cd $(builddir) && $(MAKE) $(MAKE_J) $(AM_EXTRA_MAKEFLAGS)
|
||||
|
||||
ifeq ($(findstring nocheck,$(DEB_BUILD_OPTIONS)),)
|
||||
# Don't know why the following is necessary...
|
||||
|
@ -7,18 +7,17 @@
|
||||
|
||||
@DPATCH@
|
||||
|
||||
--- old/scripts/mysqld_safe.sh 2006-07-29 13:12:34.000000000 +0200
|
||||
+++ old/scripts/mysqld_safe.sh 2006-07-29 13:14:08.000000000 +0200
|
||||
@@ -16,8 +16,6 @@
|
||||
# This command can be used as pipe to syslog. With "-s" it also logs to stderr.
|
||||
ERR_LOGGER="logger -p daemon.err -t mysqld_safe -i"
|
||||
--- a/scripts/mysqld_safe.sh 2013-01-11 16:02:41 +0000
|
||||
+++ b/scripts/mysqld_safe.sh 2013-01-11 16:03:14 +0000
|
||||
@@ -30,7 +30,6 @@
|
||||
syslog_tag_mysqld=mysqld
|
||||
syslog_tag_mysqld_safe=mysqld_safe
|
||||
|
||||
-trap '' 1 2 3 15 # we shouldn't let anyone kill us
|
||||
-
|
||||
umask 007
|
||||
|
||||
defaults=
|
||||
@@ -122,7 +122,7 @@
|
||||
# MySQL-specific environment variable. First off, it's not really a umask,
|
||||
# it's the desired mode. Second, it follows umask(2), not umask(3) in that
|
||||
@@ -156,7 +155,7 @@
|
||||
# sed buffers output (only GNU sed supports a -u (unbuffered) option)
|
||||
# which means that messages may not get sent to syslog until the
|
||||
# mysqld process quits.
|
||||
@ -27,7 +26,7 @@
|
||||
;;
|
||||
*)
|
||||
echo "Internal program error (non-fatal):" \
|
||||
@@ -352,6 +350,13 @@
|
||||
@@ -758,6 +757,13 @@
|
||||
fi
|
||||
|
||||
#
|
||||
@ -41,3 +40,4 @@
|
||||
# Uncomment the following lines if you want all tables to be automatically
|
||||
# checked and repaired during startup. You should add sensible key_buffer
|
||||
# and sort_buffer values to my.cnf to improve check performance or require
|
||||
|
||||
|
@ -894,7 +894,7 @@ static struct errors *generate_empty_message(uint d_code)
|
||||
if (!(new_error= (struct errors *) my_malloc(sizeof(*new_error),
|
||||
MYF(MY_WME))))
|
||||
return(0);
|
||||
if (my_init_dynamic_array(&new_error->msg, sizeof(struct message), 0, 1))
|
||||
if (my_init_dynamic_array(&new_error->msg, sizeof(struct message), 0, 1, MYF(0)))
|
||||
return(0); /* OOM: Fatal error */
|
||||
|
||||
new_error->er_name= NULL;
|
||||
@ -928,7 +928,7 @@ static struct errors *parse_error_string(char *str, int er_count)
|
||||
MYF(MY_WME))))
|
||||
DBUG_RETURN(0);
|
||||
|
||||
if (my_init_dynamic_array(&new_error->msg, sizeof(struct message), 0, 0))
|
||||
if (my_init_dynamic_array(&new_error->msg, sizeof(struct message), 0, 0, MYF(0)))
|
||||
DBUG_RETURN(0); /* OOM: Fatal error */
|
||||
|
||||
/* getting the error name */
|
||||
|
@ -265,7 +265,7 @@ static int insert_pointer_name(reg1 POINTER_ARRAY *pa,char * name)
|
||||
if (!(pa->str= (uchar*) my_malloc((uint) (PS_MALLOC-MALLOC_OVERHEAD),
|
||||
MYF(MY_WME))))
|
||||
{
|
||||
my_free(pa->typelib.type_names);
|
||||
my_free((char*) pa->typelib.type_names);
|
||||
DBUG_RETURN (-1);
|
||||
}
|
||||
pa->max_count=(PC_MALLOC-MALLOC_OVERHEAD)/(sizeof(uchar*)+
|
||||
@ -327,7 +327,7 @@ static void free_pointer_array(reg1 POINTER_ARRAY *pa)
|
||||
if (pa->typelib.count)
|
||||
{
|
||||
pa->typelib.count=0;
|
||||
my_free(pa->typelib.type_names);
|
||||
my_free((char*) pa->typelib.type_names);
|
||||
pa->typelib.type_names=0;
|
||||
my_free(pa->str);
|
||||
}
|
||||
|
@ -223,7 +223,7 @@ static void init_sym_table()
|
||||
{
|
||||
char buf[512];
|
||||
if (my_init_dynamic_array(&sym_table, sizeof(SYM_ENTRY), INIT_SYM_TABLE,
|
||||
INC_SYM_TABLE))
|
||||
INC_SYM_TABLE, MYF(0)))
|
||||
die("Failed in my_init_dynamic_array() -- looks like out of memory problem");
|
||||
|
||||
while (fgets(buf, sizeof(buf), fp_sym))
|
||||
|
@ -39,6 +39,7 @@ extern "C" {
|
||||
|
||||
/* flags for hash_init */
|
||||
#define HASH_UNIQUE 1 /* hash_insert fails on duplicate key */
|
||||
#define HASH_THREAD_SPECIFIC 2 /* Mark allocated memory THREAD_SPECIFIC */
|
||||
|
||||
typedef uint my_hash_value_type;
|
||||
typedef uchar *(*my_hash_get_key)(const uchar *,size_t*,my_bool);
|
||||
|
@ -153,6 +153,7 @@ typedef struct st_heap_share
|
||||
THR_LOCK lock;
|
||||
mysql_mutex_t intern_lock; /* Locking for use with _locking */
|
||||
my_bool delete_on_close;
|
||||
my_bool internal; /* Internal temporary table */
|
||||
LIST open_list;
|
||||
uint auto_key;
|
||||
uint auto_key_type; /* real type of the auto key segment */
|
||||
|
@ -362,6 +362,8 @@ extern struct charset_info_st my_charset_ujis_japanese_ci;
|
||||
extern struct charset_info_st my_charset_utf16_bin;
|
||||
extern struct charset_info_st my_charset_utf16_general_ci;
|
||||
extern struct charset_info_st my_charset_utf16_unicode_ci;
|
||||
extern struct charset_info_st my_charset_utf16le_bin;
|
||||
extern struct charset_info_st my_charset_utf16le_general_ci;
|
||||
extern struct charset_info_st my_charset_utf32_bin;
|
||||
extern struct charset_info_st my_charset_utf32_general_ci;
|
||||
extern struct charset_info_st my_charset_utf32_unicode_ci;
|
||||
|
@ -34,10 +34,10 @@
|
||||
#include <mysql_time.h>
|
||||
|
||||
/*
|
||||
Max length for data in a dynamic colums. This comes from how the
|
||||
how the offset are stored.
|
||||
Limits of implementation
|
||||
*/
|
||||
#define MAX_DYNAMIC_COLUMN_LENGTH 0X1FFFFFFFL
|
||||
#define MAX_TOTAL_NAME_LENGTH 65535
|
||||
#define MAX_NAME_LENGTH (MAX_TOTAL_NAME_LENGTH/4)
|
||||
|
||||
/* NO and OK is the same used just to show semantics */
|
||||
#define ER_DYNCOL_NO ER_DYNCOL_OK
|
||||
@ -50,7 +50,8 @@ enum enum_dyncol_func_result
|
||||
ER_DYNCOL_LIMIT= -2, /* Some limit reached */
|
||||
ER_DYNCOL_RESOURCE= -3, /* Out of resourses */
|
||||
ER_DYNCOL_DATA= -4, /* Incorrect input data */
|
||||
ER_DYNCOL_UNKNOWN_CHARSET= -5 /* Unknown character set */
|
||||
ER_DYNCOL_UNKNOWN_CHARSET= -5, /* Unknown character set */
|
||||
ER_DYNCOL_TRUNCATED= 2 /* OK, but data was truncated */
|
||||
};
|
||||
|
||||
typedef DYNAMIC_STRING DYNAMIC_COLUMN;
|
||||
@ -65,7 +66,8 @@ enum enum_dynamic_column_type
|
||||
DYN_COL_DECIMAL,
|
||||
DYN_COL_DATETIME,
|
||||
DYN_COL_DATE,
|
||||
DYN_COL_TIME
|
||||
DYN_COL_TIME,
|
||||
DYN_COL_DYNCOL
|
||||
};
|
||||
|
||||
typedef enum enum_dynamic_column_type DYNAMIC_COLUMN_TYPE;
|
||||
@ -79,7 +81,7 @@ struct st_dynamic_column_value
|
||||
unsigned long long ulong_value;
|
||||
double double_value;
|
||||
struct {
|
||||
LEX_STRING value;
|
||||
MYSQL_LEX_STRING value;
|
||||
CHARSET_INFO *charset;
|
||||
} string;
|
||||
struct {
|
||||
@ -92,6 +94,7 @@ struct st_dynamic_column_value
|
||||
|
||||
typedef struct st_dynamic_column_value DYNAMIC_COLUMN_VALUE;
|
||||
|
||||
#ifdef MADYNCOL_DEPRECATED
|
||||
enum enum_dyncol_func_result
|
||||
dynamic_column_create(DYNAMIC_COLUMN *str,
|
||||
uint column_nr, DYNAMIC_COLUMN_VALUE *value);
|
||||
@ -101,7 +104,6 @@ dynamic_column_create_many(DYNAMIC_COLUMN *str,
|
||||
uint column_count,
|
||||
uint *column_numbers,
|
||||
DYNAMIC_COLUMN_VALUE *values);
|
||||
|
||||
enum enum_dyncol_func_result
|
||||
dynamic_column_update(DYNAMIC_COLUMN *org, uint column_nr,
|
||||
DYNAMIC_COLUMN_VALUE *value);
|
||||
@ -112,36 +114,102 @@ dynamic_column_update_many(DYNAMIC_COLUMN *str,
|
||||
DYNAMIC_COLUMN_VALUE *values);
|
||||
|
||||
enum enum_dyncol_func_result
|
||||
dynamic_column_delete(DYNAMIC_COLUMN *org, uint column_nr);
|
||||
dynamic_column_exists(DYNAMIC_COLUMN *org, uint column_nr);
|
||||
|
||||
enum enum_dyncol_func_result
|
||||
dynamic_column_exists(DYNAMIC_COLUMN *org, uint column_nr);
|
||||
dynamic_column_list(DYNAMIC_COLUMN *org, DYNAMIC_ARRAY *array_of_uint);
|
||||
|
||||
enum enum_dyncol_func_result
|
||||
dynamic_column_get(DYNAMIC_COLUMN *org, uint column_nr,
|
||||
DYNAMIC_COLUMN_VALUE *store_it_here);
|
||||
#endif
|
||||
|
||||
/* new functions */
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_create_many(DYNAMIC_COLUMN *str,
|
||||
uint column_count,
|
||||
uint *column_numbers,
|
||||
DYNAMIC_COLUMN_VALUE *values,
|
||||
my_bool new_string);
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_create_many_named(DYNAMIC_COLUMN *str,
|
||||
uint column_count,
|
||||
MYSQL_LEX_STRING *column_keys,
|
||||
DYNAMIC_COLUMN_VALUE *values,
|
||||
my_bool new_string);
|
||||
|
||||
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_update_many(DYNAMIC_COLUMN *str,
|
||||
uint add_column_count,
|
||||
uint *column_keys,
|
||||
DYNAMIC_COLUMN_VALUE *values);
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_update_many_named(DYNAMIC_COLUMN *str,
|
||||
uint add_column_count,
|
||||
MYSQL_LEX_STRING *column_keys,
|
||||
DYNAMIC_COLUMN_VALUE *values);
|
||||
|
||||
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_exists(DYNAMIC_COLUMN *org, uint column_nr);
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_exists_named(DYNAMIC_COLUMN *str, MYSQL_LEX_STRING *name);
|
||||
|
||||
/* List of not NULL columns */
|
||||
enum enum_dyncol_func_result
|
||||
dynamic_column_list(DYNAMIC_COLUMN *org, DYNAMIC_ARRAY *array_of_uint);
|
||||
mariadb_dyncol_list(DYNAMIC_COLUMN *str, uint *count, uint **nums);
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_list_named(DYNAMIC_COLUMN *str, uint *count,
|
||||
MYSQL_LEX_STRING **names);
|
||||
|
||||
/*
|
||||
if the column do not exists it is NULL
|
||||
*/
|
||||
enum enum_dyncol_func_result
|
||||
dynamic_column_get(DYNAMIC_COLUMN *org, uint column_nr,
|
||||
mariadb_dyncol_get(DYNAMIC_COLUMN *org, uint column_nr,
|
||||
DYNAMIC_COLUMN_VALUE *store_it_here);
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_get_named(DYNAMIC_COLUMN *str, MYSQL_LEX_STRING *name,
|
||||
DYNAMIC_COLUMN_VALUE *store_it_here);
|
||||
|
||||
my_bool mariadb_dyncol_has_names(DYNAMIC_COLUMN *str);
|
||||
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_check(DYNAMIC_COLUMN *str);
|
||||
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_json(DYNAMIC_COLUMN *str, DYNAMIC_STRING *json);
|
||||
|
||||
#define dynamic_column_initialize(A) memset((A), 0, sizeof(*(A)))
|
||||
#define dynamic_column_column_free(V) dynstr_free(V)
|
||||
|
||||
/***************************************************************************
|
||||
Internal functions, don't use if you don't know what you are doing...
|
||||
***************************************************************************/
|
||||
/* conversion of values to 3 base types */
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_val_str(DYNAMIC_STRING *str, DYNAMIC_COLUMN_VALUE *val,
|
||||
CHARSET_INFO *cs, my_bool quote);
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_val_long(longlong *ll, DYNAMIC_COLUMN_VALUE *val);
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_val_double(double *dbl, DYNAMIC_COLUMN_VALUE *val);
|
||||
|
||||
#define dynamic_column_reassociate(V,P,L, A) dynstr_reassociate((V),(P),(L),(A))
|
||||
|
||||
#define dynamic_column_value_init(V) (V)->type= DYN_COL_NULL
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_unpack(DYNAMIC_COLUMN *str,
|
||||
uint *count,
|
||||
MYSQL_LEX_STRING **names, DYNAMIC_COLUMN_VALUE **vals);
|
||||
|
||||
int mariadb_dyncol_column_cmp_named(const MYSQL_LEX_STRING *s1,
|
||||
const MYSQL_LEX_STRING *s2);
|
||||
|
||||
enum enum_dyncol_func_result
|
||||
mariadb_dyncol_column_count(DYNAMIC_COLUMN *str, uint *column_count);
|
||||
|
||||
#define mariadb_dyncol_value_init(V) (V)->type= DYN_COL_NULL
|
||||
|
||||
/*
|
||||
Prepare value for using as decimal
|
||||
*/
|
||||
void dynamic_column_prepare_decimal(DYNAMIC_COLUMN_VALUE *value);
|
||||
void mariadb_dyncol_prepare_decimal(DYNAMIC_COLUMN_VALUE *value);
|
||||
|
||||
#endif
|
||||
|
@ -45,8 +45,9 @@ extern "C" {
|
||||
#define MY_S_ISREG(m) (((m) & MY_S_IFMT) == MY_S_IFREG)
|
||||
#define MY_S_ISFIFO(m) (((m) & MY_S_IFMT) == MY_S_IFIFO)
|
||||
|
||||
#define MY_DONT_SORT 512 /* my_lib; Don't sort files */
|
||||
#define MY_WANT_STAT 1024 /* my_lib; stat files */
|
||||
/* Ensure these dosn't clash with anything in my_sys.h */
|
||||
#define MY_DONT_SORT 8192 /* my_lib; Don't sort files */
|
||||
#define MY_WANT_STAT 16384 /* my_lib; stat files */
|
||||
|
||||
/* typedefs for my_dir & my_stat */
|
||||
|
||||
|
@ -994,7 +994,7 @@ typedef struct st_mysql_lex_string LEX_STRING;
|
||||
#define SOCKET_EMFILE EMFILE
|
||||
#endif
|
||||
|
||||
typedef int myf; /* Type of MyFlags in my_funcs */
|
||||
typedef ulong myf; /* Type of MyFlags in my_funcs */
|
||||
typedef char my_bool; /* Small bool */
|
||||
|
||||
/* Macros for converting *constants* to the right type */
|
||||
|
@ -350,9 +350,9 @@ int my_pthread_mutex_trylock(pthread_mutex_t *mutex);
|
||||
|
||||
#ifndef set_timespec_time_nsec
|
||||
#define set_timespec_time_nsec(ABSTIME,NSEC) do { \
|
||||
ulonglong now= (NSEC); \
|
||||
(ABSTIME).MY_tv_sec= (now / 1000000000ULL); \
|
||||
(ABSTIME).MY_tv_nsec= (now % 1000000000ULL); \
|
||||
ulonglong _now_= (NSEC); \
|
||||
(ABSTIME).MY_tv_sec= (_now_ / 1000000000ULL); \
|
||||
(ABSTIME).MY_tv_nsec= (_now_ % 1000000000ULL); \
|
||||
} while(0)
|
||||
#endif /* !set_timespec_time_nsec */
|
||||
|
||||
|
@ -86,6 +86,10 @@ typedef struct my_aio_result {
|
||||
#define MY_SYNC 4096 /* my_copy(): sync dst file */
|
||||
#define MY_SYNC_DIR 32768 /* my_create/delete/rename: sync directory */
|
||||
#define MY_SYNC_FILESIZE 65536 /* my_sync(): safe sync when file is extended */
|
||||
#define MY_THREAD_SPECIFIC 0x10000 /* my_malloc(): thread specific */
|
||||
#define MY_THREAD_MOVE 0x20000 /* realloc(); Memory can move */
|
||||
/* Tree that should delete things automaticly */
|
||||
#define MY_TREE_WITH_DELETE 0x40000
|
||||
|
||||
#define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */
|
||||
#define MY_GIVE_INFO 2 /* Give time info about process*/
|
||||
@ -148,6 +152,18 @@ typedef struct my_aio_result {
|
||||
/* Extra length needed for filename if one calls my_create_backup_name */
|
||||
#define MY_BACKUP_NAME_EXTRA_LENGTH 17
|
||||
|
||||
/* If we have our own safemalloc (for debugging) */
|
||||
#if defined(SAFEMALLOC)
|
||||
void sf_report_leaked_memory(my_thread_id id);
|
||||
extern my_thread_id (*sf_malloc_dbug_id)(void);
|
||||
#define SAFEMALLOC_REPORT_MEMORY(X) sf_report_leaked_memory(X)
|
||||
#else
|
||||
#define SAFEMALLOC_REPORT_MEMORY(X) do {} while(0)
|
||||
#endif
|
||||
|
||||
typedef void (*MALLOC_SIZE_CB) (long long size, my_bool is_thread_specific);
|
||||
extern void set_malloc_size_cb(MALLOC_SIZE_CB func);
|
||||
|
||||
/* defines when allocating data */
|
||||
extern void *my_malloc(size_t Size,myf MyFlags);
|
||||
extern void *my_multi_malloc(myf MyFlags, ...);
|
||||
@ -323,6 +339,7 @@ typedef struct st_dynamic_array
|
||||
uint elements,max_element;
|
||||
uint alloc_increment;
|
||||
uint size_of_element;
|
||||
myf malloc_flags;
|
||||
} DYNAMIC_ARRAY;
|
||||
|
||||
typedef struct st_my_tmpdir
|
||||
@ -773,16 +790,10 @@ extern my_bool real_open_cached_file(IO_CACHE *cache);
|
||||
extern void close_cached_file(IO_CACHE *cache);
|
||||
File create_temp_file(char *to, const char *dir, const char *pfx,
|
||||
int mode, myf MyFlags);
|
||||
#define my_init_dynamic_array(A,B,C,D) init_dynamic_array2(A,B,NULL,C,D)
|
||||
#define my_init_dynamic_array_ci(A,B,C,D) init_dynamic_array2(A,B,NULL,C,D)
|
||||
#define my_init_dynamic_array2(A,B,C,D,E) init_dynamic_array2(A,B,C,D,E)
|
||||
#define my_init_dynamic_array2_ci(A,B,C,D,E) init_dynamic_array2(A,B,C,D,E)
|
||||
extern my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size,
|
||||
#define my_init_dynamic_array(A,B,C,D,E) my_init_dynamic_array2(A,B,NULL,C,D,E)
|
||||
extern my_bool my_init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size,
|
||||
void *init_buffer, uint init_alloc,
|
||||
uint alloc_increment);
|
||||
/* init_dynamic_array() function is deprecated */
|
||||
extern my_bool init_dynamic_array(DYNAMIC_ARRAY *array, uint element_size,
|
||||
uint init_alloc, uint alloc_increment);
|
||||
uint alloc_increment, myf my_flags);
|
||||
extern my_bool insert_dynamic(DYNAMIC_ARRAY *array, const void* element);
|
||||
extern void *alloc_dynamic(DYNAMIC_ARRAY *array);
|
||||
extern void *pop_dynamic(DYNAMIC_ARRAY*);
|
||||
@ -807,12 +818,23 @@ my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append,
|
||||
size_t length);
|
||||
extern my_bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append,
|
||||
...);
|
||||
extern my_bool dynstr_append_quoted(DYNAMIC_STRING *str,
|
||||
const char *append, size_t len,
|
||||
char quote);
|
||||
extern my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str);
|
||||
extern my_bool dynstr_realloc(DYNAMIC_STRING *str, size_t additional_size);
|
||||
extern my_bool dynstr_trunc(DYNAMIC_STRING *str, size_t n);
|
||||
extern void dynstr_free(DYNAMIC_STRING *str);
|
||||
extern uint32 copy_and_convert_extended(char *to, uint32 to_length,
|
||||
CHARSET_INFO *to_cs,
|
||||
const char *from, uint32 from_length,
|
||||
CHARSET_INFO *from_cs, uint *errors);
|
||||
extern void dynstr_reassociate(DYNAMIC_STRING *str, char **res, size_t *length,
|
||||
size_t *alloc_length);
|
||||
extern uint32 copy_and_convert_extended(char *to, uint32 to_length,
|
||||
CHARSET_INFO *to_cs,
|
||||
const char *from, uint32 from_length,
|
||||
CHARSET_INFO *from_cs, uint *errors);
|
||||
#ifdef HAVE_MLOCK
|
||||
extern void *my_malloc_lock(size_t length,myf flags);
|
||||
extern void my_free_lock(void *ptr);
|
||||
@ -824,7 +846,7 @@ extern void my_free_lock(void *ptr);
|
||||
#define ALLOC_ROOT_MIN_BLOCK_SIZE (MALLOC_OVERHEAD + sizeof(USED_MEM) + 8)
|
||||
#define clear_alloc_root(A) do { (A)->free= (A)->used= (A)->pre_alloc= 0; (A)->min_malloc=0;} while(0)
|
||||
extern void init_alloc_root(MEM_ROOT *mem_root, size_t block_size,
|
||||
size_t pre_alloc_size);
|
||||
size_t pre_alloc_size, myf my_flags);
|
||||
extern void *alloc_root(MEM_ROOT *mem_root, size_t Size);
|
||||
extern void *multi_alloc_root(MEM_ROOT *mem_root, ...);
|
||||
extern void free_root(MEM_ROOT *root, myf MyFLAGS);
|
||||
|
@ -68,13 +68,15 @@ typedef struct st_tree {
|
||||
MEM_ROOT mem_root;
|
||||
my_bool with_delete;
|
||||
tree_element_free free;
|
||||
myf my_flags;
|
||||
uint flag;
|
||||
} TREE;
|
||||
|
||||
/* Functions on whole tree */
|
||||
void init_tree(TREE *tree, size_t default_alloc_size, size_t memory_limit,
|
||||
int size, qsort_cmp2 compare, my_bool with_delete,
|
||||
tree_element_free free_element, void *custom_arg);
|
||||
int size, qsort_cmp2 compare,
|
||||
tree_element_free free_element, void *custom_arg,
|
||||
myf my_flags);
|
||||
void delete_tree(TREE*);
|
||||
void reset_tree(TREE*);
|
||||
|
||||
|
@ -164,6 +164,7 @@ typedef struct st_handler_check_param
|
||||
|
||||
mysql_mutex_t print_msg_mutex;
|
||||
my_bool need_print_msg_lock;
|
||||
myf malloc_flags;
|
||||
} HA_CHECK;
|
||||
|
||||
|
||||
|
@ -28,7 +28,7 @@ typedef struct st_net {
|
||||
unsigned char reading_or_writing;
|
||||
char save_char;
|
||||
char net_skip_rest_factor;
|
||||
my_bool unused1;
|
||||
my_bool thread_specific_malloc;
|
||||
my_bool compress;
|
||||
my_bool unused3;
|
||||
unsigned char *unused;
|
||||
@ -80,7 +80,7 @@ enum enum_mysql_set_option
|
||||
MYSQL_OPTION_MULTI_STATEMENTS_ON,
|
||||
MYSQL_OPTION_MULTI_STATEMENTS_OFF
|
||||
};
|
||||
my_bool my_net_init(NET *net, Vio* vio);
|
||||
my_bool my_net_init(NET *net, Vio* vio, unsigned int my_flags);
|
||||
void my_net_local_init(NET *net);
|
||||
void net_end(NET *net);
|
||||
void net_clear(NET *net, my_bool clear_buffer);
|
||||
|
@ -72,7 +72,7 @@ typedef struct st_mysql_xid MYSQL_XID;
|
||||
#define MYSQL_PLUGIN_INTERFACE_VERSION 0x0103
|
||||
|
||||
/* MariaDB plugin interface version */
|
||||
#define MARIA_PLUGIN_INTERFACE_VERSION 0x0103
|
||||
#define MARIA_PLUGIN_INTERFACE_VERSION 0x0104
|
||||
|
||||
/*
|
||||
The allowable types of plugins
|
||||
@ -625,23 +625,6 @@ void thd_inc_row_count(MYSQL_THD thd);
|
||||
*/
|
||||
int mysql_tmpfile(const char *prefix);
|
||||
|
||||
/**
|
||||
Check the killed state of a connection
|
||||
|
||||
@details
|
||||
In MySQL support for the KILL statement is cooperative. The KILL
|
||||
statement only sets a "killed" flag. This function returns the value
|
||||
of that flag. A thread should check it often, especially inside
|
||||
time-consuming loops, and gracefully abort the operation if it is
|
||||
non-zero.
|
||||
|
||||
@param thd user thread connection handle
|
||||
@retval 0 the connection is active
|
||||
@retval 1 the connection has been killed
|
||||
*/
|
||||
int thd_killed(const MYSQL_THD thd);
|
||||
|
||||
|
||||
/**
|
||||
Return the thread id of a user thread
|
||||
|
||||
|
@ -43,7 +43,8 @@ typedef enum _thd_wait_type_e {
|
||||
THD_WAIT_BINLOG= 8,
|
||||
THD_WAIT_GROUP_COMMIT= 9,
|
||||
THD_WAIT_SYNC= 10,
|
||||
THD_WAIT_LAST= 11
|
||||
THD_WAIT_NET= 11,
|
||||
THD_WAIT_LAST= 12
|
||||
} thd_wait_type;
|
||||
extern struct thd_wait_service_st {
|
||||
void (*thd_wait_begin_func)(void*, int);
|
||||
@ -82,6 +83,16 @@ const char *set_thd_proc_info(void*, const char * info, const char *func,
|
||||
const char *file, unsigned int line);
|
||||
#include <mysql/service_debug_sync.h>
|
||||
extern void (*debug_sync_C_callback_ptr)(void*, const char *, size_t);
|
||||
#include <mysql/service_kill_statement.h>
|
||||
enum thd_kill_levels {
|
||||
THD_IS_NOT_KILLED=0,
|
||||
THD_ABORT_SOFTLY=50,
|
||||
THD_ABORT_ASAP=100,
|
||||
};
|
||||
extern struct kill_statement_service_st {
|
||||
enum thd_kill_levels (*thd_kill_level_func)(const void*);
|
||||
} *thd_kill_statement_service;
|
||||
enum thd_kill_levels thd_kill_level(const void*);
|
||||
struct st_mysql_xid {
|
||||
long formatID;
|
||||
long gtrid_length;
|
||||
@ -226,7 +237,6 @@ char *thd_security_context(void* thd, char *buffer, unsigned int length,
|
||||
unsigned int max_query_len);
|
||||
void thd_inc_row_count(void* thd);
|
||||
int mysql_tmpfile(const char *prefix);
|
||||
int thd_killed(const void* thd);
|
||||
unsigned long thd_get_thread_id(const void* thd);
|
||||
void thd_get_xid(const void* thd, MYSQL_XID *xid);
|
||||
void mysql_query_cache_invalidate4(void* thd,
|
||||
|
@ -43,7 +43,8 @@ typedef enum _thd_wait_type_e {
|
||||
THD_WAIT_BINLOG= 8,
|
||||
THD_WAIT_GROUP_COMMIT= 9,
|
||||
THD_WAIT_SYNC= 10,
|
||||
THD_WAIT_LAST= 11
|
||||
THD_WAIT_NET= 11,
|
||||
THD_WAIT_LAST= 12
|
||||
} thd_wait_type;
|
||||
extern struct thd_wait_service_st {
|
||||
void (*thd_wait_begin_func)(void*, int);
|
||||
@ -82,6 +83,16 @@ const char *set_thd_proc_info(void*, const char * info, const char *func,
|
||||
const char *file, unsigned int line);
|
||||
#include <mysql/service_debug_sync.h>
|
||||
extern void (*debug_sync_C_callback_ptr)(void*, const char *, size_t);
|
||||
#include <mysql/service_kill_statement.h>
|
||||
enum thd_kill_levels {
|
||||
THD_IS_NOT_KILLED=0,
|
||||
THD_ABORT_SOFTLY=50,
|
||||
THD_ABORT_ASAP=100,
|
||||
};
|
||||
extern struct kill_statement_service_st {
|
||||
enum thd_kill_levels (*thd_kill_level_func)(const void*);
|
||||
} *thd_kill_statement_service;
|
||||
enum thd_kill_levels thd_kill_level(const void*);
|
||||
struct st_mysql_xid {
|
||||
long formatID;
|
||||
long gtrid_length;
|
||||
@ -226,7 +237,6 @@ char *thd_security_context(void* thd, char *buffer, unsigned int length,
|
||||
unsigned int max_query_len);
|
||||
void thd_inc_row_count(void* thd);
|
||||
int mysql_tmpfile(const char *prefix);
|
||||
int thd_killed(const void* thd);
|
||||
unsigned long thd_get_thread_id(const void* thd);
|
||||
void thd_get_xid(const void* thd, MYSQL_XID *xid);
|
||||
void mysql_query_cache_invalidate4(void* thd,
|
||||
|
@ -43,7 +43,8 @@ typedef enum _thd_wait_type_e {
|
||||
THD_WAIT_BINLOG= 8,
|
||||
THD_WAIT_GROUP_COMMIT= 9,
|
||||
THD_WAIT_SYNC= 10,
|
||||
THD_WAIT_LAST= 11
|
||||
THD_WAIT_NET= 11,
|
||||
THD_WAIT_LAST= 12
|
||||
} thd_wait_type;
|
||||
extern struct thd_wait_service_st {
|
||||
void (*thd_wait_begin_func)(void*, int);
|
||||
@ -82,6 +83,16 @@ const char *set_thd_proc_info(void*, const char * info, const char *func,
|
||||
const char *file, unsigned int line);
|
||||
#include <mysql/service_debug_sync.h>
|
||||
extern void (*debug_sync_C_callback_ptr)(void*, const char *, size_t);
|
||||
#include <mysql/service_kill_statement.h>
|
||||
enum thd_kill_levels {
|
||||
THD_IS_NOT_KILLED=0,
|
||||
THD_ABORT_SOFTLY=50,
|
||||
THD_ABORT_ASAP=100,
|
||||
};
|
||||
extern struct kill_statement_service_st {
|
||||
enum thd_kill_levels (*thd_kill_level_func)(const void*);
|
||||
} *thd_kill_statement_service;
|
||||
enum thd_kill_levels thd_kill_level(const void*);
|
||||
struct st_mysql_xid {
|
||||
long formatID;
|
||||
long gtrid_length;
|
||||
@ -179,7 +190,6 @@ char *thd_security_context(void* thd, char *buffer, unsigned int length,
|
||||
unsigned int max_query_len);
|
||||
void thd_inc_row_count(void* thd);
|
||||
int mysql_tmpfile(const char *prefix);
|
||||
int thd_killed(const void* thd);
|
||||
unsigned long thd_get_thread_id(const void* thd);
|
||||
void thd_get_xid(const void* thd, MYSQL_XID *xid);
|
||||
void mysql_query_cache_invalidate4(void* thd,
|
||||
|
71
include/mysql/service_kill_statement.h
Normal file
71
include/mysql/service_kill_statement.h
Normal file
@ -0,0 +1,71 @@
|
||||
/* Copyright (c) 2013, Monty Program Ab.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
|
||||
|
||||
#ifndef MYSQL_SERVICE_KILL_STATEMENT_INCLUDED
|
||||
#define MYSQL_SERVICE_KILL_STATEMENT_INCLUDED
|
||||
|
||||
/**
|
||||
@file
|
||||
This service provides functions that allow plugins to support
|
||||
the KILL statement.
|
||||
|
||||
In MySQL support for the KILL statement is cooperative. The KILL
|
||||
statement only sets a "killed" flag. This function returns the value
|
||||
of that flag. A thread should check it often, especially inside
|
||||
time-consuming loops, and gracefully abort the operation if it is
|
||||
non-zero.
|
||||
|
||||
thd_is_killed(thd)
|
||||
@return 0 - no KILL statement was issued, continue normally
|
||||
@return 1 - there was a KILL statement, abort the execution.
|
||||
|
||||
thd_kill_level(thd)
|
||||
@return thd_kill_levels_enum values
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum thd_kill_levels {
|
||||
THD_IS_NOT_KILLED=0,
|
||||
THD_ABORT_SOFTLY=50, /**< abort when possible, don't leave tables corrupted */
|
||||
THD_ABORT_ASAP=100, /**< abort asap */
|
||||
};
|
||||
|
||||
extern struct kill_statement_service_st {
|
||||
enum thd_kill_levels (*thd_kill_level_func)(const MYSQL_THD);
|
||||
} *thd_kill_statement_service;
|
||||
|
||||
/* backward compatibility helper */
|
||||
#define thd_killed(THD) (thd_kill_level(THD) == THD_ABORT_ASAP)
|
||||
|
||||
#ifdef MYSQL_DYNAMIC_PLUGIN
|
||||
|
||||
#define thd_kill_level(THD) \
|
||||
thd_kill_statement_service->thd_kill_level_func(THD)
|
||||
|
||||
#else
|
||||
|
||||
enum thd_kill_levels thd_kill_level(const MYSQL_THD);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -74,7 +74,8 @@ typedef enum _thd_wait_type_e {
|
||||
THD_WAIT_BINLOG= 8,
|
||||
THD_WAIT_GROUP_COMMIT= 9,
|
||||
THD_WAIT_SYNC= 10,
|
||||
THD_WAIT_LAST= 11
|
||||
THD_WAIT_NET= 11,
|
||||
THD_WAIT_LAST= 12
|
||||
} thd_wait_type;
|
||||
|
||||
extern struct thd_wait_service_st {
|
||||
|
@ -24,6 +24,7 @@ extern "C" {
|
||||
#include <mysql/service_thread_scheduler.h>
|
||||
#include <mysql/service_progress_report.h>
|
||||
#include <mysql/service_debug_sync.h>
|
||||
#include <mysql/service_kill_statement.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates.
|
||||
Copyright (c) 2010, 2011, Monty Program Ab
|
||||
Copyright (c) 2010, 2013, Monty Program Ab
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -128,39 +128,39 @@ enum enum_server_command
|
||||
#define HAS_EXPLICIT_VALUE (1 << 26) /* An INSERT/UPDATE operation supplied
|
||||
an explicit default value */
|
||||
|
||||
#define REFRESH_GRANT 1 /* Refresh grant tables */
|
||||
#define REFRESH_LOG 2 /* Start on new log file */
|
||||
#define REFRESH_TABLES 4 /* close all tables */
|
||||
#define REFRESH_HOSTS 8 /* Flush host cache */
|
||||
#define REFRESH_STATUS 16 /* Flush status variables */
|
||||
#define REFRESH_THREADS 32 /* Flush thread cache */
|
||||
#define REFRESH_SLAVE 64 /* Reset master info and restart slave
|
||||
thread */
|
||||
#define REFRESH_MASTER 128 /* Remove all bin logs in the index
|
||||
and truncate the index */
|
||||
#define REFRESH_GRANT (1UL << 0) /* Refresh grant tables */
|
||||
#define REFRESH_LOG (1UL << 1) /* Start on new log file */
|
||||
#define REFRESH_TABLES (1UL << 2) /* close all tables */
|
||||
#define REFRESH_HOSTS (1UL << 3) /* Flush host cache */
|
||||
#define REFRESH_STATUS (1UL << 4) /* Flush status variables */
|
||||
#define REFRESH_THREADS (1UL << 5) /* Flush thread cache */
|
||||
#define REFRESH_SLAVE (1UL << 6) /* Reset master info and restart slave
|
||||
thread */
|
||||
#define REFRESH_MASTER (1UL << 7) /* Remove all bin logs in the index
|
||||
and truncate the index */
|
||||
|
||||
/* The following can't be set with mysql_refresh() */
|
||||
#define REFRESH_ERROR_LOG 256 /* Rotate only the erorr log */
|
||||
#define REFRESH_ENGINE_LOG 512 /* Flush all storage engine logs */
|
||||
#define REFRESH_BINARY_LOG 1024 /* Flush the binary log */
|
||||
#define REFRESH_RELAY_LOG 2048 /* Flush the relay log */
|
||||
#define REFRESH_GENERAL_LOG 4096 /* Flush the general log */
|
||||
#define REFRESH_SLOW_LOG 8192 /* Flush the slow query log */
|
||||
#define REFRESH_ERROR_LOG (1UL << 8) /* Rotate only the erorr log */
|
||||
#define REFRESH_ENGINE_LOG (1UL << 9) /* Flush all storage engine logs */
|
||||
#define REFRESH_BINARY_LOG (1UL << 10) /* Flush the binary log */
|
||||
#define REFRESH_RELAY_LOG (1UL << 11) /* Flush the relay log */
|
||||
#define REFRESH_GENERAL_LOG (1UL << 12) /* Flush the general log */
|
||||
#define REFRESH_SLOW_LOG (1UL << 13) /* Flush the slow query log */
|
||||
|
||||
#define REFRESH_READ_LOCK 16384 /* Lock tables for read */
|
||||
#define REFRESH_FAST 32768 /* Intern flag */
|
||||
#define REFRESH_READ_LOCK (1UL << 14) /* Lock tables for read */
|
||||
#define REFRESH_CHECKPOINT (1UL << 15) /* With REFRESH_READ_LOCK: block checkpoints too */
|
||||
|
||||
/* RESET (remove all queries) from query cache */
|
||||
#define REFRESH_QUERY_CACHE 65536
|
||||
#define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */
|
||||
#define REFRESH_DES_KEY_FILE 0x40000L
|
||||
#define REFRESH_USER_RESOURCES 0x80000L
|
||||
#define REFRESH_CHECKPOINT 0x100000L /* Don't do checkpoints */
|
||||
#define REFRESH_QUERY_CACHE (1UL << 16) /* clear the query cache */
|
||||
#define REFRESH_QUERY_CACHE_FREE (1UL << 17) /* pack query cache */
|
||||
#define REFRESH_DES_KEY_FILE (1UL << 18)
|
||||
#define REFRESH_USER_RESOURCES (1UL << 19)
|
||||
|
||||
#define REFRESH_TABLE_STATS (1L << 20) /* Refresh table stats hash table */
|
||||
#define REFRESH_INDEX_STATS (1L << 21) /* Refresh index stats hash table */
|
||||
#define REFRESH_USER_STATS (1L << 22) /* Refresh user stats hash table */
|
||||
#define REFRESH_CLIENT_STATS (1L << 23) /* Refresh client stats hash table */
|
||||
#define REFRESH_TABLE_STATS (1UL << 20) /* Refresh table stats hash table */
|
||||
#define REFRESH_INDEX_STATS (1UL << 21) /* Refresh index stats hash table */
|
||||
#define REFRESH_USER_STATS (1UL << 22) /* Refresh user stats hash table */
|
||||
#define REFRESH_CLIENT_STATS (1UL << 23) /* Refresh client stats hash table */
|
||||
|
||||
#define REFRESH_FAST (1UL << 31) /* Intern flag */
|
||||
|
||||
#define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */
|
||||
#define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */
|
||||
@ -340,7 +340,7 @@ typedef struct st_net {
|
||||
unsigned char reading_or_writing;
|
||||
char save_char;
|
||||
char net_skip_rest_factor;
|
||||
my_bool unused1; /* Please remove with the next incompatible ABI change */
|
||||
my_bool thread_specific_malloc;
|
||||
my_bool compress;
|
||||
my_bool unused3; /* Please remove with the next incompatible ABI change. */
|
||||
/*
|
||||
@ -475,10 +475,10 @@ enum enum_mysql_set_option
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
my_bool my_net_init(NET *net, Vio* vio);
|
||||
my_bool my_net_init(NET *net, Vio* vio, unsigned int my_flags);
|
||||
void my_net_local_init(NET *net);
|
||||
void net_end(NET *net);
|
||||
void net_clear(NET *net, my_bool clear_buffer);
|
||||
void net_clear(NET *net, my_bool clear_buffer);
|
||||
my_bool net_realloc(NET *net, size_t length);
|
||||
my_bool net_flush(NET *net);
|
||||
my_bool my_net_write(NET *net,const unsigned char *packet, size_t len);
|
||||
|
@ -19,9 +19,11 @@
|
||||
#define SERVICE_VERSION void *
|
||||
#endif
|
||||
|
||||
#define VERSION_my_snprintf 0x0100
|
||||
#define VERSION_thd_alloc 0x0100
|
||||
#define VERSION_thd_wait 0x0100
|
||||
#define VERSION_my_thread_scheduler 0x0100
|
||||
#define VERSION_progress_report 0x0100
|
||||
#define VERSION_debug_sync 0x1000
|
||||
#define VERSION_my_snprintf 0x0100
|
||||
#define VERSION_thd_alloc 0x0100
|
||||
#define VERSION_thd_wait 0x0100
|
||||
#define VERSION_my_thread_scheduler 0x0100
|
||||
#define VERSION_progress_report 0x0100
|
||||
#define VERSION_debug_sync 0x1000
|
||||
#define VERSION_kill_statement 0x1000
|
||||
|
||||
|
@ -105,7 +105,9 @@ my_bool vio_is_connected(Vio *vio);
|
||||
ssize_t vio_pending(Vio *vio);
|
||||
#endif
|
||||
/* Set timeout for a network operation. */
|
||||
int vio_timeout(Vio *vio, uint which, int timeout_sec);
|
||||
extern int vio_timeout(Vio *vio, uint which, int timeout_sec);
|
||||
extern void vio_set_wait_callback(void (*before_wait)(void),
|
||||
void (*after_wait)(void));
|
||||
/* Connect to a peer. */
|
||||
my_bool vio_socket_connect(Vio *vio, struct sockaddr *addr, socklen_t len,
|
||||
int timeout);
|
||||
|
@ -23,7 +23,7 @@ INCLUDE_DIRECTORIES(
|
||||
${ZLIB_INCLUDE_DIR})
|
||||
ADD_DEFINITIONS(${SSL_DEFINES})
|
||||
|
||||
SET(CLIENT_API_FUNCTIONS
|
||||
SET(CLIENT_API_FUNCTIONS_5_1
|
||||
get_tty_password
|
||||
handle_options
|
||||
load_defaults
|
||||
@ -58,6 +58,7 @@ mysql_field_count
|
||||
mysql_field_seek
|
||||
mysql_field_tell
|
||||
mysql_free_result
|
||||
mysql_get_parameters
|
||||
mysql_get_client_info
|
||||
mysql_get_host_info
|
||||
mysql_get_proto_info
|
||||
@ -129,12 +130,193 @@ mysql_server_init
|
||||
mysql_server_end
|
||||
mysql_set_character_set
|
||||
mysql_get_character_set_info
|
||||
mysql_stmt_next_result
|
||||
|
||||
CACHE INTERNAL "Functions exported by client API"
|
||||
|
||||
)
|
||||
|
||||
SET(CLIENT_API_FUNCTIONS_5_5
|
||||
mysql_stmt_next_result
|
||||
# Client plugins
|
||||
mysql_client_find_plugin
|
||||
mysql_client_register_plugin
|
||||
mysql_load_plugin
|
||||
mysql_load_plugin_v
|
||||
mysql_plugin_options
|
||||
# Async API
|
||||
mysql_autocommit_cont
|
||||
mysql_autocommit_start
|
||||
mysql_change_user_cont
|
||||
mysql_change_user_start
|
||||
mysql_close_cont
|
||||
mysql_close_slow_part_cont
|
||||
mysql_close_slow_part_start
|
||||
mysql_close_start
|
||||
mysql_commit_cont
|
||||
mysql_commit_start
|
||||
mysql_fetch_row_cont
|
||||
mysql_fetch_row_start
|
||||
mysql_free_result_cont
|
||||
mysql_free_result_start
|
||||
mysql_kill_cont
|
||||
mysql_kill_start
|
||||
mysql_list_dbs_cont
|
||||
mysql_list_dbs_start
|
||||
mysql_list_fields_cont
|
||||
mysql_list_fields_start
|
||||
mysql_list_processes_cont
|
||||
mysql_list_processes_start
|
||||
mysql_list_tables_cont
|
||||
mysql_list_tables_start
|
||||
mysql_next_result_cont
|
||||
mysql_next_result_start
|
||||
mysql_ping_cont
|
||||
mysql_ping_start
|
||||
mysql_query_cont
|
||||
mysql_query_start
|
||||
mysql_read_query_result_cont
|
||||
mysql_read_query_result_start
|
||||
mysql_real_connect_cont
|
||||
mysql_real_connect_start
|
||||
mysql_real_query_cont
|
||||
mysql_real_query_start
|
||||
mysql_refresh_cont
|
||||
mysql_refresh_start
|
||||
mysql_rollback_cont
|
||||
mysql_rollback_start
|
||||
mysql_select_db_cont
|
||||
mysql_select_db_start
|
||||
mysql_send_query_cont
|
||||
mysql_send_query_start
|
||||
mysql_set_character_set_cont
|
||||
mysql_set_character_set_start
|
||||
mysql_set_server_option_cont
|
||||
mysql_set_server_option_start
|
||||
mysql_shutdown_cont
|
||||
mysql_shutdown_start
|
||||
mysql_stat_cont
|
||||
mysql_stat_start
|
||||
mysql_stmt_close_cont
|
||||
mysql_stmt_close_start
|
||||
mysql_stmt_execute_cont
|
||||
mysql_stmt_execute_start
|
||||
mysql_stmt_fetch_cont
|
||||
mysql_stmt_fetch_start
|
||||
mysql_stmt_free_result_cont
|
||||
mysql_stmt_free_result_start
|
||||
mysql_stmt_next_result_cont
|
||||
mysql_stmt_next_result_start
|
||||
mysql_stmt_prepare_cont
|
||||
mysql_stmt_prepare_start
|
||||
mysql_stmt_reset_cont
|
||||
mysql_stmt_reset_start
|
||||
mysql_stmt_send_long_data_cont
|
||||
mysql_stmt_send_long_data_start
|
||||
mysql_stmt_store_result_cont
|
||||
mysql_stmt_store_result_start
|
||||
mysql_store_result_cont
|
||||
mysql_store_result_start
|
||||
#dynamic columns api
|
||||
dynamic_column_create
|
||||
dynamic_column_create_many
|
||||
dynamic_column_update
|
||||
dynamic_column_update_many
|
||||
dynamic_column_exists
|
||||
dynamic_column_list
|
||||
dynamic_column_get
|
||||
dynamic_column_prepare_decimal
|
||||
mariadb_dyncol_create_many
|
||||
mariadb_dyncol_create_many_named
|
||||
mariadb_dyncol_update_many
|
||||
mariadb_dyncol_update_many_named
|
||||
mariadb_dyncol_exists
|
||||
mariadb_dyncol_exists_named
|
||||
mariadb_dyncol_list
|
||||
mariadb_dyncol_list_named
|
||||
mariadb_dyncol_get
|
||||
mariadb_dyncol_get_named
|
||||
mariadb_dyncol_has_names
|
||||
mariadb_dyncol_check
|
||||
mariadb_dyncol_json
|
||||
mariadb_dyncol_val_str
|
||||
mariadb_dyncol_val_long
|
||||
mariadb_dyncol_val_double
|
||||
mariadb_dyncol_unpack
|
||||
mariadb_dyncol_column_cmp_named
|
||||
mariadb_dyncol_column_count
|
||||
mariadb_dyncol_prepare_decimal
|
||||
)
|
||||
|
||||
SET(CLIENT_API_FUNCTIONS
|
||||
${CLIENT_API_FUNCTIONS_5_1}
|
||||
${CLIENT_API_FUNCTIONS_5_5}
|
||||
CACHE INTERNAL
|
||||
"Client functions"
|
||||
)
|
||||
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
# When building RPM, or DEB package on Debian, use ELF symbol versioning
|
||||
# for compatibility with distribution packages, so client shared library can
|
||||
# painlessly replace the one supplied by the distribution.
|
||||
|
||||
# Also list of exported symbols in distributions may differ from what is considered
|
||||
# official API. Define CLIENT_API_EXTRA for the set of symbols, that required to
|
||||
# be exported on different platforms.
|
||||
|
||||
IF(RPM)
|
||||
# Fedora & Co declared following functions as part of API
|
||||
# These functions are alias of another function (given mysql_ prefix=. The
|
||||
# renaming is handled in rpm_support.cc below
|
||||
SET(CLIENT_API_EXTRA
|
||||
mysql_default_charset_info
|
||||
mysql_get_charset
|
||||
mysql_get_charset_by_csname
|
||||
mysql_net_realloc
|
||||
mysql_client_errors
|
||||
)
|
||||
# Add special script to fix symbols renames by Fedora
|
||||
SET(CLIENT_SOURCES_EXTRA ${CLIENT_SOURCES} rpm_support.cc)
|
||||
SET(VERSION_SCRIPT_TEMPLATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/libmysql_rpm_version.in)
|
||||
ELSEIF(DEB)
|
||||
# libmyodbc on Ubuntu is using functions below
|
||||
# If we don't export them, linker would just remove
|
||||
# them (they are not used inside libmysqlclient)
|
||||
SET(CLIENT_API_EXTRA
|
||||
strfill
|
||||
init_dynamic_string
|
||||
)
|
||||
# MySQL supplied with Ubuntu does not have versioning, bug Debian does.
|
||||
IF(DEB MATCHES "debian")
|
||||
SET(VERSION_SCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/libmysql.ver.in)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(VERSION_SCRIPT_TEMPLATE)
|
||||
# Generate version script.
|
||||
# Create semicolon separated lists of functions to export from
|
||||
# Since RPM packages use separate versioning for 5.1 API
|
||||
# and 5.5 API (libmysqlclient_16 vs libmysqlclient_18),
|
||||
# we need 2 lists.
|
||||
SET (CLIENT_API_5_1_LIST)
|
||||
FOREACH (f ${CLIENT_API_FUNCTIONS_5_1})
|
||||
SET(CLIENT_API_5_1_LIST "${CLIENT_API_5_1_LIST}\n${f};")
|
||||
ENDFOREACH()
|
||||
|
||||
SET (CLIENT_API_5_5_LIST)
|
||||
FOREACH (f ${CLIENT_API_FUNCTIONS_5_5})
|
||||
SET(CLIENT_API_5_5_LIST "${CLIENT_API_5_5_LIST}\n${f};")
|
||||
ENDFOREACH()
|
||||
|
||||
CONFIGURE_FILE(
|
||||
${VERSION_SCRIPT_TEMPLATE}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libmysql.version
|
||||
@ONLY@
|
||||
)
|
||||
SET(VERSION_SCRIPT_LINK_FLAGS
|
||||
"-Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/libmysql.version")
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
||||
|
||||
|
||||
SET(CLIENT_SOURCES
|
||||
get_password.c
|
||||
libmysql.c
|
||||
@ -146,6 +328,7 @@ SET(CLIENT_SOURCES
|
||||
../sql/net_serv.cc
|
||||
../sql-common/pack.c
|
||||
../sql/password.c
|
||||
${CLIENT_SOURCES_EXTRA}
|
||||
)
|
||||
ADD_CONVENIENCE_LIBRARY(clientlib ${CLIENT_SOURCES})
|
||||
DTRACE_INSTRUMENT(clientlib)
|
||||
@ -193,13 +376,13 @@ IF(NOT DISABLE_SHARED)
|
||||
OUTPUT_NAME mysqlclient
|
||||
VERSION "${OS_SHARED_LIB_VERSION}"
|
||||
SOVERSION "${SHARED_LIB_MAJOR_VERSION}")
|
||||
IF(LINK_FLAG_NO_UNDEFINED)
|
||||
IF(LINK_FLAG_NO_UNDEFINED OR VERSION_SCRIPT_LINK_FLAGS)
|
||||
GET_TARGET_PROPERTY(libmysql_link_flags libmysql LINK_FLAGS)
|
||||
IF(NOT libmysql_link_flag)
|
||||
SET(libmysql_link_flags)
|
||||
ENDIF()
|
||||
SET_TARGET_PROPERTIES(libmysql PROPERTIES LINK_FLAGS
|
||||
"${libmysql_link_flags} ${LINK_FLAG_NO_UNDEFINED}")
|
||||
"${libmysql_link_flags} ${LINK_FLAG_NO_UNDEFINED} ${VERSION_SCRIPT_LINK_FLAGS}")
|
||||
ENDIF()
|
||||
# clean direct output needs to be set several targets have the same name
|
||||
#(mysqlclient in this case)
|
||||
|
@ -1520,8 +1520,8 @@ mysql_stmt_init(MYSQL *mysql)
|
||||
DBUG_RETURN(NULL);
|
||||
}
|
||||
|
||||
init_alloc_root(&stmt->mem_root, 2048, 2048);
|
||||
init_alloc_root(&stmt->result.alloc, 4096, 4096);
|
||||
init_alloc_root(&stmt->mem_root, 2048, 2048, MYF(MY_THREAD_SPECIFIC));
|
||||
init_alloc_root(&stmt->result.alloc, 4096, 4096, MYF(MY_THREAD_SPECIFIC));
|
||||
stmt->result.alloc.min_malloc= sizeof(MYSQL_ROWS);
|
||||
mysql->stmts= list_add(mysql->stmts, &stmt->list);
|
||||
stmt->list.data= stmt;
|
||||
@ -1532,7 +1532,8 @@ mysql_stmt_init(MYSQL *mysql)
|
||||
strmov(stmt->sqlstate, not_error_sqlstate);
|
||||
/* The rest of statement members was bzeroed inside malloc */
|
||||
|
||||
init_alloc_root(&stmt->extension->fields_mem_root, 2048, 0);
|
||||
init_alloc_root(&stmt->extension->fields_mem_root, 2048, 0,
|
||||
MYF(MY_THREAD_SPECIFIC));
|
||||
|
||||
DBUG_RETURN(stmt);
|
||||
}
|
||||
|
48
libmysql/libmysql_rpm_version.in
Normal file
48
libmysql/libmysql_rpm_version.in
Normal file
@ -0,0 +1,48 @@
|
||||
# This version script is heavily inspired by Fedora's and Mageia's version scripts for
|
||||
# MySQL client shared library. It is used in MariaDB for building RPMs.
|
||||
|
||||
libmysqlclient_16 {
|
||||
global:
|
||||
@CLIENT_API_5_1_LIST@
|
||||
|
||||
# some stuff from Mageia, I have no idea why it is there
|
||||
# But too afraid to throw anything away
|
||||
_fini;
|
||||
_init;
|
||||
my_init;
|
||||
my_progname;
|
||||
myodbc_remove_escape;
|
||||
|
||||
# These are documented in Paul DuBois' MySQL book, so we treat them as part
|
||||
# of the de-facto API.
|
||||
free_defaults;
|
||||
handle_options;
|
||||
load_defaults;
|
||||
my_print_help;
|
||||
# pure-ftpd requires this
|
||||
my_make_scrambled_password;
|
||||
# hydra requires this
|
||||
scramble;
|
||||
# DBD::mysql requires this
|
||||
is_prefix;
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
||||
libmysqlclient_18 {
|
||||
global:
|
||||
@CLIENT_API_5_5_LIST@
|
||||
#
|
||||
# Ideally the following symbols wouldn't be exported, but various applications
|
||||
# require them. We limit the namespace damage by prefixing mysql_
|
||||
# (see mysql-dubious-exports.patch), which means the symbols are not present
|
||||
# in libmysqlclient_16.
|
||||
#
|
||||
# mysql-connector-odbc requires these
|
||||
mysql_default_charset_info;
|
||||
mysql_get_charset;
|
||||
mysql_get_charset_by_csname;
|
||||
mysql_net_realloc;
|
||||
# PHP's mysqli.so requires this (via the ER() macro)
|
||||
mysql_client_errors;
|
||||
};
|
41
libmysql/rpm_support.cc
Normal file
41
libmysql/rpm_support.cc
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
Provide aliases for several symbols, to support drop-in replacement for
|
||||
MariaDB on Fedora and several derives distributions.
|
||||
|
||||
These distributions redefine several symbols (in a way that is no compatible
|
||||
with either MySQL or MariaDB) and export it from the client library ( as seen
|
||||
e.g from this patch)
|
||||
http://lists.fedoraproject.org/pipermail/scm-commits/2010-December/537257.html
|
||||
|
||||
MariaDB handles compatibility distribution by providing the same symbols from
|
||||
the client library if it is built with -DRPM
|
||||
|
||||
*/
|
||||
#include <errmsg.h>
|
||||
#include <my_sys.h>
|
||||
#include <mysql.h>
|
||||
extern "C" {
|
||||
|
||||
CHARSET_INFO *mysql_default_charset_info = default_charset_info;
|
||||
|
||||
CHARSET_INFO *mysql_get_charset(uint cs_number, myf flags)
|
||||
{
|
||||
return get_charset(cs_number, flags);
|
||||
}
|
||||
|
||||
CHARSET_INFO *mysql_get_charset_by_csname(const char *cs_name,
|
||||
uint cs_flags, myf my_flags)
|
||||
{
|
||||
return get_charset_by_csname(cs_name, cs_flags, my_flags);
|
||||
}
|
||||
|
||||
|
||||
my_bool mysql_net_realloc(NET *net, size_t length)
|
||||
{
|
||||
return net_realloc(net,length);
|
||||
}
|
||||
|
||||
const char **mysql_client_errors = client_errors;
|
||||
|
||||
} /*extern "C" */
|
||||
|
@ -150,8 +150,21 @@ IF(UNIX)
|
||||
${CMAKE_STATIC_LIBRARY_PREFIX}mysqld-debug)
|
||||
ENDIF()
|
||||
|
||||
# List of exported functions in embedded (client api except client plugin or
|
||||
# async (*_start/*_cont functions)
|
||||
|
||||
SET(EMBEDDED_API)
|
||||
|
||||
FOREACH(f ${CLIENT_API_FUNCTIONS})
|
||||
IF(f MATCHES "plugin|_start$|_cont$")
|
||||
# Ignore functions, embedded does not export them
|
||||
ELSE()
|
||||
SET(EMBEDDED_API ${EMBEDDED_API} ${f})
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
IF(NOT DISABLE_SHARED)
|
||||
MERGE_LIBRARIES(libmysqld SHARED mysqlserver EXPORTS ${CLIENT_API_FUNCTIONS}
|
||||
MERGE_LIBRARIES(libmysqld SHARED mysqlserver EXPORTS ${EMBEDDED_API}
|
||||
COMPONENT Server)
|
||||
IF(UNIX)
|
||||
# Name the shared library, handle versioning (provides same api as client
|
||||
|
@ -415,7 +415,7 @@ int emb_load_querycache_result(THD *thd, Querycache_stream *src)
|
||||
|
||||
if (!data)
|
||||
goto err;
|
||||
init_alloc_root(&data->alloc, 8192,0);
|
||||
init_alloc_root(&data->alloc, 8192,0,MYF(0));
|
||||
f_alloc= &data->alloc;
|
||||
|
||||
data->fields= src->load_int();
|
||||
|
@ -520,7 +520,8 @@ int init_embedded_server(int argc, char **argv, char **groups)
|
||||
if (!groups)
|
||||
groups= (char**) fake_groups;
|
||||
|
||||
my_progname= (char *)"mysql_embedded";
|
||||
if (!my_progname)
|
||||
my_progname= (char *)"mysql_embedded";
|
||||
|
||||
/*
|
||||
Perform basic logger initialization logger. Should be called after
|
||||
@ -634,7 +635,7 @@ void init_embedded_mysql(MYSQL *mysql, int client_flag)
|
||||
mysql->server_version= server_version;
|
||||
mysql->client_flag= client_flag;
|
||||
//mysql->server_capabilities= client_flag;
|
||||
init_alloc_root(&mysql->field_alloc, 8192, 0);
|
||||
init_alloc_root(&mysql->field_alloc, 8192, 0, MYF(0));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -906,8 +907,9 @@ int Protocol::begin_dataset()
|
||||
if (!data)
|
||||
return 1;
|
||||
alloc= &data->alloc;
|
||||
init_alloc_root(alloc,8192,0); /* Assume rowlength < 8192 */
|
||||
alloc->min_malloc=sizeof(MYSQL_ROWS);
|
||||
/* Assume rowlength < 8192 */
|
||||
init_alloc_root(alloc, 8192, 0, MYF(0));
|
||||
alloc->min_malloc= sizeof(MYSQL_ROWS);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,8 @@ SET(MYSQLSERVICES_SOURCES
|
||||
thd_wait_service.c
|
||||
my_thread_scheduler_service.c
|
||||
progress_report_service.c
|
||||
debug_sync_service.c)
|
||||
debug_sync_service.c
|
||||
kill_statement_service.c)
|
||||
|
||||
ADD_CONVENIENCE_LIBRARY(mysqlservices ${MYSQLSERVICES_SOURCES})
|
||||
INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR} COMPONENT Development)
|
||||
|
18
libservices/kill_statement_service.c
Normal file
18
libservices/kill_statement_service.c
Normal file
@ -0,0 +1,18 @@
|
||||
/* Copyright (c) 2013, Monty Program Ab.
|
||||
Use is subject to license terms.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
|
||||
|
||||
#include <service_versions.h>
|
||||
SERVICE_VERSION thd_kill_statement_service= (void*)VERSION_kill_statement;
|
@ -40,6 +40,9 @@ while ($1)
|
||||
}
|
||||
--enable_query_log
|
||||
commit;
|
||||
# Make sure binlog checkpoint is logged before DROP TABLE to avoid random
|
||||
# result difference.
|
||||
--source include/wait_for_binlog_checkpoint.inc
|
||||
drop table t1;
|
||||
--source include/show_binlog_events.inc
|
||||
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
|
14
mysql-test/include/ctype_heap.inc
Normal file
14
mysql-test/include/ctype_heap.inc
Normal file
@ -0,0 +1,14 @@
|
||||
--echo #
|
||||
--echo # Test that cs->coll->hash_sort() ignores trailing spaces
|
||||
--echo #
|
||||
SELECT @@collation_connection;
|
||||
CREATE TABLE t1 ENGINE=HEAP AS SELECT REPEAT (' ', 10) AS a LIMIT 0;
|
||||
ALTER TABLE t1 ADD KEY (a);
|
||||
CREATE TABLE t2 (a VARCHAR(10));
|
||||
INSERT INTO t2 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
INSERT INTO t2 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
INSERT INTO t1 SELECT CONCAT('a',t21.a,t22.a) FROM t2 t21, t2 t22 ORDER BY 1;
|
||||
DROP TABLE t2;
|
||||
INSERT INTO t1 VALUES ('a ');
|
||||
SELECT a, HEX(a) FROM t1 WHERE a='a';
|
||||
DROP TABLE t1;
|
49
mysql-test/include/ctype_strtoll10.inc
Normal file
49
mysql-test/include/ctype_strtoll10.inc
Normal file
@ -0,0 +1,49 @@
|
||||
--echo #
|
||||
--echo # Testing cs->cset->strtoll10()
|
||||
--echo #
|
||||
|
||||
SELECT @@character_set_connection;
|
||||
|
||||
SELECT CAST('1' AS UNSIGNED);
|
||||
SELECT CAST('12' AS UNSIGNED);
|
||||
SELECT CAST('123' AS UNSIGNED);
|
||||
SELECT CAST('1234' AS UNSIGNED);
|
||||
SELECT CAST('12345' AS UNSIGNED);
|
||||
SELECT CAST('123456' AS UNSIGNED);
|
||||
SELECT CAST('1234567' AS UNSIGNED);
|
||||
SELECT CAST('12345678' AS UNSIGNED);
|
||||
SELECT CAST('123456789' AS UNSIGNED);
|
||||
SELECT CAST('1234567891' AS UNSIGNED);
|
||||
SELECT CAST('12345678912' AS UNSIGNED);
|
||||
SELECT CAST('123456789123' AS UNSIGNED);
|
||||
SELECT CAST('1234567891234' AS UNSIGNED);
|
||||
SELECT CAST('12345678912345' AS UNSIGNED);
|
||||
SELECT CAST('123456789123456' AS UNSIGNED);
|
||||
SELECT CAST('1234567891234567' AS UNSIGNED);
|
||||
SELECT CAST('12345678912345678' AS UNSIGNED);
|
||||
SELECT CAST('123456789123456789' AS UNSIGNED);
|
||||
SELECT CAST('1234567891234567891' AS UNSIGNED);
|
||||
SELECT CAST('12345678912345678912' AS UNSIGNED);
|
||||
SELECT CAST('123456789123456789123' AS UNSIGNED);
|
||||
|
||||
SELECT CAST('1x' AS UNSIGNED);
|
||||
SELECT CAST('12x' AS UNSIGNED);
|
||||
SELECT CAST('123x' AS UNSIGNED);
|
||||
SELECT CAST('1234x' AS UNSIGNED);
|
||||
SELECT CAST('12345x' AS UNSIGNED);
|
||||
SELECT CAST('123456x' AS UNSIGNED);
|
||||
SELECT CAST('1234567x' AS UNSIGNED);
|
||||
SELECT CAST('12345678x' AS UNSIGNED);
|
||||
SELECT CAST('123456789x' AS UNSIGNED);
|
||||
SELECT CAST('1234567891x' AS UNSIGNED);
|
||||
SELECT CAST('12345678912x' AS UNSIGNED);
|
||||
SELECT CAST('123456789123x' AS UNSIGNED);
|
||||
SELECT CAST('1234567891234x' AS UNSIGNED);
|
||||
SELECT CAST('12345678912345x' AS UNSIGNED);
|
||||
SELECT CAST('123456789123456x' AS UNSIGNED);
|
||||
SELECT CAST('1234567891234567x' AS UNSIGNED);
|
||||
SELECT CAST('12345678912345678x' AS UNSIGNED);
|
||||
SELECT CAST('123456789123456789x' AS UNSIGNED);
|
||||
SELECT CAST('1234567891234567891x' AS UNSIGNED);
|
||||
SELECT CAST('12345678912345678912x' AS UNSIGNED);
|
||||
SELECT CAST('123456789123456789123x' AS UNSIGNED);
|
@ -58,9 +58,7 @@
|
||||
--let $perlChecker= $MYSQLTEST_VARDIR/std_data/checkDBI_DBD-mysql.pl
|
||||
--let $resultFile= $MYSQL_TMP_DIR/dbidbd-mysql.txt
|
||||
|
||||
# Make the script executable and execute it.
|
||||
--chmod 0755 $perlChecker
|
||||
--exec $perlChecker
|
||||
--exec perl $perlChecker
|
||||
|
||||
# Source the resulting temporary file and look for a variable being set.
|
||||
--source $resultFile
|
||||
|
@ -41,3 +41,4 @@ ha_blackhole storage/blackhole BLACKHOLE_PLUGIN
|
||||
ha_federated storage/federated FEDERATED_PLUGIN
|
||||
mypluglib plugin/fulltext SIMPLE_PARSER
|
||||
libdaemon_example plugin/daemon_example DAEMONEXAMPLE
|
||||
adt_null plugin/audit_null AUDIT_NULL
|
||||
|
@ -8,6 +8,7 @@
|
||||
# --let $rpl_server_number= N
|
||||
# [--let $rpl_server_parameters= --flag1 --flag2 ...]
|
||||
# [--let $rpl_debug= 1]
|
||||
# [--let $rpl_server_error= 0]
|
||||
# --source include/rpl_start_server.inc
|
||||
#
|
||||
# Parameters:
|
||||
@ -21,6 +22,9 @@
|
||||
# If set, extra parameters given by this variable are passed to
|
||||
# mysqld.
|
||||
#
|
||||
# $rpl_server_error
|
||||
# If set, failure of the server startup is expected.
|
||||
#
|
||||
# $rpl_debug
|
||||
# See include/rpl_init.inc
|
||||
#
|
||||
@ -47,8 +51,9 @@ if ($rpl_server_parameters)
|
||||
# Write file to make mysql-test-run.pl start up the server again
|
||||
--exec echo "$_rpl_start_server_command" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
|
||||
|
||||
--source include/rpl_reconnect.inc
|
||||
|
||||
|
||||
--let $include_filename= rpl_start_server.inc $_rpl_start_server_args
|
||||
--source include/end_include_file.inc
|
||||
if (!$rpl_server_error)
|
||||
{
|
||||
--source include/rpl_reconnect.inc
|
||||
--let $include_filename= rpl_start_server.inc $_rpl_start_server_args
|
||||
--source include/end_include_file.inc
|
||||
}
|
||||
|
@ -3229,6 +3229,8 @@ sub install_db ($$) {
|
||||
# for a production system
|
||||
mtr_appendfile_to_file("$path_sql_dir/mysql_system_tables.sql",
|
||||
$bootstrap_sql_file);
|
||||
mtr_appendfile_to_file("$path_sql_dir/mysql_performance_tables.sql",
|
||||
$bootstrap_sql_file);
|
||||
|
||||
# Add the mysql system tables initial data
|
||||
# for a production system
|
||||
|
@ -3525,6 +3525,11 @@ sub mysql_install_db {
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_system_tables.sql",
|
||||
$bootstrap_sql_file);
|
||||
|
||||
# Add the performance tables
|
||||
# for a production system
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_performance_tables.sql",
|
||||
$bootstrap_sql_file);
|
||||
|
||||
# Add the mysql system tables initial data
|
||||
# for a production system
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_system_tables_data.sql",
|
||||
@ -3593,9 +3598,10 @@ sub mysql_install_db {
|
||||
verbose => $opt_verbose,
|
||||
) != 0)
|
||||
{
|
||||
my $data= mtr_grab_file($path_bootstrap_log);
|
||||
mtr_error("Error executing mysqld --bootstrap\n" .
|
||||
"Could not install system database from $bootstrap_sql_file\n" .
|
||||
"see $path_bootstrap_log for errors");
|
||||
"The $path_bootstrap_log file contains:\n$data\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
5
mysql-test/r/change_user_notembedded.result
Normal file
5
mysql-test/r/change_user_notembedded.result
Normal file
@ -0,0 +1,5 @@
|
||||
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: YES)
|
||||
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: NO)
|
||||
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: YES)
|
||||
ERROR 08S01: Unknown command
|
||||
ERROR 08S01: Unknown command
|
@ -3,3 +3,5 @@ Name Location Comment
|
||||
Ronald Bradford Brisbane, Australia EFF contribution for UC2006 Auction
|
||||
Sheeri Kritzer Boston, Mass. USA EFF contribution for UC2006 Auction
|
||||
Mark Shuttleworth London, UK. EFF contribution for UC2006 Auction
|
||||
Warnings:
|
||||
Warning 1681 'SHOW CONTRIBUTORS' is deprecated and will be removed in a future release.
|
||||
|
@ -1762,7 +1762,9 @@ t1 CREATE TABLE `t1` (
|
||||
`TIME_MS` decimal(22,3) NOT NULL DEFAULT '0.000',
|
||||
`STAGE` tinyint(2) NOT NULL DEFAULT '0',
|
||||
`MAX_STAGE` tinyint(2) NOT NULL DEFAULT '0',
|
||||
`PROGRESS` decimal(7,3) NOT NULL DEFAULT '0.000'
|
||||
`PROGRESS` decimal(7,3) NOT NULL DEFAULT '0.000',
|
||||
`MEMORY_USED` int(7) NOT NULL DEFAULT '0',
|
||||
`EXAMINED_ROWS` int(7) NOT NULL DEFAULT '0'
|
||||
) DEFAULT CHARSET=utf8
|
||||
drop table t1;
|
||||
create temporary table t1 like information_schema.processlist;
|
||||
@ -1780,7 +1782,9 @@ t1 CREATE TEMPORARY TABLE `t1` (
|
||||
`TIME_MS` decimal(22,3) NOT NULL DEFAULT '0.000',
|
||||
`STAGE` tinyint(2) NOT NULL DEFAULT '0',
|
||||
`MAX_STAGE` tinyint(2) NOT NULL DEFAULT '0',
|
||||
`PROGRESS` decimal(7,3) NOT NULL DEFAULT '0.000'
|
||||
`PROGRESS` decimal(7,3) NOT NULL DEFAULT '0.000',
|
||||
`MEMORY_USED` int(7) NOT NULL DEFAULT '0',
|
||||
`EXAMINED_ROWS` int(7) NOT NULL DEFAULT '0'
|
||||
) DEFAULT CHARSET=utf8
|
||||
drop table t1;
|
||||
create table t1 like information_schema.character_sets;
|
||||
|
3
mysql-test/r/create_delayed.result
Normal file
3
mysql-test/r/create_delayed.result
Normal file
@ -0,0 +1,3 @@
|
||||
drop table if exists t1;
|
||||
Starting test
|
||||
# All done
|
@ -191,6 +191,32 @@ t1 CREATE TABLE `t1` (
|
||||
`r` varchar(10) CHARACTER SET ucs2 NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #51876 : crash/memory underrun when loading data with ucs2
|
||||
# and reverse() function
|
||||
#
|
||||
# Problem # 1 (original report): wrong parsing of ucs2 data
|
||||
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp.txt';
|
||||
CREATE TABLE t1(a INT);
|
||||
LOAD DATA INFILE 'tmpp.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||
(@b) SET a=REVERSE(@b);
|
||||
# should return 2 zeroes (as the value is truncated)
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
0
|
||||
1
|
||||
DROP TABLE t1;
|
||||
# Problem # 2 : if you write and read ucs2 data to a file they're lost
|
||||
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp2.txt' CHARACTER SET ucs2;
|
||||
CREATE TABLE t1(a INT);
|
||||
LOAD DATA INFILE 'tmpp2.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||
(@b) SET a=REVERSE(@b);
|
||||
# should return 0 and 1 (10 reversed)
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
0
|
||||
1
|
||||
DROP TABLE t1;
|
||||
create table t2(f1 Char(30));
|
||||
insert into t2 values ("103000"), ("22720000"), ("3401200"), ("78000");
|
||||
select lpad(f1, 12, "-o-/") from t2;
|
||||
@ -1248,7 +1274,7 @@ SELECT CONVERT(QUOTE(CHAR(0xf5 using ucs2)), SIGNED);
|
||||
CONVERT(QUOTE(CHAR(0xf5 using ucs2)), SIGNED)
|
||||
0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: ''
|
||||
Warning 1292 Truncated incorrect INTEGER value: ''õ''
|
||||
End of 5.0 tests
|
||||
#
|
||||
# Start of 5.1 tests
|
||||
@ -4174,3 +4200,22 @@ DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
# Start of 5.6 tests
|
||||
#
|
||||
#
|
||||
# Bug#59145 valgrind warnings for uninitialized values in my_strtoll10_mb2
|
||||
#
|
||||
SET NAMES latin1;
|
||||
SELECT CONVERT(CHAR(NULL USING ucs2), UNSIGNED);
|
||||
CONVERT(CHAR(NULL USING ucs2), UNSIGNED)
|
||||
0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: ''
|
||||
DO IFNULL(CHAR(NULL USING ucs2), '');
|
||||
DO CAST(CONVERT('' USING ucs2) AS UNSIGNED);
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: ''
|
||||
#
|
||||
# End of 5.6 tests
|
||||
#
|
||||
|
@ -921,6 +921,182 @@ Warning 1292 Truncated incorrect DOUBLE value: '1.2xxx'
|
||||
select left('aaa','1');
|
||||
left('aaa','1')
|
||||
a
|
||||
#
|
||||
# Testing cs->cset->strtoll10()
|
||||
#
|
||||
SELECT @@character_set_connection;
|
||||
@@character_set_connection
|
||||
utf16
|
||||
SELECT CAST('1' AS UNSIGNED);
|
||||
CAST('1' AS UNSIGNED)
|
||||
1
|
||||
SELECT CAST('12' AS UNSIGNED);
|
||||
CAST('12' AS UNSIGNED)
|
||||
12
|
||||
SELECT CAST('123' AS UNSIGNED);
|
||||
CAST('123' AS UNSIGNED)
|
||||
123
|
||||
SELECT CAST('1234' AS UNSIGNED);
|
||||
CAST('1234' AS UNSIGNED)
|
||||
1234
|
||||
SELECT CAST('12345' AS UNSIGNED);
|
||||
CAST('12345' AS UNSIGNED)
|
||||
12345
|
||||
SELECT CAST('123456' AS UNSIGNED);
|
||||
CAST('123456' AS UNSIGNED)
|
||||
123456
|
||||
SELECT CAST('1234567' AS UNSIGNED);
|
||||
CAST('1234567' AS UNSIGNED)
|
||||
1234567
|
||||
SELECT CAST('12345678' AS UNSIGNED);
|
||||
CAST('12345678' AS UNSIGNED)
|
||||
12345678
|
||||
SELECT CAST('123456789' AS UNSIGNED);
|
||||
CAST('123456789' AS UNSIGNED)
|
||||
123456789
|
||||
SELECT CAST('1234567891' AS UNSIGNED);
|
||||
CAST('1234567891' AS UNSIGNED)
|
||||
1234567891
|
||||
SELECT CAST('12345678912' AS UNSIGNED);
|
||||
CAST('12345678912' AS UNSIGNED)
|
||||
12345678912
|
||||
SELECT CAST('123456789123' AS UNSIGNED);
|
||||
CAST('123456789123' AS UNSIGNED)
|
||||
123456789123
|
||||
SELECT CAST('1234567891234' AS UNSIGNED);
|
||||
CAST('1234567891234' AS UNSIGNED)
|
||||
1234567891234
|
||||
SELECT CAST('12345678912345' AS UNSIGNED);
|
||||
CAST('12345678912345' AS UNSIGNED)
|
||||
12345678912345
|
||||
SELECT CAST('123456789123456' AS UNSIGNED);
|
||||
CAST('123456789123456' AS UNSIGNED)
|
||||
123456789123456
|
||||
SELECT CAST('1234567891234567' AS UNSIGNED);
|
||||
CAST('1234567891234567' AS UNSIGNED)
|
||||
1234567891234567
|
||||
SELECT CAST('12345678912345678' AS UNSIGNED);
|
||||
CAST('12345678912345678' AS UNSIGNED)
|
||||
12345678912345678
|
||||
SELECT CAST('123456789123456789' AS UNSIGNED);
|
||||
CAST('123456789123456789' AS UNSIGNED)
|
||||
123456789123456789
|
||||
SELECT CAST('1234567891234567891' AS UNSIGNED);
|
||||
CAST('1234567891234567891' AS UNSIGNED)
|
||||
1234567891234567891
|
||||
SELECT CAST('12345678912345678912' AS UNSIGNED);
|
||||
CAST('12345678912345678912' AS UNSIGNED)
|
||||
12345678912345678912
|
||||
SELECT CAST('123456789123456789123' AS UNSIGNED);
|
||||
CAST('123456789123456789123' AS UNSIGNED)
|
||||
18446744073709551615
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789123456789123'
|
||||
SELECT CAST('1x' AS UNSIGNED);
|
||||
CAST('1x' AS UNSIGNED)
|
||||
1
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1x'
|
||||
SELECT CAST('12x' AS UNSIGNED);
|
||||
CAST('12x' AS UNSIGNED)
|
||||
12
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12x'
|
||||
SELECT CAST('123x' AS UNSIGNED);
|
||||
CAST('123x' AS UNSIGNED)
|
||||
123
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123x'
|
||||
SELECT CAST('1234x' AS UNSIGNED);
|
||||
CAST('1234x' AS UNSIGNED)
|
||||
1234
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234x'
|
||||
SELECT CAST('12345x' AS UNSIGNED);
|
||||
CAST('12345x' AS UNSIGNED)
|
||||
12345
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345x'
|
||||
SELECT CAST('123456x' AS UNSIGNED);
|
||||
CAST('123456x' AS UNSIGNED)
|
||||
123456
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456x'
|
||||
SELECT CAST('1234567x' AS UNSIGNED);
|
||||
CAST('1234567x' AS UNSIGNED)
|
||||
1234567
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234567x'
|
||||
SELECT CAST('12345678x' AS UNSIGNED);
|
||||
CAST('12345678x' AS UNSIGNED)
|
||||
12345678
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345678x'
|
||||
SELECT CAST('123456789x' AS UNSIGNED);
|
||||
CAST('123456789x' AS UNSIGNED)
|
||||
123456789
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789x'
|
||||
SELECT CAST('1234567891x' AS UNSIGNED);
|
||||
CAST('1234567891x' AS UNSIGNED)
|
||||
1234567891
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234567891x'
|
||||
SELECT CAST('12345678912x' AS UNSIGNED);
|
||||
CAST('12345678912x' AS UNSIGNED)
|
||||
12345678912
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345678912x'
|
||||
SELECT CAST('123456789123x' AS UNSIGNED);
|
||||
CAST('123456789123x' AS UNSIGNED)
|
||||
123456789123
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789123x'
|
||||
SELECT CAST('1234567891234x' AS UNSIGNED);
|
||||
CAST('1234567891234x' AS UNSIGNED)
|
||||
1234567891234
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234567891234x'
|
||||
SELECT CAST('12345678912345x' AS UNSIGNED);
|
||||
CAST('12345678912345x' AS UNSIGNED)
|
||||
12345678912345
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345678912345x'
|
||||
SELECT CAST('123456789123456x' AS UNSIGNED);
|
||||
CAST('123456789123456x' AS UNSIGNED)
|
||||
123456789123456
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789123456x'
|
||||
SELECT CAST('1234567891234567x' AS UNSIGNED);
|
||||
CAST('1234567891234567x' AS UNSIGNED)
|
||||
1234567891234567
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234567891234567x'
|
||||
SELECT CAST('12345678912345678x' AS UNSIGNED);
|
||||
CAST('12345678912345678x' AS UNSIGNED)
|
||||
12345678912345678
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345678912345678x'
|
||||
SELECT CAST('123456789123456789x' AS UNSIGNED);
|
||||
CAST('123456789123456789x' AS UNSIGNED)
|
||||
123456789123456789
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789123456789x'
|
||||
SELECT CAST('1234567891234567891x' AS UNSIGNED);
|
||||
CAST('1234567891234567891x' AS UNSIGNED)
|
||||
1234567891234567891
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234567891234567891x'
|
||||
SELECT CAST('12345678912345678912x' AS UNSIGNED);
|
||||
CAST('12345678912345678912x' AS UNSIGNED)
|
||||
12345678912345678912
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345678912345678912x'
|
||||
SELECT CAST('123456789123456789123x' AS UNSIGNED);
|
||||
CAST('123456789123456789123x' AS UNSIGNED)
|
||||
18446744073709551615
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789123456789123x'
|
||||
create table t1 (a int);
|
||||
insert into t1 values ('-1234.1e2');
|
||||
insert into t1 values ('-1234.1e2xxxx');
|
||||
@ -1140,6 +1316,14 @@ id l
|
||||
a 512
|
||||
Warnings:
|
||||
Warning 1260 Row 1 was cut by GROUP_CONCAT()
|
||||
SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l
|
||||
FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body
|
||||
UNION ALL
|
||||
SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1;
|
||||
id l
|
||||
a 512
|
||||
Warnings:
|
||||
Warning 1260 Row 1 was cut by GROUP_CONCAT()
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
1576
mysql-test/r/ctype_utf16le.result
Normal file
1576
mysql-test/r/ctype_utf16le.result
Normal file
File diff suppressed because it is too large
Load Diff
@ -919,6 +919,182 @@ Warning 1292 Truncated incorrect DOUBLE value: '1.2xxx'
|
||||
select left('aaa','1');
|
||||
left('aaa','1')
|
||||
a
|
||||
#
|
||||
# Testing cs->cset->strtoll10()
|
||||
#
|
||||
SELECT @@character_set_connection;
|
||||
@@character_set_connection
|
||||
utf32
|
||||
SELECT CAST('1' AS UNSIGNED);
|
||||
CAST('1' AS UNSIGNED)
|
||||
1
|
||||
SELECT CAST('12' AS UNSIGNED);
|
||||
CAST('12' AS UNSIGNED)
|
||||
12
|
||||
SELECT CAST('123' AS UNSIGNED);
|
||||
CAST('123' AS UNSIGNED)
|
||||
123
|
||||
SELECT CAST('1234' AS UNSIGNED);
|
||||
CAST('1234' AS UNSIGNED)
|
||||
1234
|
||||
SELECT CAST('12345' AS UNSIGNED);
|
||||
CAST('12345' AS UNSIGNED)
|
||||
12345
|
||||
SELECT CAST('123456' AS UNSIGNED);
|
||||
CAST('123456' AS UNSIGNED)
|
||||
123456
|
||||
SELECT CAST('1234567' AS UNSIGNED);
|
||||
CAST('1234567' AS UNSIGNED)
|
||||
1234567
|
||||
SELECT CAST('12345678' AS UNSIGNED);
|
||||
CAST('12345678' AS UNSIGNED)
|
||||
12345678
|
||||
SELECT CAST('123456789' AS UNSIGNED);
|
||||
CAST('123456789' AS UNSIGNED)
|
||||
123456789
|
||||
SELECT CAST('1234567891' AS UNSIGNED);
|
||||
CAST('1234567891' AS UNSIGNED)
|
||||
1234567891
|
||||
SELECT CAST('12345678912' AS UNSIGNED);
|
||||
CAST('12345678912' AS UNSIGNED)
|
||||
12345678912
|
||||
SELECT CAST('123456789123' AS UNSIGNED);
|
||||
CAST('123456789123' AS UNSIGNED)
|
||||
123456789123
|
||||
SELECT CAST('1234567891234' AS UNSIGNED);
|
||||
CAST('1234567891234' AS UNSIGNED)
|
||||
1234567891234
|
||||
SELECT CAST('12345678912345' AS UNSIGNED);
|
||||
CAST('12345678912345' AS UNSIGNED)
|
||||
12345678912345
|
||||
SELECT CAST('123456789123456' AS UNSIGNED);
|
||||
CAST('123456789123456' AS UNSIGNED)
|
||||
123456789123456
|
||||
SELECT CAST('1234567891234567' AS UNSIGNED);
|
||||
CAST('1234567891234567' AS UNSIGNED)
|
||||
1234567891234567
|
||||
SELECT CAST('12345678912345678' AS UNSIGNED);
|
||||
CAST('12345678912345678' AS UNSIGNED)
|
||||
12345678912345678
|
||||
SELECT CAST('123456789123456789' AS UNSIGNED);
|
||||
CAST('123456789123456789' AS UNSIGNED)
|
||||
123456789123456789
|
||||
SELECT CAST('1234567891234567891' AS UNSIGNED);
|
||||
CAST('1234567891234567891' AS UNSIGNED)
|
||||
1234567891234567891
|
||||
SELECT CAST('12345678912345678912' AS UNSIGNED);
|
||||
CAST('12345678912345678912' AS UNSIGNED)
|
||||
12345678912345678912
|
||||
SELECT CAST('123456789123456789123' AS UNSIGNED);
|
||||
CAST('123456789123456789123' AS UNSIGNED)
|
||||
18446744073709551615
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789123456789123'
|
||||
SELECT CAST('1x' AS UNSIGNED);
|
||||
CAST('1x' AS UNSIGNED)
|
||||
1
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1x'
|
||||
SELECT CAST('12x' AS UNSIGNED);
|
||||
CAST('12x' AS UNSIGNED)
|
||||
12
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12x'
|
||||
SELECT CAST('123x' AS UNSIGNED);
|
||||
CAST('123x' AS UNSIGNED)
|
||||
123
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123x'
|
||||
SELECT CAST('1234x' AS UNSIGNED);
|
||||
CAST('1234x' AS UNSIGNED)
|
||||
1234
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234x'
|
||||
SELECT CAST('12345x' AS UNSIGNED);
|
||||
CAST('12345x' AS UNSIGNED)
|
||||
12345
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345x'
|
||||
SELECT CAST('123456x' AS UNSIGNED);
|
||||
CAST('123456x' AS UNSIGNED)
|
||||
123456
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456x'
|
||||
SELECT CAST('1234567x' AS UNSIGNED);
|
||||
CAST('1234567x' AS UNSIGNED)
|
||||
1234567
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234567x'
|
||||
SELECT CAST('12345678x' AS UNSIGNED);
|
||||
CAST('12345678x' AS UNSIGNED)
|
||||
12345678
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345678x'
|
||||
SELECT CAST('123456789x' AS UNSIGNED);
|
||||
CAST('123456789x' AS UNSIGNED)
|
||||
123456789
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789x'
|
||||
SELECT CAST('1234567891x' AS UNSIGNED);
|
||||
CAST('1234567891x' AS UNSIGNED)
|
||||
1234567891
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234567891x'
|
||||
SELECT CAST('12345678912x' AS UNSIGNED);
|
||||
CAST('12345678912x' AS UNSIGNED)
|
||||
12345678912
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345678912x'
|
||||
SELECT CAST('123456789123x' AS UNSIGNED);
|
||||
CAST('123456789123x' AS UNSIGNED)
|
||||
123456789123
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789123x'
|
||||
SELECT CAST('1234567891234x' AS UNSIGNED);
|
||||
CAST('1234567891234x' AS UNSIGNED)
|
||||
1234567891234
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234567891234x'
|
||||
SELECT CAST('12345678912345x' AS UNSIGNED);
|
||||
CAST('12345678912345x' AS UNSIGNED)
|
||||
12345678912345
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345678912345x'
|
||||
SELECT CAST('123456789123456x' AS UNSIGNED);
|
||||
CAST('123456789123456x' AS UNSIGNED)
|
||||
123456789123456
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789123456x'
|
||||
SELECT CAST('1234567891234567x' AS UNSIGNED);
|
||||
CAST('1234567891234567x' AS UNSIGNED)
|
||||
1234567891234567
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234567891234567x'
|
||||
SELECT CAST('12345678912345678x' AS UNSIGNED);
|
||||
CAST('12345678912345678x' AS UNSIGNED)
|
||||
12345678912345678
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345678912345678x'
|
||||
SELECT CAST('123456789123456789x' AS UNSIGNED);
|
||||
CAST('123456789123456789x' AS UNSIGNED)
|
||||
123456789123456789
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789123456789x'
|
||||
SELECT CAST('1234567891234567891x' AS UNSIGNED);
|
||||
CAST('1234567891234567891x' AS UNSIGNED)
|
||||
1234567891234567891
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '1234567891234567891x'
|
||||
SELECT CAST('12345678912345678912x' AS UNSIGNED);
|
||||
CAST('12345678912345678912x' AS UNSIGNED)
|
||||
12345678912345678912
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '12345678912345678912x'
|
||||
SELECT CAST('123456789123456789123x' AS UNSIGNED);
|
||||
CAST('123456789123456789123x' AS UNSIGNED)
|
||||
18446744073709551615
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '123456789123456789123x'
|
||||
create table t1 (a int);
|
||||
insert into t1 values ('-1234.1e2');
|
||||
insert into t1 values ('-1234.1e2xxxx');
|
||||
@ -1126,6 +1302,20 @@ my_col
|
||||
00
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#32859 Character sets: no warning with non-fitting chariot wheel
|
||||
#
|
||||
CREATE TABLE t1 (utf32 CHAR(5) CHARACTER SET utf32, latin1 CHAR(5) CHARACTER SET latin1);
|
||||
INSERT INTO t1 (utf32) VALUES (0xc581);
|
||||
UPDATE t1 SET latin1 = utf32;
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\x00\x00\xC5\x81' for column 'latin1' at row 1
|
||||
DELETE FROM t1;
|
||||
INSERT INTO t1 (utf32) VALUES (0x100cc);
|
||||
UPDATE t1 SET latin1 = utf32;
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\x00\x01\x00\xCC' for column 'latin1' at row 1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#55912 FORMAT with locale set fails for numbers < 1000
|
||||
#
|
||||
SET collation_connection=utf32_general_ci;
|
||||
|
@ -5055,6 +5055,14 @@ id l
|
||||
a 1024
|
||||
Warnings:
|
||||
Warning 1260 Row 2 was cut by GROUP_CONCAT()
|
||||
SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l
|
||||
FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body
|
||||
UNION ALL
|
||||
SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1;
|
||||
id l
|
||||
a 1024
|
||||
Warnings:
|
||||
Warning 1260 Row 2 was cut by GROUP_CONCAT()
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -4,5 +4,5 @@ insert t1 values (addtime('9999-12-31 23:59:59', '00:00:01')),
|
||||
select * from t1;
|
||||
d
|
||||
NULL
|
||||
NULL
|
||||
0000-00-00 00:00:00
|
||||
drop table t1;
|
||||
|
@ -1468,14 +1468,14 @@ WHERE (t2.a ,t1.b) NOT IN (SELECT DISTINCT c,a FROM t3 t);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
2 DEPENDENT SUBQUERY t eq_ref PRIMARY,c PRIMARY 4 func 1 Using where
|
||||
2 DEPENDENT SUBQUERY t unique_subquery PRIMARY,c PRIMARY 4 func 1 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM t1 , t2
|
||||
WHERE (t2.a ,t1.b) NOT IN (SELECT DISTINCT c,a FROM (SELECT * FROM t3) t);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY,c PRIMARY 4 func 1 Using where
|
||||
2 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,c PRIMARY 4 func 1 Using where
|
||||
SELECT * FROM t1 , t2
|
||||
WHERE (t2.a ,t1.b) NOT IN (SELECT DISTINCT c,a FROM (SELECT * FROM t3) t);
|
||||
b a
|
||||
@ -2115,6 +2115,55 @@ a
|
||||
4
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MDEV-3873: Wrong result (extra rows) with NOT IN and
|
||||
# a subquery from a MERGE view
|
||||
#
|
||||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (4),(7),(0);
|
||||
CREATE TABLE t2 (b INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
CREATE TABLE t3 (c INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES (4),(6),(3);
|
||||
CREATE TABLE t4 (d INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t4 VALUES (4),(5),(3);
|
||||
CREATE TABLE tv (e INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO tv VALUES (1),(3);
|
||||
CREATE ALGORITHM=TEMPTABLE VIEW v_temptable AS SELECT * FROM tv;
|
||||
CREATE ALGORITHM=MERGE VIEW v_merge AS SELECT * FROM tv;
|
||||
SELECT * FROM t1, t2
|
||||
WHERE a NOT IN ( SELECT e FROM t3 LEFT JOIN v_temptable ON (c = e) WHERE c <> b ) AND a < b;
|
||||
a b
|
||||
SELECT * FROM t1, t2
|
||||
WHERE a NOT IN ( SELECT e FROM t3 LEFT JOIN v_merge ON (c = e) WHERE c <> b ) AND a < b;
|
||||
a b
|
||||
SELECT * FROM t1, t2
|
||||
WHERE a NOT IN ( SELECT e FROM t3 LEFT JOIN (SELECT * FROM tv) as derived ON (c = e) WHERE c <> b ) AND a < b;
|
||||
a b
|
||||
drop view v_temptable, v_merge;
|
||||
drop table t1,t2,t3,t4,tv;
|
||||
#
|
||||
# MDEV-3912: Wrong result (extra rows) with FROM subquery inside
|
||||
# ALL subquery, LEFT JOIN, derived_merge.
|
||||
# (duplicate of MDEV-3873 (above))
|
||||
#
|
||||
SET @save3912_optimizer_switch=@@optimizer_switch;
|
||||
SET optimizer_switch = 'derived_merge=on,in_to_exists=on';
|
||||
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (4),(8);
|
||||
CREATE TABLE t2 (b INT) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (7),(0);
|
||||
CREATE TABLE t3 (c INT, d INT NOT NULL) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES (0,4),(8,6);
|
||||
SELECT * FROM t1
|
||||
WHERE a >= ALL (
|
||||
SELECT d FROM t2 LEFT JOIN ( SELECT * FROM t3 ) AS alias ON ( c = b )
|
||||
WHERE b >= a
|
||||
);
|
||||
a
|
||||
8
|
||||
set optimizer_switch=@save3912_optimizer_switch;
|
||||
drop table t1, t2, t3;
|
||||
#
|
||||
# end of 5.3 tests
|
||||
#
|
||||
set optimizer_switch=@exit_optimizer_switch;
|
||||
|
@ -847,6 +847,38 @@ time(f1)
|
||||
00:00:00.000200
|
||||
00:00:00.000300
|
||||
drop table t1;
|
||||
create table t1(i int, g int);
|
||||
insert into t1 values (null, 1), (0, 2);
|
||||
select distinct i from t1 group by g;
|
||||
i
|
||||
NULL
|
||||
0
|
||||
drop table t1;
|
||||
create table t1(i int, g blob);
|
||||
insert into t1 values (null, 1), (0, 2);
|
||||
select distinct i from t1 group by g;
|
||||
i
|
||||
NULL
|
||||
0
|
||||
drop table t1;
|
||||
create table t1 (a int) engine=myisam;
|
||||
insert into t1 values (0),(7);
|
||||
create table t2 (b int) engine=myisam;
|
||||
insert into t2 values (7),(0),(3);
|
||||
create algorithm=temptable view v as
|
||||
select distinct (select max(a) from t1 where alias.b = a) as field1 from t2 as alias group by field1;
|
||||
select * from v;
|
||||
field1
|
||||
NULL
|
||||
0
|
||||
7
|
||||
select distinct (select max(a) from t1 where alias.b = a) as field1 from t2 as alias group by field1;
|
||||
field1
|
||||
NULL
|
||||
0
|
||||
7
|
||||
drop view v;
|
||||
drop table t1, t2;
|
||||
#
|
||||
# Bug #11744875: 4082: integer lengths cause truncation with distinct concat and innodb
|
||||
#
|
||||
|
@ -1088,7 +1088,7 @@ column_list(column_add(column_create(1, 1), 1, null))
|
||||
|
||||
select column_list(column_add(column_create(1, 1), 1, ""));
|
||||
column_list(column_add(column_create(1, 1), 1, ""))
|
||||
1
|
||||
`1`
|
||||
select hex(column_add("", 1, 1));
|
||||
hex(column_add("", 1, 1))
|
||||
00010001000002
|
||||
@ -1133,10 +1133,10 @@ column_exists(column_create(1, 1212 as integer, 2, 1212 as integer), 4)
|
||||
# column list
|
||||
select column_list(column_create(1, 1212 as integer, 2, 1212 as integer));
|
||||
column_list(column_create(1, 1212 as integer, 2, 1212 as integer))
|
||||
1,2
|
||||
`1`,`2`
|
||||
select column_list(column_create(1, 1212 as integer));
|
||||
column_list(column_create(1, 1212 as integer))
|
||||
1
|
||||
`1`
|
||||
select column_list(column_create(1, NULL as integer));
|
||||
column_list(column_create(1, NULL as integer))
|
||||
|
||||
@ -1218,35 +1218,35 @@ sum(column_get(str, 1 as int))
|
||||
11
|
||||
select id, column_list(str) from t1 where id= 5;
|
||||
id column_list(str)
|
||||
5 1,2,3,10
|
||||
5 `1`,`2`,`3`,`10`
|
||||
update t1 set str=column_delete(str, 3, 4, 2) where id= 5;
|
||||
select id, length(str), column_list(str), column_get(str, 1 as int), column_get(str, 2 as char), column_get(str, 3 as int) from t1;
|
||||
id length(str) column_list(str) column_get(str, 1 as int) column_get(str, 2 as char) column_get(str, 3 as int)
|
||||
1 12 1,2 1 a NULL
|
||||
2 12 1,2 2 a NULL
|
||||
3 12 2,3 NULL c 100
|
||||
4 16 1,2,3 5 c 100
|
||||
5 15 1,10 6 NULL NULL
|
||||
6 21 2,3,10 NULL c 100
|
||||
1 12 `1`,`2` 1 a NULL
|
||||
2 12 `1`,`2` 2 a NULL
|
||||
3 12 `2`,`3` NULL c 100
|
||||
4 16 `1`,`2`,`3` 5 c 100
|
||||
5 15 `1`,`10` 6 NULL NULL
|
||||
6 21 `2`,`3`,`10` NULL c 100
|
||||
update t1 set str=column_add(str, 4, 45 as char, 2, 'c') where id= 5;
|
||||
select id, length(str), column_list(str), column_get(str, 1 as int), column_get(str, 2 as char), column_get(str, 3 as int) from t1 where id = 5;
|
||||
id length(str) column_list(str) column_get(str, 1 as int) column_get(str, 2 as char) column_get(str, 3 as int)
|
||||
5 26 1,2,4,10 6 c NULL
|
||||
5 26 `1`,`2`,`4`,`10` 6 c NULL
|
||||
select id, length(str), column_list(str), column_exists(str, 4) from t1;
|
||||
id length(str) column_list(str) column_exists(str, 4)
|
||||
1 12 1,2 0
|
||||
2 12 1,2 0
|
||||
3 12 2,3 0
|
||||
4 16 1,2,3 0
|
||||
5 26 1,2,4,10 1
|
||||
6 21 2,3,10 0
|
||||
1 12 `1`,`2` 0
|
||||
2 12 `1`,`2` 0
|
||||
3 12 `2`,`3` 0
|
||||
4 16 `1`,`2`,`3` 0
|
||||
5 26 `1`,`2`,`4`,`10` 1
|
||||
6 21 `2`,`3`,`10` 0
|
||||
select sum(column_get(str, 1 as int)), column_list(str) from t1 group by 2;
|
||||
sum(column_get(str, 1 as int)) column_list(str)
|
||||
3 1,2
|
||||
5 1,2,3
|
||||
6 1,2,4,10
|
||||
NULL 2,3
|
||||
NULL 2,3,10
|
||||
3 `1`,`2`
|
||||
5 `1`,`2`,`3`
|
||||
6 `1`,`2`,`4`,`10`
|
||||
NULL `2`,`3`
|
||||
NULL `2`,`3`,`10`
|
||||
select id, hex(str) from t1;
|
||||
id hex(str)
|
||||
1 00020001000002000B020861
|
||||
@ -1282,11 +1282,11 @@ id
|
||||
5
|
||||
select id, column_list(str), length(str) from t1 where id=5;
|
||||
id column_list(str) length(str)
|
||||
5 1,2,4,5,10 100048
|
||||
5 `1`,`2`,`4`,`5`,`10` 100048
|
||||
update t1 set str=column_delete(str, 5) where id=5;
|
||||
select id, column_list(str), length(str) from t1 where id=5;
|
||||
id column_list(str) length(str)
|
||||
5 1,2,4,10 34
|
||||
5 `1`,`2`,`4`,`10` 34
|
||||
drop table t1;
|
||||
#
|
||||
# LP#778905: Assertion `value->year <= 9999' failed in
|
||||
@ -1306,7 +1306,7 @@ INSERT INTO t1 SET f1 = COLUMN_CREATE( 2 , 'cde' );
|
||||
SELECT HEX(COLUMN_ADD(f1, 1, 'abc')), COLUMN_LIST(f1) FROM t1;
|
||||
HEX(COLUMN_ADD(f1, 1, 'abc')) COLUMN_LIST(f1)
|
||||
NULL NULL
|
||||
0002000100030200230861626308636465 2
|
||||
0002000100030200230861626308636465 `2`
|
||||
SELECT COLUMN_ADD(f1, 1, 'abc'), COLUMN_LIST(f1) FROM t1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
@ -1335,3 +1335,305 @@ hex(COLUMN_CREATE(0, COLUMN_GET(COLUMN_CREATE(0, 0.0 as decimal), 0 as decimal))
|
||||
select hex(COLUMN_CREATE(0, 0.0 as decimal));
|
||||
hex(COLUMN_CREATE(0, 0.0 as decimal))
|
||||
000100000004
|
||||
#
|
||||
# test of symbolic names
|
||||
#
|
||||
# creation test (names)
|
||||
set names utf8;
|
||||
select hex(column_create("адын", 1212));
|
||||
hex(column_create("адын", 1212))
|
||||
040100080000000000D0B0D0B4D18BD0BD7809
|
||||
select hex(column_create("1212", 1212));
|
||||
hex(column_create("1212", 1212))
|
||||
040100040000000000313231327809
|
||||
select hex(column_create(1212, 2, "www", 3));
|
||||
hex(column_create(1212, 2, "www", 3))
|
||||
04020007000000000003001000777777313231320604
|
||||
select hex(column_create("1212", 2, "www", 3));
|
||||
hex(column_create("1212", 2, "www", 3))
|
||||
04020007000000000003001000777777313231320604
|
||||
select hex(column_create("1212", 2, 3, 3));
|
||||
hex(column_create("1212", 2, 3, 3))
|
||||
0402000500000000000100100033313231320604
|
||||
select hex(column_create("1212", 2, "адын", 1, 3, 3));
|
||||
hex(column_create("1212", 2, "адын", 1, 3, 3))
|
||||
0403000D000000000001001000050020003331323132D0B0D0B4D18BD0BD060402
|
||||
set names default;
|
||||
# fetching column test (names)
|
||||
set names utf8;
|
||||
select column_get(column_create("адын", 1212), "адын" as int);
|
||||
column_get(column_create("адын", 1212), "адын" as int)
|
||||
1212
|
||||
select column_get(column_create("1212", 2, "адын", 1, 3, 3), "адын" as int);
|
||||
column_get(column_create("1212", 2, "адын", 1, 3, 3), "адын" as int)
|
||||
1
|
||||
select column_get(column_create("1212", 2, "адын", 1, 3, 3), 1212 as int);
|
||||
column_get(column_create("1212", 2, "адын", 1, 3, 3), 1212 as int)
|
||||
2
|
||||
select column_get(column_create("1212", 2, "адын", 1, 3, 3), "3" as int);
|
||||
column_get(column_create("1212", 2, "адын", 1, 3, 3), "3" as int)
|
||||
3
|
||||
select column_get(column_create("1212", 2, "адын", 1, 3, 3), 3 as int);
|
||||
column_get(column_create("1212", 2, "адын", 1, 3, 3), 3 as int)
|
||||
3
|
||||
select column_get(column_create("1212", 2, "адын", 1, 3, 3), 4 as int);
|
||||
column_get(column_create("1212", 2, "адын", 1, 3, 3), 4 as int)
|
||||
NULL
|
||||
select column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int);
|
||||
column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int)
|
||||
NULL
|
||||
set names default;
|
||||
# column existance test (names)
|
||||
set names utf8;
|
||||
select column_exists(column_create("адын", 1212), "адын");
|
||||
column_exists(column_create("адын", 1212), "адын")
|
||||
1
|
||||
select column_exists(column_create("адын", 1212), "aады");
|
||||
column_exists(column_create("адын", 1212), "aады")
|
||||
0
|
||||
select column_exists(column_create("1212", 2, "адын", 1, 3, 3), "адын");
|
||||
column_exists(column_create("1212", 2, "адын", 1, 3, 3), "адын")
|
||||
1
|
||||
select column_exists(column_create("1212", 2, "адын", 1, 3, 3), 1212);
|
||||
column_exists(column_create("1212", 2, "адын", 1, 3, 3), 1212)
|
||||
1
|
||||
select column_exists(column_create("1212", 2, "адын", 1, 3, 3), "3");
|
||||
column_exists(column_create("1212", 2, "адын", 1, 3, 3), "3")
|
||||
1
|
||||
select column_exists(column_create("1212", 2, "адын", 1, 3, 3), 3);
|
||||
column_exists(column_create("1212", 2, "адын", 1, 3, 3), 3)
|
||||
1
|
||||
select column_exists(column_create("1212", 2, "адын", 1, 3, 3), 4);
|
||||
column_exists(column_create("1212", 2, "адын", 1, 3, 3), 4)
|
||||
0
|
||||
select column_exists(column_create("1212", 2, "адын", 1, 3, 3), "4");
|
||||
column_exists(column_create("1212", 2, "адын", 1, 3, 3), "4")
|
||||
0
|
||||
set names default;
|
||||
# column changing test (names)
|
||||
select hex(column_add(column_create(1, "AAA"), "b", "BBB"));
|
||||
hex(column_add(column_create(1, "AAA"), "b", "BBB"))
|
||||
0402000200000003000100430031620841414108424242
|
||||
select hex(column_add(column_create("1", "AAA"), "b", "BBB"));
|
||||
hex(column_add(column_create("1", "AAA"), "b", "BBB"))
|
||||
0402000200000003000100430031620841414108424242
|
||||
select column_get(column_add(column_create(1, "AAA"), "b", "BBB"), 1 as char);
|
||||
column_get(column_add(column_create(1, "AAA"), "b", "BBB"), 1 as char)
|
||||
AAA
|
||||
select column_get(column_add(column_create(1, "AAA"), "b", "BBB"), "b" as char);
|
||||
column_get(column_add(column_create(1, "AAA"), "b", "BBB"), "b" as char)
|
||||
BBB
|
||||
select hex(column_add(column_create("a", "AAA"), 1, "BBB"));
|
||||
hex(column_add(column_create("a", "AAA"), 1, "BBB"))
|
||||
0402000200000003000100430031610842424208414141
|
||||
select hex(column_add(column_create("a", "AAA"), "1", "BBB"));
|
||||
hex(column_add(column_create("a", "AAA"), "1", "BBB"))
|
||||
0402000200000003000100430031610842424208414141
|
||||
select hex(column_add(column_create("a", 1212 as integer), "b", "1212" as integer));
|
||||
hex(column_add(column_create("a", 1212 as integer), "b", "1212" as integer))
|
||||
04020002000000000001002000616278097809
|
||||
select hex(column_add(column_create("a", 1212 as integer), "a", "1212" as integer));
|
||||
hex(column_add(column_create("a", 1212 as integer), "a", "1212" as integer))
|
||||
040100010000000000617809
|
||||
select hex(column_add(column_create("a", 1212 as integer), "a", NULL as integer));
|
||||
hex(column_add(column_create("a", 1212 as integer), "a", NULL as integer))
|
||||
0400000000
|
||||
select hex(column_add(column_create("a", 1212 as integer), "b", NULL as integer));
|
||||
hex(column_add(column_create("a", 1212 as integer), "b", NULL as integer))
|
||||
040100010000000000617809
|
||||
select hex(column_add(column_create("a", 1212 as integer), "b", 1212 as integer, "a", 11 as integer));
|
||||
hex(column_add(column_create("a", 1212 as integer), "b", 1212 as integer, "a", 11 as integer))
|
||||
040200020000000000010010006162167809
|
||||
select column_get(column_add(column_create("a", 1212 as integer), "b", 1212 as integer, "a", 11 as integer), "a" as integer);
|
||||
column_get(column_add(column_create("a", 1212 as integer), "b", 1212 as integer, "a", 11 as integer), "a" as integer)
|
||||
11
|
||||
select column_get(column_add(column_create("a", 1212 as integer), "b", 1212 as integer, "a", 11 as integer), "b" as integer);
|
||||
column_get(column_add(column_create("a", 1212 as integer), "b", 1212 as integer, "a", 11 as integer), "b" as integer)
|
||||
1212
|
||||
select hex(column_add(column_create("a", 1212 as integer), "a", 1212 as integer, "b", 11 as integer));
|
||||
hex(column_add(column_create("a", 1212 as integer), "a", 1212 as integer, "b", 11 as integer))
|
||||
040200020000000000010020006162780916
|
||||
select hex(column_add(column_create("a", NULL as integer), "a", 1212 as integer, "b", 11 as integer));
|
||||
hex(column_add(column_create("a", NULL as integer), "a", 1212 as integer, "b", 11 as integer))
|
||||
040200020000000000010020006162780916
|
||||
select hex(column_add(column_create("a", 1212 as integer, "b", 1212 as integer), "a", 11 as integer));
|
||||
hex(column_add(column_create("a", 1212 as integer, "b", 1212 as integer), "a", 11 as integer))
|
||||
040200020000000000010010006162167809
|
||||
select hex(column_add(column_create("a", 1), "a", null));
|
||||
hex(column_add(column_create("a", 1), "a", null))
|
||||
0400000000
|
||||
select column_list(column_add(column_create("a", 1), "a", null));
|
||||
column_list(column_add(column_create("a", 1), "a", null))
|
||||
|
||||
select column_list(column_add(column_create("a", 1), "a", ""));
|
||||
column_list(column_add(column_create("a", 1), "a", ""))
|
||||
`a`
|
||||
select hex(column_add("", "a", 1));
|
||||
hex(column_add("", "a", 1))
|
||||
0401000100000000006102
|
||||
# column delete (names)
|
||||
select hex(column_delete(column_create("a", 1212 as integer, "b", 1212 as integer), "a"));
|
||||
hex(column_delete(column_create("a", 1212 as integer, "b", 1212 as integer), "a"))
|
||||
040100010000000000627809
|
||||
select hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "b"));
|
||||
hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "b"))
|
||||
0402000200000000000100100061630206
|
||||
select hex(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer));
|
||||
hex(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer))
|
||||
0403000300000000000100100002002000616263020406
|
||||
select hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "c"));
|
||||
hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "c"))
|
||||
0402000200000000000100100061620204
|
||||
select hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "d"));
|
||||
hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "d"))
|
||||
0403000300000000000100100002002000616263020406
|
||||
select hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "b", "a"));
|
||||
hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "b", "a"))
|
||||
0401000100000000006306
|
||||
select hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "b", "c"));
|
||||
hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "b", "c"))
|
||||
0401000100000000006102
|
||||
select hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "a", "b", "c"));
|
||||
hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "a", "b", "c"))
|
||||
0400000000
|
||||
select hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "a", "b", "c", "e"));
|
||||
hex(column_delete(column_create("a", 1 as integer, "b", 2 as integer, "c", 3 as integer), "a", "b", "c", "e"))
|
||||
0400000000
|
||||
select hex(column_delete(column_create("a", 1), "a"));
|
||||
hex(column_delete(column_create("a", 1), "a"))
|
||||
0400000000
|
||||
select hex(column_delete("", "a"));
|
||||
hex(column_delete("", "a"))
|
||||
|
||||
#
|
||||
# MDEV-458 DNAMES: Server crashes on using an unquoted string
|
||||
# as a dynamic column name
|
||||
#
|
||||
select COLUMN_CREATE(color, "black");
|
||||
ERROR 42S22: Unknown column 'color' in 'field list'
|
||||
#
|
||||
# MDEV-489 Assertion `offset < 0x1f' failed in
|
||||
# type_and_offset_store on COLUMN_ADD
|
||||
#
|
||||
CREATE TABLE t1 (f1 tinyblob);
|
||||
INSERT INTO t1 VALUES (COLUMN_CREATE('col1', REPEAT('a',30)));
|
||||
select column_check(f1) from t1;
|
||||
column_check(f1)
|
||||
1
|
||||
UPDATE t1 SET f1 = COLUMN_ADD( f1, REPEAT('b',211), 'val2' );
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f1' at row 1
|
||||
select column_check(f1) from t1;
|
||||
column_check(f1)
|
||||
0
|
||||
UPDATE t1 SET f1 = COLUMN_ADD( f1, REPEAT('c',211), 'val3' );
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f1' at row 1
|
||||
select column_check(f1) from t1;
|
||||
column_check(f1)
|
||||
0
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-490/MDEV-491 null as arguments
|
||||
#
|
||||
SELECT COLUMN_GET( COLUMN_CREATE( 'col', 'val' ), NULL AS CHAR );
|
||||
COLUMN_GET( COLUMN_CREATE( 'col', 'val' ), NULL AS CHAR )
|
||||
NULL
|
||||
SELECT COLUMN_GET( NULL, 'col' as char );
|
||||
COLUMN_GET( NULL, 'col' as char )
|
||||
NULL
|
||||
SELECT COLUMN_EXISTS( COLUMN_CREATE( 'col', 'val' ), NULL);
|
||||
COLUMN_EXISTS( COLUMN_CREATE( 'col', 'val' ), NULL)
|
||||
NULL
|
||||
SELECT COLUMN_EXISTS( NULL, 'col');
|
||||
COLUMN_EXISTS( NULL, 'col')
|
||||
NULL
|
||||
SELECT COLUMN_CREATE( NULL, 'val' );
|
||||
COLUMN_CREATE( NULL, 'val' )
|
||||
NULL
|
||||
SELECT COLUMN_ADD( NULL, 'val', 'col');
|
||||
COLUMN_ADD( NULL, 'val', 'col')
|
||||
NULL
|
||||
#
|
||||
# MDEV-488: Assertion `column_name->length < 255' failed on a
|
||||
# column name with length 255 (precisely)
|
||||
#
|
||||
SELECT hex(COLUMN_CREATE(REPEAT('a',255),1));
|
||||
hex(COLUMN_CREATE(REPEAT('a',255),1))
|
||||
040100FF000000000061616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616102
|
||||
SELECT hex(COLUMN_CREATE(REPEAT('a',65536),1));
|
||||
ERROR 22007: Illegal value used as argument of dynamic column function
|
||||
#
|
||||
# JSON conversion
|
||||
#
|
||||
select column_json(column_create("int", -1212 as int, "uint", 12334 as unsigned int, "decimal", "23.344" as decimal, "double", 1.23444e50 as double, "string", 'gdgd\\dhdjh"dhdhd' as char, "time", "0:45:49.000001" AS time, "datetime", "2011-04-05 0:45:49.000001" AS datetime, "date", "2011-04-05" AS date));
|
||||
column_json(column_create("int", -1212 as int, "uint", 12334 as unsigned int, "decimal", "23.344" as decimal, "double", 1.23444e50 as double, "string", 'gdgd\\dhdjh"dhdhd' as char, "time", "0:45:49.000001" AS time, "datetime", "2011-04-05 0:45:49.000001"
|
||||
{"int":-1212,"date":"2011-04-05","time":"00:45:49.000001","uint":12334,"double":"1.2e50","string":"gdgd\\dhdjh\"dhdhd","decimal":23.344,"datetime":"2011-04-05 00:45:49.000001"}
|
||||
select column_json(column_create(1, -1212 as int, 2, 12334 as unsigned int, 3, "23.344" as decimal, 4, 1.23444e50 as double, 5, 'gdgd\\dhdjh"dhdhd' as char, 6, "0:45:49.000001" AS time, 7, "2011-04-05 0:45:49.000001" AS datetime, 8, "2011-04-05" AS date));
|
||||
column_json(column_create(1, -1212 as int, 2, 12334 as unsigned int, 3, "23.344" as decimal, 4, 1.23444e50 as double, 5, 'gdgd\\dhdjh"dhdhd' as char, 6, "0:45:49.000001" AS time, 7, "2011-04-05 0:45:49.000001" AS datetime, 8, "2011-04-05" AS date))
|
||||
{"1":-1212,"2":12334,"3":23.344,"4":"1.2e50","5":"gdgd\\dhdjh\"dhdhd","6":"00:45:49.000001","7":"2011-04-05 00:45:49.000001","8":"2011-04-05"}
|
||||
#
|
||||
# CHECK test
|
||||
#
|
||||
SELECT COLUMN_CHECK(COLUMN_CREATE(1,'a'));
|
||||
COLUMN_CHECK(COLUMN_CREATE(1,'a'))
|
||||
1
|
||||
SELECT COLUMN_CHECK('abracadabra');
|
||||
COLUMN_CHECK('abracadabra')
|
||||
0
|
||||
SELECT COLUMN_CHECK('');
|
||||
COLUMN_CHECK('')
|
||||
1
|
||||
SELECT COLUMN_CHECK(NULL);
|
||||
COLUMN_CHECK(NULL)
|
||||
NULL
|
||||
#
|
||||
# escaping check
|
||||
#
|
||||
select column_json(column_create("string", "'\"/\\`.,whatever")),hex(column_create("string", "'\"/\\`.,whatever"));
|
||||
column_json(column_create("string", "'\"/\\`.,whatever")) hex(column_create("string", "'\"/\\`.,whatever"))
|
||||
{"string":"'\"/\\`.,whatever"} 040100060000000300737472696E670827222F5C602E2C7768617465766572
|
||||
#
|
||||
# embedding test
|
||||
#
|
||||
select column_json(column_create("val", "val", "emb", column_create("val2", "val2")));
|
||||
column_json(column_create("val", "val", "emb", column_create("val2", "val2")))
|
||||
{"emb":{"val2":"val2"},"val":"val"}
|
||||
select column_json(column_create(1, "val", 2, column_create(3, "val2")));
|
||||
column_json(column_create(1, "val", 2, column_create(3, "val2")))
|
||||
{"1":"val","2":{"3":"val2"}}
|
||||
#
|
||||
# Time encoding
|
||||
#
|
||||
select hex(column_create("t", "800:46:06.23434" AS time)) as hex,
|
||||
column_json(column_create("t", "800:46:06.23434" AS time)) as json;
|
||||
hex json
|
||||
04010001000000070074649363B82003 {"t":"800:46:06.234340"}
|
||||
select hex(column_create(1, "800:46:06.23434" AS time)) as hex,
|
||||
column_json(column_create(1, "800:46:06.23434" AS time)) as json;
|
||||
hex json
|
||||
000100010007649363B82003 {"1":"800:46:06.234340"}
|
||||
select hex(column_create("t", "800:46:06" AS time)) as hex,
|
||||
column_json(column_create("t", "800:46:06" AS time)) as json;
|
||||
hex json
|
||||
04010001000000070074860B32 {"t":"800:46:06"}
|
||||
select hex(column_create(1, "800:46:06" AS time)) as hex,
|
||||
column_json(column_create(1, "800:46:06" AS time)) as json;
|
||||
hex json
|
||||
000100010007000060B82003 {"1":"800:46:06"}
|
||||
select hex(column_create("t", "2012-12-21 10:46:06.23434" AS datetime)) as hex,
|
||||
column_json(column_create("t", "2012-12-21 10:46:06.23434" AS datetime)) as json;
|
||||
hex json
|
||||
0401000100000005007495B90F649363B80A00 {"t":"2012-12-21 10:46:06.234340"}
|
||||
select hex(column_create(1, "2012-12-21 10:46:06.23434" AS datetime)) as hex,
|
||||
column_json(column_create(1, "2012-12-21 10:46:06.23434" AS datetime)) as json;
|
||||
hex json
|
||||
00010001000595B90F649363B80A00 {"1":"2012-12-21 10:46:06.234340"}
|
||||
select hex(column_create("t", "2012-12-21 10:46:06" AS datetime)) as hex,
|
||||
column_json(column_create("t", "2012-12-21 10:46:06" AS datetime)) as json;
|
||||
hex json
|
||||
0401000100000005007495B90F86AB00 {"t":"2012-12-21 10:46:06"}
|
||||
select hex(column_create(1, "2012-12-21 10:46:06" AS datetime)) as hex,
|
||||
column_json(column_create(1, "2012-12-21 10:46:06" AS datetime)) as json;
|
||||
hex json
|
||||
00010001000595B90F000060B80A00 {"1":"2012-12-21 10:46:06"}
|
||||
|
21
mysql-test/r/failed_auth_3909.result
Normal file
21
mysql-test/r/failed_auth_3909.result
Normal file
@ -0,0 +1,21 @@
|
||||
optimize table mysql.user;
|
||||
Table Op Msg_type Msg_text
|
||||
mysql.user optimize status OK
|
||||
insert mysql.user (user,plugin) values ('foo','bar'),('bar','bar'),('baz','bar');
|
||||
Warnings:
|
||||
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
||||
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
||||
Warning 1364 Field 'x509_subject' doesn't have a default value
|
||||
Warning 1364 Field 'authentication_string' doesn't have a default value
|
||||
flush privileges;
|
||||
connect(localhost,u1,,test,MASTER_PORT,MASTER_SOCKET);
|
||||
ERROR HY000: Plugin 'bar' is not loaded
|
||||
connect(localhost,u2,,test,MASTER_PORT,MASTER_SOCKET);
|
||||
ERROR 28000: Access denied for user 'u2'@'localhost' (using password: NO)
|
||||
connect(localhost,u2,password,test,MASTER_PORT,MASTER_SOCKET);
|
||||
ERROR 28000: Access denied for user 'u2'@'localhost' (using password: YES)
|
||||
ERROR HY000: Plugin 'bar' is not loaded
|
||||
ERROR 28000: Access denied for user 'u2'@'localhost' (using password: NO)
|
||||
ERROR 28000: Access denied for user 'u2'@'localhost' (using password: YES)
|
||||
delete from mysql.user where plugin = 'bar';
|
||||
flush privileges;
|
@ -8,7 +8,7 @@ SELECT CONVERT(DES_ENCRYPT(0, CHAR('1' USING ucs2)),UNSIGNED);
|
||||
CONVERT(DES_ENCRYPT(0, CHAR('1' USING ucs2)),UNSIGNED)
|
||||
0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: ''
|
||||
Warning 1292 Truncated incorrect INTEGER value: '\xFFT\xDCiK\x92j\xE6\xFC'
|
||||
SELECT CHAR_LENGTH(DES_DECRYPT(0xFF0DC9FC9537CA75F4, CHAR('1' USING ucs2)));
|
||||
CHAR_LENGTH(DES_DECRYPT(0xFF0DC9FC9537CA75F4, CHAR('1' USING ucs2)))
|
||||
4
|
||||
|
@ -1086,3 +1086,8 @@ ERROR HY000: Row 3 was cut by GROUP_CONCAT()
|
||||
SET group_concat_max_len = DEFAULT;
|
||||
SET @@sql_mode = @old_sql_mode;
|
||||
DROP TABLE t1, t2;
|
||||
create table t1 (a char(1) character set utf8);
|
||||
insert into t1 values ('a'),('b');
|
||||
select 1 from t1 where a in (select group_concat(a) from t1);
|
||||
1
|
||||
drop table t1;
|
||||
|
@ -305,6 +305,39 @@ SELECT 1 from t1 HAVING NAME_CONST('', a);
|
||||
ERROR HY000: Incorrect arguments to NAME_CONST
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Test or correct maybe_null of last_value
|
||||
#
|
||||
CREATE TABLE t1 (a char(2) not null );
|
||||
INSERT INTO t1 VALUES (4),(7),(1);
|
||||
set @optimizer_switch_save= @@optimizer_switch;
|
||||
set optimizer_switch='materialization=off';
|
||||
CREATE TABLE tv (e char(2) not null ) engine=mysql;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'mysql'
|
||||
Warning 1266 Using storage engine MyISAM for table 'tv'
|
||||
INSERT INTO tv VALUES (1);
|
||||
CREATE ALGORITHM=MERGE VIEW v_merge AS SELECT * FROM tv;
|
||||
CREATE ALGORITHM=MERGE VIEW vm AS SELECT * FROM tv;
|
||||
explain extended
|
||||
select a from t1 left join v_merge on (a=e) where last_value(NULL,e) not in (select last_value(NULL,e) from vm);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
||||
1 PRIMARY tv ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
2 DEPENDENT SUBQUERY tv system NULL NULL NULL NULL 1 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` left join (`test`.`tv`) on((`test`.`tv`.`e` = `test`.`t1`.`a`)) where (not(<expr_cache><last_value(NULL,`test`.`tv`.`e`)>(<in_optimizer>(last_value(NULL,`test`.`tv`.`e`),<exists>(select last_value(NULL,'1') from dual where trigcond((<cache>(last_value(NULL,`test`.`tv`.`e`)) = last_value(NULL,'1'))))))))
|
||||
explain extended
|
||||
select a from t1 left join v_merge on (a=e) where e not in (select last_value(NULL,e) from vm);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
||||
1 PRIMARY tv ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
2 DEPENDENT SUBQUERY tv system NULL NULL NULL NULL 1 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` left join (`test`.`tv`) on((`test`.`tv`.`e` = `test`.`t1`.`a`)) where (not(<expr_cache><`test`.`tv`.`e`>(<in_optimizer>(`test`.`tv`.`e`,<exists>(select last_value(NULL,'1') from dual where trigcond((<cache>(`test`.`tv`.`e`) = last_value(NULL,'1'))))))))
|
||||
set optimizer_switch=@optimizer_switch_save;
|
||||
drop view v_merge, vm;
|
||||
drop table t1,tv;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
@ -1423,7 +1423,7 @@ MAKEDATE(11111111,1)
|
||||
NULL
|
||||
SELECT WEEK(DATE_ADD(FROM_DAYS(1),INTERVAL 1 MONTH), 1);
|
||||
WEEK(DATE_ADD(FROM_DAYS(1),INTERVAL 1 MONTH), 1)
|
||||
NULL
|
||||
0
|
||||
#
|
||||
# Bug#12584302 AFTER FIX FOR #12403504: ASSERTION FAILED: DELSUM+(INT) Y/4-TEMP > 0,
|
||||
#
|
||||
|
14
mysql-test/r/gis2.result
Normal file
14
mysql-test/r/gis2.result
Normal file
@ -0,0 +1,14 @@
|
||||
CREATE TABLE t1 (
|
||||
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
point_data POINT NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_point_data(point_data)
|
||||
) ENGINE=MyISAM;
|
||||
INSERT t1 (point_data) VALUES
|
||||
(GeomFromText('Point(37.0248492 23.8512726)')),
|
||||
(GeomFromText('Point(38.0248492 23.8512726)'));
|
||||
SELECT id FROM t1
|
||||
WHERE ST_Contains(point_data, GeomFromText('Point(38.0248492 23.8512726)'));
|
||||
id
|
||||
2
|
||||
DROP TABLE t1;
|
20
mysql-test/r/grant_lowercase.result
Normal file
20
mysql-test/r/grant_lowercase.result
Normal file
@ -0,0 +1,20 @@
|
||||
grant file on *.* to user1@localhost with grant option;
|
||||
grant select on `a%`.* to user1@localhost with grant option;
|
||||
grant file on aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.* to 'user'@'%' identified by 'secret';
|
||||
ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
drop user user1@localhost;
|
||||
call mtr.add_suppression("Incorrect database name");
|
||||
alter table mysql.host modify Db varchar(200);
|
||||
alter table mysql.db modify Db varchar(200);
|
||||
insert mysql.host set db=concat('=>', repeat(_utf8 'й', 200));
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'Db' at row 1
|
||||
insert mysql.db set db=concat('=>', repeat(_utf8 'й', 200));
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'Db' at row 1
|
||||
flush privileges;
|
||||
delete from mysql.host where db like '=>%';
|
||||
delete from mysql.db where db like '=>%';
|
||||
alter table mysql.host modify Db char(64);
|
||||
alter table mysql.db modify Db char(64);
|
||||
flush privileges;
|
@ -2130,6 +2130,47 @@ the value below *must* be 1
|
||||
show status like 'Created_tmp_disk_tables';
|
||||
Variable_name Value
|
||||
Created_tmp_disk_tables 1
|
||||
#
|
||||
# Bug #1002146: Unneeded filesort if usage of join buffer is not allowed
|
||||
# (bug mdev-645)
|
||||
#
|
||||
CREATE TABLE t1 (pk int PRIMARY KEY, a int, INDEX idx(a));
|
||||
INSERT INTO t1 VALUES (3,2), (2,3), (5,3), (6,4);
|
||||
CREATE TABLE t2 (pk int PRIMARY KEY, a int, INDEX idx(a));
|
||||
INSERT INTO t2 VALUES (9,0), (10,3), (6,4), (1,6), (3,100), (5,200);
|
||||
set join_cache_level=0;
|
||||
EXPLAIN
|
||||
SELECT t2.a FROM t2 STRAIGHT_JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6
|
||||
GROUP BY t2.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx idx 5 NULL 5 Using where; Using index
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 4 Using index
|
||||
SELECT t2.a FROM t2 STRAIGHT_JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6
|
||||
GROUP BY t2.a;
|
||||
a
|
||||
3
|
||||
4
|
||||
100
|
||||
200
|
||||
set join_cache_level=default;
|
||||
set @save_optimizer_switch=@@optimizer_switch;
|
||||
set optimizer_switch='outer_join_with_cache=off';
|
||||
EXPLAIN
|
||||
SELECT t2.a FROM t2 LEFT JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6
|
||||
GROUP BY t2.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx idx 5 NULL 5 Using where; Using index
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 4 Using where; Using index
|
||||
SELECT t2.a FROM t2 LEFT JOIN t1 ON t2.a <> 0 WHERE t2.a <> 6
|
||||
GROUP BY t2.a;
|
||||
a
|
||||
0
|
||||
3
|
||||
4
|
||||
100
|
||||
200
|
||||
set optimizer_switch=@save_optimizer_switch;
|
||||
DROP TABLE t1,t2;
|
||||
# End of 5.3 tests
|
||||
#
|
||||
# Bug#49771: Incorrect MIN (date) when minimum value is 0000-00-00
|
||||
@ -2161,6 +2202,51 @@ f1 MIN(f2) MAX(f2)
|
||||
DROP TABLE t1;
|
||||
#End of test#49771
|
||||
#
|
||||
# Test of bug in GROUP_CONCAT with ROLLUP
|
||||
#
|
||||
CREATE TABLE t1 ( b VARCHAR(8) NOT NULL, a INT NOT NULL ) ENGINE=MyISAM;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'c'),(2,'v');
|
||||
CREATE TABLE t2 ( c VARCHAR(8), d INT, KEY (c, d) ) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES ('v',6),('c',4),('v',3);
|
||||
SELECT b, GROUP_CONCAT( a, b ORDER BY a, b )
|
||||
FROM t1 JOIN t2 ON c = b GROUP BY b;
|
||||
b GROUP_CONCAT( a, b ORDER BY a, b )
|
||||
c 1c
|
||||
v 2v,2v
|
||||
SELECT b, GROUP_CONCAT( a, b ORDER BY a, b )
|
||||
FROM t1 JOIN t2 ON c = b GROUP BY b WITH ROLLUP;
|
||||
b GROUP_CONCAT( a, b ORDER BY a, b )
|
||||
c 1c
|
||||
v 2v,2v
|
||||
NULL 1c,2v,2v
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# Test of MDEV-4002
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
pk INT NOT NULL PRIMARY KEY,
|
||||
d1 DOUBLE,
|
||||
d2 DOUBLE,
|
||||
i INT NOT NULL DEFAULT '0',
|
||||
KEY (i)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1,1.0,1.1,1),(2,2.0,2.2,2);
|
||||
PREPARE stmt FROM "
|
||||
SELECT DISTINCT i, GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
FROM t1 a1 NATURAL JOIN t1 a2 GROUP BY i WITH ROLLUP
|
||||
";
|
||||
EXECUTE stmt;
|
||||
i GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
1 11.1
|
||||
2 22.2
|
||||
NULL 11.1,22.2
|
||||
EXECUTE stmt;
|
||||
i GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
1 11.1
|
||||
2 22.2
|
||||
NULL 11.1,22.2
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #58782
|
||||
# Missing rows with SELECT .. WHERE .. IN subquery
|
||||
# with full GROUP BY and no aggr
|
||||
|
30
mysql-test/r/group_by_innodb.result
Normal file
30
mysql-test/r/group_by_innodb.result
Normal file
@ -0,0 +1,30 @@
|
||||
#
|
||||
# MDEV-3992 Server crash or valgrind errors in test_if_skip_sort_order/test_if_cheaper_ordering
|
||||
# on GROUP BY with indexes on InnoDB table
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
pk INT PRIMARY KEY,
|
||||
a VARCHAR(1) NOT NULL,
|
||||
KEY (pk)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1,'a'),(2,'b');
|
||||
EXPLAIN
|
||||
SELECT COUNT(*), pk field1, pk AS field2
|
||||
FROM t1 WHERE a = 'r' OR pk = 183
|
||||
GROUP BY field1, field2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index PRIMARY,pk pk 4 NULL 2 Using where
|
||||
SELECT COUNT(*), pk field1, pk AS field2
|
||||
FROM t1 WHERE a = 'r' OR pk = 183
|
||||
GROUP BY field1, field2;
|
||||
COUNT(*) field1 field2
|
||||
EXPLAIN
|
||||
SELECT COUNT(*), pk field1 FROM t1
|
||||
WHERE a = 'r' OR pk = 183 GROUP BY field1, field1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index PRIMARY,pk pk 4 NULL 2 Using where
|
||||
SELECT COUNT(*), pk field1 FROM t1
|
||||
WHERE a = 'r' OR pk = 183 GROUP BY field1, field1;
|
||||
COUNT(*) field1
|
||||
drop table t1;
|
||||
End of 5.5 tests
|
@ -2933,6 +2933,13 @@ ORDER BY min_a;
|
||||
min_a
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
create table t1 (a int, b varchar(1), key(b,a)) engine=myisam;
|
||||
insert t1 values (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'f'),(7,'g'),(8,'h'),(null,'i');
|
||||
select min(a), b from t1 where a=7 or b='z' group by b;
|
||||
min(a) b
|
||||
7 g
|
||||
flush tables;
|
||||
drop table t1;
|
||||
#
|
||||
# LP BUG#888456 Wrong result with DISTINCT , ANY , subquery_cache=off , NOT NULL
|
||||
#
|
||||
|
@ -5,7 +5,7 @@ plugin_version 1.0
|
||||
plugin_status ACTIVE
|
||||
plugin_type DAEMON
|
||||
plugin_library handlersocket.so
|
||||
plugin_library_version 1.3
|
||||
plugin_library_version 1.4
|
||||
plugin_author higuchi dot akira at dena dot jp
|
||||
plugin_description Direct access into InnoDB
|
||||
plugin_license BSD
|
||||
|
8
mysql-test/r/information_schema2.result
Normal file
8
mysql-test/r/information_schema2.result
Normal file
@ -0,0 +1,8 @@
|
||||
select variable_name from information_schema.session_status where variable_name =
|
||||
(select variable_name from information_schema.session_status where variable_name = 'uptime');
|
||||
variable_name
|
||||
UPTIME
|
||||
select variable_name from information_schema.session_variables where variable_name =
|
||||
(select variable_name from information_schema.session_variables where variable_name = 'basedir');
|
||||
variable_name
|
||||
BASEDIR
|
@ -504,35 +504,6 @@ CREATE TABLE t1 (id INT NOT NULL);
|
||||
LOAD DATA LOCAL INFILE 'tb.txt' INTO TABLE t1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #51876 : crash/memory underrun when loading data with ucs2
|
||||
# and reverse() function
|
||||
#
|
||||
# Problem # 1 (original report): wrong parsing of ucs2 data
|
||||
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp.txt';
|
||||
CREATE TABLE t1(a INT);
|
||||
LOAD DATA INFILE 'tmpp.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||
(@b) SET a=REVERSE(@b);
|
||||
Warnings:
|
||||
Warning 1366 Incorrect integer value: '?' for column 'a' at row 1
|
||||
Warning 1366 Incorrect integer value: '?' for column 'a' at row 2
|
||||
# should return 2 zeroes (as the value is truncated)
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
0
|
||||
0
|
||||
DROP TABLE t1;
|
||||
# Problem # 2 : if you write and read ucs2 data to a file they're lost
|
||||
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp2.txt' CHARACTER SET ucs2;
|
||||
CREATE TABLE t1(a INT);
|
||||
LOAD DATA INFILE 'tmpp2.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||
(@b) SET a=REVERSE(@b);
|
||||
# should return 0 and 1 (10 reversed)
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
0
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#11765139 58069: LOAD DATA INFILE: VALGRIND REPORTS INVALID MEMORY READS AND WRITES WITH U
|
||||
#
|
||||
CREATE TABLE t1(f1 INT);
|
||||
|
@ -509,5 +509,9 @@ SHOW TABLES IN connected_db;
|
||||
Tables_in_connected_db
|
||||
table_in_connected_db
|
||||
DROP DATABASE connected_db;
|
||||
create database `aa``bb````cc`;
|
||||
DATABASE()
|
||||
aa`bb``cc
|
||||
drop database `aa``bb````cc`;
|
||||
|
||||
End of tests
|
||||
|
@ -935,9 +935,9 @@ a int(11) YES NULL
|
||||
b varchar(255) YES NULL
|
||||
c datetime YES NULL
|
||||
drop table t1;
|
||||
mysqltest: At line 1: change user failed: Unknown database 'inexistent'
|
||||
mysqltest: At line 1: change user failed: Access denied for user 'inexistent'@'localhost' (using password: NO)
|
||||
mysqltest: At line 1: change user failed: Access denied for user 'root'@'localhost' (using password: YES)
|
||||
mysqltest: At line 1: query 'change_user root,,inexistent' failed: 1049: Unknown database 'inexistent'
|
||||
mysqltest: At line 1: query 'change_user inexistent,,test' failed: 1045: Access denied for user 'inexistent'@'localhost' (using password: NO)
|
||||
mysqltest: At line 1: query 'change_user root,inexistent,test' failed: 1045: Access denied for user 'root'@'localhost' (using password: YES)
|
||||
REPLACED_FILE1.txt
|
||||
file1.txt
|
||||
file2.txt
|
||||
|
@ -15,7 +15,7 @@ PLUGIN_STATUS ACTIVE
|
||||
PLUGIN_TYPE STORAGE ENGINE
|
||||
PLUGIN_TYPE_VERSION #
|
||||
PLUGIN_LIBRARY ha_example.so
|
||||
PLUGIN_LIBRARY_VERSION 1.3
|
||||
PLUGIN_LIBRARY_VERSION 1.4
|
||||
PLUGIN_AUTHOR Brian Aker, MySQL AB
|
||||
PLUGIN_DESCRIPTION Example storage engine
|
||||
PLUGIN_LICENSE GPL
|
||||
@ -28,7 +28,7 @@ PLUGIN_STATUS ACTIVE
|
||||
PLUGIN_TYPE DAEMON
|
||||
PLUGIN_TYPE_VERSION #
|
||||
PLUGIN_LIBRARY ha_example.so
|
||||
PLUGIN_LIBRARY_VERSION 1.3
|
||||
PLUGIN_LIBRARY_VERSION 1.4
|
||||
PLUGIN_AUTHOR Sergei Golubchik
|
||||
PLUGIN_DESCRIPTION Unusable Daemon
|
||||
PLUGIN_LICENSE GPL
|
||||
@ -57,7 +57,7 @@ PLUGIN_STATUS DELETED
|
||||
PLUGIN_TYPE STORAGE ENGINE
|
||||
PLUGIN_TYPE_VERSION #
|
||||
PLUGIN_LIBRARY ha_example.so
|
||||
PLUGIN_LIBRARY_VERSION 1.3
|
||||
PLUGIN_LIBRARY_VERSION 1.4
|
||||
PLUGIN_AUTHOR Brian Aker, MySQL AB
|
||||
PLUGIN_DESCRIPTION Example storage engine
|
||||
PLUGIN_LICENSE GPL
|
||||
@ -69,6 +69,8 @@ UNINSTALL PLUGIN EXAMPLE;
|
||||
ERROR 42000: PLUGIN EXAMPLE does not exist
|
||||
UNINSTALL PLUGIN non_exist;
|
||||
ERROR 42000: PLUGIN non_exist does not exist
|
||||
UNINSTALL SONAME 'non_exist';
|
||||
ERROR 42000: SONAME non_exist.so does not exist
|
||||
#
|
||||
# Bug#32034: check_func_enum() does not check correct values but set it
|
||||
# to impossible int val
|
||||
|
@ -121,17 +121,20 @@ ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||
this should fail : not the same user
|
||||
GRANT PROXY ON grant_plug TO grant_plug_dest;
|
||||
ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||
this should fail : same user, but on a different host
|
||||
This is a valid grant
|
||||
GRANT PROXY ON grant_plug_dest TO grant_plug;
|
||||
ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||
this should work : same user
|
||||
GRANT PROXY ON grant_plug_dest@localhost TO grant_plug_dest2;
|
||||
REVOKE PROXY ON grant_plug_dest@localhost FROM grant_plug_dest2;
|
||||
REVOKE PROXY ON grant_plug_dest FROM grant_plug;
|
||||
this should work : same user
|
||||
GRANT PROXY ON grant_plug_dest TO grant_plug_dest2;
|
||||
REVOKE PROXY ON grant_plug_dest FROM grant_plug_dest2;
|
||||
this should fail : not the same user
|
||||
GRANT PROXY ON grant_plug_dest@localhost TO grant_plug WITH GRANT OPTION;
|
||||
ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||
this should fail : not the same user
|
||||
REVOKE PROXY ON grant_plug_dest@localhost FROM grant_plug;
|
||||
ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||
this should fail : can't create users
|
||||
GRANT PROXY ON grant_plug_dest@localhost TO grant_plug@localhost;
|
||||
GRANT PROXY ON grant_plug_dest TO grant_plug@localhost;
|
||||
ERROR 42000: You are not allowed to create a user with GRANT
|
||||
in default connection
|
||||
# test what root can grant
|
||||
@ -149,12 +152,12 @@ GRANT PROXY ON future_user TO grant_plug;
|
||||
in default connection
|
||||
SHOW GRANTS FOR grant_plug;
|
||||
Grants for grant_plug@%
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest' WITH GRANT OPTION
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest'
|
||||
GRANT PROXY ON 'future_user'@'%' TO 'grant_plug'@'%'
|
||||
REVOKE PROXY ON future_user FROM grant_plug;
|
||||
SHOW GRANTS FOR grant_plug;
|
||||
Grants for grant_plug@%
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest' WITH GRANT OPTION
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest'
|
||||
## testing drop user
|
||||
CREATE USER test_drop@localhost;
|
||||
GRANT PROXY ON future_user TO test_drop@localhost;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user