Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
96f4b4a5
Commit
96f4b4a5
authored
Jun 02, 2022
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Plain Diff
Merge 10.3 into 10.4
parents
ebbd5ef6
91d5fffa
Changes
22
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
595 additions
and
1174 deletions
+595
-1174
client/client_priv.h
client/client_priv.h
+2
-1
client/mysql.cc
client/mysql.cc
+10
-0
extra/mariabackup/ds_compress.cc
extra/mariabackup/ds_compress.cc
+33
-67
man/mysql.1
man/mysql.1
+15
-0
mysql-test/main/mysql.result
mysql-test/main/mysql.result
+4
-1
mysql-test/main/mysql.test
mysql-test/main/mysql.test
+8
-0
mysql-test/main/partition_error.result
mysql-test/main/partition_error.result
+12
-1
mysql-test/main/partition_error.test
mysql-test/main/partition_error.test
+13
-1
mysql-test/suite/galera/r/galera_ist_MDEV-28423,debug.rdiff
mysql-test/suite/galera/r/galera_ist_MDEV-28423,debug.rdiff
+63
-139
mysql-test/suite/galera/r/galera_ist_MDEV-28423.result
mysql-test/suite/galera/r/galera_ist_MDEV-28423.result
+163
-395
mysql-test/suite/galera/r/galera_ist_MDEV-28583,debug.rdiff
mysql-test/suite/galera/r/galera_ist_MDEV-28583,debug.rdiff
+63
-139
mysql-test/suite/galera/r/galera_ist_MDEV-28583.result
mysql-test/suite/galera/r/galera_ist_MDEV-28583.result
+163
-395
mysql-test/suite/innodb_fts/r/fulltext.result
mysql-test/suite/innodb_fts/r/fulltext.result
+14
-0
mysql-test/suite/innodb_fts/t/fulltext.test
mysql-test/suite/innodb_fts/t/fulltext.test
+16
-0
scripts/wsrep_sst_mariabackup.sh
scripts/wsrep_sst_mariabackup.sh
+2
-3
sql/partition_info.cc
sql/partition_info.cc
+2
-0
sql/sql_partition_admin.cc
sql/sql_partition_admin.cc
+8
-0
sql/table.h
sql/table.h
+0
-3
storage/connect/tabmysql.cpp
storage/connect/tabmysql.cpp
+0
-19
storage/innobase/dict/dict0load.cc
storage/innobase/dict/dict0load.cc
+1
-0
storage/innobase/os/os0file.cc
storage/innobase/os/os0file.cc
+1
-0
storage/maria/ma_loghandler.c
storage/maria/ma_loghandler.c
+2
-10
No files found.
client/client_priv.h
View file @
96f4b4a5
/*
/*
Copyright (c) 2001, 2012, Oracle and/or its affiliates.
Copyright (c) 2001, 2012, Oracle and/or its affiliates.
Copyright (c) 2009, 202
0
, MariaDB
Copyright (c) 2009, 202
2
, MariaDB
This program is free software; you can redistribute it and/or modify
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it under the terms of the GNU General Public License as published by
...
@@ -102,6 +102,7 @@ enum options_client
...
@@ -102,6 +102,7 @@ enum options_client
OPT_IGNORE_DATA
,
OPT_IGNORE_DATA
,
OPT_PRINT_ROW_COUNT
,
OPT_PRINT_ROW_EVENT_POSITIONS
,
OPT_PRINT_ROW_COUNT
,
OPT_PRINT_ROW_EVENT_POSITIONS
,
OPT_CHECK_IF_UPGRADE_NEEDED
,
OPT_CHECK_IF_UPGRADE_NEEDED
,
OPT_COMPATIBILTY_CLEARTEXT_PLUGIN
,
OPT_SHUTDOWN_WAIT_FOR_SLAVES
,
OPT_SHUTDOWN_WAIT_FOR_SLAVES
,
OPT_MAX_CLIENT_OPTION
/* should be always the last */
OPT_MAX_CLIENT_OPTION
/* should be always the last */
};
};
...
...
client/mysql.cc
View file @
96f4b4a5
...
@@ -1514,6 +1514,8 @@ static struct my_option my_long_options[] =
...
@@ -1514,6 +1514,8 @@ static struct my_option my_long_options[] =
&
delimiter_str
,
0
,
GET_STR
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
&
delimiter_str
,
0
,
GET_STR
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"execute"
,
'e'
,
"Execute command and quit. (Disables --force and history file.)"
,
0
,
{
"execute"
,
'e'
,
"Execute command and quit. (Disables --force and history file.)"
,
0
,
0
,
0
,
GET_STR
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
0
,
0
,
GET_STR
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"enable-cleartext-plugin"
,
OPT_COMPATIBILTY_CLEARTEXT_PLUGIN
,
"Obsolete option. Exists only for MySQL compatibility."
,
0
,
0
,
0
,
GET_NO_ARG
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"vertical"
,
'E'
,
"Print the output of a query (rows) vertically."
,
{
"vertical"
,
'E'
,
"Print the output of a query (rows) vertically."
,
&
vertical
,
&
vertical
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
&
vertical
,
&
vertical
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
0
},
...
@@ -1813,6 +1815,14 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
...
@@ -1813,6 +1815,14 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
printf
(
"WARNING: --server-arg option not supported in this configuration.
\n
"
);
printf
(
"WARNING: --server-arg option not supported in this configuration.
\n
"
);
#endif
#endif
break
;
break
;
case
OPT_COMPATIBILTY_CLEARTEXT_PLUGIN
:
/*
This option exists in MySQL client but not in MariaDB. Users switching from
MySQL might still have this option in their commands, and it will not work
in MariaDB unless it is handled. Therefore output a warning and continue.
*/
printf
(
"WARNING: option '--enable-cleartext-plugin' is obsolete.
\n
"
);
break
;
case
'A'
:
case
'A'
:
opt_rehash
=
0
;
opt_rehash
=
0
;
break
;
break
;
...
...
extra/mariabackup/ds_compress.cc
View file @
96f4b4a5
/******************************************************
/******************************************************
Copyright (c) 2011-2013 Percona LLC and/or its affiliates.
Copyright (c) 2011-2013 Percona LLC and/or its affiliates.
Copyright (c) 2022, MariaDB Corporation.
Compressing datasink implementation for XtraBackup.
Compressing datasink implementation for XtraBackup.
...
@@ -32,11 +33,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
...
@@ -32,11 +33,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
typedef
struct
{
typedef
struct
{
pthread_t
id
;
pthread_t
id
;
uint
num
;
uint
num
;
pthread_mutex_t
ctrl_mutex
;
pthread_cond_t
ctrl_cond
;
pthread_mutex_t
data_mutex
;
pthread_mutex_t
data_mutex
;
pthread_cond_t
data_cond
;
pthread_cond_t
data_cond
;
my_bool
started
;
my_bool
data_avail
;
my_bool
data_avail
;
my_bool
cancelled
;
my_bool
cancelled
;
const
char
*
from
;
const
char
*
from
;
...
@@ -208,14 +206,13 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
...
@@ -208,14 +206,13 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
thd
=
threads
+
i
;
thd
=
threads
+
i
;
pthread_mutex_lock
(
&
thd
->
ctrl
_mutex
);
pthread_mutex_lock
(
&
thd
->
data
_mutex
);
chunk_len
=
(
len
>
COMPRESS_CHUNK_SIZE
)
?
chunk_len
=
(
len
>
COMPRESS_CHUNK_SIZE
)
?
COMPRESS_CHUNK_SIZE
:
len
;
COMPRESS_CHUNK_SIZE
:
len
;
thd
->
from
=
ptr
;
thd
->
from
=
ptr
;
thd
->
from_len
=
chunk_len
;
thd
->
from_len
=
chunk_len
;
pthread_mutex_lock
(
&
thd
->
data_mutex
);
thd
->
data_avail
=
TRUE
;
thd
->
data_avail
=
TRUE
;
pthread_cond_signal
(
&
thd
->
data_cond
);
pthread_cond_signal
(
&
thd
->
data_cond
);
pthread_mutex_unlock
(
&
thd
->
data_mutex
);
pthread_mutex_unlock
(
&
thd
->
data_mutex
);
...
@@ -241,26 +238,24 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
...
@@ -241,26 +238,24 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
xb_a
(
threads
[
i
].
to_len
>
0
);
xb_a
(
threads
[
i
].
to_len
>
0
);
if
(
ds_write
(
dest_file
,
"NEWBNEWB"
,
8
)
||
bool
fail
=
ds_write
(
dest_file
,
"NEWBNEWB"
,
8
)
||
write_uint64_le
(
dest_file
,
write_uint64_le
(
dest_file
,
comp_file
->
bytes_processed
))
{
comp_file
->
bytes_processed
);
msg
(
"compress: write to the destination stream "
comp_file
->
bytes_processed
+=
threads
[
i
].
from_len
;
"failed."
);
return
1
;
if
(
!
fail
)
{
fail
=
write_uint32_le
(
dest_file
,
threads
[
i
].
adler
)
||
ds_write
(
dest_file
,
threads
[
i
].
to
,
threads
[
i
].
to_len
);
}
}
comp_file
->
bytes_processed
+=
threads
[
i
].
from_len
;
pthread_mutex_unlock
(
&
threads
[
i
].
data_mutex
)
;
if
(
write_uint32_le
(
dest_file
,
threads
[
i
].
adler
)
||
if
(
fail
)
{
ds_write
(
dest_file
,
threads
[
i
].
to
,
threads
[
i
].
to_len
))
{
msg
(
"compress: write to the destination stream "
msg
(
"compress: write to the destination stream "
"failed."
);
"failed."
);
return
1
;
return
1
;
}
}
pthread_mutex_unlock
(
&
threads
[
i
].
data_mutex
);
pthread_mutex_unlock
(
&
threads
[
i
].
ctrl_mutex
);
}
}
}
}
...
@@ -330,6 +325,23 @@ write_uint64_le(ds_file_t *file, ulonglong n)
...
@@ -330,6 +325,23 @@ write_uint64_le(ds_file_t *file, ulonglong n)
return
ds_write
(
file
,
tmp
,
sizeof
(
tmp
));
return
ds_write
(
file
,
tmp
,
sizeof
(
tmp
));
}
}
static
void
destroy_worker_thread
(
comp_thread_ctxt_t
*
thd
)
{
pthread_mutex_lock
(
&
thd
->
data_mutex
);
thd
->
cancelled
=
TRUE
;
pthread_cond_signal
(
&
thd
->
data_cond
);
pthread_mutex_unlock
(
&
thd
->
data_mutex
);
pthread_join
(
thd
->
id
,
NULL
);
pthread_cond_destroy
(
&
thd
->
data_cond
);
pthread_mutex_destroy
(
&
thd
->
data_mutex
);
my_free
(
thd
->
to
);
}
static
static
comp_thread_ctxt_t
*
comp_thread_ctxt_t
*
create_worker_threads
(
uint
n
)
create_worker_threads
(
uint
n
)
...
@@ -344,7 +356,6 @@ create_worker_threads(uint n)
...
@@ -344,7 +356,6 @@ create_worker_threads(uint n)
comp_thread_ctxt_t
*
thd
=
threads
+
i
;
comp_thread_ctxt_t
*
thd
=
threads
+
i
;
thd
->
num
=
i
+
1
;
thd
->
num
=
i
+
1
;
thd
->
started
=
FALSE
;
thd
->
cancelled
=
FALSE
;
thd
->
cancelled
=
FALSE
;
thd
->
data_avail
=
FALSE
;
thd
->
data_avail
=
FALSE
;
...
@@ -352,46 +363,25 @@ create_worker_threads(uint n)
...
@@ -352,46 +363,25 @@ create_worker_threads(uint n)
MY_QLZ_COMPRESS_OVERHEAD
,
MY_QLZ_COMPRESS_OVERHEAD
,
MYF
(
MY_FAE
));
MYF
(
MY_FAE
));
/* Initialize the control mutex and condition var */
if
(
pthread_mutex_init
(
&
thd
->
ctrl_mutex
,
NULL
)
||
pthread_cond_init
(
&
thd
->
ctrl_cond
,
NULL
))
{
goto
err
;
}
/* Initialize and data mutex and condition var */
/* Initialize and data mutex and condition var */
if
(
pthread_mutex_init
(
&
thd
->
data_mutex
,
NULL
)
||
if
(
pthread_mutex_init
(
&
thd
->
data_mutex
,
NULL
)
||
pthread_cond_init
(
&
thd
->
data_cond
,
NULL
))
{
pthread_cond_init
(
&
thd
->
data_cond
,
NULL
))
{
goto
err
;
goto
err
;
}
}
pthread_mutex_lock
(
&
thd
->
ctrl_mutex
);
if
(
pthread_create
(
&
thd
->
id
,
NULL
,
compress_worker_thread_func
,
if
(
pthread_create
(
&
thd
->
id
,
NULL
,
compress_worker_thread_func
,
thd
))
{
thd
))
{
msg
(
"compress: pthread_create() failed: "
msg
(
"compress: pthread_create() failed: "
"errno = %d"
,
errno
);
"errno = %d"
,
errno
);
pthread_mutex_unlock
(
&
thd
->
ctrl_mutex
);
goto
err
;
goto
err
;
}
}
}
}
/* Wait for the threads to start */
for
(
i
=
0
;
i
<
n
;
i
++
)
{
comp_thread_ctxt_t
*
thd
=
threads
+
i
;
while
(
thd
->
started
==
FALSE
)
pthread_cond_wait
(
&
thd
->
ctrl_cond
,
&
thd
->
ctrl_mutex
);
pthread_mutex_unlock
(
&
thd
->
ctrl_mutex
);
}
return
threads
;
return
threads
;
err:
err:
while
(
i
>
0
)
{
for
(;
i
;
i
--
)
{
comp_thread_ctxt_t
*
thd
;
destroy_worker_thread
(
threads
+
i
);
i
--
;
thd
=
threads
+
i
;
pthread_mutex_unlock
(
&
thd
->
ctrl_mutex
);
}
}
my_free
(
threads
);
my_free
(
threads
);
...
@@ -405,21 +395,7 @@ destroy_worker_threads(comp_thread_ctxt_t *threads, uint n)
...
@@ -405,21 +395,7 @@ destroy_worker_threads(comp_thread_ctxt_t *threads, uint n)
uint
i
;
uint
i
;
for
(
i
=
0
;
i
<
n
;
i
++
)
{
for
(
i
=
0
;
i
<
n
;
i
++
)
{
comp_thread_ctxt_t
*
thd
=
threads
+
i
;
destroy_worker_thread
(
threads
+
i
);
pthread_mutex_lock
(
&
thd
->
data_mutex
);
threads
[
i
].
cancelled
=
TRUE
;
pthread_cond_signal
(
&
thd
->
data_cond
);
pthread_mutex_unlock
(
&
thd
->
data_mutex
);
pthread_join
(
thd
->
id
,
NULL
);
pthread_cond_destroy
(
&
thd
->
data_cond
);
pthread_mutex_destroy
(
&
thd
->
data_mutex
);
pthread_cond_destroy
(
&
thd
->
ctrl_cond
);
pthread_mutex_destroy
(
&
thd
->
ctrl_mutex
);
my_free
(
thd
->
to
);
}
}
my_free
(
threads
);
my_free
(
threads
);
...
@@ -431,19 +407,9 @@ compress_worker_thread_func(void *arg)
...
@@ -431,19 +407,9 @@ compress_worker_thread_func(void *arg)
{
{
comp_thread_ctxt_t
*
thd
=
(
comp_thread_ctxt_t
*
)
arg
;
comp_thread_ctxt_t
*
thd
=
(
comp_thread_ctxt_t
*
)
arg
;
pthread_mutex_lock
(
&
thd
->
ctrl_mutex
);
pthread_mutex_lock
(
&
thd
->
data_mutex
);
pthread_mutex_lock
(
&
thd
->
data_mutex
);
thd
->
started
=
TRUE
;
pthread_cond_signal
(
&
thd
->
ctrl_cond
);
pthread_mutex_unlock
(
&
thd
->
ctrl_mutex
);
while
(
1
)
{
while
(
1
)
{
thd
->
data_avail
=
FALSE
;
pthread_cond_signal
(
&
thd
->
data_cond
);
while
(
!
thd
->
data_avail
&&
!
thd
->
cancelled
)
{
while
(
!
thd
->
data_avail
&&
!
thd
->
cancelled
)
{
pthread_cond_wait
(
&
thd
->
data_cond
,
&
thd
->
data_mutex
);
pthread_cond_wait
(
&
thd
->
data_cond
,
&
thd
->
data_mutex
);
}
}
...
...
man/mysql.1
View file @
96f4b4a5
...
@@ -507,6 +507,21 @@ the section called \(lqMYSQL COMMANDS\(rq\&.
...
@@ -507,6 +507,21 @@ the section called \(lqMYSQL COMMANDS\(rq\&.
.sp -1
.sp -1
.IP \(bu 2.3
.IP \(bu 2.3
.\}
.\}
.\" mysql: enable cleartext plugin option
.\" enable cleartext plugin option: mysql
\fB\-\-enable\-cleartext\-plugin\fR
.sp
Obsolete option\&. Exists only for MySQL compatibility\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
.\" mysql: execute option
.\" mysql: execute option
.\" execute option: mysql
.\" execute option: mysql
\fB\-\-execute=\fR\fB\fIstatement\fR\fR,
\fB\-\-execute=\fR\fB\fIstatement\fR\fR,
...
...
mysql-test/main/mysql.result
View file @
96f4b4a5
...
@@ -629,4 +629,7 @@ drop table t1;
...
@@ -629,4 +629,7 @@ drop table t1;
#
#
# MDEV-15538 '-N' Produce html output wrong
# MDEV-15538 '-N' Produce html output wrong
#
#
<TABLE BORDER=1><TR><TD>1</TD></TR></TABLE>
<TABLE BORDER=1><TR><TD>1</TD></TR></TABLE>
\ No newline at end of file
WARNING: option '--enable-cleartext-plugin' is obsolete.
1
1
mysql-test/main/mysql.test
View file @
96f4b4a5
...
@@ -708,3 +708,11 @@ drop table t1;
...
@@ -708,3 +708,11 @@ drop table t1;
--echo # MDEV-15538 '-N' Produce html output wrong
--echo # MDEV-15538 '-N' Produce html output wrong
--echo #
--echo #
--exec
$MYSQL
-NHe "
select
1
as
a
"
--exec
$MYSQL
-NHe "
select
1
as
a
"
#
# Test obsolete option --enable-cleartext-plugin
# This should proceed with a warning
#
--echo
--exec
$MYSQL
test --enable-cleartext-plugin -e "
select
1
"
mysql-test/main/partition_error.result
View file @
96f4b4a5
...
@@ -6,7 +6,18 @@ drop table if exists t1, t2;
...
@@ -6,7 +6,18 @@ drop table if exists t1, t2;
CREATE TABLE t1 (a int);
CREATE TABLE t1 (a int);
CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
ERROR 42000: Can't open table
ERROR HY000: 'test.v1' is not of type 'BASE TABLE'
DROP VIEW v1;
DROP TABLE t1;
#
# MDEV-28599 EXCHANGE PARTITION on view causes ER_CHECK_NO_SUCH_TABLE instead of ER_WRONG_OBJECT
#
CREATE TABLE t1 (a int)
PARTITION BY HASH (a)
PARTITIONS 2;
CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
ERROR HY000: 'test.v1' is not of type 'BASE TABLE'
DROP VIEW v1;
DROP VIEW v1;
DROP TABLE t1;
DROP TABLE t1;
#
#
...
...
mysql-test/main/partition_error.test
View file @
96f4b4a5
...
@@ -16,7 +16,19 @@ let $MYSQLD_DATADIR= `SELECT @@datadir`;
...
@@ -16,7 +16,19 @@ let $MYSQLD_DATADIR= `SELECT @@datadir`;
--
echo
#
--
echo
#
CREATE
TABLE
t1
(
a
int
);
CREATE
TABLE
t1
(
a
int
);
CREATE
OR
REPLACE
VIEW
v1
AS
SELECT
*
FROM
t1
;
CREATE
OR
REPLACE
VIEW
v1
AS
SELECT
*
FROM
t1
;
--
error
ER_CHECK_NO_SUCH_TABLE
--
error
ER_WRONG_OBJECT
ALTER
TABLE
t1
EXCHANGE
PARTITION
p0
WITH
TABLE
v1
;
DROP
VIEW
v1
;
DROP
TABLE
t1
;
--
echo
#
--
echo
# MDEV-28599 EXCHANGE PARTITION on view causes ER_CHECK_NO_SUCH_TABLE instead of ER_WRONG_OBJECT
--
echo
#
CREATE
TABLE
t1
(
a
int
)
PARTITION
BY
HASH
(
a
)
PARTITIONS
2
;
CREATE
OR
REPLACE
VIEW
v1
AS
SELECT
*
FROM
t1
;
--
error
ER_WRONG_OBJECT
ALTER
TABLE
t1
EXCHANGE
PARTITION
p0
WITH
TABLE
v1
;
ALTER
TABLE
t1
EXCHANGE
PARTITION
p0
WITH
TABLE
v1
;
DROP
VIEW
v1
;
DROP
VIEW
v1
;
DROP
TABLE
t1
;
DROP
TABLE
t1
;
...
...
mysql-test/suite/galera/r/galera_ist_MDEV-28423,debug.rdiff
View file @
96f4b4a5
This diff is collapsed.
Click to expand it.
mysql-test/suite/galera/r/galera_ist_MDEV-28423.result
View file @
96f4b4a5
This diff is collapsed.
Click to expand it.
mysql-test/suite/galera/r/galera_ist_MDEV-28583,debug.rdiff
View file @
96f4b4a5
This diff is collapsed.
Click to expand it.
mysql-test/suite/galera/r/galera_ist_MDEV-28583.result
View file @
96f4b4a5
This diff is collapsed.
Click to expand it.
mysql-test/suite/innodb_fts/r/fulltext.result
View file @
96f4b4a5
...
@@ -718,4 +718,18 @@ t1 CREATE TABLE `t1` (
...
@@ -718,4 +718,18 @@ t1 CREATE TABLE `t1` (
FULLTEXT KEY `a_2` (`a`)
FULLTEXT KEY `a_2` (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t1;
DROP TABLE t1;
#
# MDEV-25257 SEGV in fts_get_next_doc_id upon some INSERT
#
SET @save = @@global.innodb_file_per_table;
SET @@global.innodb_file_per_table = 0;
CREATE TABLE t1 (
col_int INTEGER, col_text TEXT,
col_int_g INTEGER GENERATED ALWAYS AS (col_int)
) ENGINE = InnoDB ROW_FORMAT = Redundant ;
ALTER TABLE t1 ADD FULLTEXT KEY `ftidx` ( col_text ) ;
ALTER TABLE t1 DROP KEY `ftidx` ;
INSERT INTO t1 (col_int, col_text) VALUES ( 1255, NULL);
DROP TABLE t1;
SET @@global.innodb_file_per_table = @save;
# End of 10.3 tests
# End of 10.3 tests
mysql-test/suite/innodb_fts/t/fulltext.test
View file @
96f4b4a5
...
@@ -741,4 +741,20 @@ ALTER TABLE t1 ADD FULLTEXT INDEX (a);
...
@@ -741,4 +741,20 @@ ALTER TABLE t1 ADD FULLTEXT INDEX (a);
SHOW
CREATE
TABLE
t1
;
SHOW
CREATE
TABLE
t1
;
DROP
TABLE
t1
;
DROP
TABLE
t1
;
--
echo
#
--
echo
# MDEV-25257 SEGV in fts_get_next_doc_id upon some INSERT
--
echo
#
SET
@
save
=
@@
global
.
innodb_file_per_table
;
SET
@@
global
.
innodb_file_per_table
=
0
;
CREATE
TABLE
t1
(
col_int
INTEGER
,
col_text
TEXT
,
col_int_g
INTEGER
GENERATED
ALWAYS
AS
(
col_int
)
)
ENGINE
=
InnoDB
ROW_FORMAT
=
Redundant
;
ALTER
TABLE
t1
ADD
FULLTEXT
KEY
`ftidx`
(
col_text
)
;
ALTER
TABLE
t1
DROP
KEY
`ftidx`
;
INSERT
INTO
t1
(
col_int
,
col_text
)
VALUES
(
1255
,
NULL
);
DROP
TABLE
t1
;
SET
@@
global
.
innodb_file_per_table
=
@
save
;
--
echo
# End of 10.3 tests
--
echo
# End of 10.3 tests
scripts/wsrep_sst_mariabackup.sh
View file @
96f4b4a5
...
@@ -86,7 +86,6 @@ encrypt_threads=""
...
@@ -86,7 +86,6 @@ encrypt_threads=""
encrypt_chunk
=
""
encrypt_chunk
=
""
readonly
SECRET_TAG
=
'secret'
readonly
SECRET_TAG
=
'secret'
readonly
TOTAL_TAG
=
'secret /total'
# Required for backup locks
# Required for backup locks
# For backup locks it is 1 sent by joiner
# For backup locks it is 1 sent by joiner
...
@@ -419,7 +418,7 @@ get_transfer()
...
@@ -419,7 +418,7 @@ get_transfer()
get_footprint
()
get_footprint
()
{
{
pushd
"
$WSREP_SST_OPT_DATA
"
1>/dev/null
cd
"
$DATA_DIR
"
payload
=
$(
find
.
-regex
'.*\.ibd$\|.*\.MYI$\|.*\.MYD$\|.*ibdata1$'
\
payload
=
$(
find
.
-regex
'.*\.ibd$\|.*\.MYI$\|.*\.MYD$\|.*ibdata1$'
\
-type
f
-print0
|
du
--files0-from
=
-
--block-size
=
1
-c
-s
|
\
-type
f
-print0
|
du
--files0-from
=
-
--block-size
=
1
-c
-s
|
\
awk
'END { print $1 }'
)
awk
'END { print $1 }'
)
...
@@ -428,7 +427,7 @@ get_footprint()
...
@@ -428,7 +427,7 @@ get_footprint()
# When compression/compaction used, the progress is only an approximate.
# When compression/compaction used, the progress is only an approximate.
payload
=
$((
payload
*
1
/
2
))
payload
=
$((
payload
*
1
/
2
))
fi
fi
popd
1>/dev/null
cd
"
$OLD_PWD
"
pcmd
=
"
$pcmd
-s
$payload
"
pcmd
=
"
$pcmd
-s
$payload
"
adjust_progress
adjust_progress
}
}
...
...
sql/partition_info.cc
View file @
96f4b4a5
...
@@ -900,10 +900,12 @@ void partition_info::vers_check_limit(THD *thd)
...
@@ -900,10 +900,12 @@ void partition_info::vers_check_limit(THD *thd)
bitmap_set_all(), but this is not optimal since there can be quite a number
bitmap_set_all(), but this is not optimal since there can be quite a number
of partitions.
of partitions.
*/
*/
#ifndef DBUG_OFF
const
uint32
sub_factor
=
num_subparts
?
num_subparts
:
1
;
const
uint32
sub_factor
=
num_subparts
?
num_subparts
:
1
;
uint32
part_id
=
vers_info
->
hist_part
->
id
*
sub_factor
;
uint32
part_id
=
vers_info
->
hist_part
->
id
*
sub_factor
;
const
uint32
part_id_end
=
part_id
+
sub_factor
;
const
uint32
part_id_end
=
part_id
+
sub_factor
;
DBUG_ASSERT
(
part_id_end
<=
num_parts
*
sub_factor
);
DBUG_ASSERT
(
part_id_end
<=
num_parts
*
sub_factor
);
#endif
ha_partition
*
hp
=
(
ha_partition
*
)(
table
->
file
);
ha_partition
*
hp
=
(
ha_partition
*
)(
table
->
file
);
ha_rows
hist_rows
=
hp
->
part_records
(
vers_info
->
hist_part
);
ha_rows
hist_rows
=
hp
->
part_records
(
vers_info
->
hist_part
);
...
...
sql/sql_partition_admin.cc
View file @
96f4b4a5
...
@@ -539,6 +539,14 @@ bool Sql_cmd_alter_table_exchange_partition::
...
@@ -539,6 +539,14 @@ bool Sql_cmd_alter_table_exchange_partition::
part_table
=
table_list
->
table
;
part_table
=
table_list
->
table
;
swap_table
=
swap_table_list
->
table
;
swap_table
=
swap_table_list
->
table
;
/* Don't allow to exchange with a VIEW */
if
(
unlikely
(
swap_table_list
->
view
))
{
my_error
(
ER_WRONG_OBJECT
,
MYF
(
0
),
table_list
->
db
.
str
,
swap_table_list
->
table_name
.
str
,
"BASE TABLE"
);
DBUG_RETURN
(
TRUE
);
}
if
(
unlikely
(
check_exchange_partition
(
swap_table
,
part_table
)))
if
(
unlikely
(
check_exchange_partition
(
swap_table
,
part_table
)))
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
...
...
sql/table.h
View file @
96f4b4a5
...
@@ -3214,9 +3214,6 @@ enum open_frm_error open_table_from_share(THD *thd, TABLE_SHARE *share,
...
@@ -3214,9 +3214,6 @@ enum open_frm_error open_table_from_share(THD *thd, TABLE_SHARE *share,
uint
ha_open_flags
,
TABLE
*
outparam
,
uint
ha_open_flags
,
TABLE
*
outparam
,
bool
is_create_table
,
bool
is_create_table
,
List
<
String
>
*
partitions_to_open
=
NULL
);
List
<
String
>
*
partitions_to_open
=
NULL
);
bool
fix_session_vcol_expr
(
THD
*
thd
,
Virtual_column_info
*
vcol
);
bool
fix_session_vcol_expr_for_read
(
THD
*
thd
,
Field
*
field
,
Virtual_column_info
*
vcol
);
bool
parse_vcol_defs
(
THD
*
thd
,
MEM_ROOT
*
mem_root
,
TABLE
*
table
,
bool
parse_vcol_defs
(
THD
*
thd
,
MEM_ROOT
*
mem_root
,
TABLE
*
table
,
bool
*
error_reported
,
vcol_init_mode
expr
);
bool
*
error_reported
,
vcol_init_mode
expr
);
TABLE_SHARE
*
alloc_table_share
(
const
char
*
db
,
const
char
*
table_name
,
TABLE_SHARE
*
alloc_table_share
(
const
char
*
db
,
const
char
*
table_name
,
...
...
storage/connect/tabmysql.cpp
View file @
96f4b4a5
...
@@ -946,15 +946,6 @@ bool TDBMYSQL::OpenDB(PGLOBAL g)
...
@@ -946,15 +946,6 @@ bool TDBMYSQL::OpenDB(PGLOBAL g)
}
// endif MakeInsert
}
// endif MakeInsert
if
(
m_Rc
!=
RC_FX
)
{
char
cmd
[
64
];
int
w
;
sprintf
(
cmd
,
"ALTER TABLE `%s` DISABLE KEYS"
,
TableName
);
m_Rc
=
Myc
.
ExecSQL
(
g
,
cmd
,
&
w
);
// may fail for some engines
}
// endif m_Rc
}
else
}
else
// m_Rc = (Mode == MODE_DELETE) ? MakeDelete(g) : MakeUpdate(g);
// m_Rc = (Mode == MODE_DELETE) ? MakeDelete(g) : MakeUpdate(g);
m_Rc
=
(
MakeCommand
(
g
))
?
RC_FX
:
RC_OK
;
m_Rc
=
(
MakeCommand
(
g
))
?
RC_FX
:
RC_OK
;
...
@@ -1216,16 +1207,6 @@ int TDBMYSQL::DeleteDB(PGLOBAL g, int irc)
...
@@ -1216,16 +1207,6 @@ int TDBMYSQL::DeleteDB(PGLOBAL g, int irc)
void
TDBMYSQL
::
CloseDB
(
PGLOBAL
g
)
void
TDBMYSQL
::
CloseDB
(
PGLOBAL
g
)
{
{
if
(
Myc
.
Connected
())
{
if
(
Myc
.
Connected
())
{
if
(
Mode
==
MODE_INSERT
)
{
char
cmd
[
64
];
int
w
;
PDBUSER
dup
=
PlgGetUser
(
g
);
dup
->
Step
=
"Enabling indexes"
;
sprintf
(
cmd
,
"ALTER TABLE `%s` ENABLE KEYS"
,
TableName
);
Myc
.
m_Rows
=
-
1
;
// To execute the query
m_Rc
=
Myc
.
ExecSQL
(
g
,
cmd
,
&
w
);
// May fail for some engines
}
// endif m_Rc
Myc
.
Close
();
Myc
.
Close
();
}
// endif Myc
}
// endif Myc
...
...
storage/innobase/dict/dict0load.cc
View file @
96f4b4a5
...
@@ -1847,6 +1847,7 @@ dict_load_columns(
...
@@ -1847,6 +1847,7 @@ dict_load_columns(
the flag is set before the table is created. */
the flag is set before the table is created. */
if
(
table
->
fts
==
NULL
)
{
if
(
table
->
fts
==
NULL
)
{
table
->
fts
=
fts_create
(
table
);
table
->
fts
=
fts_create
(
table
);
table
->
fts
->
cache
=
fts_cache_create
(
table
);
fts_optimize_add_table
(
table
);
fts_optimize_add_table
(
table
);
}
}
...
...
storage/innobase/os/os0file.cc
View file @
96f4b4a5
...
@@ -2366,6 +2366,7 @@ os_file_get_last_error_low(
...
@@ -2366,6 +2366,7 @@ os_file_get_last_error_low(
case
EXDEV
:
case
EXDEV
:
case
ENOTDIR
:
case
ENOTDIR
:
case
EISDIR
:
case
EISDIR
:
case
EPERM
:
return
(
OS_FILE_PATH_ERROR
);
return
(
OS_FILE_PATH_ERROR
);
case
EAGAIN
:
case
EAGAIN
:
if
(
srv_use_native_aio
)
{
if
(
srv_use_native_aio
)
{
...
...
storage/maria/ma_loghandler.c
View file @
96f4b4a5
...
@@ -7995,22 +7995,14 @@ void translog_flush_buffers(TRANSLOG_ADDRESS *lsn,
...
@@ -7995,22 +7995,14 @@ void translog_flush_buffers(TRANSLOG_ADDRESS *lsn,
}
}
else
else
{
{
if
(
log_descriptor
.
bc
.
buffer
->
last_lsn
==
LSN_IMPOSSIBLE
)
if
(
log_descriptor
.
bc
.
buffer
->
last_lsn
==
LSN_IMPOSSIBLE
&&
log_descriptor
.
bc
.
buffer
->
prev_last_lsn
==
LSN_IMPOSSIBLE
)
{
{
/*
In this case both last_lsn & prev_last_lsn are LSN_IMPOSSIBLE
otherwise it will go in the first IF because LSN_IMPOSSIBLE less
then any real LSN and cmp_translog_addr(*lsn,
log_descriptor.bc.buffer->prev_last_lsn) will be TRUE
*/
DBUG_ASSERT
(
log_descriptor
.
bc
.
buffer
->
prev_last_lsn
==
LSN_IMPOSSIBLE
);
DBUG_PRINT
(
"info"
,
(
"There is no LSNs yet generated => do nothing"
));
DBUG_PRINT
(
"info"
,
(
"There is no LSNs yet generated => do nothing"
));
translog_unlock
();
translog_unlock
();
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
DBUG_ASSERT
(
log_descriptor
.
bc
.
buffer
->
prev_last_lsn
!=
LSN_IMPOSSIBLE
);
/* fix lsn if it was horizon */
/* fix lsn if it was horizon */
*
lsn
=
log_descriptor
.
bc
.
buffer
->
prev_last_lsn
;
*
lsn
=
log_descriptor
.
bc
.
buffer
->
prev_last_lsn
;
DBUG_PRINT
(
"info"
,
(
"LSN to flush fixed to prev last lsn: "
LSN_FMT
,
DBUG_PRINT
(
"info"
,
(
"LSN to flush fixed to prev last lsn: "
LSN_FMT
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment