- 18 Oct, 2017 4 commits
-
-
Marko Mäkelä authored
The ownership of the field query->intersection usually transfers to query->doc_ids. In some error scenario, it could be possible that fts_query_free() would be invoked with query->intersection!=NULL. Let us handle that case, instead of intentionally crashing the server.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
In MariaDB, InnoDB fulltext search does not currently truncate results based on LIMIT. In MySQL 5.7, it does.
-
Marko Mäkelä authored
MDEV-14086 Setting innodb_buffer_pool_load_now or innodb_buffer_load_abort will crash if innodb_read_only When MySQL 5.6.10 introduced innodb_read_only mode, it skipped the creation of the InnoDB buffer pool dump/restore subsystem in that mode. Attempts to set the variable innodb_buf_pool_dump_now would have no effect in innodb_read_only mode, but the corresponding condition was forgotten in from the other two update functions. MySQL 5.7.20 would fix the innodb_buffer_pool_load_now, but not innodb_buffer_pool_load_abort. Let us fix both in MariaDB.
-
- 17 Oct, 2017 1 commit
-
-
Vicențiu Ciorbaru authored
-
- 16 Oct, 2017 2 commits
-
-
Marko Mäkelä authored
fts_get_next_doc_id(): Assign the first and subsequent FTS_DOC_ID in the same way: by post-incrementing the cached value. If there is a user-specified FTS_DOC_ID, do not touch the internal sequence.
-
Marko Mäkelä authored
There are two bugs related to failed ADD INDEX and the InnoDB table cache eviction. dict_table_close(): Try dropping failed ADD INDEX when releasing the last table handle, not when releasing the last-but-one. dict_table_remove_from_cache_low(): Do not invoke row_merge_drop_indexes() after freeing all index metadata. Instead, directly invoke row_merge_drop_indexes_dict() to remove the metadata from the persistent data dictionary and to free the index pages.
-
- 11 Oct, 2017 1 commit
-
-
Vicențiu Ciorbaru authored
MDEV-13676: Field "create Procedure" is NULL, even if the the user has role which is the definer. (SHOW CREATE PROCEDURE) During show create procedure we ommited to check the current role, if it is the actual definer of the procedure. In addition, we should support indirectly granted roles to the current role. Implemented a recursive lookup to search the tree of grants if the rolename is present. SQL Standard 2016, Part 5 Section 53 View I_S.ROUTINES selects ROUTINE_BODY and its WHERE clause says that the GRANTEE must be either PUBLIC, or CURRENT_USER or in the ENABLED_ROLES.
-
- 10 Oct, 2017 2 commits
-
-
Jan Lindström authored
Reverted incorrect changes done on MDEV-7367 and MDEV-9469. Fixes properly also related bugs: MDEV-13668: InnoDB unnecessarily rebuilds table when renaming a column and adding index MDEV-9469: 'Incorrect key file' on ALTER TABLE MDEV-9548: Alter table (renaming and adding index) fails with "Incorrect key file for table" MDEV-10535: ALTER TABLE causes standalone/wsrep cluster crash MDEV-13640: ALTER TABLE CHANGE and ADD INDEX on auto_increment column fails with "Incorrect key file for table..." Root cause for all these bugs is the fact that MariaDB .frm file can contain virtual columns but InnoDB dictionary does not and previous fixes were incorrect or unnecessarily forced table rebuilt. In index creation key_part->fieldnr can be bigger than number of columns in InnoDB data dictionary. We need to skip not stored fields when calculating correct column number for InnoDB data dictionary. dict_table_get_col_name_for_mysql Remove innobase_match_index_columns Revert incorrect change done on MDEV-7367 innobase_need_rebuild Remove unnecessary rebuild force when column is renamed. innobase_create_index_field_def Calculate InnoDB column number correctly and remove unnecessary column name set. innobase_create_index_def, innobase_create_key_defs Remove unneeded fields parameter. Revert unneeded memset. prepare_inplace_alter_table_dict Remove unneeded col_names parameter index_field_t Remove unneeded col_name member. row_merge_create_index Remove unneeded col_names parameter and resolution. Effected tests: innodb-alter-table : Add test case for MDEV-13668 innodb-alter : Remove MDEV-13668, MDEV-9469 FIXMEs and restore original tests innodb-wl5980-alter : Remove MDEV-13668, MDEV-9469 FIXMEs and restore original tests
-
Sergei Golubchik authored
fixes failures of func_regexp_pcre
-
- 09 Oct, 2017 4 commits
-
-
Vicențiu Ciorbaru authored
-
Sergei Golubchik authored
Caused by 2fcd8c12. It used the documented pcre API -pcre_exec(NULL, NULL, NULL, -999, -999, 0, NULL, 0) to calculate the pcre stack frame size. Unfortunately, modern compilers broke it by cloning and inlining pcre match() function. 2fcd8c12 tried to workaround it by setting the stack frame size to at least 500. It didn't work, 500 is not a universal constant. Now we fix our copy of pcre to not inline or clone match() - so that stack frame detection would work again - and detect at cmake time whether system pcre is broken or usable. Also use stack, not (much slower) malloc in bundled pcre, unless on Windows
-
Heinz Wiesinger authored
-
Marko Mäkelä authored
fts_create_doc_id(): Remove. row_mysql_convert_row_to_innobase(): Implement the logic of fts_create_doc_id(). Reuse a buffer for the hidden FTS_DOC_ID. row_get_prebuilt_insert_row(): Allocate a buffer for the hidden FTS_DOC_ID at the end of prebuilt->ins_upd_rec_buff.
-
- 08 Oct, 2017 2 commits
-
-
Elena Stepanova authored
Post-fix: RedHat does not use rh-skipped-tests.list anymore
-
Elena Stepanova authored
A note about unstable-tests lists in mysql-test/README, RedHat version of it, and also various changes to bring the file up-to-date
-
- 07 Oct, 2017 1 commit
-
-
Alexander Barkov authored
-
- 06 Oct, 2017 1 commit
-
-
Igor Babaev authored
Do not build an index merge of two indexes when one index is an infix of the other index.
-
- 03 Oct, 2017 1 commit
-
-
Vladislav Vaintroub authored
On failure, installer executes rollback actions, among them removing newly created data directory with all files in it. This patch makes installer at dump mariadb error log to installer log, before removing the files. This should make troubleshooting a little easier.
-
- 02 Oct, 2017 2 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_cur_pessimistic_delete(): Discard a possible record lock also in the case when the record was the only one in the page. Failure to do this would corrupt the record lock data structures in a partial rollback (ROLLBACK TO SAVEPOINT or rolling back a row operation due to some error, such as a duplicate key in a unique secondary index).
-
- 25 Sep, 2017 1 commit
-
-
Marko Mäkelä authored
-
- 24 Sep, 2017 1 commit
-
-
Marko Mäkelä authored
The ALTER TABLE…IMPORT TABLESPACE adjustment code that was introduced by WL#5522 in MySQL 5.6 is incorrectly invoking rec_get_status() on a ROW_FORMAT=REDUNDANT record to determine if a record is a leaf page record. The function rec_get_status(rec) is only to be called on ROW_FORMAT=COMPACT, DYNAMIC or COMPRESSED records.
-
- 23 Sep, 2017 1 commit
-
-
Vladislav Vaintroub authored
-
- 22 Sep, 2017 1 commit
-
-
Marko Mäkelä authored
log_group_read_log_seg(): Only display the message during recovery, not during normal operation. When the XtraDB configuration parameter innodb_log_archive is set, this function will be called during normal operation.
-
- 21 Sep, 2017 5 commits
-
-
Sergei Golubchik authored
followup for 378beed0 - only count WARN_LEVEL_ERROR, not warnings or notes.
-
Sergei Golubchik authored
tabtyp was defined under ODBC_SUPPORT, but used outside of it too (under JDBC_SUPPORT).
-
Marko Mäkelä authored
-
Sergei Golubchik authored
don't prepare for checking view's CHECK OPTION, if there is no CHECK OPTION in the first place.
-
Sachin Setiya authored
Binlog_background_thread does not make a call to set_time(), And when we call binlog_checkpoint_log_event->write() , we write the wrong timestamp. In this patch we correct this by calling thd->set_time().
-
- 20 Sep, 2017 5 commits
-
-
Sergei Golubchik authored
MDEV-13290: Assertion Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' or `! is_set()' failed followup for 97c2a735 - don't use thd->is_error(), the error could've been set before TABLE_LIST::cleanup_items. Use the error handler to count errors. This fixes rpl.rpl_row_binlog_max_cache_size - it was failing when ER_STMT_CACHE_FULL happened duing multi-table update. Because multi_update::abort_result_set() calls do_updates() to update as much as possible, so one cannot rely on thd->is_error() after that.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
disable Mongo in 10.0, compiler warnings.
-
Sergei Golubchik authored
-
Vicențiu Ciorbaru authored
-
- 19 Sep, 2017 5 commits
-
-
Oleksandr Byelkin authored
MDEV-13290: Assertion Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' or `! is_set()' failed Check error status which can be set by conversion procedures.
-
Alexey Botchkov authored
The MySQL 5.6 doesn't always send the MYSQL_AUDIT_GENERAL_LOG notification. So we have to suppress the log_current_query() in this case.
-
Alexey Botchkov authored
The MySQL 5.6 doesn't always send the MYSQL_AUDIT_GENERAL_LOG notification. So we have to suppress the log_current_query() in this case.
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
Revert Bug #25175249 ASSERTION: (TEMPL->IS_VIRTUAL && !FIELD) || (FIELD && FIELD->PREFIX_LEN ? FIELD We don't want this in innodb/xtradb
-