import mariadb-10.3.11-2.module+el8+2885+7b8bb354

This commit is contained in:
CentOS Sources 2019-05-07 17:43:38 -04:00 committed by Andrew Lukoshko
parent 75e7a48a20
commit 511ebe238d
2 changed files with 123 additions and 2 deletions

114
SOURCES/rhbz_1686818.patch Normal file
View File

@ -0,0 +1,114 @@
Patch for https://bugzilla.redhat.com/show_bug.cgi?id=1686818
Picked from https://github.com/MariaDB/server/commit/802ce9672f
Fixed by rebase to 10.3.12
--- mariadb-10.3.11/storage/innobase/handler/handler0alter.cc 2018-11-16 19:04:53.000000000 +0100
+++ mariadb-10.3.11/storage/innobase/handler/handler0alter.cc_patched 2019-03-13 11:52:15.752268825 +0100
@@ -7712,36 +7712,40 @@ err_exit:
index != NULL;
index = dict_table_get_next_index(index)) {
+ bool has_prefixes = false;
+ for (size_t i = 0; i < dict_index_get_n_fields(index); i++) {
+ if (dict_index_get_nth_field(index, i)->prefix_len) {
+ has_prefixes = true;
+ break;
+ }
+ }
+
for (ulint i = 0; i < dict_index_get_n_fields(index); i++) {
- if (my_strcasecmp(
- system_charset_info,
- dict_index_get_nth_field(index, i)->name,
- from)) {
+ const dict_field_t* field
+ = dict_index_get_nth_field(index, i);
+ if (my_strcasecmp(system_charset_info, field->name,
+ from)) {
continue;
}
info = pars_info_create();
+ int pos = i;
+ if (has_prefixes) {
+ pos = (pos << 16) + field->prefix_len;
+ }
+
pars_info_add_ull_literal(info, "indexid", index->id);
- pars_info_add_int4_literal(info, "nth", i);
+ pars_info_add_int4_literal(info, "nth", pos);
pars_info_add_str_literal(info, "new", to);
error = que_eval_sql(
info,
"PROCEDURE RENAME_SYS_FIELDS_PROC () IS\n"
"BEGIN\n"
-
"UPDATE SYS_FIELDS SET COL_NAME=:new\n"
"WHERE INDEX_ID=:indexid\n"
"AND POS=:nth;\n"
-
- /* Try again, in case there is a prefix_len
- encoded in SYS_FIELDS.POS */
-
- "UPDATE SYS_FIELDS SET COL_NAME=:new\n"
- "WHERE INDEX_ID=:indexid\n"
- "AND POS>=65536*:nth AND POS<65536*(:nth+1);\n"
-
"END;\n",
FALSE, trx);
--- mariadb-10.3.11/mysql-test/suite/innodb/r/innodb-alter.result 2018-11-16 19:04:50.000000000 +0100
+++ mariadb-10.3.11/mysql-test/suite/innodb/r/innodb-alter.result_patched 2019-03-13 12:06:48.788107502 +0100
@@ -879,6 +879,27 @@ NAME
a
b
DROP TABLE t1;
+# and an MDEV-18041 regression related to indexes prefixes
+create table `test` (
+`test_old` varchar(255) NOT NULL,
+`other` varchar(255) NOT NULL,
+PRIMARY KEY (`test_old`,`other`),
+UNIQUE KEY uk (`test_old`(100), `other`)
+) ENGINE=InnoDB;
+select name, pos from information_schema.innodb_SYS_FIELDS where name in ('test_old', 'other', 'test_new');
+name pos
+test_old 0
+other 1
+test_old 0
+other 1
+alter table `test` CHANGE COLUMN `test_old` `test_new` varchar(255) NOT NULL;
+select name, pos from information_schema.innodb_SYS_FIELDS where name in ('test_old', 'other', 'test_new');
+name pos
+test_new 0
+other 1
+test_new 0
+other 1
+drop table `test`;
#
# BUG 20029625 - HANDLE_FATAL_SIGNAL (SIG=11) IN
# DICT_MEM_TABLE_COL_RENAME_LOW
--- mariadb-10.3.11/mysql-test/suite/innodb/t/innodb-alter.test 2018-11-16 19:04:50.000000000 +0100
+++ mariadb-10.3.11/mysql-test/suite/innodb/t/innodb-alter.test_patched 2019-03-13 12:08:36.398847184 +0100
@@ -545,6 +545,19 @@ SELECT C.NAME FROM INFORMATION_SCHEMA.IN
WHERE T.NAME='test/t1';
DROP TABLE t1;
+--echo # and an MDEV-18041 regression related to indexes prefixes
+create table `test` (
+ `test_old` varchar(255) NOT NULL,
+ `other` varchar(255) NOT NULL,
+ PRIMARY KEY (`test_old`,`other`),
+ UNIQUE KEY uk (`test_old`(100), `other`)
+) ENGINE=InnoDB;
+
+select name, pos from information_schema.innodb_SYS_FIELDS where name in ('test_old', 'other', 'test_new');
+alter table `test` CHANGE COLUMN `test_old` `test_new` varchar(255) NOT NULL;
+select name, pos from information_schema.innodb_SYS_FIELDS where name in ('test_old', 'other', 'test_new');
+drop table `test`;
+
--echo #
--echo # BUG 20029625 - HANDLE_FATAL_SIGNAL (SIG=11) IN

View File

@ -149,7 +149,7 @@
Name: mariadb
Version: 10.3.11
Release: 1%{?with_debug:.debug}%{?dist}
Release: 2%{?with_debug:.debug}%{?dist}
Epoch: 3
Summary: A very fast and robust SQL database server
@ -185,8 +185,10 @@ Source72: mariadb-server-galera.te
# https://github.com/dciabrin/wsrep_sst_rsync_tunnel/blob/master/wsrep_sst_rsync_tunnel
Source73: wsrep_sst_rsync_tunnel
# Patch1: Fix python shebang to specificaly say the python version
# Patch1: Fix python shebang to specificaly say the python version
Patch1: %{pkgnamepatch}-shebang.patch
# Patch2: rhbz#1686818
Patch2: rhbz_1686818.patch
# Patch4: Red Hat distributions specific logrotate fix
# it would be big unexpected change, if we start shipping it now. Better wait for MariaDB 10.2
Patch4: %{pkgnamepatch}-logrotate.patch
@ -694,6 +696,7 @@ sources.
find . -name "*.jar" -type f -exec rm --verbose -f {} \;
%patch1 -p1
%patch2 -p1
%patch4 -p1
%patch7 -p1
%patch9 -p1
@ -1586,6 +1589,10 @@ fi
%endif
%changelog
* Wed Mar 13 2019 Michal Schorm <mschorm@redhat.com> - 3:10.3.11-2
- Added patch for rhbz#1686818
Resolves: #1686818
* Mon Dec 10 2018 Michal Schorm <mschorm@redhat.com> - 3:10.3.11-1
- Rebase to 10.3.11
- Remove README.mysql-cnf as we don't ship example configuration files anymore