summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* small code cleanup taken from MySQL 5.6Sergei Golubchik2012-12-1612-60/+29
|
* MDEV-3816 init-file stops getting executed if a long enough line is ↵Sergei Golubchik2012-12-169-30/+127
| | | | | | | | | | | | | | | | encountered; on a debug version, assertion `! is_set() || can_overwrite_status' fails backport improved bootstrap error handling from 5.6 Was: revno: 3768.1.1 committer: Christopher Powers <chris.powers@oracle.com> timestamp: Wed 2012-05-02 22:16:40 -0500 message: Bug#11766342 INITIAL DB CREATION FAILS ON WINDOWS WITH AN ASSERT IN SQL_ERROR.CC Improved bootstrap error handling: - Detect and report file i/o errors - Report query size errors with nearest query text
* MDEV-3834 Crossgrade from MySQL 5.6.7 to MariaDB 10.0 fails due to ↵Sergei Golubchik2012-12-151-42/+45
| | | | | | non-existing mysql.host table Treat the host table as optional, don't abort when it's missing
* MDEV-3837 Assertion `table->read_set == &table->def_read_set' failed on ↵Sergei Golubchik2012-12-154-10/+14
| | | | | | | | | | | | | | updating a performance_schema table This was failing not only for P_S, but for any engine that had HA_PRIMARY_KEY_REQUIRED_FOR_DELETE flag set (in the tree - only P_S and federated). Because of this flag, read_set and write_set were (possibly) changed on update. But later the code modified these bitmaps and restored them to the default state, losing HA_PRIMARY_KEY_REQUIRED_FOR_DELETE related changes. sql/handler.cc: small optimization. don't change the *write* set only because all columns has to be *read*
* MDEV-3860 backport --plugin-load-add (and related mysql-test changes)Sergei Golubchik2012-12-1525-86/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | revno: 3383 revision-id: georgi.kodinov@oracle.com-20110818083108-qa3h3ufqu4zne80a committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com> timestamp: Thu 2011-08-18 11:31:08 +0300 message: Bug #11766001: 59026: ALLOW MULTIPLE --PLUGIN-LOAD OPTIONS Implemented support for a new command line option : --plugin-load-add=<comma-separated-name-equals-value-list> This option takes the same type of arguments that --plugin-load does and complements --plugin-load (that continues to operate as before) by appending its argument to the list specified by --plugin-load. So --plugin-load can be considered a composite option consisting of resetting the plugin load list and then calling --plugin-load-add to process the argument. Note that the order in which you specify --plugin-load and --plugin-load-add is important : "--plugin-load=x --plugin-load-add=y" will be equivalent to "--plugin-load=x,y" whereas "--plugin-load-add=y --plugin-load=x" will be equivalent to "plugin-load=x". Incompatible change : the --help --verbose command will no longer print the --plugin-load variable's values (as it doesn't have one). Otherwise both --plugin-load and --plugin-load-add are mentioned in it.
* New results of --big test (MDEV-3862 fix).unknown2012-12-121-12/+10
|
* MDEV-3862 Lift limitation for merging VIEWS with Subqueries in SELECT list.unknown2012-11-206-31/+170
|
* Merge MariaDB 10.0-base -> 10.0unknown2012-11-201-1/+1
|\
| * MDEV-3861: Assertion in TC_LOG_MMAP.unknown2012-11-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Root cause was that number of entries in commit checkpoint buffer was bigger than total available entries in the mmap()'ed score file. This causes TC_LOG_MMAP to run out of entries before even the first checkpoint is started, which causes a hang. Fixed by making sure we have fewer entries within one commit checkpoint than total available scorefile entries. Another part of this bug was discovery of severel unrelated bugs in TC_LOG_MMAP dating back to 5.1. These were fixed in 5.1 and will be merged up (the problem this patch fixes exists only in 10.0).
* | MDEV-3858 Change JOIN_TAB::records_read from ha_rows to doubleunknown2012-11-154-15/+16
| | | | | | | | | | | | Currently JOIN_TAB::records_read is of type ha_rows. This is an integer type, which prevents proper selectivity and rows estimates.
* | Trigger pusbuild buildVladislav Vaintroub2012-11-111-1/+2
| |
* | MDEV-3847 : MSI installer does not work.Vladislav Vaintroub2012-11-091-1/+9
| | | | | | | | | | | | | | | | | | - Fix bug in bootstrapper. - Also, delete innodb log files cafter bootstrapping , to workaround "different log size" Innodb error during the first service start by MSI. This is a temporary measure, in the future innodb will allow handling different file size more gracefully.
* | MDEV-3839 : on Solaris 10, KILLing slave thread has no effect.Vladislav Vaintroub2012-11-061-41/+5
| | | | | | | | | | | | | | | | | | The reason for the error is missing definition for SIGNAL_WITH_IO_CLOSE on this platform which now needs to always be defined, as in 5.6 On Solaris10 only, this preprocessor constant was not defined, thus code that shutdowns a socket in THD::awake was not executed, and polling thread was not interrupted. Fix is to always define SIGNAL_WITH_IO_CLOSE, just like MySQL5.6 does.
* | set username=hostname=NULL in the P_S for the aria background checkpoint threadSergei Golubchik2012-11-051-0/+4
| |
* | Improve cleanup in create_initial_db.cmake, fix the 'table already exists' ↵Vladislav Vaintroub2012-11-041-1/+2
| | | | | | | | error if build is run twice.
* | MDEV-3822 :10.0-serg fails on windows buildslavesVladislav Vaintroub2012-11-042-50/+26
| | | | | | | | | | | | Fix mismerged code from 5.6 (named-pipe related). viopipe.c, which was introduced in 5.6 is now copied almost identically into 10.0 The unused vio::pipe_overlapped is removed.
* | Merge 5.5 -> 10.0-sergSergey Petrunya2012-11-046-16/+216
|\ \
| * | MDEV-536: LP:1050806 - different result for a query using subquery, andSergey Petrunya2012-11-045-14/+344
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MDEV-567: Wrong result from a query with correlated subquery if ICP is allowed: backport the fix developed for SHOW EXPLAIN: revision-id: psergey@askmonty.org-20120719115219-212cxmm6qvf0wlrb branch nick: 5.5-show-explain-r21 timestamp: Thu 2012-07-19 15:52:19 +0400 BUG#992942 & MDEV-325: Pre-liminary commit for testing and adjust it so that it handles DS-MRR scans correctly.
| * | MDEV-3830 - fix build on Intel compilerVladislav Vaintroub2012-11-031-1/+1
| | |
* | | # MDEV-3817: Wrong result with index_merge+index_merge_intersection, InnoDB ↵Sergey Petrunya2012-11-0312-15/+358
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | table, join, AND and OR conditions Reconcile the fixes from: # # guilhem.bichot@oracle.com-20110805143029-ywrzuz15uzgontr0 # Fix for BUG#12698916 - "JOIN QUERY GIVES WRONG RESULT AT 2ND EXEC. OR # AFTER FLUSH TABLES [-INT VS NULL]" # # guilhem.bichot@oracle.com-20111209150650-tzx3ldzxe1yfwji6 # 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.
* | | merge with 5.5Sergei Golubchik2012-11-03210-1416/+5850
|\ \ \ | |/ /
| * | MDEV-531 : Warning: Forcing close of thread ... in rpl_binlog_indexVladislav Vaintroub2012-11-027-36/+33
| | | | | | | | | | | | | | | | | | Use post_kill_notification in for one_thread_per_connection scheduler, the same as already used in threadpool, to reliably wake a thread stuck in read() or in different poll() variations.
| * | Fix crashes on 32-bit async client lib when -fomit-frame-pointerunknown2012-10-311-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Ensure asm parameters are in registers, so we do not de-reference from bogus stack pointer. - Make return address undefined in DWARF unwind info in my_context_spawn, so DWARF-based unwinders will know this is the end of the call stack (same as the amd64 fix for the similar issue).
| * | MDEV-672 : storage/maria and storage/perfschema do not appear to honor ↵Vladislav Vaintroub2012-10-303-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | WITH_UNIT_TESTS Disable compiling unit tests if WITH_UNIT_TEST is FALSE. Also, fix CMake code to allow compilation WITHOUT_ARIA_STORAGE_ENGINE
| * | MDEV-3824 - xtradb file rename fails on Windows, if new name already exists.Vladislav Vaintroub2012-10-301-1/+1
| | | | | | | | | | | | | | | Changed implementation os_file_rename() on Windows such as it does not fail if destination file already exists. Now MoveFileEx() with MOVEFILE_REPLACE_EXISTING flag is used, instead of prior MoveFile(). This fixed implementation is better compatible with rename() on POSIX systems.
| * | MDEV-3812unknown2012-10-272-15/+17
| | | | | | | | | | | | This patch undoes the removal of enum store_key_result by the previous patch for mdev-3812.
| * | MDEV-3812: Remove unneeded extra call to engine->exec() in ↵unknown2012-10-256-33/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Item_subselect::exec, remove enum store_key_result This task fixes an ineffeciency that is a remainder from MySQL 5.0/5.1. There, subqueries were optimized in a lazy manner, when executed for the first time. During this lazy optimization it may happen that the server finds a more efficient subquery engine, and substitute the current engine of the query being executed with the new engine. This required re-execution of the engine. MariaDB 5.3 pre-optimizes subqueries in almost all cases, and the engine is chosen in most cases, except when subquery materialization found that it must use partial matching. In this case, the current code was performing one extra re-execution although it was not needed at all. The patch performs the re-execution only if the engine was changed while executing. In addition the patch performs small cleanup by removing "enum store_key_result" because it is essentially a boolean, and the code that uses it already maps it to a boolean.
| * | Fix the incorrect mergeSergei Golubchik2012-10-192-4/+5
| | |
| * | 5.3 mergeSergei Golubchik2012-10-1840-140/+1108
| |\ \
| | * | Fix of MDEV-3799.unknown2012-10-104-2/+58
| | | | | | | | | | | | | | | | | | | | Find left table in right join (which turned to left join by reordering tables in join list but phisical order of tables of SELECT left as it was).
| | * | Backport of: olav.sandstaa@oracle.com-20120516074923-vd0dhp183vqcp2qlSergey Petrunya2012-10-103-4/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | .. into MariaDB 5.3 Fix for Bug#12667154 SAME QUERY EXEC AS WHERE SUBQ GIVES DIFFERENT RESULTS ON IN() & NOT IN() COMP #3 This bug causes a wrong result in mysql-trunk when ICP is used and bad performance in mysql-5.5 and mysql-trunk. Using the query from bug report to explain what happens and causes the wrong result from the query when ICP is enabled: 1. The t3 table contains four records. The outer query will read these and for each of these it will execute the subquery. 2. Before the first execution of the subquery it will be optimized. In this case the important is what happens to the first table t1: -make_join_select() will call the range optimizer which decides that t1 should be accessed using a range scan on the k1 index It creates a QUICK_RANGE_SELECT object for this. -As the last part of optimization the ICP code pushes the condition down to the storage engine for table t1 on the k1 index. This produces the following information in the explain for this table: 2 DEPENDENT SUBQUERY t1 range k1 k1 5 NULL 3 Using index condition; Using filesort Note the use of filesort. 3. The first execution of the subquery does (among other things) due to the need for sorting: a. Call create_sort_index() which again will call find_all_keys(): b. find_all_keys() will read the required keys for all qualifying rows from the storage engine. To do this it checks if it has a quick-select for the table. It will use the quick-select for reading records. In this case it will read four records from the storage engine (based on the range criteria). The storage engine will evaluate the pushed index condition for each record. c. At the end of create_sort_index() there is code that cleans up a lot of stuff on the join tab. One of the things that is cleaned is the select object. The result of this is that the quick-select object created in make_join_select is deleted. 4. The second execution of the subquery does the same as the first but the result is different: a. Call create_sort_index() which again will call find_all_keys() (same as for the first execution) b. find_all_keys() will read the keys from the storage engine. To do this it checks if it has a quick-select for the table. Now there is NO quick-select object(!) (since it was deleted in step 3c). So find_all_keys defaults to read the table using a table scan instead. So instead of reading the four relevant records in the range it reads the entire table (6 records). It then evaluates the table's condition (and here it goes wrong). Since the entire condition has been pushed down to the storage engine using ICP all 6 records qualify. (Note that the storage engine will not evaluate the pushed index condition in this case since it was pushed for the k1 index and now we do a table scan without any index being used). The result is that here we return six qualifying key values instead of four due to not evaluating the table's condition. c. As above. 5. The two last execution of the subquery will also produce wrong results for the same reason. Summary: The problem occurs due to all but the first executions of the subquery is done as a table scan without evaluating the table's condition (which is pushed to the storage engine on a different index). This is caused by the create_sort_index() function deleting the quick-select object that should have been used for executing the subquery as a range scan. Note that this bug in addition to causing wrong results also can result in bad performance due to executing the subquery using a table scan instead of a range scan. This is an issue in MySQL 5.5. The fix for this problem is to avoid that the Quick-select-object that the optimizer created is deleted when create_sort_index() is doing clean-up of the join-tab. This will ensure that the quick-select object and the corresponding pushed index condition will be available and used by all following executions of the subquery.
| | * | Fix of MDEV-589.unknown2012-10-054-2/+47
| | | | | | | | | | | | | | | | The problem was in incorrect detection of merged views in tem_direct_view_ref::used_tables() .
| | * | Added the reported test case for LP bug #823237 (a duplicate of bug #823189).Igor Babaev2012-10-012-0/+89
| | | |
| | * | increase the versionSergei Golubchik2012-10-011-1/+1
| | | |
| | * | Fixed LP bug #1058071 (mdev-564).Igor Babaev2012-09-297-81/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some rare cases when the value of the system variable join_buffer_size was set to a number less than 256 the function JOIN_CACHE::set_constants determined the size of an offset in the join buffer equal to 1 though the minimal join buffer required more than 256 bytes. This could cause a crash of the server when records from the join buffer were read.
| | * | Fix compiler warnings that breaks build (-Werror).unknown2012-09-281-2/+1
| | | |
| | * | mergeSergei Golubchik2012-09-2713-60/+150
| | |\ \
| | | * \ Merge from 5.1unknown2012-09-271-2/+6
| | | |\ \
| | | | * | Fix incorrect assembler in Taocrypt which causes crashes on i386 with ↵unknown2012-09-271-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | certain GCC versions/options
| | | * | | mergeSergei Golubchik2012-09-261-1/+3
| | | |\ \ \ | | | | |/ /
| | | | * | always force the language in mysql_install_dbSergei Golubchik2012-09-261-1/+3
| | | | | |
| | | * | | a simple pam user mapper moduleSergei Golubchik2012-09-254-17/+100
| | | | | |
| | | * | | Merge from 5.1.unknown2012-09-268-43/+44
| | | |\ \ \ | | | | |/ /
| | | | * | Fix some failures in 5.1 Buildbot:unknown2012-09-266-40/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Fix some warnings in newer GCC (-Werror ...). - Fix wrong STACK_DIRECTION detected by configure due to compiler inlining.
| | * | | | MDEV-495 backport --ignore-db-dir.Alexey Botchkov2012-09-279-1/+428
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The feature was backported from MySQL 5.6. Some code was added to make commands as SELECT * FROM ignored_db.t1; CALL ignored_db.proc(); USE ignored_db; to take that option into account. per-file comments: mysql-test/r/ignore_db_dirs_basic.result test result added. mysql-test/t/ignore_db_dirs_basic-master.opt options for the test, actually the set of --ignore-db-dir lines. mysql-test/t/ignore_db_dirs_basic.test test for the feature. Same test from 5.6 was taken as a basis, then tests for SELECT, CALL etc were added. per-file comments: sql/mysql_priv.h MDEV-495 backport --ignore-db-dir. interface for db_name_is_in_ignore_list() added. sql/mysqld.cc MDEV-495 backport --ignore-db-dir. --ignore-db-dir handling. sql/set_var.cc MDEV-495 backport --ignore-db-dir. the @@ignore_db_dirs variable added. sql/sql_show.cc MDEV-495 backport --ignore-db-dir. check if the directory is ignored. sql/sql_show.h MDEV-495 backport --ignore-db-dir. interface added for opt_ignored_db_dirs. sql/table.cc MDEV-495 backport --ignore-db-dir. check if the directory is ignored.
| | * | | | mergeSergei Golubchik2012-09-241-21/+25
| | |\ \ \ \ | | | |/ / /
| | | * | | mergeSergei Golubchik2012-09-241-21/+25
| | | |\ \ \ | | | | |/ /
| | | | * | MDEV-543 mysql_install_db doesn't work with blanks in either basedir or ↵Sergei Golubchik2012-09-241-21/+25
| | | | | | | | | | | | | | | | | | | | | | | | datadir path
| | * | | | MDEV-521 fix.unknown2012-09-207-4/+90
| | | | | | | | | | | | | | | | | | | | | | | | After pullout item during single row subselect transformation it should be fixed properly.
| * | | | | do not print return address when callstack is output on Windows, it does not ↵Vladislav Vaintroub2012-10-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | provide any useful info