Commit graph

188891 commits

Author SHA1 Message Date
Ustun Ozgur
b557f26309 Fix typo in mysqadmin manpage 2022-02-15 12:05:41 +11:00
Marko Mäkelä
e928fdbff1 Merge 10.2 into 10.3 2022-02-14 08:49:11 +02:00
Marko Mäkelä
a6ef239b9e MariaDB 10.3.34 release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEF39AEP5WyjM2MAMF8WVvJMdM0dgFAmIIFeIACgkQ8WVvJMdM
 0divQxAAzNA4EsoHo4nYyUqGiz+5VWzyVaiNpAD4GRIzv1UxaGTZpLEu5jz6tmnr
 CIeltG0/QW3870oTtWs38TUgc6Yzcn1wWAYHzdErBdoP8QEBR4b4jnEIuB2DF94M
 mGExiZDnIvmdGelfOolCz9/WKzFNJm8hCK1T+wZ6YKPGsw0YDypcYcEgCLAqvV35
 pAn6AzbBJny0a6qTbjUp0XzOcBbxssHX/PBYMwdM6xq+26ndJNLZm16VUKvKFYU4
 tsFFVNSFboxSPzUyc4c/SrGtW2LFi3TZfuqy51c0PXEiQ007tYE726m9w5oiykXz
 BPRVsvO2dax6AsXdX/jVPXafUVAzqn2Xu6bl4URkcT78rR3xJOsxalim7FnQFEoV
 KjaGZ3WCSPqcTw5vaTIy5CVF4CfSdAmOBFHUSXebsOkGhP8AFsiO65U9/FRxxwGP
 Xm3BRyUcCJvNMVKQVlvJ0Siy8Ir4swgC5ZgVwPkvaAEnq3jK0p1D1YRAXumKPtSV
 Ame7T8Gt3iNdqSCDTR5BQbTfAaNfqJvWuBAl7J28u89mJnTC+9YgO/Oks/l9WLdy
 Aoh20dLc5ycT//vWVrJhZp1l0tS5qGUojcxx6WW4dktboXn+UKXmwqBOsrL3Urj9
 X77L0Z4y23259IV5kUWJm7uQ2ReHy6tX03+ILM6Lww/W7GH+L3o=
 =AmK6
 -----END PGP SIGNATURE-----

Merge mariadb-10.3.34 into 10.3
2022-02-14 08:48:48 +02:00
Daniel Bartholomew
e777645d48
bump the VERSION 2022-02-12 15:43:53 -05:00
Daniel Bartholomew
e50421be21
bump the VERSION 2022-02-12 15:18:56 -05:00
Marko Mäkelä
1a7573d5a5 Disable innodb_gis.rtree_compress2 2022-02-11 12:58:42 +02:00
Vlad Lesin
3b10e8f80c MDEV-27746 Wrong comparision of BLOB's empty preffix with non-preffixed BLOB causes rows count mismatch for clustered and secondary indexes during non-locking read
row_sel_sec_rec_is_for_clust_rec() treats empty BLOB prefix field in
secondary index as a field equal to any external BLOB field in clustered
index. Row_sel_get_clust_rec_for_mysql::operator() doesn't zerro out
clustered record pointer in row_search_mvcc(), and row_search_mvcc()
thinks that delete-marked secondary index record has visible for
"CHECK TABLE"'s read view old-versioned clustered index record, and
row_scan_index_for_mysql() counts it as a row.

The fix is to execute row_sel_sec_rec_is_for_blob() in
row_sel_sec_rec_is_for_clust_rec() if clustered field contains BLOB's
reference.
2022-02-11 12:26:27 +03:00
Sergei Golubchik
a36fc80aeb Merge branch '10.2' into 10.3 2022-02-10 20:23:56 +01:00
Sergei Petrunia
3a52569499 MDEV-25636: Bug report: abortion in sql/sql_parse.cc:6294
The asserion failure was caused by this query

  select /*id=1*/ from t1
  where
   col= ( select /*id=2*/ from ... where corr_cond1
          union
          select /*id=4*/ from ... where corr_cond2)

Here,
- select with id=2 was correlated due to corr_cond1.
- select with id=4 was initially correlated due to corr_cond2, but then
  the optimizer optimized away the correlation, making the select with id=4
  uncorrelated.

However, since select with id=2 remained correlated, the execution had to
re-compute the whole UNION. When it tried to execute select with id=4, it
hit an assertion  (join buffer already free'd).

This is because select with id=4 has freed its execution structures after
it has been executed once. The select is uncorrelated, so it did not expect
it would need to be executed for the second time.

Fixed this by adding this logic in
st_select_lex::optimize_unflattened_subqueries():

  If a member of a UNION is correlated, mark all its members as
  correlated, so that they are prepared to be executed multiple times.
2022-02-10 20:35:32 +03:00
Sergei Golubchik
9e2c26b0f6 MDEV-26351 segfault - (MARIA_HA *) 0x0 in ha_maria::extra
don't let Aria create a table that it cannot open
2022-02-10 15:48:06 +01:00
Sergei Golubchik
1b8bb44106 MDEV-26351 segfault - (MARIA_HA *) 0x0 in ha_maria::extra
use the correct check. before invoking handler methods we
need to know that the table was opened, not only created.
2022-02-10 15:48:06 +01:00
Oleksandr Byelkin
0168d1eda3 MDEV-25766 Unused CTE lead to a crash in find_field_in_tables/find_order_in_list
Do not assume that subquery Item always present.
2022-02-10 14:36:25 +01:00
Monty
ad1fb06982 MDEV-27789 mysql_upgrade / mariadb-upgrade in 10.6.6 is putting password in host argument
Removed all dependencies of command line arguments based on positions in
an array (this kind of code should never have been written).
Instead use option names, which are stable.

Reviewer: Sergei Golubchik
2022-02-10 12:29:37 +02:00
Oleksandr Byelkin
e352444558 Merge branch '10.3' into bb-10.3-release 2022-02-09 08:49:00 +01:00
Oleksandr Byelkin
941bc70536 Merge branch '10.2' into bb-10.2-release 2022-02-09 08:44:48 +01:00
Daniel Bartholomew
30cc63fa1a
bump the VERSION 2022-02-08 16:47:37 -05:00
Daniel Bartholomew
c0a44ff7f1
bump the VERSION 2022-02-08 16:28:44 -05:00
Vladislav Vaintroub
ae33a006f7 MDEV-27738 Windows : mysql-test-run --extern does not work
Use portable quoting in mtr_add_arg.
2022-02-08 10:14:50 +01:00
Teemu Ollakka
21413aee0a MDEV-27737 Wsrep SST scripts not working on FreeBSD
- Changed SST scripts to use /usr/bin/env bash instead of
  /bin/bash for better portability.
- Fixed use of mktemp on non-Linux platforms to produce
  temporary file instead of directory.

Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
2022-02-08 08:02:01 +02:00
Sergei Petrunia
5c89386fdb MDEV-17785: Window functions not working in ONLY_FULL_GROUP_BY mode
(Backport Varun Gupta's patch + edit the commit comment)

Name resolution code produced errors for valid queries with window
functions (but not for queries which used aggregate functions as
window functions).

Name resolution code worked incorrectly, because window function
objects had is_window_func_sum_expr()=false. This was so, because
mark_as_window_func_sum_expr() was only called for aggregate functions
used as window functions.

The fix is to call it for any window function.
2022-02-07 21:43:42 +03:00
Andrei
e53199e76b MDEV-27721 rpl.rpl_relay_max_extension test is not FreeBSD-compatible
Fixed the test to execute only on linux as it depends on unportable sed.
2022-02-02 20:02:20 +02:00
Oleksandr Byelkin
41a163ac5c Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
Sergei Golubchik
e2b50213cf main.events_embedded test failures in buildbot
revert 68b3fa8865
2022-01-29 13:56:18 +01:00
Sergei Golubchik
8afcda9309 ASAN/valgrind errors in connect.misc test
accessing freed memory.
Before XMLCOL::WriteColumn() Tdbp->Clist gets assigned
a nodelist in

      Clist = RowNode->SelectNodes(g, Colname, Clist);

which is RowNode->Doc->Xop->nodesetval.

In XMLCOL::WriteColumn()

        ValNode = ColNode->SelectSingleNode(g, Xname, Vxnp);

calls LIBXMLDOC::GetNodeList() again, which frees the previous
XPath object Xop and replaces it with a new one.

In this case RowNode->Doc == ColNode->Doc, so Clist->Listp
points to a freed memory now.
2022-01-29 13:42:38 +01:00
Sergei Golubchik
5e5feb84b6 MDEV-11241 Certain combining marks cause MariaDB to crash when doing Full-Text searches
fix it for Aria too
2022-01-28 21:36:33 +01:00
Monty
a1f630ccfe Fixed result for embedded server
- Revert wrongly record embedded result files. These were either
  recorded with normal server (not embedded) or an embedded server
  with not default compile option. This can be seen that the committed
  result file had replication variables which should never happen.

- Reverted back change of include/is_embedded.inc. One cannot check for
  $MYSQL_EMBEDDED as this only tells if there exists an embedded
  server, not if the current server we are testing is the embedded
  server. This could easily be verified by doing
  'mtr sys_vars.sysvars_server_embedded'. This would fail with a wrong
  result instead of being marked as skipped as --embedded was not
  used.
2022-01-28 16:31:53 +02:00
Monty
7045ec27a6 Fixed wrong function call in embedded server
This happens when compiled with HAVE_EMBEDDED_PRIVILEGE_CONTROL.
There is a lot of other problems with the above option that should
be fixed at some point
2022-01-28 16:31:03 +02:00
Monty
24c51be6fe Fixed compilation error if HAVE_CRYPT is not defined 2022-01-27 21:44:45 +02:00
Monty
a85d942be9 Fixed result file for rocksdb.i_s_deadlock
This failed because of MDEV-18918 which removed DEFAULT's
2022-01-27 19:15:02 +02:00
Monty
2f5d6ef039 Fixed random failure main/truncate_notembedded
Backport from 10.6
2022-01-27 17:00:52 +02:00
Monty
20a91b8fc5 MDEV-27477 Remaining SUSE patches for 10.2+
Adds reload and --datadir functionality to mysqld_multi
Increased version to 3.0

Source:
https://github.com/openSUSE/mysql-packaging/blob/master/patches/mysql-patches/mariadb-10.0.15-mysqld_multi-features.patch

Author: Michal Hrusecky <Michal.Hrusecky@opensuse.org>
Reviewer: monty@mariadb.org
2022-01-27 16:37:58 +02:00
Monty
008c02c987 MDEV-27477 Remaining SUSE patches for 10.2+
This patch fixes the logrotate config file for mariadb.
Read more at https://www.novell.com/support/kb/doc.php?id=7005219

Source:
https://github.com/openSUSE/mysql-packaging/blob/master/patches/mysql-patches/mariadb-10.0.15-logrotate-su.patch
2022-01-27 16:12:16 +02:00
Monty
37886a29e5 Updated comment in systemd.cmake
Suggested by serg@mariadb.org
2022-01-27 16:07:02 +02:00
Monty
e99d3da638 Silence the file-key-management plugin during mysql_install_db
This avoids printing the error
"mysqld: file-key-management-filename  is not set"
which can happen if the file-key-management pluging is statically compiled
2022-01-27 16:04:58 +02:00
Monty
5acc79d030 Remove --upgrade-info option from mysql_upgrade
Removed the option as it safe to always create the file when we have
created the MariaDB data directories. This fixes this issue not only
for debian but for all MariaDB users.
2022-01-27 14:52:08 +02:00
Monty
93a5fb0025 MDEV-27477 Remaining SUSE patches for 10.2+
This patch let's you specify not only user to use but also group that
MariaDB should use.

Original patch:
https://github.com/openSUSE/mysql-packaging/blob/master/patches/mysql-patches/mariadb-10.2.3-group.patch

Author:   Kristyna Streitova
Reviewer: monty@mariadb.org
2022-01-27 14:43:21 +02:00
Andrei
8d9b1aa0d6 MDEV-27536 incremental commit to correct regression test. 2022-01-27 13:44:39 +02:00
Andrei
2ef12cab42 MDEV-27536 invalid BINLOG_BASE64_EVENT and assertion Diagnostics_area:: !is_set()
The assert was caused by an error of XA transaction that had
BINLOG 'base64_string' statement.
The statement failed because of lack of checking whether the encoded
replication event was handled by the slave applier thread.
If it's not the slave applier no error should be generated, but it was
in this case, see a test added.

Fixed along with the idea borrowed the upstream to introduce a check
of which applier executes the replication event and do not
report any error if the applier is a regular server client.
2022-01-27 12:28:01 +02:00
Daniel Black
8b3b73808d MDEV-27635: selinux: allow read of /proc/sys/kernel/core_pattern
Prevent the error:

setroubleshoot[23678]: SELinux is preventing /usr/libexec/mysqld from read access on the file core_pattern.

Reading of the core pattern occurs on crash as added in MDEV-15051

RHEL-7.7

$  ls -laZ /proc/sys/kernel/core_pattern
-rw-r--r--. root root system_u:object_r:usermodehelper_t:s0 /proc/sys/kernel/core_pattern
2022-01-27 10:50:50 +11:00
Daniel Black
68b3fa8865 MDEV-27289: mtr test for WITH_SERVER_EMBEDDED=ON reenable
mtr is checking the wrong path for the embedded executable
on out of tree builds.

The is_embedded.inc tests are also checking the version rather
than the MTR MYSQL_EMBEDDED environment variable.

As a result, a few tests are out of date in the result recordings.
2022-01-27 10:36:39 +11:00
Daniel Black
2e81eab29f MDEV-27607: mysql_install_db to install mysql_upgrade_info
For compatibility this is under an extra option --upgrade-info

The goal here is to install a data directory with the required
info to let mysql_upgrade know that an upgrade isn't required.
2022-01-27 10:35:32 +11:00
Marko Mäkelä
2cbf92522b Cleanup: Remove an unused parameter of fts_add_doc_by_id() 2022-01-26 12:19:48 +02:00
Oleksandr Byelkin
7db489fc7d new CC 2022-01-26 10:42:01 +01:00
Vladislav Vaintroub
2925d0f2ee MDEV-27612 Connect : check buffer sizes, fix string format errors 2022-01-26 09:38:22 +01:00
Lena Startseva
b9623383cc MDEV-8652: Partitioned table creation problem when creating from procedure context twice in same session
The problem was solved in in MDEV-7990, this commit contains only test
2022-01-26 15:08:18 +07:00
Alexey Botchkov
020dc54dab MDEV-20770 Server crashes in JOIN::transform_in_predicates_into_in_subq upon 2nd execution of PS/SP comparing GEOMETRY with other types.
The Item_in_subselect::in_strategy keeps the value and as the error
happens the condition isn't modified. That leads to wrong ::fix_fields
execution on second PS run. Also the select->table_list is merged
but not restored if an error happens, which causes hanging loops on
the third PS execution.
2022-01-26 07:48:09 +04:00
Igor Babaev
0041265671 MDEV-27510 Query returns wrong result when using split optimization
This bug may affect the queries that uses a grouping derived table with
grouping list containing references to columns from different tables if
the optimizer decides to employ the split optimization for the derived
table. In some very specific cases it may affect queries with a grouping
derived table that refers only one base table.
This bug was caused by an improper fix for the bug MDEV-25128. The fix
tried to get rid of the equality conditions pushed into the where clause
of the grouping derived table T to which the split optimization had been
applied. The fix erroneously assumed that only those pushed equalities
that were used for ref access of the tables referenced by T were needed.
In fact the function remove_const() that figures out what columns from the
group list can be removed if the split optimization is applied can uses
other pushed equalities as well.
This patch actually provides a proper fix for MDEV-25128. Rather than
trying to remove invalid pushed equalities referencing the fields of SJM
tables with a look-up access the patch attempts not to push such equalities.

Approved by Oleksandr Byelkin <sanja@mariadb.com>
2022-01-25 17:12:37 -08:00
Brandon Nesterenko
8b15d0d4e0 MDEV-16091: Seconds_Behind_Master spikes to millions of seconds
This patch addresses two problems with
rpl.rpl_seconds_behind_master_spike

First, --sync_slave_with_master / select master_pos_wait
seems to have a bug where it will hang after all master
events have been executed.

This patch removes the sync_slave_with_master command from
the test, where it not required anyway as it is used to
declare explicit cleanup

Second, the test uses timestamps to ensure that the
Seconds_Behind_Master value does not point to a time too
far in the past. The checks of these timestamps were
too strict, because they could be slightly inconsistent
with the master and the SBM would be counted as invalid
when it was actually correct.

To fix this, a slight buffer was added to the check
to ensure the value is valid but still does not point
too far in the past

Reviewed By:
===========
Andrei Elkin <andrei.elkin@mariadb.com>
2022-01-25 15:32:23 -07:00
Alexey Botchkov
50e66db018 MDEV-25917 create table like fails if source table is partitioned and engine is myisam or aria with data directory.
Create table like removes data_file_path/index_file_path from the
thd->work_partition_info.
2022-01-25 12:58:17 +04:00
Alexander Barkov
da37bfd8d6 MDEV-18918 SQL mode EMPTY_STRING_IS_NULL breaks RBR upon CREATE TABLE .. SELECT
Removing DEFAULT from INFORMATION_SCHEMA columns.
DEFAULT in read-only tables is rather meaningless.
Upgrade should go smoothly.

Also fixes:
 MDEV-20254 Problems with EMPTY_STRING_IS_NULL and I_S tables
2022-01-25 10:31:03 +04:00