- 01 Jun, 2010 18 commits
-
-
Alfranio Correia authored
errors In the fix of BUG#39934 in 5.1-rep+3, errors are generated when binlog_format=row and a statement modifies a table restricted to statement-logging (ER_BINLOG_ROW_MODE_AND_STMT_ENGINE); or if binlog_format=statement and a statement modifies a table restricted to row-logging (ER_BINLOG_STMT_MODE_AND_ROW_ENGINE). However, some DDL statements that lock tables (e.g. ALTER TABLE, CREATE INDEX and CREATE TRIGGER) were causing spurious errors, although no row might be inserted into the binary log. To fix the problem, we tagged statements that may generate rows into the binary log and thence the warning messages are only printed out when the appropriate conditions hold and rows might be changed. sql/log_event.cc: Reorganized the Query_log_event's constructor based on the CF_CAN_GENERATE_ROW_EVENTS flag and as such any statement that has the associated flag should go through a cache before being written to the binary log. sql/share/errmsg-utf8.txt: Improved the error message ER_BINLOG_UNSAFE_MIXED_STATEMENT according to Paul's suggestion. sql/sql_class.cc: Created a hook to be used by innodb that checks if a statement may write rows to the binary log. In other words, if it has the CF_CAN_GENERATE_ROW_EVENTS flag associated. sql/sql_class.h: Defined the CF_CAN_GENERATE_ROW_EVENTS flag. sql/sql_parse.cc: Updated the sql_command_flags and added a function to check the CF_CAN_GENERATE_ROW_EVENTS. sql/sql_parse.h: Added a function to check the CF_CAN_GENERATE_ROW_EVENTS. storage/innobase/handler/ha_innodb.cc: Added a call to the hook thd_generates_rows(). storage/innobase/handler/ha_innodb.h: Defined an external reference to the hook thd_generates_rows().
-
Alfranio Correia authored
-
Alfranio Correia authored
-
Alfranio Correia authored
-
Alfranio Correia authored
breaks When a "CREATE TEMPORARY TABLE SELECT * FROM" was executed the OPTION_KEEP_LOG was not set into the thd->variables.option_bits. For that reason, if the transaction had updated only transactional engines and was rolled back at the end (.e.g due to a deadlock) the changes were not written to the binary log, including the creation of the temporary table. To fix the problem, we have set the OPTION_KEEP_LOG into the thd->variables.option_bits when a "CREATE TEMPORARY TABLE SELECT * FROM" is executed.
-
Alfranio Correia authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
Due to a BZR bug, that merge was done by the following command: bzr merge -r 'revid:tor.didriksen@sun.com-20100527074248-6qtv0p1ugy6o1hjo..' <mysql-trunk-bugfixing path>
-
Marko Mäkelä authored
------------------------------------------------------------ revno: 3490 revision-id: marko.makela@oracle.com-20100601120751-1uq7bbta5n7ts0qr parent: marko.makela@oracle.com-20100601120521-q48hk05ne4j1s2o0 committer: Marko Mäkelä <marko.makela@oracle.com> branch nick: 5.1-innodb timestamp: Tue 2010-06-01 15:07:51 +0300 message: Minor cleanup. lock_rec_unlock(): Cache first_lock and rewrite while() loops as for(). btr_cur_optimistic_update(): Use common error handling return. row_create_prebuilt(): Add Valgrind instrumentation.
-
Marko Mäkelä authored
------------------------------------------------------------ revno: 3488 revision-id: marko.makela@oracle.com-20100601103738-upm8awahesmeh9dr parent: vasil.dimov@oracle.com-20100531163540-9fu3prbn2asqwdi5 committer: Marko Mäkelä <marko.makela@oracle.com> branch nick: 5.1-innodb timestamp: Tue 2010-06-01 13:37:38 +0300 message: Bug#53812: assert row/row0umod.c line 660 in txn rollback after crash recovery row_undo_mod_upd_exist_sec(): Tolerate a failure to build the index entry for a DYNAMIC or COMPRESSED table during crash recovery.
-
Marko Mäkelä authored
------------------------------------------------------------ revno: 3478.1.3 revision-id: marko.makela@oracle.com-20100525123748-pmpehbg29oyhc1ns parent: marko.makela@oracle.com-20100524114349-5kaw52sz0yh4szkb committer: Marko Mäkelä <marko.makela@oracle.com> branch nick: 5.1-innodb timestamp: Tue 2010-05-25 15:37:48 +0300 message: Suppress bogus Valgrind warnings about buf_buddy_relocate() accessing uninitialized memory in Valgrind-instrumented builds.
-
Marko Mäkelä authored
------------------------------------------------------------ revno: 3478.1.4 revision-id: marko.makela@oracle.com-20100525125352-hgafpmqhrrj7pv5i parent: marko.makela@oracle.com-20100525123748-pmpehbg29oyhc1ns committer: Marko Mäkelä <marko.makela@oracle.com> branch nick: 5.1-innodb timestamp: Tue 2010-05-25 15:53:52 +0300 message: row_search_for_mysql(): Add assertions to track down Bug #53627.
-
Jonathan Perkin authored
-
Jonathan Perkin authored
previous. Convert some shell bits to standard 2-space indent, 80 columns, etc.
-
He Zhenxing authored
-
He Zhenxing authored
Check the length and use strncpy to make the code safer.
-
He Zhenxing authored
Check the length and use strncpy to make the code safer. plugin/semisync/semisync_master.cc: replace strcpy with strncpy to make the code safer
-
Alexander Nozdrin authored
-
- 31 May, 2010 8 commits
-
-
Vasil Dimov authored
Destroy the rw-lock object before freeing the memory it is occupying. If we do not do this, then the mutex that is contained in the rw-lock object btr_search_latch_temp->mutex gets "freed" and subsequently mutex_free() from sync_close() hits a mutex whose memory has been freed and crashes. Approved by: Heikki (via IRC) Discussed with: Calvin
-
Alexander Nozdrin authored
- revid:sp1r-svoj@mysql.com/june.mysql.com-20080324111246-00461 - revid:sp1r-svoj@mysql.com/june.mysql.com-20080414125521-40866 BUG#35274 - merge table doesn't need any base tables, gives error 124 when key accessed SELECT queries that use index against a merge table with empty underlying tables list may return with error "Got error 124 from storage engine". The problem was that wrong error being returned. mysql-test/r/merge.result: Backport of - revid:sp1r-svoj@mysql.com/june.mysql.com-20080324111246-00461 - revid:sp1r-svoj@mysql.com/june.mysql.com-20080414125521-40866 A test case for BUG#35274. Modified a test case according to fix for BUG#35274. Key based reads are now allowed for merge tables with no underlying tables defined. mysql-test/t/merge.test: Backport of - revid:sp1r-svoj@mysql.com/june.mysql.com-20080324111246-00461 - revid:sp1r-svoj@mysql.com/june.mysql.com-20080414125521-40866 A test case for BUG#35274. Modified a test case according to fix for BUG#35274. Key based reads are now allowed for merge tables with no underlying tables defined. storage/myisammrg/myrg_queue.c: Backport of - revid:sp1r-svoj@mysql.com/june.mysql.com-20080324111246-00461 - revid:sp1r-svoj@mysql.com/june.mysql.com-20080414125521-40866 Return "end of file" error instead of "wrong index" error when we got a merge table with empty underlying tables list. In 5.1 we cannot rely on info->open_tables value when checking if a merge table has no underlying tables defined. Use info->tables instead.
-
Alexey Botchkov authored
-
Gleb Shchepa authored
when it should use index Sometimes the LEFT/RIGHT JOIN with an empty table caused an unnecessary filesort. Sample query, where t1.i1 is indexed and t3 is empty: SELECT t1.*, t2.* FROM t1 JOIN t2 ON t1.i1 = t2.i2 LEFT JOIN t3 ON t2.i2 = t3.i3 ORDER BY t1.i1 LIMIT 5; The server erroneously used an item of empty outer-joined table as a common constant of a Item_equal (multi-equivalence expression). By the fix for the bug 16590 the constant status of such an item has been propagated to st_table::const_key_parts map bits related to other Item_equal argument-related key parts (those are obviously not constant in our case). As far as test_if_skip_sort_order function skips constant prefixes of testing keys, this caused an ignorance of available indices, since some prefixes were marked as constant by mistake. mysql-test/r/order_by.result: Test case for bug #38745. mysql-test/t/order_by.test: Test case for bug #38745. sql/item.h: Bug #38745: MySQL 5.1 optimizer uses filesort for ORDER BY when it should use index Item::is_outer_field() has been added and overloaded for Item_field and Item_ref classes. sql/item_cmpfunc.cc: Bug #38745: MySQL 5.1 optimizer uses filesort for ORDER BY when it should use index Item_equal::update_const() and Item_equal::update_used_tables() have been updated to not take into account the constantness of outer-joined table items.
-
Davi Arnaut authored
-
Tor Didriksen authored
Backport from mysql-pe (of those parts which have not been upmerged from 5.1) sql/field.cc: Local scope variable or method argument same as class attribute. sql/item.cc: Rename auto variable to avoid name clash. sql/item.h: Item_ref::basic_const_item had wrong signature (missing const) and was thus never called. sql/partition_info.cc: Rename, to avoid name clashes. sql/sql_load.cc: Rename, to avoid name clashes.
-
Vasil Dimov authored
-
Sergey Glukhov authored
-
- 28 May, 2010 11 commits
-
-
Davi Arnaut authored
Reorganize function to reflect that it does not actually uses curses and that there is no curses variant.
-
Davi Arnaut authored
client/mysql.cc: Remove unused functions. client/sql_string.cc: Remove unused functions. include/my_pthread.h: Remove unused prototype. mysys/my_pthread.c: Remove unused function. sql/lock.cc: Remove unused function. sql/lock.h: Remove unused and duplicated prototypes. sql/sql_class.h: Removed unused variables. sql/sql_const.h: Remove unused defines. sql/sql_priv.h: Remove unused defines. sql/sql_string.cc: Remove unused prototype. sql/thr_malloc.cc: Remove unused function. sql/thr_malloc.h: Remove unused prototype. storage/myisam/CMakeLists.txt: Remove obsolete fulltext file. storage/myisam/Makefile.am: Remove obsolete files (were already commented out). storage/myisam/ft_eval.c: Remove obsolete fulltext file. storage/myisam/ft_eval.h: Remove obsolete fulltext file. storage/myisam/ft_stem.c: Remove obsolete fulltext file. storage/myisam/ft_test1.c: Remove obsolete fulltext file. storage/myisam/ft_test1.h: Remove obsolete fulltext file.
-
Davi Arnaut authored
-
Davi Arnaut authored
-
Davi Arnaut authored
Formatting cleanup: removing tabs and trailing spaces to conform to MySQL Internals Coding Guidelines.
-
unknown authored
The problem is that if a NULL is stored in an Item_cache_decimal object, the associated my_decimal object is not initialized. However, it is still accessed when val_int() is called. The fix is to check for null_value within val_int(), and return without accessing the my_decimal object when the cached value is NULL. Bug#52122 reports the same issue for val_real(), and this patch also includes fixes for val_real() and val_str() and corresponding test cases from that bug report. Also, NULL is returned from val_decimal() when value is null. This will avoid that callers access an uninitialized my_decimal object. Made similar changes to all other Item_cache classes. Now all val_* methods should return a well defined value when actual value is NULL. mysql-test/r/type_decimal.result: Updated result file with test cases for Bug#52168 and Bug#52122. mysql-test/t/type_decimal.test: Added test cases for Bug#52168 and Bug#52122. sql/item.cc: In Item_cache_*::val_* methods, return a well defined value when actual value is NULL. This is especially important for Item_cache_decimal since otherwise one risk accessing an uninitialized my_decimal object. sql/item.h: Added method Item_cache::has_value() which returns TRUE if cache object contains a non-null value.
-
Vasil Dimov authored
-
Jonathan Perkin authored
-
Jonathan Perkin authored
-
Calvin Sun authored
r3119 does not prevent the crash even the test is disabled. The crash occurs during shutdown.
-
Alexander Nozdrin authored
-
- 27 May, 2010 3 commits
-
-
Vasil Dimov authored
consecutive_ios[0] cannot be NULL when slot is assigned.
-
Joerg Bruehe authored
is not needed any more with current versions of FreeBSD. (Entries 52410 and 52412 in the Bug DB) That change is based on Dan Nelson replying on the FreeBSD mailing list, freebsd-questions@freebsd.org in a thread running from 2010-Apr-29 to 2010-May-1 titled "Need info about FreeBSD and interrupted system calls for MySQL code" Also, ensure the cmake settings correspond to the autotools ones: Add "HAVE_BROKEN_REALPATH" to cmake. cmake/os/FreeBSD.cmake: With current versions of FreeBSD, threading is not done on the user-level any more, so the huge "net retry count" is not needed any more. However, it is still being kept as a comment for now, so that it can be re-activated should the need arise. In addition, set "HAVE_BROKEN_REALPATH" to completely mirror the autotools path. configure.in: With current versions of FreeBSD, threading is not done on the user-level any more, so the huge "net retry count" is not needed any more. This definitely holds for FreeBSD version 6 and up. Adapt the informational messages to the path taken.
-
Inaam Rana authored
list a thread doing a wait_ex as an s-lock waiter.
-