summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-19258 RIGHT JOIN hangs in MariaDBIgor Babaev2019-05-234-5/+416
| | | | | | | | | This patch corrects the patch for the bug 10006. The latter incorrectly calculates the attribute TABLE_LIST::dep_tables for inner tables of outer joins that are to be converted into inner joins. As a result after the patch some valid join orders were not evaluated and the optimizer could choose an execution plan that was far from being optimal.
* Stale files cause intermittent failure when ordering is unfortunateRobert Bindar2019-05-221-0/+4
| | | | | Running trigger_null-8605 drop_bad_db_type tests in this order was failing due to unremoved temporary files created in trigger_null-8605
* MDEV-17752: Plan changes from hash_index_merge to index_merge with new ↵Varun Gupta2019-05-214-2/+69
| | | | | | | | | optimizer defaults The code in best_access_path function, when it does not find a key suitable for ref access and join_cache_level is set to a value so that hash_join is possible we build a hash key. Later in the function we compare the cost of ref access with table scan (or index scan or quick selects). No need to do this when we have got the hash key.
* MDEV-19537: Document mysqlimport option ignore-foreign-keysIan Gilfillan2019-05-211-1/+17
|
* Better comment from Monty for code in make_join_selectSergei Petrunia2019-05-171-2/+10
|
* MDEV-16021: galera mtr test galera_evs_suspect_timeout crashedJan Lindström2019-05-172-25/+44
| | | | | Crash was timeout crash. Add correct waits for connections, wsrep sync waits and auto increment offset save and restore.
* MDEV-13549: Timeout in wait_condition.inc for PROCESSLISTJan Lindström2019-05-173-29/+18
| | | | | Use wsrep sync wait instead of unnecessary waits and correct slave setting.
* MDEV-17061: Test failure on galera.galera_gcs_fc_limitJan Lindström2019-05-173-29/+29
| | | | | | Remove unnecessary sleeps and fix wait_condition to use wsrep_flow_control_paused i.e. we wait until flow control pauses a transaction on master.
* Fixed the case when statistics were not getting read becauseVarun Gupta2019-05-164-1/+29
| | | | | | we had the statistics tables in the FROM list of the select. The statistics for tables are not read in such cases, so we need to check this case separately.
* MDEV-19407: Assertion `field->table->stats_is_read' failed in is_eits_usableVarun Gupta2019-05-164-0/+61
| | | | | Statistics were not read for a table when we had a CREATE TABLE query. Enforce reading statistics for commands CREATE TABLE, SET and DO.
* MDEV-788 mysqlimport should support the ability to disable foreign keysRobert Bindar2019-05-153-2/+56
|
* MDEV-11095: rpl.rpl_row_mysqlbinlog test fails if row annotation enabledSujatha2019-05-141-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ======= Whel rpl.rpl_row_mysqlbinlog test is executed as shown below it fails with result content mismatch. perl mtr rpl_row_mysqlbinlog --mysqld=--binlog-annotate-row-events=1 Analysis: ========= When row annotations are enabled the actual query is written into the binlog which helps users to understand the query, even when row based replication is enabled. For example: Simple insert in row based replication looks like shown below. #190402 16:31:27 server id 1 end_log_pos 526 Annotate_rows: #Q> insert into t values (10) #190402 16:31:27 server id 1 end_log_pos 566 Table_map: `test`.`t` mapped to number 19 # at 566 #190402 16:31:27 server id 1 end_log_pos 600 Write_rows: table id 19 flags: STMT_END_F BINLOG ' B0GjXBMBAAAAKAAAADYCAAAAABMAAAAAAAEABHRlc3QAAXQAAQMAAQ== B0GjXBcBAAAAIgAAAFgCAAAAABMAAAAAAAEAAf/+CgAAAA== '/*!*/; # at 600 The test creates some binary log events and redirects them into a SQL file. Executes RESET MASTER and sources the SQL file back on clean master and verifies that the data is available. Please refer following steps. ../client/mysqlbinlog ./var/mysqld.1/data/master-bin.000001 > test.sql ../client/mysql -uroot -S./var/tmp/mysqld.1.sock -Dtest < test.sql ../client/mysqlbinlog ./var/mysqld.1/data/master-bin.000001 -v > row.sql When the row based replication specific SQL file is sourced once again on master the newly generated binlog will treat the entire "BASE 64" encoded event as query and write it into the binary log. Output from 'row.sql': #Q> BINLOG ' #Q> B0GjXBMBAAAAKAAAADYCAAAAABMAAAAAAAEABHRlc3QAAXQAAQMAAQ== #Q> B0GjXBcBAAAAIgAAAFgCAAAAABMAAAAAAAEAAf/+CgAAAA== #190402 16:31:27 server id 1 end_log_pos 657 Table_map: `test`.`t` mapped to number 23 # at 657 #190402 16:31:27 server id 1 end_log_pos 691 Write_rows: table id 23 flags: STMT_END_F BINLOG ' B0GjXBMBAAAAKAAAAJECAAAAABcAAAAAAAEABHRlc3QAAXQAAQMAAQ== B0GjXBcBAAAAIgAAALMCAAAAABcAAAAAAAEAAQH+CgAAAA== ### INSERT INTO `test`.`t` ### SET ### @1=10 '/*!*/; # at 691 This is expected behaviour as we cannot extract query from BASE 64 encoded input. This causes more number of binary logs to be generated when the test is executed with row annotations. The following lines from test assumes that only two binary logs will contain entire data. --echo --- Test 4 Second Remote test -- ---exec $MYSQL_BINLOG --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 > $MYSQLTEST_VARDIR/tmp/remote.sql ---exec $MYSQL_BINLOG --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002 >> $MYSQLTEST_VARDIR/tmp/remote.sql In a case when row annotations are enabled the data gets spread across four binary logs. As test uses only the first two binary log files, data available in other binary logs gets missed. Hence test fails with result content mismatch as less data is avaialble. Fix: ==== Use "-to-the-last" option of "mysqlbinlog" tool which will ensure that all the available binary log specific contents are included in .sql file.
* MDEV-19445 heap-use-after-free related to innodb_ft_aux_tableMarko Mäkelä2019-05-1314-318/+341
| | | | | | | | | | | | | | | | | | Try to fix the race conditions between SET GLOBAL innodb_ft_aux_table = ...; and access to the INFORMATION_SCHEMA tables that depend on this variable. innodb_ft_aux_table: Replaces fts_internal_tbl_name,fts_internal_tbl_name2. Just store the user-specified parameter as is. innodb_ft_aux_table_id: The table_id corresponding to SET GLOBAL innodb_ft_aux_table, or 0 if the table does not exist or does not contain FULLTEXT INDEX. If the table is renamed later, the INFORMATION_SCHEMA tables will continue to refer to the table. If the table is dropped or rebuilt, the INFORMATION_SCHEMA tables will not find the table.
* fts_optimize_words(): Remove stray outputMarko Mäkelä2019-05-132-4/+0
| | | | | | | | With SET GLOBAL innodb_optimize_fulltext_only=1 in effect, OPTIMIZE TABLE would output words from the fulltext index to the server error log, even in non-debug builds. fts_optimize_words(): Remove the unwanted output.
* fts_doc_ids_free(): Define inlineMarko Mäkelä2019-05-134-48/+12
|
* MDEV-19441 Typo in error message "InnoDB: FTS Doc ID must be large than"Marko Mäkelä2019-05-134-18/+16
| | | | | row_insert_for_mysql(): Correct the grammar error, and display the table name in both messages.
* Merge branch '5.5' into 10.1Vicențiu Ciorbaru2019-05-112967-3001/+3001
|\
| * Update FSF AddressVicențiu Ciorbaru2019-05-114079-4102/+4102
| | | | | | | | * Update wrong zip-code
* | Update FSF addressVicențiu Ciorbaru2019-05-11719-725/+725
| |
* | Merge branch '5.5' into 10.1Vicențiu Ciorbaru2019-05-11371-380/+380
|\ \ | |/
| * Follow-up to changing FSF addressVicențiu Ciorbaru2019-05-11165-167/+167
| | | | | | | | | | | | | | | | | | | | Some places didn't match the previous rules, making the Floor address wrong. Additional sed rules: sed -i -e 's/Place.*Suite .*, Boston/Street, Fifth Floor, Boston/g' sed -i -e 's/Suite .*, Boston/Fifth Floor, Boston/g'
| * Update FSF addressMichal Schorm2019-05-10217-227/+227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is based on the work of Michal Schorm, rebased on the earliest MariaDB version. Th command line used to generate this diff was: find ./ -type f \ -exec sed -i -e 's/Foundation, Inc., 59 Temple Place, Suite 330, Boston, /Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, /g' {} \; \ -exec sed -i -e 's/Foundation, Inc. 59 Temple Place.* Suite 330, Boston, /Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, /g' {} \; \ -exec sed -i -e 's/MA.*.....-1307.*USA/MA 02110-1335 USA/g' {} \; \ -exec sed -i -e 's/Foundation, Inc., 59 Temple/Foundation, Inc., 51 Franklin/g' {} \; \ -exec sed -i -e 's/Place, Suite 330, Boston, MA.*02111-1307.*USA/Street, Fifth Floor, Boston, MA 02110-1335 USA/g' {} \; \ -exec sed -i -e 's/MA.*.....-1307/MA 02110-1335/g' {} \;
* | MDEV-13893 encryption.innodb-redo-badkey failed in buildbot with page cannot ↵Thirunarayanan Balathandayuthapani2019-05-102-16/+2
| | | | | | | | | | | | | | | | | | | | | | | | be decrypted buf_dblwr_process(): Remove the useless warning that a copy of a page in the doublewrite buffer is corrupted. We already report an error if a corrupted page cannot be recovered from the doublewrite buffer. Note: In MariaDB 10.1, the original bug reported in MDEV-13893 could still be easily repeatable. In MariaDB 10.2.24, MDEV-12699 should have reduced the probability considerably.
* | MDEV-18220: race condition in fts_get_table_name()Marko Mäkelä2019-05-108-34/+66
| | | | | | | | fts_get_table_name(): Add the parameter bool dict_locked=false.
* | MDEV-18220: Backport some code from MariaDB 10.2Marko Mäkelä2019-05-1014-536/+612
| | | | | | | | | | | | | | | | | | | | fts_get_table_name(): Output to a caller-allocated buffer. fts_get_table_name_prefix(): Use the lower-overhead allocation ut_malloc() instead of mem_alloc(). This is based on mysql/mysql-server@d1584b9f38ff0bcf609d181db35f74108e022168 in MySQL 5.7.4.
* | MDEV-18220: heap-use-after-free in fts_get_table_name_prefix()Marko Mäkelä2019-05-1016-74/+28
| | | | | | | | | | | | | | | | | | | | | | | | fts_table_t::parent: Remove the redundant field. Refer to table->name.m_name instead. fts_update_sync_doc_id(), fts_update_next_doc_id(): Remove the redundant parameter table_name. fts_get_table_name_prefix(): Access the dict_table_t::name. FIXME: Ensure that this access is always covered by dict_sys->mutex.
* | MDEV-18220: Remove some redundant data structuresMarko Mäkelä2019-05-106-326/+270
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fts_state_t, fts_slot_t::state: Remove. Replaced by fts_slot_t::running and fts_slot_t::table_id as follows. FTS_STATE_SUSPENDED: Removed (unused). FTS_STATE_EMPTY: Removed. table_id=0 will denote empty slots. FTS_STATE_RUNNING: Equivalent to running=true. FTS_STATE_LOADED, FTS_STATE_DONE: Equivalent to running=false. fts_slot_t::table: Remove. Tables will be identified by table_id. After opening a table, we will check fil_table_accessible() before accessing the data. fts_optimize_new_table(), fts_optimize_del_table(), fts_optimize_how_many(), fts_is_sync_needed(): Remove the parameter tables, and use the static variable fts_slots (which was introduced in MariaDB 10.2) instead.
* | MDEV-19399 do not call slow my_timer_init() several timesEugene Kosov2019-05-108-56/+54
| | | | | | | | | | | | | | | | | | | | | | No functional change. Call my_timer_init() only once and then reuse it from InnoDB and perfschema storage engines. This patch speeds up empty test for me like this: ./mtr -mem innodb.kevg,xtradb 1.21s user 0.84s system 34% cpu 5.999 total ./mtr -mem innodb.kevg,xtradb 1.12s user 0.60s system 31% cpu 5.385 total
* | MDEV-19427 mysql_upgrade_service throws exception upgrading from 10.0 to 10.3Vladislav Vaintroub2019-05-091-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | The crash happens when writing into log file. The reason is likely that the call to WriteFile() was missing a valid parameter for lpNumberOfBytesWritten. This seems only to happen on ancient version of Windows. Since the fix to MDEV-16430 in 141bc58ac992, null pointer was passed instead of valid pointer. The fix is to provide a valid lpNumberOfBytesWritten parameter.
* | Removed dead codeSergey Vojtovich2019-05-091-57/+0
| |
* | MDEV-16060 - InnoDB: Failing assertion: ut_strcmp(index->name, key->name)Sergey Vojtovich2019-05-095-46/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | A sequel to 9180e86 and 149b754. ALTER TABLE ... ADD FOREIGN KEY may crash if parent table is updated concurrently. Block FK parent table updates even earlier, before intermediate child table is created. Use proper charset info for my_casedn_str() and don't update original identifiers so that lower_cast_table_names == 2 is honoured.
* | bump the VERSIONDaniel Bartholomew2019-05-081-1/+1
| |
* | Null merge mariadb-10.1.40 into 10.1Marko Mäkelä2019-05-080-0/+0
|\ \
| * | bump the VERSIONmariadb-10.1.40Daniel Bartholomew2019-05-071-1/+1
| | |
| * | MDEV-17640 UMASK_DIR configuration for mysql_install_db is not applied to ↵Sergei Golubchik2019-05-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | mysql database regression after 3db6de33b2b in RPMs continue creating the $datadir outside of mysql_install_db. RPMs put the socket in there, so it cannot be chmod 0700.
* | | MDEV-19387 innodb_ft_result_cache_limit_32 fails on s390xThirunarayanan Balathandayuthapani2019-05-085-17/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix: ==== 1) Combined innodb_ft_result_cache_limit_32.test and innodb_ft_result_cache_limit_64.test test case in sys_vars suite. 2) Use word_size.inc for combinations of innodb_ft_result_cache_limit test case.
* | | MDEV-19405: Galera test failure on galera_parallel_autoinc_largetrxbb-10.1-MDEV-19405Jan Lindström2019-05-074-49/+98
| | | | | | | | | | | | | | | Test case was not stable. Fixed also galera_parallel_autoinc_manytrx as it has the same problem.
* | | Revert "MDEV-19399 do not call slow my_timer_init() several times"Marko Mäkelä2019-05-065-49/+55
| | | | | | | | | | | | | | | | | | | | | This reverts commit 8dc670a5e8d322d8e1871b8c2ae8695a8779f739. The symbol sys_timer_info was not being exported correctly, which caused linking failures on some platforms.
* | | MDEV-17640 UMASK_DIR configuration for mysql_install_db is not applied to ↵Sergei Golubchik2019-05-061-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | mysql database regression after 3db6de33b2b in RPMs continue creating the $datadir outside of mysql_install_db. RPMs put the socket in there, so it cannot be chmod 0700.
* | | MDEV-18214 remove some duplicated MONITOR countersEugene Kosov2019-05-065-51/+53
| | | | | | | | | | | | | | | | | | | | | MONITOR_PENDING_LOG_WRITE MONITOR_PENDING_CHECKPOINT_WRITE MONITOR_LOG_IO: read values from log_t members instead of updating own monitor variables
* | | MDEV-19399 do not call slow my_timer_init() several timesEugene Kosov2019-05-065-55/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No functional change. Call my_timer_init() only once and then reuse it from InnoDB and perfschema storage engines. This patch speeds up empty test for me like this: ./mtr -mem innodb.kevg,xtradb 1.21s user 0.84s system 34% cpu 5.999 total ./mtr -mem innodb.kevg,xtradb 1.12s user 0.60s system 31% cpu 5.385 total
* | | MDEV-17883: CREATE TABLE IF NOT EXISTS locking changes in 10.3.10Jan Lindström2019-05-031-4/+5
| | | | | | | | | | | | | | | Based on pull request https://github.com/MariaDB/server/pull/999 by mkaruza@galeracluster.com
* | | Merge branch '5.5' into 10.1Oleksandr Byelkin2019-05-022-2/+10
|\ \ \ | | |/ | |/|
| * | MDEV-19349 mysql_install_db: segfault at tmp_file_prefix checkAleksey Midenkov2019-05-012-7/+10
| | |
| * | bump the VERSIONDaniel Bartholomew2019-04-291-1/+1
| | |
* | | bump the VERSIONDaniel Bartholomew2019-05-021-1/+1
| | |
* | | MDEV-19352: Server crash in alloc_histograms_for_table_share upon query from ↵Varun Gupta2019-05-024-2/+60
| | | | | | | | | | | | | | | | | | | | | information schema To read histograms for a table, we should check if the allocation of statistics was done or not, if not done we should not try to read histograms for such a table.
* | | Adjusting sql_command to align with higher version, this is an adjustmentVarun Gupta2019-05-021-5/+4
| |/ |/| | | | | to the patch for MDEV-17605
* | Updated list of unstable tests for 10.1.39 releasemariadb-10.1.39Elena Stepanova2019-04-301-61/+122
| |
* | MDEV-14572: Assertion `! is_set()' failed in ↵Oleksandr Byelkin2019-04-303-0/+43
| | | | | | | | | | | | | | | | | | Diagnostics_area::set_eof_status upon EXPLAIN UPDATE in PS Restore EXPAIN flag in SELECT_LEX before execution multi-update by flag in LEX (the same but in other way made before INSERT/DELETE/SELECT) Without it, mysql_update() didn't know that there will be EXPLAIN result set and was sending OK at the end of the update, which conflicted with the EOF sent later by EXPLAIN.