summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update mysqld_multi.shrantal2019-09-241-1/+1
| | | | | | `elseif` should be `elsif` Closed #1388
* MDEV-19956 Queries with subqueries containing UNION are not parsedIgor Babaev2019-09-2321-544/+7163
| | | | | | | | Shift-Reduce conflicts prevented parsing some queries with subqueries that used set operations when the subqueries occurred in expressions or in IN predicands. The grammar rules for query expression were transformed in order to avoid these conflicts. New grammar rules employ an idea taken from MySQL 8.0.
* MDEV-19189 ASAN memcpy-param-overlap in fill_alter_inplace_info upon adding ↵Eugene Kosov2019-09-233-4/+21
| | | | | | | | | indexes memmove() should be used instead of memcpy() for overlapping memory regions. Overlapping memory regions itself here are fine, because code simply removes one element from arbitrary position of an array.
* Merge 10.3 into 10.4Marko Mäkelä2019-09-23101-775/+1291
|\ | | | | | | Disable MDEV-20576 assertions until MDEV-20595 has been fixed.
| * Merge 10.2 into 10.3Marko Mäkelä2019-09-2390-555/+1022
| |\
| | * After-merge fix: Adjust a resultMarko Mäkelä2019-09-231-6/+6
| | |
| | * MDEV-17614 post-fix: Remove dead dup_chk_only=true code.Marko Mäkelä2019-09-234-56/+20
| | | | | | | | | | | | | | | The parameter dup_chk_only was always passed as a constant false. Remove the parameter and the dead code related to it.
| | * Merge 10.1 into 10.2Marko Mäkelä2019-09-239-16/+81
| | |\
| | | * MDEV-18094: Query with order by limit picking index scan over filesortVarun Gupta2019-09-216-9/+62
| | | | | | | | | | | | | | | | | | | | | | | | In the function test_if_cheaper_ordering we make a decision if using an index is better than using filesort for ordering. If we chose to do range access then in test_quick_select we should make sure that cost for table scan is set to DBL_MAX so that it is not picked.
| | | * MDEV-19207 systemd service: add instance name in descriptionChristian Hesse2019-09-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The unit files made systemd print: systemd[1]: Started MariaDB 10.3.13 database server (multi-instance). Let's add the instance name, so starting mariadb@foo.service makes it print: systemd[1]: Started MariaDB 10.3.13 database server (multi-instance foo).
| | | * MDEV-19211 Fix mysqld_safe --dry-runVicențiu Ciorbaru2019-09-211-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysqld_safe --dry-run needs to either call exit or return, depending if it is being sourced or not, otherise return can lead to the error: return: can only `return' from a function or sourced script The original fix suggestion was proposed by FaramosCZ <mschorm@centrum.cz>
| | | * Deb: Implement proper version detection in maintainer scriptsOtto Kekäläinen2019-09-181-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes bug introduced in commit 5415002. Using script run-time filename does not always work. One cannot assume that the filename is always the same as there might be temporary file names used by dpkg in certain situations. See Debian #920415. The same fix has been successfully in use in Debian official packages since February 2019: https://salsa.debian.org/mariadb-team/mariadb-10.3/commit/6440c0d6e75
| | * | MDEV-19679 - CREATE SERVER needs tweaks for compatibility with CONNECT engineAnel Husakovic2019-09-209-19/+18
| | | |
| | * | MDEV 19205 Sphinx unable to connect using a host nameAnel Husakovic2019-09-202-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Enable the test `sphinx.sphinx` which was disabled by MDEV 10986, comit ee0094d2fd48dac0c - Add test case to `sphinx.sphinx` to cover host as localhost instead of `127.0.0.1` - Add result file for single test
| | * | Fix Caribe 19992019-09-201-3/+4
| | | | | | | | | | | | | | | | | | | | There's an annoying bug that prevents a Sphinx table to connect to a searchd using a host name. So the example table in the documentation https://mariadb.com/kb/en/library/about-sphinxse/#basic-usage that point's to "localhost" actually doesn't work. After some investigation I found two errors. The first one is a wrong check after the getaddrinfo call. The second is a wrong usage of the returned struct.
| | * | MDEV-12646: systemd service file changes from FedoraDaniel Black2019-09-203-23/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Include comment header that describes overrides. Unit description now includes @VERSION@. After=syslog.target removed - redunant Add --basedir=@prefix to prevent /root/.my.cnf lookups. This is placed after $MYSQLD_OPTIONS in case a user sets a --{no,}default type options which has to be first in the mysqld arguements. Additional changes to multi instance (support-files/mariadb@.service.in): * added @SYSTEMD_EXECSTARTPRE@ / @SYSTEMD_EXECSTARTPOST@ * removed mariadb@bootstrap reference as galera_new_cluster as it's a little too proment. * use_galera_new_cluster.conf updated to override pre/post steps to ensure it has no side effects Signed-off-by: Daniel Black <daniel@linux.vnet.ibm.com>
| | * | MDEV-16222: Move the test to gcol.innodb_virtual_debug_purgeMarko Mäkelä2019-09-206-98/+89
| | | |
| | * | MDEV-18438 Don't stream xtrabackup_info of extra-lsndirSimon Lipp2019-09-198-10/+62
| | | |
| | * | MDEV-20483 Follow-up fixThirunarayanan Balathandayuthapani2019-09-181-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | At commit, trx->lock.table_locks (which is a cache of trx_locks) can consist of NULL pointers. Add a debug assertion for that, and clear the vector.
| | * | Enable galera.MW-286 test case.Stepan Patryshev2019-09-181-2/+1
| | | |
| | * | Merge 10.1 into 10.2Marko Mäkelä2019-09-1842-515/+513
| | |\ \ | | | |/
| | | * MDEV-19529 InnoDB hang on DROP FULLTEXT INDEXThirunarayanan Balathandayuthapani2019-09-1826-490/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ======= During dropping of fts index, InnoDB waits for fts_optimize_remove_table() and it holds dict_sys->mutex and dict_operaiton_lock even though the table id is not present in the queue. But fts_optimize_thread does wait for dict_sys->mutex to process the unrelated table id from the slot. Solution: ======== Whenever table is added to fts_optimize_wq, update the fts_status of in-memory fts subsystem to TABLE_IN_QUEUE. Whenever drop index wants to remove table from the queue, it can check the fts_status to decide whether it should send the MSG_DELETE_TABLE to the queue. Removed the following functions because these are all deadcode. dict_table_wait_for_bg_threads_to_exit(), fts_wait_for_background_thread_to_start(),fts_start_shutdown(), fts_shudown().
| | | * MDEV-19647 Server hangs after dropping full text indexes and restartThirunarayanan Balathandayuthapani2019-09-174-6/+27
| | | | | | | | | | | | | | | | | | | | - There is no need to add the table in fts_optimize_wq if there is no fts indexes associated with it.
| | | * Adjusted test results after the change of a test caseIgor Babaev2019-09-131-1/+1
| | | |
| | | * Post fix after the patch for MDEV-20576.Igor Babaev2019-09-135-17/+17
| | | | | | | | | | | | | | | | Adjusted test results.
| | | * MDEV-20576 A new assertion added to check validity of calculatedIgor Babaev2019-09-128-4/+280
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | selectivity values fails After having set the assertion that checks validity of selectivity values returned by the function table_cond_selectivity() a test case from order_by.tesst failed. The failure occurred because range optimizer could return as an estimate of the cardinality of the ranges built for an index a number exceeding the total number of records in the table. The second bug is more subtle. It may happen when there are several indexes with same prefix defined on the first joined table t accessed by a constant ref access. In this case the range optimizer estimates the number of accessed records of t for each usable index and these estimates can be different. Only the first of these estimates is taken into account when the selectivity of the ref access is calculated. However the optimizer later can choose a different index that provides a different estimate. The function table_condition_selectivity() could use this estimate to discount the selectivity of the ref access. This could lead to an selectivity value returned by this function that was greater that 1.
| | * | MDEV-20485: Disable galera.galera_var_node_addressMarko Mäkelä2019-09-181-1/+2
| | | |
| | * | Remove an unused declarationMarko Mäkelä2019-09-181-7/+0
| | | |
| | * | MDEV-20589: Server still crashes in Field::set_warning_truncated_wrong_valueVarun Gupta2019-09-186-14/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The flag is_stat_field is not set for the min_value and max_value of field items inside table share. This is a must requirement as we don't want to throw warnings of truncation when we read values from the statistics table to the column statistics of table share fields.
| | * | Fixing a test to reset to original stateVarun Gupta2019-09-183-4/+7
| | | |
| | * | MDEV-20483 trx_lock_t::table_locks is not a subset of trx_lock_t::trx_locksThirunarayanan Balathandayuthapani2019-09-172-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ======= Transaction left with nonempty table locks list. This leads to assumption that table_locks is not subset of trx_locks. Problem is that lock_wait_timeout_thread() doesn't remove the table lock from table_locks for transaction. Solution: ======== In lock_wait_timeout_thread(), remove the lock from table vector of transaction.
| | * | Fix #2 for galera.MW-336Jan Lindström2019-09-141-2/+3
| | | |
| | * | MDEV-13893/MDEV-12699: Enable encryption.innodb-redo-badkeyMarko Mäkelä2019-09-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The test had been disabled in 10.2 due to frequent failures, in 5ec9b88e11118c798ff2381771a72f76b2b72f9e. After the problems were addressed, we failed to re-enable the test until now.
| | * | Enable the auto parameter of the flag `default-character-set`Anel Husakovic2019-09-131-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #739 When invoking option `--default-character-set=auto` character set from underlying OS settings should be detected for mysqldump.
| | * | Try to fix galera.MW-336 test case.Jan Lindström2019-09-132-12/+9
| | | |
| | * | MDEV-20561 Galera node shutdown fails in non-Primary (#1386)Teemu Ollakka2019-09-133-1/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Command COM_SHUTDOWN was rejected in non-Primary because server_command_flags[COM_SHUTDOWN] had value CF_NO_COM_MULTI instead of CF_SKIP_WSREP_CHECK. As a fix removed assignment server_command_flags[CF_NO_COM_MULTI]= CF_NO_COM_MULTI which overwrote server_command_flags[COM_SHUTDOWN].
| | * | MDEV-20570 : Packaging fails "The specified timestamp server either could ↵Vladislav Vaintroub2019-09-121-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | not be reached" On Windows, during packaging step, if signing fails, retry signtool again without timestamp parameter. Fixes sporadic (rare) failures on buildbot
| | * | MDEV-16560: [counter] rocksdb.ttl_secondary_read_filtering fail in buildbotSergei Petrunia2019-09-112-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It is not reproducible, but the issue seems to be the same as with MDEV-20490 and rocksdb.ttl_primary_read_filtering - a compaction caused by DROP TABLE gets behind and compacts away the expired rows for the next test. Fix this in the same way.
| | * | MDEV-20371: Invalid reads at plan refinement stage: join->positions...Sergei Petrunia2019-09-114-28/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | best_access_path() is called from two optimization phases: 1. Plan choice phase, in choose_plan(). Here, the join prefix being considered is in join->positions[] 2. Plan refinement stage, in fix_semijoin_strategies_for_picked_join_order Here, the join prefix is in join->best_positions[] It used to access join->positions[] from stage #2. This didnt cause any valgrind or asan failures (as join->positions[] has been written-to before) but the effect was similar to that of reading the random data: The join prefix we've picked (in join->best_positions) could have nothing in common with the join prefix that was last to be considered (in join->positions).
| * | | Proper fix for disabling warnings in read_statistics_for_table().Michael Widenius2019-09-2212-179/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MDEV-20589: Server still crashes in Field::set_warning_truncated_wrong_value - Use dbug_tmp_use_all_columns() to mark that all fields can be used - Remove field->is_stat_field (not needed) - Remove extra arguments to Field::clone() that should not be there - Safety fix for Field::set_warning_truncated_wrong_value() to not crash if table is zero in production builds (We have got crashes several times here so better to be safe than sorry). - Threat wrong character string warnings identical to other field conversion warnings. This removes some warnings we before got from internal conversion errors. There is no good reason why a user would get an error in case of 'key_field='wrong-utf8-string' but not for 'field=wrong-utf8-string'. The old code could also easily give thousands of no-sence warnings for one single statement.
| * | | MDEV-20229 CTE defined with table value constructor cannot be used in viewsIgor Babaev2019-09-206-5/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A CTE can be defined as a table values constructor. In this case the CTE is always materialized in a temporary table. If the definition of the CTE contains a list of the names of the CTE columns then the query expression that uses this CTE can refer to the CTE columns by these names. Otherwise the names of the columns are taken from the names of the columns in the result set of the query that specifies the CTE. Thus if the column names of a CTE are provided in the definition the columns of result set should be renamed. In a general case renaming of the columns is done in the select lists of the query specifying the CTE. If a CTE is specified by a table value constructor then there are no such select lists and renaming is actually done for the columns of the result of materialization. Now if a view is specified by a query expression that uses a CTE specified by a table value constructor saving the column names of the CTE in the stored view definition becomes critical: without these names the query expression is not able to refer to the columns of the CTE. This patch saves the given column names of CTEs in stored view definitions that use them.
| * | | MDEV-20217: Semi_sync: Last_IO_Error: Fatal error: Failed to run ↵Sujatha2019-09-163-6/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'after_queue_event' hook Fix: === Implemented upstream fix. commit 7d3d0fc303183ef50a343680ce70df71d5675cd1 Author: He Zhenxing <zhenxing.he@sun.com> Backport Bug#45852 Semisynch: Last_IO_Error: Fatal error: Failed to run 'after_queue_event' hook Errors when send reply to master should never cause the IO thread to stop, because master can fall back to async replication if it does not get reply from slave. The problem is fixed by deliberately ignoring the return value of slave_reply.
| * | | MDEV-20525: Fix the -std=c90 buildsMarko Mäkelä2019-09-131-1/+1
| | | |
| * | | MDEV-20525 rocksdb debug compilation fails on Windows due to unresolved ↵Marko Mäkelä2019-09-133-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | my_assert variable MYSQL_PLUGIN_IMPORT did not work correctly for the RocksDB helper library rocksdb_aux_lib, because that library was not compiled with -DMYSQL_DYNAMIC_PLUGIN. Fix DBUG such that it does not depend on exported data, only on functions (which do not need MYSQL_PLUGIN_IMPORT decoration) Use a "getter" function _db_my_assert() instead of DLL-exported variable. Also, reduce object code duplication by moving more of the DBUG_ASSERT logic inside the _db_my_assert() function, and add unlikely() and ATTRIBUTE_COLD hints to ensure that the 'assertion failed' code will be separated from the main control flow logic. Thus, the compiler can move the unlikely() code to the end of the compiled function, reachable via a forward conditional branch, which the processor's branch predictor could assume 'not taken'.
| * | | Fix CMake warning in spider, in Windows ninja buildVladislav Vaintroub2019-09-121-0/+3
| | | |
* | | | Remove reference to dict_sys->mutexMarko Mäkelä2019-09-231-13/+3
| | | |
* | | | Removing obsolete register keywordDavid Carlier2019-09-211-1/+1
| | | |
* | | | cmake: support new libedit interfaceSebastian Kemper2019-09-201-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libedit changed it's interface a while ago. MariaDB's cmake file doesn't recognize the new interface, the compile test fails: /mariadb-10.2.19/CMakeFiles/CMakeTmp/src.cxx: In function 'int main(int, char**)': /mariadb-10.2.19/CMakeFiles/CMakeTmp/src.cxx:6:47: error: invalid conversion from 'char*' to 'int' [-fpermissive] int res= (*rl_completion_entry_function)(0,0); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ Fix this by adding a detection for the new interface as well. Run-tested on a MIPS machine. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
* | | | MDEV-20634 Report disallowed subquery errors as such (instead of parse error)Alexander Barkov2019-09-2021-136/+133
| | | |
* | | | Extend mysql_instal_db to search plugins also from lib/*/mariadb19/pluginOtto Kekäläinen2019-09-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Debian official the MariaDB plugins (.so files) go to a separate versioned directory so that upgrades and dependencies will work correctly. This change extends this script to check the /usr/lib/*/mariadb19/.. directory in addition to what it already does. Without this change the script fails with: $ mysql_install_db ... Cannot change ownership of the '/auth_pam_tool_dir' directory to the 'mysql' user. Check that you have the necessary permissions and try again.