Release date: 30 Jan 2013
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 #3654
Tue 2013-01-29 12:27:31 +0100
- more changes for fedora18
- Revision #3653
Tue 2013-01-29 10:46:05 +0100
- fix 'compat' rpm for fedora18
- Revision #3652
Mon 2013-01-28 17:24:50 +0100
- fix embedded build with for cmake 2.6.2 (older cmake could not handle IF(NOT MATCHES)
- Revision #3651
Mon 2013-01-28 15:13:39 +0200
- Fix for MDEV-3948, and backport of the following collection of fixes and backports from MariaDB 10.0.
- The bug in MDEV-3948 was an instance of the problem fixed by Sergey's patch in 10.0 - namely that the range optimizer could change table->[read | write]_set, and not restore it.
- revno: 3471 committer: Sergey Petrunya <email@example.com> branch nick: 10.0-serg-fix-imerge timestamp: Sat 2012-11-03 12:24:36 +0400 message: # MDEV-3817: Wrong result with index_merge+index_merge_intersection, InnoDB table, join, AND and OR conditions Reconcile the fixes from: # # firstname.lastname@example.org # Fix for BUG#12698916 - "JOIN QUERY GIVES WRONG RESULT AT 2ND EXEC. OR # AFTER FLUSH TABLES [-INT VS NULL]" # # email@example.com # Fix for BUG#12912171 - ASSERTION FAILED: QUICK->HEAD->READ_SET == SAVE_READ_SET # and # and related fixes from: BUG#1006164, MDEV-376:
- Now, ROR-merged QUICK_RANGE_SELECT objects make no assumptions about the values of table->read_set and table->write_set. Each QUICK_ROR_SELECT has (and had before) its own column bitmap, but now, all QUICK_ROR_SELECT's functions that care: reset(), init_ror_merged_scan(), and get_next() will set table->read_set when invoked and restore it back to what it was before the call before they return.
- This allows to avoid the mess when somebody else modifies table->read_set for some reason.
- Revision #3650 [merge]
Mon 2013-01-28 13:36:05 +0100
- 5.3 merge
- Revision #2502.567.65 [merge]
Mon 2013-01-28 09:12:23 +0100
- 5.2 merge
- Revision #2502.566.42
Mon 2013-01-28 09:10:01 +0100
- compilation error with -Wuninitialized -Werror
- Revision #2502.566.41 [merge]
Fri 2013-01-25 17:22:21 +0100
- 5.1 merge
- Revision #2502.565.29 Fri 2013-01-25 14:29:46 +0100
- Revision #2502.565.28 Fri 2013-01-25 12:26:35 +0100
- Revision #2502.567.64
Sat 2013-01-26 22:33:18 +0100
- MDEV-3875 Wrong result (missing row) on a DISTINCT query with the same subquery in the SELECT list and GROUP BY
- fix remove_dup_with_hash_index() and remove_dup_with_compare() to take NULLs into account
- Revision #2502.567.63
Fri 2013-01-25 16:56:57 +0200
- The problem was that expression with field after transformation (on the first execution) reached by fix_fields() (via reference) before row which it belongs to (on the second execution) and fix_field for row did not follow usual protocol for Items with argument (first check that the item fixed then call fix_fields).
- Item_row::fix_field fixed.
- Revision #3649
Mon 2013-01-28 13:49:14 +0200
- MDEV-4091: Dynamic columns C functions should be included in libmysqlclient
- Revision #3648 [merge]
Sat 2013-01-26 22:23:27 +0100
- Merge MDEV-3842, MDEV-3923, MDEV-3971
- Revision #3644.1.4
Fri 2013-01-25 23:34:46 +0100
- fix embedded
- Revision #3644.1.3
Fri 2013-01-25 18:59:30 +0100
- Fix embedded build
- Revision #3644.1.2
Fri 2013-01-25 17:26:10 +0100
- MDEV-3842, MDEV-3923 :
- Miscellaneous workarounds for drop-in compatibility problems with Linux distributions, arounf versioning of the MySQL 5.5 client shared library. There seems to be 3 different ways major distributions handle versioning
- 1. Fedora (also Mageia, and likely other Redhat descendants) way old, 5.1 API functions are given version libmysqlclient_16 new API functions (client plugins, mysql_stmt_next ) are given version libmysqlclient_18 some extra functions beyond API are exported. some functions are renamed.
- 2.Debian Wheezy way all functions are given libmysqlclient_18 version
- 3. Ubuntu way (or MySQL/MariaDB download packages) no versioning
- UIp to this fix, MariaDB distributions did not have any versioning in the libraries, this rendered client library incompatible to distributions thus exchanging distribution's libmysqlclient.so.18.0.0 with MariaDB's did not work nicely (anywhere but on Ubuntu)
- THE FIX is to build libraries the same way as distributions do it - when building RPMs, use same version script as Fedora does, Make sure to export extra-symbols, the same as Fedora exports. - when building DEBs, use the same version script as Debian Wheezy - do not use version scripts otherwise
- Also, makes sure that extensions of MySQL APIs (asynchronous client functionality) is exported by the shared libraries.
- Revision #3644.1.1
Fri 2013-01-25 16:50:14 +0100
- MDEV-3971 : problems installing MariaDB packages (conflicts with mysql-libs-5.5) FIx : make "shared" RPM obsolete/provide mysql-libs
- Revision #3647 [merge] Sat 2013-01-26 01:59:27 +0200
- Revision #3646 [merge]
Fri 2013-01-25 11:24:42 +0100
- 5.3 merge
- Revision #2502.567.62 [merge]
Fri 2013-01-25 10:20:45 +0100
- 5.2 merge
- Revision #2502.566.40
Fri 2013-01-25 10:19:35 +0100
- MDEV-4040 Replace deprecated SET OPTION syntax in mysqldump
- mysqldump.c: s/SET OPTION/SET/ (OPTION was, hm, optional since 3.21, so there's no need to use SET OPTION even in the old compatibility modes)
- Revision #2502.566.39 Fri 2013-01-25 09:41:26 +0100
- Revision #2502.566.38
Fri 2013-01-25 00:20:53 +0100
- report "using password: YES/NO" correctly for the COM_CHANGE_USER failures
- Revision #2502.566.37 Fri 2013-01-25 00:17:39 +0100
- Revision #3645 [merge]
Wed 2013-01-23 15:18:05 -0800
- Merge 5.3->5.5
- Revision #2502.567.61 [merge]
Mon 2013-01-21 21:29:19 -0800
- Merge 5.2->5.3
- Revision #2502.566.36 [merge]
Mon 2013-01-21 15:23:40 -0800
- Merge 5.1->5.2
- Revision #2502.565.27 [merge]
Mon 2013-01-21 13:48:34 -0800
- Revision #2502.571.1
Mon 2013-01-21 11:47:45 -0800
- Fixed bug MDEV-4063 (bug #56927). This bug could result in returning 0 for the expressions of the form <aggregate_function>(distinct field) when the system variable max_heap_table_size was set to a small enough number. It happened because the method Unique::walk() did not support the case when more than one pass was needed to merge the trees of distinct values saved in an external file.
- Backported a fix in grant_lowercase.test from mariadb 5.5.
- Revision #2502.565.26
Mon 2013-01-21 10:52:39 +0100
- MDEV-4029 SELECT on information_schema using a subquery locks up the information_schema table due to incorrect mutexes handling
- Early evaluation of subqueries in the WHERE conditions on I_S.*_STATUS tables, otherwise the subquery on this same table will try to acquire LOCK_status twice.
- Revision #2502.566.35
Sat 2013-01-19 23:40:53 -0800
- Corrected the test case for bug MDEV-3938.
- Revision #2502.566.34
Wed 2013-01-16 11:17:58 -0800
- Corrected the fix for bug MDEV-3938.
- Revision #2502.566.33
Tue 2013-01-15 16:46:27 -0800
- Fixed bug MDEV-3938. The original patch with the implementation of virtual columns did not support INSERT DELAYED into tables with virtual columns. This patch fixes the problem.
- Revision #2502.567.60
Wed 2013-01-16 21:07:26 +0200
- MDEV-4056 fix.
- The problem was that maybe_null of Item_row and its componetes was unsynced after update_used_tables() (and so pushed_cond_guards was not initialized but then requested).
- Fix updates Item_row::maybe_null on update_used_tables().
- Revision #2502.567.59
Thu 2013-01-17 16:08:05 +0200
- MDEV-3900 Optimizer difference between MySQL and MariaDB with stored functions in WHERE clause of UPDATE or DELETE statements
- Analysis The reason for the less efficient plan was result of a prior design decision - to limit the eveluation of constant expressions during optimization to only non-expensive ones. With this approach all stored procedures were considered expensive, and were not evaluated during optimization. As a result, SPs didn't participate in range optimization, which resulted in a plan with table scan rather than index range scan.
- Solution Instead of considering all SPs expensive, consider expensive only those SPs that are non-deterministic. If an SP is deterministic, the optimizer will checj if it is constant, and may eventually evaluate it during optimization.
- Revision #2502.567.58
Thu 2013-01-17 13:53:15 +0200
- backport of: Don't reset maybe_null in update_used_tables(); This breaks ROLLUP This fixed failing test in group_by.test
- Revision #2502.567.57
Wed 2013-01-16 15:11:13 +0200
- MDEV-3988 fix.
- Subquery turned into constant too late to be excluded from grouping list so test for constant added to the create_temp_table().
- Revision #2502.567.56
Fri 2013-01-11 20:26:34 -0800
- Fixed bug MDEV-4025. The bug could lead to a wrong estimate of the number of expected rows in the output of the EXPLAIN commands for queries with GROUP BY. This could be observed in the test case for LP bug 934348.
- Revision #2502.567.55
Fri 2013-01-11 12:44:21 +0100
- MDEV-4020 : Make sure strmov symbol is exported by client library on Linux (even if the server and libraries itself use stpcpy instead of it)
- It is a workaround that allows myodbc built by certain distributions' (CentOS,Fedora) to peacefully coexist with mariadb client libraries. The problem is that MyODBC in these distros needs strmov() to be exported by mysql client shared library, or else myodbc fails to load.
- Revision #3644
Wed 2013-01-23 14:58:05 +0100
- remove one particularly stupid test
- Revision #3643
Mon 2013-01-21 12:20:54 +0100
- MDEV-4069 thd_wait_end does not called in some cases in buf_page_read_low in XtraDB engine
- Revision #3642
Tue 2013-01-22 13:29:59 +0200
- Fixed typo in the function name. test suite added.
- Revision #3641
Mon 2013-01-21 14:34:39 +0200
- MDEV-3873: fixed functions absend in 5.3.
- Revision #3640
Sun 2013-01-20 21:43:11 +0100
- fix a strict aliasing warning - remove a meaningless cast.
- Revision #3639
Sun 2013-01-20 21:42:01 +0100
- MDEV-3952 Incompatible change in MariaDB-5.5.28a-client rpm adds mytop when not in MariaDB-5.5.23-client (CentOS 5)
- Same as for deb: don't add mytop to the client rpm.
- Revision #3638
Sun 2013-01-20 14:06:33 +0100
- MDEV-3934 Assertion `((keypart_map+1) & keypart_map) == 0' failed in _mi_pack_key with an index on a POINT column
- sel_arg_range_seq_next(): set keypart map also for GEOM_FLAG keys
- Revision #3637
Sun 2013-01-20 00:46:51 +0100
- Revision #3636
Sat 2013-01-19 14:03:33 +0100
- MDEV-3832 MariaDB conflicts with packages filesystem-3.1-2.fc18.i686 and jre-1.7.0_09-fcs.i586 on Fedora 18
- fix the rpm packaging to work on Fedora18. Two problems: * conflicts on common directories with other packages. * more auto-generated requirements for mariadb-test.rpm
- Revision #3635 Fri 2013-01-18 19:10:20 +0100
- Revision #3634
Fri 2013-01-18 19:07:59 +0100
- simplify THD::binlog_setup_trx_data() usage
- Revision #3633 Fri 2013-01-18 19:04:51 +0100
- Revision #3632
Fri 2013-01-18 19:04:23 +0100
- MDEV-4065 thd_kill_statement service
- Revision #3631
Fri 2013-01-18 18:49:07 +0100
- Fix Windows installers' bootstrapper scripts , after mysql_performance_tables.sql was split off mysql_system_tables.sql
- Revision #3630
Thu 2013-01-17 02:27:10 +0200
- Don't reset maybe_null in update_used_tables(); This breaks ROLLUP This fixed failing test in group_by.test
- Revision #3629
Thu 2013-01-17 01:08:49 +0200
- Fixed compiler warning
- Revision #3628 [merge]
Wed 2013-01-16 11:13:08 +0100
- xtradb merge. Percona-Server-5.5.28-rel29.3
- Revision #0.12.59
Tue 2013-01-15 22:22:49 +0100
- Revision #3627
Tue 2013-01-15 19:16:29 +0100
- Test case and a different fix for MySQL bug#14485479
- Revision #3626
Tue 2013-01-15 19:16:18 +0100
- small cleanups
- Revision #3625
Tue 2013-01-15 19:15:51 +0100
- backport a test case for a 5.5 bug fix from the 5.6 tree
- Revision #3624 [merge]
Tue 2013-01-15 19:13:32 +0100
- mysql-5.5.29 merge
- Revision #3077.166.19 [merge]
Tue 2012-09-11 17:42:22 +0300
- Revision #3077.166.18
Mon 2012-08-27 15:30:58 +0300
- Bug #13548161: MYSQLD_SAFE IMPROVEMENTS FOR 5.5 ALLWAYS SETS PLUGIN_DIR TO DEFAULT IGNOR
- The test in mysqld_safe for the presence of the --plugin-dir and assigning a default value to it were performed before the actual argument parsing. This is wrong, as PLUGIN_DIR mysqld_safe code also uses MY_BASEDIR_VERSION to look for version specific plugin directory if present. Fixed by moving the PLUGIN_DIR logic after the parse_arguments() call.
- Revision #3077.166.17
Fri 2012-08-24 15:01:31 +0300
- Bug #14181049: MYSQL_INSTALL_DB.PL CREATES EMPTY SYSTEM TABLES FOR MYSQL
- The script is different from what's used on unixes. It was not playing the table insertion script (mysql_system_tables_data.sql), although it was checking for the presence of this script. Fixed by re-enabling the lookup for this file and replaying it at bootstrap time. Note that on the Unixes "SELECT @@hostname" does return a fully qualified name, whereas on Windows it returns only a hostname. So by default we're filtering records in the mysql.user table until we ensure this is fixed.
- Revision #3623
Tue 2013-01-15 19:08:49 +0100
- update debian patch to apply
- Revision #3622 [merge]
Tue 2013-01-15 19:07:46 +0100
- 5.3 merge
- Revision #2502.567.54 [merge]
Thu 2013-01-10 15:40:21 +0100
- 5.2->5.3 merge
- Revision #2502.566.32 [merge] Thu 2013-01-10 13:54:04 +0100
- Revision #2502.566.31 [merge]
Fri 2012-12-21 15:19:08 +0100
- Revision #2502.565.23
Fri 2012-12-21 15:17:26 +0100
- Support VS2012. Exclude compiler-defined symbols from being exported by mysqld.exe
- Revision #2502.566.30 [merge]
Fri 2012-12-21 14:04:25 +0100
- Revision #2502.565.22
Thu 2012-12-06 00:37:06 +0100
- MDEV-3918: myisamchk bogus error for files larger than 4GB.
- The failure is caused by failing stat() call . C Runtime function stat() uses old struct with 32bit st_size member, and since Visual Studio 2010 , it returns an error on st_size overflow (i.e on files larger than 4GB)
- Fix replaces stat() by my_stat(), the later is backed by 64bit-able stat64().
- Revision #2502.566.29
Tue 2012-12-11 09:50:48 +0100
- one-byte overflow with old passwords
- Revision #2502.566.28
Mon 2012-11-26 13:33:24 +0100
- Fix broken feedback plugin after MDEV-712.
- Link feedback plugin with yassl libraries, if with-ssl=bundled is used, since mysqld does not export SSL symbols anymore.
- Revision #2502.566.27 Fri 2012-11-23 13:50:46 +0100
- Revision #2502.566.26 [merge]
Thu 2012-11-22 18:29:53 +0100
- merge 5.1
- Revision #2502.565.21
Thu 2012-11-22 18:27:02 +0100
- Feedback plugin now recognizes Windows 8 / Windows Server 2012.
- Revision #2502.567.53 Tue 2013-01-08 21:23:03 +0100
- Revision #2502.567.52
Fri 2012-12-28 14:41:46 +0200
- MDEV-3873 & MDEV-3876 & MDEV-3912 : Wrong result (extra rows) with ALL subquery from a MERGE view.
- The problem was in the lost ability to be null for the table of a left join if it is a view/derived table.
- It hapenned because setup_table_map(), was called earlier then we merged the view or derived.
- Fixed by propagating new maybe_null flag during Item::update_used_tables().
- Change in join_outer.test and join_outer_jcl6.test appeared because IS NULL reported no used tables (i.e. constant) for argument which could not be NULL and new maybe_null flag was propagated for IS NULL argument (Item_field) because table the Item_field belonged to changed its maybe_null status.
- Revision #2502.567.51
Wed 2012-12-19 15:56:57 +0200
- MDEV-3928: Assertion `example' failed in Item_cache::is_expensive_processor with a 2-level IN subquery
- Analysis: The following call stack shows that it is possible to set Item_cache::value_cached, and the relevant value without setting Item_cache::example.
- #0 Item_cache_temporal::store_packed at item.cc:8395 #1 get_datetime_value at item_cmpfunc.cc:915 #2 resolve_const_item at item.cc:7987 #3 propagate_cond_constants at sql_select.cc:12264 #4 propagate_cond_constants at sql_select.cc:12227 #5 optimize_cond at sql_select.cc:13026 #6 JOIN::optimize at sql_select.cc:1016 #7 st_select_lex::optimize_unflattened_subqueries at sql_lex.cc:3161 #8 JOIN::optimize_unflattened_subqueries at opt_subselect.cc:4880 #9 JOIN::optimize at sql_select.cc:1554
- The fix is to set Item_cache_temporal::example even when the value is set directly by Item_cache_temporal::store_packed. This makes the Item_cache_temporal object consistent.
- Revision #2502.567.50
Wed 2012-12-05 21:06:00 +0200
- MDEV-3914 fix.
- Fixed algorithm of detecting of first real table in view/subquery-in-the-FROM-clase.
- Revision #2502.567.49
Fri 2012-11-23 13:11:31 +0100
- bump the version to 5.3.11
- Revision #2502.567.48 [merge]
Thu 2012-11-22 10:30:39 -0800
- Revision #2502.570.1
Wed 2012-11-21 21:55:04 -0800
- Fixed LP bug #1002146 (bug MDEV-645). If the setting of system variables does not allow to use join buffer for a join query with GROUP BY <f1,...> / ORDER BY <f1,...> then filesort is not needed if the first joined table is scanned in the order compatible with order specified by the list <f1,...>.
- Revision #3621
Tue 2013-01-15 17:46:46 +0100
- remove thd_mark_as_hard_kill() (because it's conceptually wrong. only the user can decide whether the kill is allowed to leave tables in the inconsistent state, storage engine has no say in that)
- Revision #3620 Tue 2013-01-15 14:33:08 +0200
- Revision #3619
Mon 2013-01-14 15:05:05 +0200
- Fix for bug MDEV-3992
- Analysis: The crash is a result of incorrect analysis of whether a secondary key can be extended with a primary in order to compute ORDER BY. The analysis is done in test_if_order_by_key(). This function doesn't take into account that the primary key may in fact index the same columns as the secondary key. For the test query test_if_order_by_key says that there is an extended key with total 2 keyparts. At the same time, the condition if (pkinfo->key_part[i].field->key_start.is_set(nr)) in test_if_cheaper_oredring() becomes true for (i == 0), which results in an invalid access to rec_per_key[-1].
- Solution: The best solution would be to reuse KEY::ext_key_parts that is already computed by open_binary_frm(), however after detailed analysis the conclusion is that the change would be too intrusive for a GA release. The solution for 5.5 is to add a guard for the case when the 0-th key part is considered, and to assume that all keys will be scanned in this case.
- Revision #3618
Fri 2013-01-11 02:03:43 +0200
- Buildbot fixes and cleanups: - Added --verbose to BUILD scripts to get make to write out compile commands. - Detect if AM_EXTRA_MAKEFLAGS=VERBOSE=1 was used with build scripts. - Don't write warnings about replication variables when doing bootstrap. - Fixed that mysql_cond_wait() and mysql_cond_timedwait() will report original source file in case of errors. - Ignore some compiler warnings
- Revision #3617
Fri 2013-01-11 01:31:50 +0200
- Fixed crashing bug in GROUP_CONCAT with ROLLUP Fixed MDEV-4002: Server crash or valgrind errors in Item_func_group_concat::setup and Item_func_group_concat::add
- Revision #3616
Fri 2013-01-11 00:53:07 +0200
- Fixed problem with failing mysql_upgrade when proc table was not correct. Moved out creation of performance schema tables from mysql_system_tables.sql as the performance_tables creation scripts needs a working mysql.proc to work.
- Revision #3615
Fri 2013-01-11 00:35:33 +0200
- Fixed MDEV-4013: Password length in replication setup Give error for wrong parameters to CHANGE MASTER Extend MASTER_PASSWORD and MASTER_HOST lengths
- Revision #3614
Fri 2013-01-11 00:22:14 +0200
- Fixed some race conditons and bugs related to killed queries KILL now breaks locks inside InnoDB Fixed possible deadlock when running INNODB STATUS Added ha_kill_query() and kill_query() to send kill signal to all storage engines Added reset_killed() to ensure we don't reset killed state while awake() is getting called
- Revision #3613
Thu 2013-01-10 23:40:18 +0200
- Fix for MDEV-4009: main.delayed sporadically fails with "query 'REPLACE DELAYED t1 VALUES (5)' failed: 1317: Query execution was interrupted" - Fixed broadcast without a proper mutex - Don't break existing locks if we are just testing if we can get the lock
- Revision #3612
Wed 2013-01-09 17:30:20 +0100
- MDEV-3846 REFRESH_CHECKPOINT and REFRESH_TABLE_STATS tokens share the same value
- Revision #3611
Wed 2013-01-09 17:29:51 +0100
- MDEV-3985 crash: uninstall soname 'a'
- Revision #3610
Tue 2013-01-08 21:23:40 +0100
- MDEV-3883 Show global status not in order
- Revision #3609
Tue 2013-01-08 21:21:28 +0100
- MDEV-3987 uninitialized read in Item_cond::fix_fields leads to crash: select .. where .. in ( select ... )
- change Item_func_group_concat to use max_length according to the expected semantics
- Revision #3608
Mon 2013-01-07 20:21:05 +0100
- non-functional cleanup, clarifying CONVERT_IF_BIGGER_TO_BLOB
- Revision #3607
Sat 2013-01-05 23:52:25 +0100
- Remove timed mutexes in XtraDB - obsolete feature that does not link on Windows, if plugin is build dynamically It was already removed from innobase in the past.
- Revision #3606
Tue 2013-01-01 15:33:25 +0100
- MDEV-3993 - add MSI installer option to set character-set-server=utf8
- Revision #3605 [merge]
Mon 2012-12-31 01:39:26 +0400
- MDEV-3990: engine tests went out of sync with current MariaDB code Reasons: - as of 5.5.27, YEAR(2) is deprecated, hence the new warning; - MDEV-553 - different error code/message on out-of-range autoincrement; - INSERT IGNORE now produces a warning if a duplicate was encountered
- Revision #3604.1.1
Fri 2012-12-28 17:02:33 +0400
- storage_engine tests and upstream engines/* suites went out of sync with current MariaDB code. Reasons: - as of 5.5.27, YEAR(2) is deprecated, hence the new warning; - MDEV-553 - different error code/message on out-of-range autoincrement; - INSERT IGNORE now produces a warning if a duplicate was encountered (change pushed along with MDEV-553)
- Revision #3604
Thu 2012-12-06 17:30:22 +0100
- Revision #3603
Thu 2012-12-06 16:34:02 +0100
- if the debian package name for 5.5.28 is 5.5.28-mariadb1wheezy then for 5.5.28a it should be 5.5.28a-mariadb1wheezy not 5.5.28-mariadb-a1wheezy
- Revision #3602 Fri 2012-12-21 11:18:29 +0200
- Revision #3601
Fri 2012-12-21 00:12:37 +0100
- MDEV-3945 - do not hold LOCK_thread_count when freeing THD.
- The patch decreases the duration of LOCK_thread_count, so it is not hold during THD destructor and freeing memory. This mutex now only protects the integrity of threads list, when removing THD from it, and thread_count variable.
- The add_to_status() function that updates global status during client disconnect, is now correctly protected by the LOCK_status mutex.
- Benchmark : in a "non-persistent" sysbench test (oltp_ro with reconnect after each query), ~ 25% more connects/disconnects were measured
- Revision #3600
Thu 2012-12-20 22:38:40 +0200
- MDEV-3899 Valgrind warnings (blocks are definitely lost) in filesort on IN subquery with SUM and DISTINCT
- Analysys: In the beginning of JOIN::cleanup there is code that is supposed to free all filesort buffers. The code assumes that the table being sorted is the first non-constant table. To get this table it calls: first_top_level_tab(this, WITHOUT_CONST_TABLES)
- However, first_top_level_tab() instead returned the wrong table - the first one in the plan, instead of the first non-constant table. There is no other place outside filesort() where sort buffers may be freed. As a result, the sort buffer was not freed, and there was a memory leak.
- Solution: Change first_top_level_tab(), to test for WITH_CONST_TABLES instead of WITHOUT_CONST_TABLES.
- Revision #3599
Wed 2012-12-19 21:58:05 +0200
- Fixed some compiler warnings
- Revision #3598
Tue 2012-12-18 12:44:15 +0200
- MDEV-3818: Query against view over IS tables worse than equivalent query without view
- Fixed the test to be lower-case because it fails on windows with mixed case.
- Revision #3597
Mon 2012-12-17 22:34:56 +0200
- Fixed the CREATE TABLE IF EXIST generates warnings instead of errors
- Revision #3596
Mon 2012-12-17 15:23:58 +0200
- MDEV-3818: Query against view over IS tables worse than equivalent query without view
- Analysis: The reason for the suboptimal plan when querying IS tables through a view was that the view columns that participate in an equality are wrapped by an Item_direct_view_ref and were not recognized as being direct column references.
- Solution: Use the original Item_field objects via the real_item() method.
- Revision #3595
Sun 2012-12-16 20:51:48 +0200
- Remember original table row pack type for ALTER TABLE if table is not copied.
- Revision #3594
Sun 2012-12-16 20:49:57 +0200
- Removed lock wait timeout warning when using CREATE TABLE IF EXISTS
- Revision #3593
Sun 2012-12-16 16:13:17 +0200
- Implemented MDEV-3941: CREATE TABLE xxx IF NOT EXISTS should not block if table exists. - Added option to check_if_table_exists() to quickly check if table exists (either SHARE or .FRM) - Extended lock_table_names() to not wait for meta data locks if CREATE IF NOT EXISTS is used.
- Revision #3592 [merge]
Sun 2012-12-16 12:04:26 +0200
- Automatic merge
- Revision #3544.1.1
Fri 2012-12-14 20:21:50 +0200
- Removed extra '+' from some lines (remains of old merge)
- Revision #3591
Mon 2012-11-26 21:22:44 +0200
- Fix of MDEV-3874: Server crashes in Item_field::print on a SELECT from a MERGE view with materialization+semijoin, subquery, ORDER BY.
- The problem was that in debugging binaries it try to print item to assign human readable name to the item. But subquery item was already freed (join_free/cleanup with full cleanup) so Item_field refers to temporary table which memory had been already freed.
- Revision #3590
Tue 2012-12-04 16:06:07 -0800
- Fixed bug MDEV-3888. When inserting a record with update on duplicate keys the server calls the ha_index_read_idx_map handler function to look for the record that violates unique key constraints. The third parameter of this call should mark only the base components of the index where the server is searched for the record. Possible hidden components of the primary key are to be unmarked.
- Revision #3589
Sat 2012-12-01 18:01:59 +0100
- fix openssl_1 test
- Revision #3588
Sat 2012-12-01 16:33:22 +0100
- MDEV-3901: Wrong SSL error messages
- Fixed typo (missing comma)