This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

MariaDB 5.1.51 Changelog

Download | Release Notes | Changelog | Overview of 5.1

Release date: 19 Nov 2010

For the highlights of this release, see the release notes.

The revision number links will take you to the revision's page on Launchpad. On Launchpad you can view more details of the revision and view diffs of the code modified in that revision.

  • Revision #2976
    • Fix of the debugging print.
  • Revision #2975
    • MWL#74: Shared libmysqld.so library.
      • 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.
  • Revision #2974
    • Bug #643463: Slow XtraDB shutdown: Fix more sleeps delaying shutdown.
      • 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.
  • Revision #2973
    • Fix flags for non-debug builds
  • Revision #2972
    • Fixed mess in the types.
  • Revision #2971
    • Fixed bug discovered by testcase for Bug #618558 (original bug seams to be fixed):
      • 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.
  • Revision #2970
    • 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.
  • Revision #2969 [merge] Automatic merge
    • Revision #2967.1.1
      • When scanning pages, stop when you are at 'data_file_length'.
      • This fixes a bug that gave ER_FILE_TOO_SHORT error when scanning Aria tables.
  • Revision #2968
    • Bug #643463: slow XtraDB shutdown due to 10 second sleep in purge thread
      • 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.
  • Revision #2967
    • Fixed compile error when not using gcc (crashes at least on windows)
  • Revision #2966 [merge]
    • Automatic merge
    • Revision #2964.1.1
      • Fixed compiler & valgrind warnings from my previous push.
      • 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.
  • Revision #2965
    • #endif fixed.
  • Revision #2964
    • Fix for: Bug #634955: Assert in _ma_update_at_original_place()
    • 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).
  • Revision #2963
    • mysqltest: Fix reversed error check, causing truncated output when testcase fails.
    • Also fix missing zero termination in DBUG_PRINT, causing garbage output in --debug output.
  • Revision #2962
    • Fix test failure (timeout) in --valgrind tests in Buildbot.
    • The main.ps_ddl test does SELECT * FROM mysql.general_log; that can be really expensive with --valgrind if previous test cases put lots of data in the general log since last server restart. Fix by truncating the log at test start.
  • Revision #2961
  • Revision #2960
    • Show the number of warm keycache blocks in SHOW STATUS
  • Revision #2959
    • Make the skip-on-windows check as the first one, as the master-slave include fails on windows.
  • Revision #2958
    • better fix for MySQL bugs
      • MySQL Bug #26447 prefer a clustered key for an index scan, as secondary index is always slower
        • ... which was fixed to cause
      • MySQL Bug #35850 queries take 50% longer
        • ... and was reverted
    • and
      • MySQL Bug #39653 prefer a secondary index for an index scan, as clustered key is always slower
        • ... which was fixed to cause
      • MySQL Bug #55656 mysqldump takes six days instead of half an hour
        • ... and was amended with a special case workaround
  • Revision #2957
    • fixes Bug #618608 build mysqld.exe with federatedx not federated
  • Revision #2956
    • updated test results
  • Revision #2955
    • fixed a bad merge
  • Revision #2954 [merge]
    • Merge XtraDB from Percona-server-5.1.51-12 into MariaDB.
    • Revision #2952.1.1 [merge]
      • Merge XtraDB from Percona-server-5.1.51-12 into MariaDB.
      • Revision #0.6.43
        • Updated with changes from lp:percona-server/release-5.1.51-12 as of October 19, 2010
  • Revision #2953 [merge]
    • MySQL 5.1.51 merge
  • Revision #2952
    • Reverted the MySQL fix for MySQL Bug #51242 that was rejected once for mariadb-5.1.48 and mistakingly pulled in back for maria-5.1.50.
  • Revision #2951
    • Fixes for bugs found by running test case for Bug #608369 "Page: 1 Found wrong page type 0' on CHECK TABLE EXTENDED"
    • Fixed overflow when using long --debug=xxxxxx line.
    • Fixed that "mysqld --disable-debug --debug" works.
    • Ensure that MariaDB doesn't start if the Aria engine didn't start and we are using Aria for temporary tables.
    • More DBUG_ASSERT() and more info in debug log.
  • Revision #2950
    • Use less memory on stack in sql_parse.cc and in repair/check for MyISAM & Aria
  • Revision #2949
    • Fixes some bug in Aria recovery:
      • _ma_apply_redo_index: Assertion `page_offset != 0 && page_offset + length <= page_length' failed
    • Fixes one bug and one log assert when inserting rows:
      • _ma_log_split: Assertion `org_length <= info->s->max_index_block_size' failed
      • write_block_record: Assertion '(data_length < MAX_TAIL_SIZE(block_size)' failed
    • Mark in recovery log where _ma_log_add() calls was done (for better debugging).
  • Revision #2948 [merge]
    • Automatic merge
      • Revision #2945.1.1
        • Fix for MySQL Bug #43152 "Assertion `bitmap_is_set_all(&table->s->all_set)' failed in handler::ha_reset"
        • The reason for this was that some bitmap test functions changed the bitmap, which caused problems when the same bitmap was used by multiple threads.
  • Revision #2947
    • Don't use deprecated --skip-locking option in example config files.
  • Revision #2946 [merge]
  • Revision #2945
    • Merge with 1.0.11-7 Pre-GA - 2010-09-09
    • Updated results for failing test cases (In all cases the estimated number of rows was different)
  • Revision #2944 [merge]
    • Merge
      • Revision #2943.1.1
        • Fixed MySQL Bug #57024.
        • The condition over the outer tables now are extracted from the on condition of any outer join. This condition is saved in a special field of the JOIN_TAB structure for the first inner table of the outer join. The condition is checked before the first inner table is accessed. If it turns out to be false the table is not accessed at all and a null complemented row is generated immediately.
  • Revision #2943 [merge]
  • Revision #2942 [merge]
  • Revision #2941 [merge]
  • Revision #2940
    • fixes for windows
  • Revision #2939
    • bug in plugin.m4 that prevented group list in the MYSQL_PLUGIN declaration from working.
  • Revision #2938 [merge]
    • Automatic merge
      • Revision #2932.1.1
        • mysqltest now gives error messages with error code for my_delete, my_rename, my_copy etc.
        • Fixed crashing bug when doing ALTER TABLE RENAME with transactional tables.
  • Revision #2937
    • Fix preserving mysqld error log across server restarts, broken by recent mtr changes.
  • Revision #2936 [merge]
    • Merge: fix valgrind failure in Unique class
  • Revision #2935
    • don't build dynamic plugins when configured with --disable-shared.
    • libtool does not like it and fails the build.
  • Revision #2934 [merge]
  • Revision #2933
  • Revision #2932 [merge]
    • Merge
      • Revision #2929.1.1
        • Fixed Aria recovery bug: When reopening table during recovery, don't set file length from file sizes as file is not flushed.
        • New feature in Aria recovery: Create database directory if missing.
  • Revision #2931 [merge]
    • Merge
      • Revision #2927.2.1
        • Fixed MySQL Bug #49600:
        • The problem could be demonstrated with an outer join of two single-row tables where the values of the join attributes were null. Any query with such a join could return a wrong result set if the where condition of the query was not empty. For queries with empty where conditions the result sets were correct.
        • This was the consequence of two bugs in the code:
          • Item_equal objects for on conditions of outer joins were not built if the processed query had no where condition
          • the check for null values in the code that evaluated constant Item_equal objects was incorrect.
        • Fixed both above problems.
        • Added a test case for the bug and adjusted results for some other test cases.
  • Revision #2930 [merge]
    • Merge
      • Revision #2927.1.2 [merge]
        • Pulled in the latest changes in 5.1.
      • Revision #2927.1.1
        • Fixed MySQL Bug #49322: When not-exists optimization was applied to a table that happened to be an inner table of two outer joins, one embedded into another, then setting the match flag for the embedding outer join on could be skipped. This caused generation of extra null complemented rows. Made sure that the match flags are set correctly in all cases when not-exists optimization is used.
  • Revision #2929
    • Fix for Bug #634943 "marked as crashed", "zerofilling" and "wrong data in bitmap" when recovering Aria tables
      • This was an interaction of several bugs:
        • Tables marked as opened was not properly unmarked on recovery if there was not changes since checkpoint
        • zerofill of tables put wrong data in bitmap if directory for page was full
        • Tables was thought as 'moved' during recovery if they had a create_lsn bigger than the lsn in the control file.
  • Revision #2928
    • Fixed Bug #605798 "wrong data in bitmap" after recovery.
    • Extend remove_function_from_trace.pl to work with many threads (patch from Sergei)
  • Revision #2927
    • Updated failure text for maria_install_db
    • Don't give warning about block_insert if table is crashed.
  • Revision #2926 [merge]
    • Automatic merge with 5.1-release (5.1.50)
  • Revision #2925
    • Write message to stderr if recovery is not likely to succeed because we don't log records for batch inserts.
    • Don't do UNDO or REDO on a crashed table.
    • More DBUG_PRINT
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.