- 29 Jun, 2010 1 commit
-
-
Konstantin Osipov authored
Remove mysql_lock_have_duplicate(), since now we always have TABLE_LIST objects for MyISAMMRG children in lex->query_tables and keep it till the end of the statement (sub-statement). mysql-test/r/merge.result: Update results (Bug#54811). mysql-test/t/merge-big.test: Update to new wait state. mysql-test/t/merge.test: Add a test case for Bug#54811. sql/lock.cc: Remove a function that is now unused. sql/lock.h: Remove a function that is now unused. sql/sql_base.cc: Don't try to search for duplicate table among THR_LOCK objects, TABLE_LIST list contains all used tables.
-
- 26 Jun, 2010 1 commit
-
-
Jon Olav Hauglid authored
The problem was that if a query accessing a view was blocked due to conflicting locks on tables in the view definition, it would be possible for a different connection to alter the view definition before the view query completed. When the view query later resumed, it used the old view definition. This meant that if the view query was later repeated inside the same transaction, the two executions of the query would give different results, thus breaking repeatable read. (The first query used the old view definition, the second used the new view definition). This bug is no longer repeatable with the recent changes to the metadata locking subsystem (revno: 3040). The view query will no longer back-off and release the lock on the view definiton. Instead it will wait for the conflicting lock(s) to go away while keeping the view definition lock. This means that it is no longer possible for a concurrent connection to alter the view definition. Instead, any such attempt will be blocked. In the case from the bug report where the same view query was executed twice inside the same transaction, any ALTER VIEW from other connections will now be blocked until the transaction has completed (or aborted). The view queries will therefore use the same view definition and we will have repeatable read. Test case added to innodb_mysql_lock.test. This patch contains no code changes.
-
- 25 Jun, 2010 2 commits
-
-
Konstantin Osipov authored
-
Jon Olav Hauglid authored
The assert was triggered if a connection executing TRUNCATE on a InnoDB table was killed during open_tables. This bug was fixed in the scope of Bug #45643 "InnoDB does not support replication of TRUNCATE TABLE". This patch adds test coverage to innodb_mysql_sync.test.
-
- 23 Jun, 2010 3 commits
-
-
Jon Olav Hauglid authored
------------------------------------------------------------ revno: 3672 committer: lars-erik.bjork@sun.com branch nick: 48067-mysql-6.0-codebase-bugfixing timestamp: Mon 2009-10-26 13:51:43 +0100 message: This is a patch for bug#48067 "A temp table with the same name as an existing table, makes drop database fail" When dropping the database, mysql_rm_known_files() reads the contents of the database directory, and creates a TABLE_LIST object, for each .frm file encountered. Temporary tables, however, are not associated with any .frm file. The list of tables to drop are passed to mysql_rm_table_part2(). This method prefers temporary tables over regular tables, so if there is a temporary table with the same name as a regular, the temporary is removed, leaving the regular table intact. Regular tables are only deleted if there are no temporary tables with the same name. This fix ensures, that for all TABLE_LIST objects that are created by mysql_rm_known_files(), 'open_type' is set to 'OT_BASE_ONLY', to indicate that this is a regular table. In all cases in mysql_rm_table_part2() where we prefer a temporary table to a non-temporary table, we chek if 'open_type' equals 'OT_BASE_ONLY'. mysql-test/r/temp_table.result: The expected result of the test. mysql-test/t/temp_table.test: Test based on the bug report. sql/sql_db.cc: For all TABLE_LIST objects that are created by mysql_rm_known_files(), 'open_type' is set to 'OT_BASE_ONLY', to indicate that these are regular tables. sql/sql_table.cc: Check if 'open_type' is set to 'OT_BASE_ONLY, every place a temporary table is preferred to a non-temporary table.
-
sunanda authored
-
-
- 22 Jun, 2010 2 commits
-
-
Alexander Nozdrin authored
-
Magne Mahre authored
mysql-test/suite/perfschema/t/no_threads-master.opt: Innodb will start multiple threads, which is not compatible with --one-thread. Disable innodb to be able to run the test case.
-
- 21 Jun, 2010 3 commits
-
-
Alexander Nozdrin authored
-
Daniel Fischer authored
-
Alexander Nozdrin authored
-
- 20 Jun, 2010 1 commit
-
-
Magne Mahre authored
InnoDB came in a new version "simultanously" with the commit. This patch is a minor change to the new innodb regression test suite.
-
- 18 Jun, 2010 3 commits
-
-
Konstantin Osipov authored
subsystem. Fix a number of caveates that the previous implementation suffered from, including unprotected access to shared data and lax resource accounting (share->ref_count) that could lead to deadlocks. The new implementation still suffers from a number of potential deadlocks in some edge cases, and this is still not enabled by default. Especially since performance testing has shown that it gives only marginable (not even exceeding measuring accuracy) improvements. @todo: - Remove calls to close_cached_tables() with REFRESH_FAST, and have_lock, because they break the MDL cache. - rework FLUSH TABLES <list> to not use close_cached_tables() - make sure that whenever we set TABLE_SHARE::version to 0 we free MDL cache references to it. sql/mdl.cc: We may cache references to TABLE_SHARE objects in MDL_lock objects for tables. Create a separate MDL_lock class to represent a table. sql/mdl.h: Adjust the MDL caching API to avoid races. sql/sql_base.cc: Move all caching functionality close together. Implement a solution for deadlocks caused by close_cached_tables() when MDL cache is enabled (incomplete). sql/sql_yacc.yy: Adjust FLUSH rule to do the necessary initialization of TABLE_LIST elements used in for FLUSH TABLES <list>, and thus work OK with flush_mdl_cache() function.
-
Daniel Fischer authored
-
Joerg Bruehe authored
-
- 17 Jun, 2010 19 commits
-
-
Magne Mahre authored
The default storage engine is changed from MyISAM to InnoDB, in all builds except for the embedded server. In addition, the following system variables are changed: * innodb_file_per_table is enabled * innodb_strict_mode is enabled * innodb_file_format_name_update is changed to 'Barracuda' The test suite is changed so that tests that do not explicitly include the have_innodb.inc are run with --default-storage-engine=MyISAM. This is to ease the transition, so that most regression tests are run with the same engine as before. Some tests are disabled for the embedded server regression test, as the output of certain statements will be different that for the regular server (i.e SELECT @@default_storage_engine). This is to ease transition. mysql-test/mysql-test-run.pl: The regression test suite now adds a --default-storage-engine=MyISAM for all non-innodb tests. This behaviour can be controlled by the default-myisam switch in mysql-test-run mysql-test/t/bootstrap-master.opt: The bootstrap test can only be run without InnoDB as it starts several mysqld instances on the same datadir. This is possible with MyISAM, but not with InnoDB. storage/innobase/CMakeLists.txt: Build InnoDB per default storage/innobase/handler/ha_innodb.cc: Change default values for system variables Enable file_per_table Enable strict_mode Upgrade default file format to Barracuda
-
Joerg Bruehe authored
line exceeds the limit Merge the fix into "trunk-bugfixing".
-
Joerg Bruehe authored
line exceeds the limit Upmerge the fix from 5.1 to 5.5 ("trunk").
-
Joerg Bruehe authored
line exceeds the limit Upmerge the fix from 5.0 to 5.1
-
Joerg Bruehe authored
line exceeds the limit The number and/or names of our files for the main test suite (contents of "mysql-test/t/") now exceeds the command line length limit on AIX. Solve the problem by using separate "cp" commands for the various file name extensions.
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Joerg Bruehe authored
to trunk-bugfixing, no contents changes (already done separate).
-
Joerg Bruehe authored
-
Joerg Bruehe authored
-
Vasil Dimov authored
-
Vasil Dimov authored
-
Vasil Dimov authored
-
Vasil Dimov authored
is going to be 1.1.1.
-
Jimmy Yang authored
and innodb_file_format_max two system variables. And this also fixes bug #53654 after 2nd shutdown innodb_file_format_check attains strange values. rb://366 approved by Marko
-
Sunny Bains authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Sunny Bains authored
-
- 16 Jun, 2010 3 commits
-
-
Mats Kindahl authored
Incremental patch to fix plugin_dir from .../lib/plugin to .../lib/mysql/plugin.
-
Dmitry Lenev authored
TABLE_SHARE a class. Remove unused members in TABLE_SHARE.
-
Konstantin Osipov authored
-
- 15 Jun, 2010 2 commits
-
-
Joerg Bruehe authored
This is the fix for 5.5, where the behaviour on both installation and upgrade is changed: On installation, we do not start the server, to allow automated installs (which happen in some indeterminate machine status). If the server was stopped when the upgrade begins, we assume the administrator is taking manual action, so we do not start the (new) server at the end of the upgrade. We still install the start/stop script, so it will be started on reboot. support-files/mysql.spec.sh: In the "pre" section of the spec file, check the server status, and write the result to a file. In the "post" section, evaluate the status file, and start the server if it was running during status analysis. In 5.5, we do *not* start the server if there is no status file (which will happen on first installation, when there is no data directory yet).
-
Joerg Bruehe authored
This is the fix for 5.1, where only the behaviour on upgrade is changed: If the server was stopped when the upgrade begins, we assume the administrator is taking manual action, so we do not start the (new) server at the end of the upgrade. We still install the start/stop script, so it will be started on reboot. support-files/mysql.spec.sh: In the "pre" section of the spec file, check the server status, and write the result to a file. In the "post" section, evaluate the status file, and start the server if it was running during status analysis. In 5.1, we start the server if there is no status file (which will happen on first installation, when there is no data directory yet).
-