- 13 Jul, 2010 2 commits
-
-
Dmitry Lenev authored
WITH READ LOCK and FLUSH TABLES <list> WITH READ LOCK are incompatible", which adds information about waits caused by FLUSH TABLES statement to deadlock detector in MDL subsystem. Remove API supporting caching of pointers to TABLE_SHARE object in MDL subsystem and all code related to it. The problem was that locking requirements of code implementing this API conflicted with locking requirements of code which adds information about waits caused by flushes to deadlock detector in MDL subsystem (the former needed to lock LOCK_open or its future equivalent while having write-lock on MDL_lock's rwlock, and the latter needs to be able to read-lock MDL_lock rwlock while owning LOCK_open or its future equivalent). Since caching of pointers to TABLE_SHARE objects in MDL subsystem didn't bring expected performance benefits we decided to remove caching API rather than try to come up with some complex solution for this problem.
-
Jon Olav Hauglid authored
-
- 12 Jul, 2010 2 commits
-
-
Davi Arnaut authored
naming scheme for tests related to functions, rename analyse.test to func_analyse.test (test for the ANALYSE() procedure). Avoids confusion with the ANALYZE statement (tested in analyze.test).
-
Davi Arnaut authored
analyse.test to func_analyse.test. Avoids confusion with the ANALYZE statement.
-
- 09 Jul, 2010 5 commits
-
-
Luis Soares authored
-
Luis Soares authored
Merged on behalf of Davi.
-
Davi Arnaut authored
Post-merge fix: remove reference to file that is now gone.
-
Alexander Barkov authored
Problem: Item_str_ascii_func::val_str() did not set charset of the returned value properly. mysql-test/include/ctype_numconv.inc mysql-test/r/ctype_binary.result mysql-test/r/ctype_cp1251.result mysql-test/r/ctype_latin1.result mysql-test/r/ctype_ucs.result - Adding tests sql/item_strfunc.cc - Adding initialization of charset
-
Davi Arnaut authored
Post-merge fix: cast argument and correct type in assignment.
-
- 08 Jul, 2010 10 commits
-
-
Luis Soares authored
The server was not cleaning up some dbug allocated memory before exiting. This is not a real problem, as this memory would be deallocated anyway. Nonetheless, we improve the mysqlbinlog exit procedure, wrt to memory book-keeping, when no parameter is given. To fix this, we deploy a call to my_end() before the thread exits.
-
Davi Arnaut authored
Essentially, the problem is that safemalloc is excruciatingly slow as it checks all allocated blocks for overrun at each memory management primitive, yielding a almost exponential slowdown for the memory management functions (malloc, realloc, free). The overrun check basically consists of verifying some bytes of a block for certain magic keys, which catches some simple forms of overrun. Another minor problem is violation of aliasing rules and that its own internal list of blocks is prone to corruption. Another issue with safemalloc is rather the maintenance cost as the tool has a significant impact on the server code. Given the magnitude of memory debuggers available nowadays, especially those that are provided with the platform malloc implementation, maintenance of a in-house and largely obsolete memory debugger becomes a burden that is not worth the effort due to its slowness and lack of support for detecting more common forms of heap corruption. Since there are third-party tools that can provide the same functionality at a lower or comparable performance cost, the solution is to simply remove safemalloc. Third-party tools can provide the same functionality at a lower or comparable performance cost. The removal of safemalloc also allows a simplification of the malloc wrappers, removing quite a bit of kludge: redefinition of my_malloc, my_free and the removal of the unused second argument of my_free. Since free() always check whether the supplied pointer is null, redudant checks are also removed. Also, this patch adds unit testing for my_malloc and moves my_realloc implementation into the same file as the other memory allocation primitives.
-
Luis Soares authored
-
Marc Alff authored
-
Olav Sandstaa authored
from mysql-next-mr-opt-backporting. Bug#54515: Crash in opt_range.cc::get_best_group_min_max on SELECT from VIEW with GROUP BY When handling the grouping items in get_best_group_min_max, the items need to be of type Item_field. In this bug, an ASSERT triggered because the item used for grouping was an Item_direct_view_ref (i.e., the group column is from a view). The fix is to get the real_item since Item_ref* pointing to Item_field is ok.
-
Guilhem Bichot authored
from next-mr-bugfixing: BUG#54682 "set sql_select_limit=0 does not work"; let SQL_SELECT_LIMIT=0 work like it does in 5.1.
-
Luis Soares authored
-
Luis Soares authored
-
Luis Soares authored
-
Luis Soares authored
-
- 07 Jul, 2010 4 commits
-
-
Luis Soares authored
-
Jon Olav Hauglid authored
table immediately after The problem was that rows inserted in a table by one connection was not immediately visible if another connection queried the table, even if the insert had committed. The reason for the problem was that the server sent a status reply to the client before it actually did the commit. Therefore it was possible to get an OK from the server before the changes were made permanent and visible to other connections. This patch fixes the problem by not sending status messages to the server until any changes made have been committed. No test case added as reproducing the error requires very specific timing betweeen the server and two or more clients. This patch also fixes the following (duplicate) bugs: Bug #29334 pseudo-finished SHOW GLOBAL STATUS Bug #36618 myisam insert not immediately visible to select from another client Bug #45864 insert on one connection, immediate query on another produces no result Bug #51329 Inserts from one connection not immediately visible in second connection Bug #41516 Assertion fails when error returned from handler::external_lock(thd, F_UNLCK)
-
Alexander Barkov authored
Problem: sha2() reported its result as BINARY Fix: - Inheriting Item_func_sha2 from Item_str_ascii_func - Setting max_length via fix_length_and_charset() instead of direct assignment. - Adding tests
-
Alexander Barkov authored
Problem: Item_copy did not set "fixed", which resulted in DBUG_ASSERT in some cases. Fix: adding initialization of the "fixed" member Adding tests: mysql-test/include/ctype_numconv.inc mysql-test/r/ctype_binary.result mysql-test/r/ctype_cp1251.result mysql-test/r/ctype_latin1.result mysql-test/r/ctype_ucs.result Adding initialization of the "fixed" member: sql/item.h
-
- 06 Jul, 2010 3 commits
-
-
Luis Soares authored
The server was not cleaning up dbug allocated memory before exiting. This is not a real problem, as this memory would be deallocated anyway. Nonetheless, we improve the mysqlbinlog exit procedure, wrt to memory book-keeping, when no parameter is given. To fix this, we deploy a call to my_thread_end() before the thread exits, which will also free pending dbug related allocated blocks.
-
Davi Arnaut authored
value and NO_ZERO_DATE The problem was that a older version of the error path for a failed admin statement relied upon a few error conditions being met in order to access a table handler, the first one being that the table object pointer was not NULL. Probably due to chance, in all cases a table object was closed but the reference wasn't reset, the other conditions didn't evaluate to true. With the addition of a new check on the error path, the handler started being dereferenced whenever it was not reset to NULL, causing problems for code paths which closed the table but didn't reset the reference. The solution is to reset the reference whenever a admin statement fails and the tables are closed.
-
Alexander Nozdrin authored
-
- 05 Jul, 2010 6 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
3245 Vladislav Vaintroub 2010-06-16 Bug #52959 uint in typedef.h undefined on Windows Fix: change uint to "unsigned int"
-
Jon Olav Hauglid authored
This assert checks that the server does not try to send EOF to the client if there has been some error during processing. This to make sure that the error is in fact sent to the client. The problem was that any errors during processing of WHERE conditions in HANDLER ... READ statements where not detected by the handler code. The handler code therefore still tried to send EOF to the client, triggering the assert. The bug was only noticeable in debug builds. This patch fixes the problem by making sure that the handler code checks for errors during condition processing and acts accordingly.
-
Alexander Nozdrin authored
large-pages option is broken) from next-mr to trunk-bugfixing. Original revision: ------------------------------------------------------------ revision-id: vvaintroub@mysql.com-20100416134524-y4v27j90p5xvblmy parent: luis.soares@sun.com-20100416000700-n267ynu77visx31t committer: Vladislav Vaintroub <vvaintroub@mysql.com> branch nick: mysql-next-mr-bugfixing timestamp: Fri 2010-04-16 15:45:24 +0200 message: Bug #52716 Large files support is disabled, large-pages option is broken. Correct typo: large pages option was tied to wrong variable opt_large_files, instead of opt_large_pages. ------------------------------------------------------------
-
Sergey Vojtovich authored
Adjusted tests.
-
Sergey Vojtovich authored
-
- 04 Jul, 2010 1 commit
-
-
Alfranio Correia authored
-
- 02 Jul, 2010 6 commits
-
-
Konstantin Osipov authored
MERGE engine". Backport the patch from 6.0 by Ingo Struewing: revid:ingo.struewing@sun.com-20091028183659-6kmv1k3gdq6cpg4d Bug#36171 - CREATE TEMPORARY TABLE and MERGE engine In former MySQL versions, up to 5.1.23/6.0.4 it was possible to create temporary MERGE tables with non-temporary MyISAM tables. This has been changed in the mentioned version due to Bug 19627 (temporary merge table locking). MERGE children were locked through the parent table. If the parent was temporary, it was not locked and so the children were not locked either. Parallel use of the MyISAM tables corrupted them. Since 6.0.6 (WL 4144 - Lock MERGE engine children), the children are locked independently from the parent. Now it is possible to allow non-temporary children with a temporary parent. Even though the temporary MERGE table itself is not locked, each non-temporary MyISAM table is locked anyway. NOTE: Behavior change: In 5.1.23/6.0.4 we prohibited non-temporary children with a temporary MERGE table. Now we re-allow it. An important side-effect is that temporary tables, which overlay non-temporary MERGE children, overlay the children in the MERGE table.
-
Konstantin Osipov authored
and a backport of relevant changes from the 6.0 version of the fix done by Ingo Struewing. The bug itself was fixed by the patch for Bug#54811. MyISAMMRG engine would try to use MMAP on its children even on platforms that don't support it and even if myisam_use_mmap option was off. This lead to an infinite hang in INSERT ... SELECT into a MyISAMMRG table when the destination MyISAM table was also selected from. A bug in duplicate detection fixed by 54811 was essential to the hang - when a duplicate is detected, the optimizer disables the use of memory mapped files, and it wasn't the case. The patch below is also to not turn on MMAP on children tables if myisam_use_mmap is off. A test case is added to cover MyISAMMRG and myisam_use_mmap option.
-
Sergey Vojtovich authored
Fixed MyISAM storage engine comment, so it doesn't anymore state that MyISAM is default storage engine.
-
Jon Olav Hauglid authored
with open HANDLER Fixes a problem with schema.test visible using embedded server. The HANDLER was not closed which caused the test to hang. The problem was not visible if the test was run on a normal server as the the handler there was implicitly closed by DATABASE DDL statements doing Events::drop_schema_events().
-
Jon Olav Hauglid authored
with open HANDLER Fixes problem which caused mdl_sync.test to fail on Solaris and Windows due to path name differences in error messages in the result file.
-
Alexander Nozdrin authored
-
- 01 Jul, 2010 1 commit
-
-
Luis Soares authored
DROP TEMP TABLE Cset: alfranio.correia@sun.com-20100420091043-4i6ouzozb34hvzhb introduced a change that made drop temporary table to be always logged if current statement log format was set to row. This is fine. However, logging operations, for a "DROP TABLE" statement in mysql_rm_table_part2, are not protected by first checking if the mysql_bin_log is open before proceeding to the actual logging. They only check the dont_log_query variable. This was actually uncovered by the aforementioned cset and not introduced by it. We fix this by extending the condition used in the "if" that wraps logging operations in mysql_rm_table_part2.
-