- 30 Nov, 2010 1 commit
-
-
Michael Widenius authored
-
- 29 Nov, 2010 4 commits
-
-
Michael Widenius authored
configure.in: Added comment mysql-test/suite/innodb_plugin/t/innodb_bug56680.test: Disable test when run with valgrind as we get errors from buf_buddy_relocate() on work for this test. (Should probably be investigated as this may be an issue in xtradb, but probably harmless) Work is an amd-64 running openSUSE 1.11 and valgrind 3.4.1 mysys/charset.c: Remove static function if not used (to remove compiler warning) storage/xtradb/srv/srv0srv.c: Added casts to get rid of compiler warnings
-
Hakan Kuecuekyilmaz authored
-
Michael Widenius authored
-
Michael Widenius authored
- Removed SCCS rule from Makefile.am - Made dummy rule in sql_yacc.yy to get rid of compiler warning about not used label. Don't use maintainer mode with valgrind (as we don't want to initialize all variables) config/ac-macros/maintainer.m4: Don't use maintainer mode with valgrind (as we don't want to initialize all variables) Force initialization of variables when using -Werror (To get rid of compiler warnings) configure.in: Don't use maintainer mode with valgrind (as we don't want to initialize all variables) sql/sql_yacc.yy: Made dummy rule in sql_yacc.yy to get rid of compiler warning about not used label.
-
- 26 Nov, 2010 2 commits
-
-
Michael Widenius authored
extra/libevent/event.c: Tried to fix compiler warning on windows extra/libevent/evutil.h: Define __attribute__ for not gcc compilers extra/libevent/kqueue.c: Fixed compiler warnings extra/libevent/signal.c: Tried to fix compiler warning on windows storage/pbxt/src/ha_pbxt.cc: Fixed compiler warning about "variable might be clobbered by longjmp" storage/pbxt/src/table_xt.cc: Fixed compiler warnings (on windows) storage/xtradb/handler/i_s.cc: Fixed compiler warning by invoking the correct store function.
-
Michael Widenius authored
Fix post-merge failure in 5.1-merge - Let QUICK_RANGE_INTERSECT_SELECT not make assumption that HA_EXTRA_KEYREAD scans do not touch parts of table->record[0] that refer to fields that are not covered by the used index. This assumption is not true for XtraDB (e.g. grep row/row0sel.c for "init null bytes with default values as they might be").
-
- 25 Nov, 2010 5 commits
-
-
Michael Widenius authored
-
Michael Widenius authored
mysql-test/include/have_not_innodb_plugin.inc: Also detect if xtradb is installed mysql-test/suite/innodb/t/innodb_bug56143.test: Disabled test case that doesn't work for innodb_plugin/xtradb. mysql-test/suite/innodb_plugin/r/innodb_bug56632.result: Updated result (key_block_size is lower case in MariaDB, as all other options) mysql-test/suite/pbxt/r/partition_hash.result: Updated results (after partition row count optimization changes) mysql-test/suite/pbxt/r/partition_pruning.result: Updated results (after partition row count optimization changes) mysql-test/suite/pbxt/r/partition_range.result: Updated results (after partition row count optimization changes) mysql-test/suite/pbxt/r/subselect.result: Updated result after ROW() changes.
-
Michael Widenius authored
Fixed compiler warnings in xtradb Added back resetting of null bitmap but now in row_search_for_mysql() storage/xtradb/row/row0sel.c: Added back resetting of null bitmap but now in row_search_for_mysql()
-
Michael Widenius authored
Introduced a new flag in the class Item. The flag is set to 1 only for items that are used in GROUP BY lists of queries with ROLLUP.
-
Michael Widenius authored
-
- 24 Nov, 2010 4 commits
-
-
Michael Widenius authored
Open issues: - A better fix for #57688; Igor is working on this - Test failure in index_merge_innodb.test ; Igor promised to look at this - Some Innodb tests fails (need to merge with latest xtradb) ; Kristian promised to look at this. - Failing tests: innodb_plugin.innodb_bug56143 innodb_plugin.innodb_bug56632 innodb_plugin.innodb_bug56680 innodb_plugin.innodb_bug57255 - Werror is disabled; Should be enabled after merge with xtradb.
-
unknown authored
-
unknown authored
revid:oleg.tsarev@percona.com-20101118145125-wjhjrb5jwhi0g7sj
-
unknown authored
Merged: revid:oleg.tsarev@percona.com-20101118145125-wjhjrb5jwhi0g7sj
-
- 23 Nov, 2010 4 commits
-
-
Michael Widenius authored
-
Michael Widenius authored
-
unknown authored
Registration of pointer change if we assign it to other pointer which should be identical after statement execution (PS/SP). mysql-test/r/subselect.result: Test suite. mysql-test/t/subselect.test: Test suite. sql/sql_class.cc: The procedure of the pointer registration. sql/sql_class.h: The procedure of the pointer registration. sql/sql_lex.cc: Registration of pointer change if we assign it to other pointer which should be identical after statement execution (PS/SP).
-
unknown authored
-
- 18 Nov, 2010 1 commit
-
-
unknown authored
-
- 17 Nov, 2010 1 commit
-
-
unknown authored
Switch makefiles to use libtool to build libmysqld.so, as well as all its dependencies. The previous MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS() declaration is removed, as it does not work well with a libtool build. Instead, plugins that need it can specify an alternate object in MYSQL_PLUGIN_STATIC() that will be used for embedded library. The plugin must then take care itself of compiling the special object for embedded, rebuilding the source files previously listed in MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS() with @plugin_embedded_defs@ in CFLAGS/CXXFLAGS. The extra target @XXX_embedded_static_target@ is available for the special object, this will be empty when --without-embedded-server. All in-tree plugins are changed to build their static targets with libtool. Additional plugins that want to work with libmysqld.so will need to be similarly modified to build with libtool (or otherwise provide an -fPIC object). Dynamically loaded plugins are not affected. The old libraries like libmysys.a, libmyisam.a and similar libraries, which were installed by `make install` though this is of little use, are still built and installed to not break package scripts etc. that expect them. These libraries are kept static to avoid introducing new .so dependencies. The patch also fixes a handfull of duplicate symbol linker errors, where we included some object twice during linking; these for one reason or another did not produce errors before but caused problems on some platforms with this patch (eg. Mac OS X linker is more strict for shared objects). This patch only does what is necessary to build libmysqld.so. There are some more cleanups that are possible now that we are using libtool more fully, which could done in subsequent patches (though we may not bother as we are switching from autotools to CMake anyway): - In libmysql_r/, we should be able to just link libmysys.la etc, instead of symlinking and re-compiling sources into the directory. - In libmysql/, we can similarly avoid symlinking and recompiling sources if we instead build a libmysys_nothread.la library with appropriate CFLAGS and link that. - In sql/, we can build a separate target libmysql_int.la with appropriate CFLAGS for embedded and use that in libmysqld/ instead of symlinking sources. - libmysys.a, libmyisam.a and similar libraries could be installed as .so also to save on code size; or alternatively could be not installed at all. client/Makefile.am: Updated for using libtool config/ac-macros/plugins.m4: Replace MUSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS with mechanism for plugins to specify alternate object for embedded. configure.in: Fix linking duplicate objects related to THREAD_LOBJECTS. dbug/Makefile.am: Updated for using libtool extra/Makefile.am: Fix relative paths. libmysqld/Makefile.am: Build libmysqld.la using libtool libmysqld/examples/Makefile.am: Updated to use libtool mysys/Makefile.am: Updated to use libtool. Fix linking duplicate objects related to THREAD_LOBJECTS. mysys/my_uuid.c: Fix conflicting global mutex name by making it static. regex/Makefile.am: Updated to use libtool sql/Makefile.am: Updated to use libtool sql/item_func.cc: Fix conflicting mutex name. sql/mysql_priv.h: Fix conflicting mutex name sql/mysqld.cc: Fix conflicting mutex name. Add missing call of my_uuid_end(). storage/archive/Makefile.am: Updated to use libtool storage/archive/plug.in: Updated to use libtool storage/blackhole/Makefile.am: Updated to use libtool storage/blackhole/plug.in: Updated to use libtool storage/csv/Makefile.am: Updated to use libtool storage/csv/plug.in: Updated to use libtool storage/example/Makefile.am: Updated to use libtool storage/federated/Makefile.am: Updated to use libtool storage/federated/plug.in: Updated to use libtool storage/federatedx/Makefile.am: Updated to use libtool storage/federatedx/plug.in: Updated to use libtool storage/heap/Makefile.am: Updated to use libtool storage/heap/plug.in: Updated to use libtool storage/innobase/Makefile.am: Updated to use libtool storage/innobase/plug.in.disabled: Updated to use libtool storage/innodb_plugin/Makefile.am: Updated to use libtool storage/maria/CMakeLists.txt: Fix linking duplicate object in maria_dump_log, causes failure on Mac OS X storage/maria/Makefile.am: Updated to use libtool Fix linking duplicate object in maria_dump_log, causes link failure on Mac OS X storage/maria/ma_loghandler.c: Move maria_dump_log code to separate file to fix duplicate object link failures. storage/maria/ma_loghandler.h: Move maria_dump_log code to separate file to fix duplicate object link failures. storage/maria/maria_dump_log.c: Move maria_dump_log code to separate file to fix duplicate object link failures. storage/maria/plug.in: Updated to use libtool storage/myisam/Makefile.am: Updated to use libtool storage/myisam/plug.in: Updated to use libtool storage/myisammrg/Makefile.am: Updated to use libtool storage/myisammrg/plug.in: Updated to use libtool storage/pbxt/plug.in: Updated to use libtool storage/pbxt/src/Makefile.am: Updated to use libtool storage/xtradb/Makefile.am: Updated to use libtool storage/xtradb/plug.in: Updated to use libtool strings/Makefile.am: Updated to use libtool unittest/unit.pl: Don't attempt to run libtool internal files as unit tests. vio/Makefile.am: Updated to use libtool
-
- 09 Nov, 2010 1 commit
-
-
unknown authored
This patch removes most remaining delays due to uninteruptible sleep() during shutdown, as found using PMP. This makes standard test run very close in speed to with --loose-innodb-fast-shutdown=2, and greatly speeds up running the test suite. sql/mysqld.cc: Poll for threads to die every 20 msec during shutdown, rather than force a wait for 2 full seconds should one thread be a little slow to exit (this was seen occasionally in mysql-test-run). storage/xtradb/include/srv0srv.h: Rename the event, as we now use it to wakeup more threads during shutdown. storage/xtradb/log/log0log.c: Rename the event, as we now use it to wakeup more threads during shutdown. storage/xtradb/srv/srv0srv.c: Replace some hardcoded sleep()s with os_wait_event_time() that can be interrupted early during server shutdown to avoid unnecessary delays.
-
- 16 Nov, 2010 2 commits
- 15 Nov, 2010 1 commit
-
-
Michael Widenius authored
- Fixed bug in pagecache_delete_internal() when deleting block that was flushed by another thread (fixed bug when block->next_used was unexpectedly null) Fixed some using uninitialized memory warnings found by valgrind. mysql-test/t/information_schema_all_engines-master.opt: Added options to make slow test run faster sql/sp.cc: Fixed valgrind warning. sql/sql_show.cc: Fixed valgrind warning. storage/maria/ma_bitmap.c: Fixed wrong call parameter to pagecache_unlock_by_link() that caused assert crash in pagecache storage/maria/ma_pagecache.c: Fixed possible error in pagecache_wait_lock() when hash_link was not set. (We never hit this issue, but could be possible when two threads updates the same page. Fixed bug in pagecache_delete_internal() when deleting block that was flushed by another thread (fixed bug when block->next_used was unexpectedly null) Cleanup: moved pagecache_pthread_mutex_unlock() over comments and asserts to be just before pagecache_fwrite()
-
- 07 Nov, 2010 1 commit
-
-
Michael Widenius authored
Added option BACKUP_ALL to mysqld --myisam-recover to also get a backup of the index file before it's repaired. Removed wrong call to translog_buffer_unlock() that caused 'unlocking not locked mutex' failure in Aria log handler. extra/replace.c: Updated call to my_redel() include/maria.h: Updated prototype for maria_change_to_newfile include/my_sys.h: Updated prototypes Added my_create_backup_name include/myisam.h: Updated prototypes include/myisamchk.h: Added 'backup_time' to st_handler_check_param to be able to generate same name for backuped data and index file mysys/my_redel.c: Added time_t option to my_redel() to be able to generate same backup extensions for many files sql/handler.cc: Added start_time to st_ha_check_opt sql/handler.h: Added start_time to HA_CHECK_OPT sql/mysqld.cc: Added option BACKUP_ALL to --myisam-recover storage/maria/ha_maria.cc: Remember start time for repair storage/maria/ma_check.c: Use remembered start time for backup file names Removed some dead code storage/maria/ma_loghandler.c: Removed wrong call to translog_buffer_unlock() that caused 'unlocking not locked mutex' failure in log handler. storage/maria/maria_chk.c: Removed dead code (O_NEW_INDEX was never set) Report if table was 'crashed on repair' storage/maria/maria_pack.c: Updated parameters to my_redel() storage/myisam/ha_myisam.cc: Added recover option BACKUP_ALL to get a backup of the index file before it's repaired. Print information to log if we make a backup of data as part of repair. storage/myisam/ha_myisam.h: Added HA_RECOVER_FULL_BACKUP storage/myisam/mi_check.c: Use remembered start time for backup file names Added mi_make_backup_of_index() storage/myisam/myisamchk.c: Removed dead code (O_NEW_INDEX was never set) Report if table was 'crashed on repair' storage/myisam/myisampack.c: Updated call to my_redel()
-
- 04 Nov, 2010 2 commits
-
-
Michael Widenius authored
-
Michael Widenius authored
This fixes a bug that gave ER_FILE_TOO_SHORT error when scanning Aria tables. storage/maria/ma_blockrec.c: Changed code so that we update share->state.state.data_file_length after page cache write is done. When scanning pages, stop when you are at 'data_file_length'. (We can't trust the bitmap as there may be reserved pages in the bitmap that are not yet written). This fixes a bug that gave ER_FILE_TOO_SHORT error when scanning Aria tables. storage/maria/maria_def.h: Updated struct for stopping scanning at end of file
-
- 03 Nov, 2010 5 commits
-
-
unknown authored
Implement os_event_wait_time() for POSIX systems. In the purge thread, use os_event_wait_time() when sleeping rather than sleep, and signal the event when server shuts down, so we do not need to wait for upto 10 seconds until the purge thread wakes up. Also fix bug that warnings that were pushed after we call set_ok_status() were not included in the waning count sent to the client in the result packet. Also in mysqltest, in recursive die() invocation at least print the message before aborting. client/mysqltest.cc: If we detect recursive die(), at least print the message before aborting. mysql-test/r/warnings_debug.result: Test case. mysql-test/t/warnings_debug.test: Test case. sql/handler.cc: Force generation of a warning with specific debug option, for testing. sql/protocol.cc: Fix wrong DBUG_ENTER sql/sql_class.h: Add method to count warnings pushed after set_ok_status() is called. sql/sql_error.cc: Also count warnings pushed after set_ok_status() is called. storage/xtradb/include/os0sync.h: Implement working os_sync_wait_time() for POSIX. storage/xtradb/include/srv0srv.h: Make the purge thread wait for an event when sleeping, so we can signal it to wakeup immediately at shutdown. storage/xtradb/log/log0log.c: Make the purge thread wait for an event when sleeping, so we can signal it to wakeup immediately at shutdown. storage/xtradb/os/os0sync.c: Implement working os_sync_wait_time() for POSIX. storage/xtradb/srv/srv0srv.c: Make the purge thread wait for an event when sleeping, so we can signal it to wakeup immediately at shutdown.
-
Michael Widenius authored
-
Michael Widenius authored
-
Michael Widenius authored
Fixed a bug in Aria when two threads was inserting into the same table and row page and one thread did an abort becasue of duplicate key. mysys/thr_lock.c: Fixed valgrind warning sql/sql_base.cc: Remove not used variable storage/maria/ma_bitmap.c: Added ma_bitmap_lock() & ma_bitmap_unlock() to protect against two threads using the bitmap at the same time. More DBUG_PRINT() storage/maria/ma_blockrec.c: Fixed a bug in Aria when two threads was inserting into the same table and row page and one thread did an abort becasue of duplicate key. Fix was that we block other threads to modify the bitmap while we are removing the row with a duplicate key. storage/maria/ma_blockrec.h: Added ma_bitmap_lock() & ma_bitmap_unlock() to protect against two threads using the bitmap at the same time. storage/maria/maria_def.h: Changed flush_all_requested to be a counter. storage/myisam/mi_locking.c: Fixed compiler error on windows (typo).
-
Georgi Kodinov authored
-
- 02 Nov, 2010 2 commits
-
-
unknown authored
-
Michael Widenius authored
Added locking of lock mutex when updating status in external_unlock() for Aria and MyISAM tables. Fixed that 'source' command doesn't cause mysql command line tool to exit on error. DEBUG_EXECUTE() and DEBUG_EVALUATE_IF() should not execute things based on wildcards. (Allows one to run --debug with mysql-test-run scripts that uses @debug) Fixed several core dump, deadlock and crashed table bugs in handling of LOCK TABLE with MERGE tables: - Added priority of locks to avoid crashes with MERGE tables. - Added thr_lock_merge() to allow one to merge two results of thr_lock(). Fixed 'not found row' bug in REPLACE with Aria tables. Mark MyISAM tables that are part of MERGE with HA_OPEN_MERGE_TABLE and set the locks to have priority THR_LOCK_MERGE_PRIV. - By sorting MERGE tables last in thr_multi_unlock() it's safer to release and relock them many times (can happen when TRIGGERS are created) Avoid printing (null) in debug file (to easier find out wrong NULL pointer usage with %s). client/mysql.cc: Fixed that 'source' command doesn't cause mysql command line tool to exit on error. client/mysqltest.cc: Don't send NULL to fn_format(). (Can cause crash on Solaris when using --debug) dbug/dbug.c: DEBUG_EXECUTE() and DEBUG_EVALUATE_IF() should not execute things based on wildcards. include/my_base.h: Added flag to signal if one opens a MERGE table. Added extra() command to signal that one is not part of a MERGE table anymore. include/thr_lock.h: Added priority for locks (needed to fix bug in thr_lock when using MERGE tables) Added option to thr_unlock() if get_status() should be called. Added prototype for thr_merge_locks(). mysql-test/mysql-test-run.pl: Ignore crashed table warnings for tables named 'crashed'. mysql-test/r/merge.result: Renamed triggers to make debugging easier. Added some CHECK TABLES to catch errors earlier. Additional tests. mysql-test/r/merge_debug.result: Test of error handling when reopening MERGE tables. mysql-test/r/udf_query_cache.result: Added missing flush status mysql-test/suite/parts/r/partition_repair_myisam.result: Update results mysql-test/t/merge.test: Renamed triggers to make debugging easier. Added some CHECK TABLES to catch errors earlier. Additional tests. mysql-test/t/merge_debug.test: Test of error handling when reopening MERGE tables. mysql-test/t/udf_query_cache.test: Added missing flush status mysys/my_getopt.c: Removed not used variable mysys/my_symlink2.c: Changed (null) to (NULL) to make it easier to find NULL arguments to DBUG_PRINT() functions. (On linux, NULL to sprintf is printed 'null') mysys/thr_lock.c: Added priority of locks to avoid crashes with MERGE tables. Added thr_lock_merge() to allow one to merge two results of thr_lock(). - This is needed for MyISAM as all locked table must share the same status. If not, you will not see newly inserted rows in other instances of the table. If calling thr_unlock() with THR_UNLOCK_UPDATE_STATUS, call update_status() and restore_status() for the locks. This is needed in some rare cases where we call thr_unlock() followed by thr_lock() without calling external_unlock/external_lock in between. Simplify loop in thr_multi_lock(). Added 'start_trans', which is called at end of thr_multi_lock() when all locks are taken. - This was needed by Aria to ensure that transaction is started when we got all locks, not at get_status(). Without this, some rows could not be visible when we lock two tables at the same time, causing REPLACE using two tables to fail unexpectedly. sql/handler.cc: Add an assert() in handler::print_error() for "impossible errors" (like table is crashed) when --debug-assert-if-crashed-table is used. sql/lock.cc: Simplify mysql_lock_tables() code if get_lock_data() returns 0 locks. Added new parameter to thr_multi_unlock() In mysql_unlock_read_tables(), call first externa_unlock(), then thr_multi_unlock(); This is same order as we do in mysql_unlock_tables(). Don't abort locks in mysql_lock_abort() for merged tables when a MERGE table is deleted; Would cause a spin lock. Added call to thr_merge_locks() in mysql_lock_merge() to ensure consistency in thr_locks(). - New locks of same type and table is stored after the old lock to ensure that we get the status from the original lock. sql/mysql_priv.h: Added debug_assert_if_crashed_table sql/mysqld.cc: Added --debug-assert-if-crashed-table sql/parse_file.cc: Don't print '(null)' in DBUG_PRINT of no dir given sql/set_var.cc: Increase default size of buffer for @debug variable. sql/sql_base.cc: In case of error from reopen_table() in reopen_tables(), call unlock_open_table() and restart loop. - This fixed bug when we twice deleted same table from open_cache. Don't take name lock for already name locked table in open_unireg_entry(). - Fixed bug when doing repair in reopen_table(). - In detach_merge_children(), always detach if 'clear_refs' is given. We can't trust parent->children_attached as this function can be called twice, first time with clear_refs set to 0. sql/sql_class.cc: Changed printing of (null) to "" in set_thd_proc_info() sql/sql_parse.cc: Added DBUG sql/sql_trigger.cc: Don't call unlink_open_table() if reopen_table() fails as the table may already be freed. storage/maria/ma_bitmap.c: Fixed DBUG_ASSERT() in allocate_tail() storage/maria/ma_blockrec.c: Fixed wrong calculation of row length for very small rows in undo_row_update(). - Fixes ASSERT() when doing undo. storage/maria/ma_blockrec.h: Added _ma_block_start_trans() and _ma_block_start_trans_no_versioning() storage/maria/ma_locking.c: Call _ma_update_status_with_lock() when releasing write locks. - Fixes potential problem with updating status without the proper lock. storage/maria/ma_open.c: Changed to use start_trans() instead of get_status() to ensure that we see all rows in all locked tables when we got the locks. - Fixed 'not found row' bug in REPLACE with Aria tables. storage/maria/ma_state.c: Added _ma_update_status_with_lock() and _ma_block_start_trans(). This is to ensure that we see all rows in all locked tables when we got the locks. storage/maria/ma_state.h: Added _ma_update_status_with_lock() storage/maria/ma_write.c: More DBUG_PRINT storage/myisam/mi_check.c: Fixed error message storage/myisam/mi_extra.c: Added HA_EXTRA_DETACH_CHILD: - Detach MyISAM table to not be part of MERGE table (remove flag & lock priority). storage/myisam/mi_locking.c: Call mi_update_status_with_lock() when releasing write locks. - Fixes potential problem with updating status without the proper lock. Change to use new HA_OPEN_MERGE_TABLE flag to test if MERGE table. Added mi_fix_status(), called by thr_merge(). storage/myisam/mi_open.c: Added marker if part of MERGE table. Call mi_fix_status() in thr_lock() for transactional tables. storage/myisam/myisamdef.h: Change my_once_flag to uint, as it stored different values than just 0/1 Added 'open_flag' to store state given to mi_open() storage/myisammrg/ha_myisammrg.cc: Add THR_LOCK_MERGE_PRIV to THR_LOCK_DATA to get MERGE locks sorted after other types of locks. storage/myisammrg/myrg_locking.c: Remove windows specific code. storage/myisammrg/myrg_open.c: Use HA_OPEN_MERGE_TABLE to mi_open(). Set HA_OPEN_MERGE_TABLE for linked MyISAM tables. storage/xtradb/buf/buf0buf.c: Fixed compiler warning storage/xtradb/buf/buf0lru.c: Initialize variable that could be used not initialized.
-
- 01 Nov, 2010 2 commits
-
-
unknown authored
-
Sergey Glukhov authored
-
- 29 Oct, 2010 2 commits
-
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-