- 31 Jan, 2014 1 commit
-
-
Michael Widenius authored
- MDEV-5587 Server crashes in Locked_tables_list::restore_lock on CREATE OR REPLACE .. SELECT under LOCK - MDEV-5586 Assertion `share->tdc.all_tables.is_empty() || remove_type != TDC_RT_REMOVE_ALL' fails in tdc_remove_table - MDEV-5588 Strange error on CREATE OR REPLACE table over an existing view mysql-test/r/create_or_replace.result: Added test cases mysql-test/r/lowercase_view.result: New error message mysql-test/r/merge.result: New error message mysql-test/r/multi_update.result: New error message mysql-test/r/subselect.result: New error message mysql-test/r/subselect_exists_to_in.result: New error message mysql-test/r/subselect_no_mat.result: New error message mysql-test/r/subselect_no_opts.result: New error message mysql-test/r/subselect_no_scache.result: New error message mysql-test/r/subselect_no_semijoin.result: New error message mysql-test/r/view.result: New error message mysql-test/suite/funcs_1/r/myisam_views-big.result: New error message mysql-test/t/create_or_replace.test: New tests mysql-test/t/view.test: New error message sql/share/errmsg-utf8.txt: Added new error message sql/sql_base.cc: Updated error message Do an automatic UNLOCK TABLES if we don't have any locked tables (safety fix) sql/sql_db.cc: Updated arguments sql/sql_load.cc: New error message sql/sql_parse.cc: Check that we are not using a table we are dropping and re-creating sql/sql_table.cc: Added parameter to mysql_rm_table_no_locks() to not automaticly do UNLOCK TABLES Added better error message if trying to drop a view with DROP TABLE Don't try to create something we select from sql/sql_table.h: Updated prototypes
-
- 29 Jan, 2014 2 commits
-
-
Michael Widenius authored
Made stopping of slave more robust Fixed tokudb test cases that gave different results between runs Speed up some slow tokudb tests by adding begin ... commit mysql-test/extra/rpl_tests/rpl_stop_slave.test: Ensure that slaves are properly synced before they are stopped. (Otherwise some tests results will be different between runs) storage/innobase/buf/buf0buf.cc: Fixed compiler warning storage/tokudb/mysql-test/tokudb/r/cluster_filter_unpack_varchar_and_int_hidden.result: Test case could be solved with index or range scan. storage/tokudb/mysql-test/tokudb/t/cluster_filter_unpack_varchar_and_int_hidden.test: Test case could be solved with index or range scan. storage/tokudb/mysql-test/tokudb_bugs/r/5733_innodb.result: Speed up test by adding begin...commit storage/tokudb/mysql-test/tokudb_bugs/r/5733_tokudb.result: Speed up test by adding begin...commit storage/tokudb/mysql-test/tokudb_bugs/t/5733_innodb.test: Speed up test by adding begin...commit storage/tokudb/mysql-test/tokudb_bugs/t/5733_tokudb.test: Speed up test by adding begin...commit storage/tokudb/mysql-test/tokudb_mariadb/r/compression.result: Added drop table (safety) storage/tokudb/mysql-test/tokudb_mariadb/t/compression.test: Added drop table (safety)
-
Michael Widenius authored
Using CREATE OR REPLACE TABLE is be identical to DROP TABLE IF EXISTS table_name; CREATE TABLE ...; Except that: * CREATE OR REPLACE is be atomic (now one can create the same table between drop and create). * Temporary tables will not shadow the table name for the DROP as the CREATE TABLE tells us already if we are using a temporary table or not. * If the table was locked with LOCK TABLES, the new table will be locked with the same lock after it's created. Implementation details: - We don't anymore open the to-be-created table during CREATE TABLE, which the original code did. - There is no need to open a table we are planning to create. It's enough to check if the table exists or not. - Removed some of duplicated code for CREATE IF NOT EXISTS. - Give an error when using CREATE OR REPLACE with IF NOT EXISTS (conflicting options). - As a side effect of the code changes, we don't anymore have to internally re-prepare prepared statements with CREATE TABLE if the table exists. - Made one code path for all testing if log table are in use. - Better error message if one tries to create/drop/alter a log table in use - Added back disabled rpl_row_create_table test as it now seams to work and includes a lot of interesting tests. - Added HA_LEX_CREATE_REPLACE to mark if we are using CREATE OR REPLACE - Aligned CREATE OR REPLACE parsing code in sql_yacc.yy for TABLE and VIEW - Changed interface for drop_temporary_table() to make it more reusable - Changed Locked_tables_list::init_locked_tables() to work on the table object instead of the table list object. Before this it used a mix of both, which was not good. - Locked_tables_list::unlock_locked_tables(THD *thd) now requires a valid thd argument. Old usage of calling this with 0 i changed to instead call Locked_tables_list::reset() - Added functions Locked_tables_list:restore_lock() and Locked_tables_list::add_back_last_deleted_lock() to be able to easily add back a locked table to the lock list. - Added restart_trans_for_tables() to be able to restart a transaction. - DROP_ACL is required if one uses CREATE TABLE OR REPLACE. - Added drop of normal and temporary tables in create_table_imp() if CREATE OR REPLACE was used. - Added reacquiring of table locks in mysql_create_table() and mysql_create_like_table() mysql-test/include/commit.inc: With new code we get fewer status increments mysql-test/r/commit_1innodb.result: With new code we get fewer status increments mysql-test/r/create.result: Added testing of create or replace with timeout mysql-test/r/create_or_replace.result: Basic testing of CREATE OR REPLACE TABLE mysql-test/r/partition_exchange.result: New error message mysql-test/r/ps_ddl.result: Fewer reprepares with new code mysql-test/suite/archive/discover.result: Don't rediscover archive tables if the .frm file exists (Sergei will look at this if there is a better way...) mysql-test/suite/archive/discover.test: Don't rediscover archive tables if the .frm file exists (Sergei will look at this if there is a better way...) mysql-test/suite/funcs_1/r/innodb_views.result: New error message mysql-test/suite/funcs_1/r/memory_views.result: New error message mysql-test/suite/rpl/disabled.def: rpl_row_create_table should now be safe to use mysql-test/suite/rpl/r/rpl_row_create_table.result: Updated results after adding back disabled test mysql-test/suite/rpl/t/rpl_create_if_not_exists.test: Added comment mysql-test/suite/rpl/t/rpl_row_create_table.test: Added CREATE OR REPLACE TABLE test mysql-test/t/create.test: Added CREATE OR REPLACE TABLE test mysql-test/t/create_or_replace-master.opt: Create logs mysql-test/t/create_or_replace.test: Basic testing of CREATE OR REPLACE TABLE mysql-test/t/partition_exchange.test: Error number changed as we are now using same code for all log table change issues mysql-test/t/ps_ddl.test: Fewer reprepares with new code sql/handler.h: Moved things around a bit in a structure to get better alignment. Added HA_LEX_CREATE_REPLACE to mark if we are using CREATE OR REPLACE Added 3 elements to end of HA_CREATE_INFO to be able to store state to add backs locks in case of LOCK TABLES. sql/log.cc: Reimplemented check_if_log_table(): - Simpler and faster usage - Can give error messages This gives us one code path for allmost all error messages if log tables are in use sql/log.h: New interface for check_if_log_table() sql/slave.cc: More logging sql/sql_alter.cc: New interface for check_if_log_table() sql/sql_base.cc: More documentation Changed interface for drop_temporary_table() to make it more reusable Changed Locked_tables_list::init_locked_tables() to work on the table object instead of the table list object. Before this it used a mix of both, which was not good. Locked_tables_list::unlock_locked_tables(THD *thd) now requires a valid thd argument. Old usage of calling this with 0 i changed to instead call Locked_tables_list::reset() Added functions Locked_tables_list:restore_lock() and Locked_tables_list::add_back_last_deleted_lock() to be able to easily add back a locked table to the lock list. Check for command number instead of open_strategy of CREATE TABLE was used. Added restart_trans_for_tables() to be able to restart a transaction. This was needed in "create or replace ... select" between the drop table and the select. sql/sql_base.h: Added and updated function prototypes sql/sql_class.h: Added new prototypes to Locked_tables_list class Added extra argument to select_create to avoid double call to eof() or send_error() - I needed this in some edge case where the table was not created against expections. sql/sql_db.cc: New interface for check_if_log_table() sql/sql_insert.cc: Remember position to lock information so that we can reaquire table lock for LOCK TABLES + CREATE OR REPLACE TABLE SELECT. Later add back the lock by calling restore_lock(). Removed one not needed indentation level in create_table_from_items() Ensure we don't call send_eof() or abort_result_set() twice. sql/sql_lex.h: Removed variable that I temporarly added in an earlier changeset sql/sql_parse.cc: Removed old test code (marked with QQ) Ensure that we have open_strategy set as TABLE_LIST::OPEN_STUB in CREATE TABLE Removed some IF NOT EXISTS code as this is now handled in create_table_table_impl(). Set OPTION_KEEP_LOGS later. This code had to be moved as the test for IF EXISTS has changed place. DROP_ACL is required if one uses CREATE TABLE OR REPLACE. sql/sql_partition_admin.cc: New interface for check_if_log_table() sql/sql_rename.cc: New interface for check_if_log_table() sql/sql_table.cc: New interface for check_if_log_table() Moved some code in mysql_rm_table() under a common test. - Safe as temporary tables doesn't have statistics. - !is_temporary_table(table) test was moved out from drop_temporary_table() and merged with upper level code. - Added drop of normal and temporary tables in create_table_imp() if CREATE OR REPLACE was used. - Added reacquiring of table locks in mysql_create_table() and mysql_create_like_table() - In mysql_create_like_table(), restore table->open_strategy() if it was changed. - Re-test if table was a view after opening it. sql/sql_table.h: New prototype for mysql_create_table_no_lock() sql/sql_yacc.yy: Added syntax for CREATE OR REPLACE TABLE Reuse new code for CREATE OR REPLACE VIEW sql/table.h: Added name for enum type sql/table_cache.cc: More DBUG
-
- 09 Jan, 2014 1 commit
-
-
Michael Widenius authored
- Updated help for mysql-test-run - Added OQGraph to all cmake error output regarding OQGraph to make it easier to spot problems - Suppressed warning messages from OQGraph - Added test for version_malloc_library variable mysql-test/mysql-test-run.pl: Updated help mysql-test/suite/sys_vars/r/version_malloc_library_basic.result: Added test for version_malloc_library variable mysql-test/suite/sys_vars/t/version_malloc_library_basic.test: Added test for version_malloc_library variable storage/oqgraph/CMakeLists.txt: Added OQGraph to all cmake error output regarding OQGraph to make it easier to spot problems storage/oqgraph/mysql-test/oqgraph/boundary_conditions.result: Suppressed warning messages storage/oqgraph/mysql-test/oqgraph/boundary_conditions.test: Suppressed warning messages storage/oqgraph/mysql-test/oqgraph/invalid_operations.result: Suppressed warning messages storage/oqgraph/mysql-test/oqgraph/invalid_operations.test: Suppressed warning messages storage/oqgraph/mysql-test/oqgraph/isnull.result: Suppressed warning messages storage/oqgraph/mysql-test/oqgraph/isnull.test: Suppressed warning messages storage/oqgraph/mysql-test/oqgraph/regression_1233113.result: Suppressed warning messages storage/oqgraph/mysql-test/oqgraph/regression_1233113.test: Suppressed warning messages storage/oqgraph/mysql-test/oqgraph/regression_drop_after.result: Suppressed warning messages storage/oqgraph/mysql-test/oqgraph/regression_drop_after.test: Suppressed warning messages
-
- 02 Jan, 2014 1 commit
-
-
Michael Widenius authored
- Added MALLOC_LIBRARY variable to hold name of malloc library - Back ported valgrind related fixes from jemalloc 3.4.1 to the included jemalloc 3.3.1 - Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() to avoid clash with jemalloc 3.4.1 - Use option --soname-synonyms=somalloc=NON to valgrind when using jemalloc - Show version related variables in mysqld --help -- Added SHOW_VALUE_IN_HELP marker Increased back_log to 150 as the original value was a bit too small CMakeLists.txt: Added MALLOC_LIBRARY variable to hold name of malloc library cmake/jemalloc.cmake: Added MALLOC_LIBRARY variable to hold name of malloc library config.h.cmake: Added MALLOC_LIBRARY variable to hold name of malloc library extra/jemalloc/ChangeLog: Updates changelog extra/jemalloc/include/jemalloc/internal/arena.h: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/include/jemalloc/internal/jemalloc_internal.h.in: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/include/jemalloc/internal/private_namespace.h: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/include/jemalloc/internal/tcache.h: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/src/arena.c: Backported valgrind fixes from jemalloc 3.4.1 include/my_bitmap.h: Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() to avoid clash with jemalloc 3.4.1 mysql-test/mysql-test-run.pl: Use option --soname-synonyms=somalloc=NON to valgrind when using jemalloc mysql-test/valgrind.supp: Supression of memory leak in OpenSuse 12.3 mysys/my_bitmap.c: Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() sql/ha_ndbcluster_binlog.cc: Renames sql/ha_ndbcluster_cond.h: Renames sql/ha_partition.cc: Renames sql/handler.cc: Renames sql/item_subselect.cc: Renames sql/log_event.cc: Renames sql/log_event_old.cc: Renames sql/mysqld.cc: Renames Show version related variables in mysqld --help sql/opt_range.cc: Renames sql/opt_table_elimination.cc: Renames sql/partition_info.cc: Renames sql/rpl_injector.h: Renames sql/set_var.h: Renames sql/slave.cc: Renames sql/sql_bitmap.h: Renames sql/sql_insert.cc: Renames sql/sql_lex.h: Renames sql/sql_parse.cc: Renames sql/sql_partition.cc: Renames sql/sql_select.cc: Renames sql/sql_show.cc: Renames sql/sql_update.cc: Renames sql/sys_vars.cc: Show version related variables in mysqld --help sql/sys_vars.h: Added SHOW_VALUE_IN_HELP marker for variables that should be shown in --help sql/table.cc: Renames sql/table.h: Removed not used bitmap_init_value storage/connect/ha_connect.cc: Removed compiler warning storage/maria/ma_open.c: Renames unittest/mysys/bitmap-t.c: Renames
-
- 27 Dec, 2013 1 commit
-
-
Michael Widenius authored
- This was done to get better performance when doing a lot of connections. Ensure that thread_cache_size is not larger than max_connections (trivial optimizations). Fixed that the --host_cache_size=# startup option works mysql-test/r/variables.result: Increase back_log to 150 sql/hostname.cc: Fixed that the --host_cache_size=# startup option works sql/mysqld.cc: Ensure that back_log and thread_cache_size is not set higher than max_connections (as this would not make any sense). sql/sys_vars.cc: Increased back_log to 150
-
- 23 Dec, 2013 1 commit
-
-
Sergei Golubchik authored
-
- 22 Dec, 2013 14 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
Fix all suite.pm files that had errors and test files that were skipped because of that
-
Sergei Golubchik authored
* remove is_embedded.require
-
Sergei Golubchik authored
because some suites may be disabled unless a plugin is available, and compiled-in plugins are only known after collect_mysqld_features(). Additionally move mysql_install_db() after everything else it's collected - it's a slow process, better do it after all the information is gathered (and reported to the user).
-
Sergei Golubchik authored
plugin.cmake does it automatically for all plugins
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
* rename "xtradb" combination to be called "innodb" * disable xtradb_plugin embedded tests (because of RECOMPILE_FOR_EMBEDDED)
-
Sergei Golubchik authored
(it was used only for plugins in mysqld)
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
support ha_innodb.so as a dynamic plugin. * remove obsolete *,innodb_plugin.rdiff files * s/--plugin-load=/--plugin-load-add=/ * MYSQL_PLUGIN_IMPORT glob_hostname[] * use my_error instead of push_warning_printf(ER_DEFAULT) * don't use tdc_size and tc_size in a module update test cases (XtraDB is 5.6.14, InnoDB is 5.6.10) * copy new tests over * disable some tests for (old) InnoDB * delete XtraDB tests that no longer apply small compatibility changes: * s/HTON_EXTENDED_KEYS/HTON_SUPPORTS_EXTENDED_KEYS/ * revert unnecessary InnoDB changes to make it a bit closer to the upstream fix XtraDB to compile on Windows (both as a static and a dynamic plugin) disable XtraDB on Windows (deadlocks) and where no atomic ops are available (e.g. CentOS 5) storage/innobase/handler/ha_innodb.cc: revert few unnecessary changes to make it a bit closer to the original InnoDB storage/innobase/include/univ.i: correct the version to match what it was merged from
-
- 20 Dec, 2013 3 commits
-
-
Olivier Bertrand authored
modified: storage/connect/odbconn.cpp
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 19 Dec, 2013 4 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
Fixing "/*100000 ...*/" comments (i.e. MySQL style with 6-digits), which were unintentionally broken in the MDEV-5009 patch. modified: mysql-test/r/comments.result mysql-test/t/comments.test sql/sql_lex.cc
-
Olivier Bertrand authored
modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbsem.h
-
Alexander Barkov authored
The problem seems to be fixed by some earlier change and is not reproducible any longer. Only adding a test case.
-
- 17 Dec, 2013 10 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
Fixed a wrong assertion.
-
Elena Stepanova authored
Also known as MySQL#70047 and BUG#17316314 (srv_buf_size not declared). The workaround is taken from MySQL 5.6 tree: BUG#17316314 - SRV_BUF_SIZE NOT DECLARED Temporary fix. Disabling FALLOC_FL_PUNCH_HOLE for now
-
Alexander Barkov authored
-
Alexander Barkov authored
backporting from the main 10.0 modified: mysql-test/r/func_like.result mysql-test/t/func_like.test sql/item_cmpfunc.cc
-
- 16 Dec, 2013 2 commits
-
-
Alexander Barkov authored
Fixed.
-
Olivier Bertrand authored
modified: storage/connect/valblk.cpp - Fix compiler warning in ODBConn::GetCatInfo modified: storage/connect/odbconn.cpp
-