summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-20207: Assertion `! is_set()' failed in Diagnostics_area::set_eof_statusbb-10.1-MDEV-20207Rucha Deodhar2020-08-059-1/+145
| | | | | | | | | upon HANDLER READ Analysis: The error state is not stored while checking condition and key name. Fix: Return true while checking condition and key name if error is reported because geometry object can't be created from the data in the index value for HANDLER READ.
* MDEV-21472: ALTER TABLE ... ANALYZE PARTITION ... with EITS reads and locks ↵Sergei Petrunia2020-07-294-4/+71
| | | | | | | | | | | | all rows Do not collect EITS statistics for this statement: ALTER TABLE t ANALYZE PARTITION p EITS stats are currently global, not per-partition. Collecting global stats when we are asked to process just one partition causes issues for DBAs.
* MDEV-23010 UPDATE privilege at Database and Table level fail to update with ↵Sergei Golubchik2020-07-293-3/+39
| | | | | | | SELECT command denied to user check both column- and table-level grants when looking for SELECT privilege on UPDATE statement.
* cleanup: reduce code duplicationSergei Golubchik2020-07-293-45/+21
|
* Bug #25207522: INCORRECT ORDER-BY BEHAVIOR ON A PARTITIONED TABLE WITH A ↵Sergei Golubchik2020-07-295-24/+136
| | | | | | | | | COMPOSITE PREFIX INDEX Fix prefix key comparison in partitioning. Comparions must take into account no more than prefix_len characters. It used to compare prefix_len*mbmaxlen bytes.
* bugfix: mysql_create_view() infinite loopSergei Golubchik2020-07-291-2/+3
| | | | | | if mysql_create_view() is aborted when view is linked into lex (when WSREP_TO_ISOLATION_BEGIN fails), it should not be linked there again on err:.
* MDEV-18496 Crash when Aria encryption is enabled but plugin not availableSergei Golubchik2020-07-293-0/+8
| | | | fix uninitialized struct member
* MDEV-18496 Crash when Aria encryption is enabled but plugin not availableSergei Golubchik2020-07-294-2/+24
| | | | wait_while_table_is_used() should return an error if handler::extra() fails
* MDEV-15961: Fix stacktraces under FreeBSD (aarch64)Karthik Kamath2020-07-284-18/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Largely based on MySQL commit https://github.com/mysql/mysql-server/commit/75271e51d60bce8683423b208cbb43b11ca6060e MySQL Ref: BUG#24566529: BACKPORT BUG#23575445 TO 5.6 (cut) Also, the PTR_SANE macro which tries to check if a pointer is invalid (used when printing pointer values in stack traces) gave false negatives on OSX/FreeBSD. On these platforms we now simply check if the pointer is non-null. This also removes a sbrk() deprecation warning when building on OS X. (It was before only disabled with building using XCode). Removed execinfo path of MySQL patch that was already included. sbrk doesn't exist on FreeBSD aarch64. Removed HAVE_BSS_START based detection and replaced with __linux__ as it doesn't exist on OSX, Solaris or Windows. __bss_start exists on mutiple Linux architectures. Tested on FreeBSD and Linux x86_64. Being in FreeBSD ports for 2 years implies a good testing there on all FreeBSD architectures there too. MySQL-8.0.21 code is functionally identical to original commit.
* MDEV-17076: mtr int options aren't negativeDaniel Black2020-07-281-0/+11
|
* MDEV-17076: mtr max-{core,datadir} 0 means 0Daniel Black2020-07-281-8/+6
| | | | | | | | | | | | | There was no ability to set the mtr arguments of: * --max-save-core; and * --max-save-datadir to 0. This is desireable in an automatied scenario where space is limited hence targeting 10.1 branch. We take away the 0 means unlimited aspect for these, however, perl can handle some big numbers so they may as well be close enough to unlimited for all meaningful purposes.
* MDEV-17076: increment only if saving occursTeodor Mircea Ionita2020-07-281-1/+1
|
* MDEV-23088: Change LimitNOFILE default from 16364 to 16384Daniel Black2020-07-282-2/+2
| | | | | | | Correct to a true 2^14 rather than some different number that was actually just a number typo. Bug report thanks to Hartmut Holzgraefe.
* MDEV-23282 FLOAT(53,0) badly handles out-of-range valuesAlexander Barkov2020-07-274-4/+44
| | | | | truncate_double() did not take into account the max_value limit in case when dec<NOT_FIXED_DEC.
* Add testcases for MDEV-20557, MDEV-21649Sergei Petrunia2020-07-252-0/+121
|
* MDEV-23221: A subquery causes crashSergei Petrunia2020-07-245-4/+139
| | | | | | | | | | | | | | | | | | | | * Fix the crash: IN-to-EXISTS rewrite causes an error (and so JOIN::optimize() fails with an error, too), don't call update_used_tables(). Terminate the query execution instead. * Fix the cause of the error in the IN-to-EXISTS rewrite: don't do the rewrite if doing it will cause an error of this kind: This version of MariaDB doesn't yet support 'SUBQUERY in ROW in left expression of IN/ALL/ANY' * Fix another issue exposed by this testcase: JOIN::setup_subquery_caches() may be invoked before any select has saved its query plan, and will crash because none of the SELECTs has called create_explain_query_if_not_exists() to create the Explain Data Structure for this SELECT. TODO: When merging this to 10.2, remove the poorly-placed call to create_explain_query_if_not_exists made by fix for M_D_E_V-16153
* mysql_install_db: help lists --defaults-file twiceDaniel Black2020-07-241-2/+1
| | | | | | | Removed duplicate. Also move the --no-defaults option close to the other "default*" options.
* MDEV-23272 Galera stack-use-after-scope error with ASAN buildTeemu Ollakka2020-07-242-18/+0
| | | | | | | | THD proc info was assigned from stack allocated temporary buffer which went out of scope immediately after assignment. Fixed by removing the use of temp buffer and assign proc info from string literal.
* MDEV-15207: mysql_upgrade cannot create file mysql_upgrade_infoIan Gilfillan2020-07-231-1/+3
|
* MDEV-22903 heap-use-after-free while accessing fts cache deleted doc idsThirunarayanan Balathandayuthapani2020-07-232-6/+6
| | | | | | | | | | | | | | Problem: ======= fts_cache_append_deleted_doc_ids() holds the deleted_lock and tries to access size of deleted_doc_ids. In the meantime, fts_cache_clear() clears the sync_heap before clearing deleted_doc_ids. It leads to invalid access of deleted_doc_ids. Fix: === fts_cache_clear() should free the sync_heap after clearing deleted_doc_ids.
* MDEV-23268 SIGSEGV on srv_monitor_event if InnoDB is read-onlyMarko Mäkelä2020-07-238-18/+26
| | | | | | The srv_monitor_event and the srv_monitor_thread would not be created when InnoDB is in read-only mode. Yet, some code would unconditionally invoke os_event_set(srv_monitor_event).
* Code comment spellfixesIan Gilfillan2020-07-2241-214/+214
|
* MDEV-19232: Floating point precision / value comparison problemVarun Gupta2020-07-2211-30/+68
| | | | | | | | | | | | The issue occurs when the subquery_cache is enabled. When there is a cache miss the division was leading to a value with scale 9. In the case of cache hit the value returned was of scale 9 and due to the different values for the scales the where condition evaluated to FALSE, hence the output was incomplete. To fix this problem we need to round up the decimal to the limit mentioned in Item::decimals. This would make sure the values are compared with the same scale.
* MDEV-23190 InnoDB data file extension is not crash-safeMarko Mäkelä2020-07-2024-197/+313
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When InnoDB is extending a data file, it is updating the FSP_SIZE field in the first page of the data file. In commit 8451e09073e8b1a300f177d74a9e3a530776640a (MDEV-11556) we removed a work-around for this bug and made recovery stricter, by making it track changes to FSP_SIZE via redo log records, and extend the data files before any changes are being applied to them. It turns out that the function fsp_fill_free_list() is not crash-safe with respect to this when it is initializing the change buffer bitmap page (page 1, or generally, N*innodb_page_size+1). It uses a separate mini-transaction that is committed (and will be written to the redo log file) before the mini-transaction that actually extended the data file. Hence, recovery can observe a reference to a page that is beyond the current end of the data file. fsp_fill_free_list(): Initialize the change buffer bitmap page in the same mini-transaction. The rest of the changes are fixing a bug that the use of the separate mini-transaction was attempting to work around. Namely, we must ensure that no other thread will access the change buffer bitmap page before our mini-transaction has been committed and all page latches have been released. That is, for read-ahead as well as neighbour flushing, we must avoid accessing pages that might not yet be durably part of the tablespace. fil_space_t::committed_size: The size of the tablespace as persisted by mtr_commit(). fil_space_t::max_page_number_for_io(): Limit the highest page number for I/O batches to committed_size. MTR_MEMO_SPACE_X_LOCK: Replaces MTR_MEMO_X_LOCK for fil_space_t::latch. mtr_x_space_lock(): Replaces mtr_x_lock() for fil_space_t::latch. mtr_memo_slot_release_func(): When releasing MTR_MEMO_SPACE_X_LOCK, copy space->size to space->committed_size. In this way, read-ahead or flushing will never be invoked on pages that do not yet exist according to FSP_SIZE.
* Cleanup: Remove fil_check_adress_in_tablespace()Marko Mäkelä2020-07-206-70/+24
|
* Cleanup: Remove unused AbstractCallback::m_free_limitMarko Mäkelä2020-07-202-18/+0
|
* Making the stat_tables_innodb test deterministicVarun Gupta2020-07-182-21/+15
|
* MDEV-20401: revert unnecessary changeJulius Goryavsky2020-07-161-1/+1
|
* MDEV-20401: Server incorrectly auto-sets lower_case_file_system valueJulius Goryavsky2020-07-162-4/+6
| | | | | | | | Server auto-sets lower_case_file_system value based on default datadir's behavior instead of instead of using the directory specified by the user through the configuration file or command line options. This patch fixes this problem.
* check_linker_flag: use for linker flagsDaniel Black2020-07-152-1/+29
| | | | | | | | -Wl,-z,relro,-z,now are linker flags and should be checked as such. TODO: perform module, exe shared checks separately rather than a pure linker check.
* MDEV-22851: Engine independent index statistics are incorrect for large ↵Varun Gupta2020-07-154-15/+67
| | | | | | | | | tables on Windows An oveflow was happening on windows because on Windows sizeof(ulong) is 4 bytes while it is 8 bytes on Linux. Switched avg_frequency and avg length for column statistics to ulonglong. Switched avg_frequency for index statistics to ulonglong.
* XtraDB 5.6.48-88.0Marko Mäkelä2020-07-143-4/+4
| | | | | | The only InnoDB changes between Percona XtraDB Server 5.6.47-87.0 and 5.6.48-88.0 are related to InnoDB changes between MySQL 5.6.47 and MySQL 5.6.48, which we had already applied.
* Update the InnoDB version number to 5.6.49Marko Mäkelä2020-07-144-4/+4
| | | | There were no InnoDB changes between MySQL 5.6.48 and MySQL 5.6.49.
* MDEV-23161 avg_count_reset may wrongly be NULL in I_S.INNODB_METRICSMarko Mäkelä2020-07-142-26/+28
| | | | | | | | | | | | This issue was originally reported by Fungo Wang, along with a fix, as MySQL Bug #98990. His suggested fix was applied as part of mysql/mysql-server@a003fc373d1adb3ccea353b5d7d83f6c4c552383 and released in MySQL 5.7.31. i_s_metrics_fill(): Add the missing call to Field::set_notnull(), and simplify some code.
* MDEV-22765 i_s_fts_index_cache_fill_one_index() is not protect by the lockThirunarayanan Balathandayuthapani2020-07-142-0/+6
| | | | | - i_s_fts_index_cache_fill() should take shared lock of fts cache before accessing index cache to avoid reading stale data.
* MDEV-15662 mariabackup.huge_lsn fails sporadically with "log sequence ↵Thirunarayanan Balathandayuthapani2020-07-142-0/+12
| | | | | | | | | number is in the future" - Problem is that test case creates iblogfile* files. So existing ibdata pages could point to future LSN. Fix is that taking the backup of data before iblogfile* creation and apply it before exiting the test case.
* MDEV-22890 DEADLOCK of threads detected: row0sel.cc S-LOCK / btr0cur.cc ↵Thirunarayanan Balathandayuthapani2020-07-142-6/+10
| | | | | | | | | | | | | | | | S-LOCK / row0quiesce.cc X-LOCK Problem: ======= - Read operations are always allowed to hold a secondary index leaf latch and then look up the corresponding clustered index record. Flush table operation acquires secondary index latch while holding a clustered index latch. It leads to deadlock violation. Fix: ==== - Flush table operation should acquire secondary index before taking clustered index to avoid deadlock violation with select operation.
* MDEV-23027 symlink_wsrep_sst_rsync target built when WITH_WSREP is offVicențiu Ciorbaru2020-07-131-29/+30
| | | | Only install wsrep scripts and links if WSREP_ON is actually set
* MDEV-23114 AUTH_PAM plugin can not be disabled when using mysql_release configVicențiu Ciorbaru2020-07-071-1/+1
| | | | | When setting the PLUGIN_AUTH_PAM variable, mark it as a "CACHE" variable so it can be overridden by the user.
* MDEV-22654: Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())'Rucha Deodhar2020-07-063-1/+42
| | | | | | | | | failed in Diagnostics_area::set_ok_status on FUNCTION replace When there is REPLACE in the statement, sp_drop_routine_internal() returns 0 (SP_OK) on success which is then assigned to ret. So ret becomes false and the error state is lost. The expression inside DBUG_ASSERT() evaluates to false and thus the assertion failure.
* MDEV-23098 mariadb-upgrade-service.exe does not work on WAMPServerVladislav Vaintroub2020-07-061-5/+26
| | | | | | | While trying to detect datadir, take into account that one can use Windows service name as section name in options file, for Windows service. The historical obscurity is being used by WAMP installations.
* MDEV-22390: Assertion `m_next_rec_ptr >= m_rawmem' failed in ↵Varun Gupta2020-07-064-2/+78
| | | | | | | | | Filesort_buffer::spaceleft | SIGSEGV in __memmove_avx_unaligned_erms from my_b_write Make sure that the sort_buffer that is allocated has atleast space for MERGEBUFF2 keys. The issue here was that the record length is quite high and sort buffer size is very small, due to which we end up with zero number of keys in the sort buffer. The Sort_param::max_keys_per_buffer was zero in such a case, due to which we were flushing empty sort_buffer to the disk.
* MDEV-22173: socket accept - test for failureDaniel Black2020-07-061-8/+16
| | | | | | | | | | accept might return an error, including SOCKET_EAGAIN/ SOCKET_EINTR. The caller, usually handle_connections_sockets can these however and invalid file descriptor isn't something to call fcntl on. Thanks to Etienne Guesnet (ATOS) for diagnosis, sample patch description and testing.
* Revert "Fix result of merge."Marko Mäkelä2020-07-021-1/+5
| | | | | | This reverts commit e0793d386517f4ff9c0267830d558f91c75263aa. In idiomatic C++, accessor functions should not discard qualifiers.
* MDEV-22941: Fix the DBUG_ENTER nameMarko Mäkelä2020-07-021-4/+4
|
* MDEV-23067 Windows : manually registered services rejected mysql_upgrade_serviceVladislav Vaintroub2020-07-011-19/+19
| | | | | | - service not using "--defaults-file" can have any name not just "MySQL" - service with "--defaults-file", without datadir in them use default datadir (install_root\data)
* MDEV-23052 mysql_install_db.exe can run on existing non-empty directory,Vladislav Vaintroub2020-07-011-7/+15
| | | | | | and remove it on error Disable existing non-empty datadir for mysql_install_db.exe
* MDEV-23003 INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION requires SUPER ↵Eugene Kosov2020-06-301-1/+1
| | | | | | | | | | instead PROCESS privilege Fix a typo in a source code. Now real required privileges corresponds to a ones mentions in documentation. Documentation states that this table requires PROCESS privilege: https://mariadb.com/kb/en/information-schema-innodb_tablespaces_encryption-table/
* signal handler: use mariadb kb URL rather than MySQL oneDaniel Black2020-06-291-1/+1
|
* MDEV-17606: Query returns wrong results (while using CHARACTER SET utf8)Varun Gupta2020-06-273-1/+32
| | | | | | | | | The issue here was that the left expr and right expr of the ANY subquery had different character sets, so we were converting the left expr to utf8 character set. So when this conversion was happening we were actually converting the item inside the cache, it looked like <cache>(convert(t1.l1 using utf8)), which is incorrect. To fix this problem we are going to store the reference of the left expr and convert that to utf8 character set, it would look like convert(<cache>(`test`.`t1`.`l1`) using utf8)