mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
Merge 10.4 into 10.5
This commit is contained in:
commit
c41c79650a
277 changed files with 2048 additions and 1500 deletions
|
@ -312,8 +312,8 @@ class Load_log_processor
|
|||
}
|
||||
|
||||
public:
|
||||
Load_log_processor() {}
|
||||
~Load_log_processor() {}
|
||||
Load_log_processor() = default;
|
||||
~Load_log_processor() = default;
|
||||
|
||||
int init()
|
||||
{
|
||||
|
|
|
@ -1864,6 +1864,17 @@ xb_get_one_option(const struct my_option *opt,
|
|||
break;
|
||||
|
||||
case OPT_INNODB_FLUSH_METHOD:
|
||||
#ifdef _WIN32
|
||||
/* From: storage/innobase/handler/ha_innodb.cc:innodb_init_params */
|
||||
switch (srv_file_flush_method) {
|
||||
case SRV_ALL_O_DIRECT_FSYNC + 1 /* "async_unbuffered"="unbuffered" */:
|
||||
srv_file_flush_method= SRV_ALL_O_DIRECT_FSYNC;
|
||||
break;
|
||||
case SRV_ALL_O_DIRECT_FSYNC + 2 /* "normal"="fsync" */:
|
||||
srv_file_flush_method= SRV_FSYNC;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
ut_a(srv_file_flush_method
|
||||
<= IF_WIN(SRV_ALL_O_DIRECT_FSYNC, SRV_O_DIRECT_NO_FSYNC));
|
||||
ADD_PRINT_PARAM_OPT(innodb_flush_method_names[srv_file_flush_method]);
|
||||
|
|
|
@ -12,6 +12,9 @@ IF(MSVC)
|
|||
SET(WOLFSSL_X86_64_BUILD 1)
|
||||
SET(HAVE_INTEL_RDSEED 1)
|
||||
SET(HAVE_INTEL_RDRAND 1)
|
||||
ELSEIF(CMAKE_ASM_COMPILER_ID MATCHES "Clang" AND CMAKE_VERSION VERSION_LESS 3.16)
|
||||
|
||||
# WolfSSL 5.5.4 bug workaround below does not work, due to some CMake bug
|
||||
ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64")
|
||||
SET(WOLFSSL_X86_64_BUILD 1)
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES GNU AND CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)
|
||||
|
|
|
@ -27,12 +27,11 @@
|
|||
// Derive your class from this struct to insert to a linked list.
|
||||
template <class Tag= void> struct ilist_node
|
||||
{
|
||||
ilist_node() noexcept
|
||||
#ifndef DBUG_OFF
|
||||
: next(NULL), prev(NULL)
|
||||
ilist_node() noexcept : next(NULL), prev(NULL) {}
|
||||
#else
|
||||
ilist_node() = default;
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
ilist_node(ilist_node *next, ilist_node *prev) noexcept
|
||||
: next(next), prev(prev)
|
||||
|
|
|
@ -39,7 +39,7 @@ public:
|
|||
Atomic_relaxed(const Atomic_relaxed<Type> &rhs)
|
||||
{ m.store(rhs, std::memory_order_relaxed); }
|
||||
Atomic_relaxed(Type val) : m(val) {}
|
||||
Atomic_relaxed() {}
|
||||
Atomic_relaxed() = default;
|
||||
|
||||
Type load(std::memory_order o= std::memory_order_relaxed) const
|
||||
{ return m.load(o); }
|
||||
|
|
|
@ -31,7 +31,7 @@ public:
|
|||
Atomic_counter(const Atomic_counter<Type> &rhs)
|
||||
{ m_counter.store(rhs, std::memory_order_relaxed); }
|
||||
Atomic_counter(Type val): m_counter(val) {}
|
||||
Atomic_counter() {}
|
||||
Atomic_counter() = default;
|
||||
|
||||
Type operator++(int) { return add(1); }
|
||||
Type operator--(int) { return sub(1); }
|
||||
|
|
|
@ -81,7 +81,7 @@ public:
|
|||
|
||||
span(const span &other) : data_(other.data_), size_(other.size_) {}
|
||||
|
||||
~span(){};
|
||||
~span() = default;
|
||||
|
||||
span &operator=(const span &other)
|
||||
{
|
||||
|
|
18
mysql-test/include/ctype_casefolding.inc
Normal file
18
mysql-test/include/ctype_casefolding.inc
Normal file
|
@ -0,0 +1,18 @@
|
|||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
# Uncode code points that have a variable length case mapping in utf8
|
||||
# (e.g. LOWER('2-byte-character') -> '3-byte-character'
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
DROP TABLE case_folding;
|
|
@ -3036,9 +3036,57 @@ SELECT 'chž'< 'i';
|
|||
SELECT 'a' COLLATE utf8_czech_test_bad_w2;
|
||||
ERROR HY000: Unknown collation: 'utf8_czech_test_bad_w2'
|
||||
#
|
||||
# End of 10.2 tests
|
||||
#
|
||||
#
|
||||
# Start of 10.3 tests
|
||||
#
|
||||
#
|
||||
# MDEV-30556 UPPER() returns an empty string for U+0251 in Unicode-5.2.0+ collations for utf8
|
||||
#
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_test_520_nopad_ci;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_test_520_nopad_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A E2B1A5 C8BA Ⱥ
|
||||
23E E2B1A6 C8BE Ⱦ
|
||||
23F C8BF E2B1BE ȿ
|
||||
240 C980 E2B1BF ɀ
|
||||
250 C990 E2B1AF ɐ
|
||||
251 C991 E2B1AD ɑ
|
||||
252 C992 E2B1B0 ɒ
|
||||
26B C9AB E2B1A2 ɫ
|
||||
271 C9B1 E2B1AE ɱ
|
||||
27D C9BD E2B1A4 ɽ
|
||||
DROP TABLE case_folding;
|
||||
#
|
||||
# End of 10.3 tests
|
||||
#
|
||||
#
|
||||
# MDEV-7947 my_charset_same: strcmp() takes 0.37% in OLTP RO
|
||||
#
|
||||
SHOW COLLATION LIKE 'latin1_test_replace';
|
||||
Collation Charset Id Default Compiled Sortlen
|
||||
SELECT 'foo' = 'foo ' COLLATE latin1_test_replace;
|
||||
ERROR HY000: Unknown collation: 'latin1_test_replace'
|
||||
#
|
||||
# End of 10.5 tests
|
||||
#
|
||||
|
|
|
@ -610,6 +610,27 @@ SELECT 'chž'< 'i';
|
|||
--error ER_UNKNOWN_COLLATION
|
||||
SELECT 'a' COLLATE utf8_czech_test_bad_w2;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.2 tests
|
||||
--echo #
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.3 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-30556 UPPER() returns an empty string for U+0251 in Unicode-5.2.0+ collations for utf8
|
||||
--echo #
|
||||
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_test_520_nopad_ci;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.3 tests
|
||||
--echo #
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-7947 my_charset_same: strcmp() takes 0.37% in OLTP RO
|
||||
|
@ -618,3 +639,7 @@ SELECT 'a' COLLATE utf8_czech_test_bad_w2;
|
|||
SHOW COLLATION LIKE 'latin1_test_replace';
|
||||
--error ER_UNKNOWN_COLLATION
|
||||
SELECT 'foo' = 'foo ' COLLATE latin1_test_replace;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.5 tests
|
||||
--echo #
|
||||
|
|
|
@ -8204,7 +8204,7 @@ INSERT INTO t1 VALUES (_utf32 0x2CEE);
|
|||
SELECT hex(c), hex(lower(c)), hex(upper(c)), hex(weight_string(c)), c
|
||||
FROM t1 ORDER BY c, BINARY c;
|
||||
hex(c) hex(lower(c)) hex(upper(c)) hex(weight_string(c)) c
|
||||
C8BA C8BA 1214 Ⱥ
|
||||
C8BA E2B1A5 C8BA 1214 Ⱥ
|
||||
E2B1A5 E2B1A5 C8BA 1214 ⱥ
|
||||
C680 C680 C983 122D ƀ
|
||||
C983 C680 C983 122D Ƀ
|
||||
|
@ -8229,7 +8229,7 @@ E2B1AA E2B1AA E2B1A9 1328 ⱪ
|
|||
C8BD C69A C8BD 133B Ƚ
|
||||
E2B1A0 E2B1A1 E2B1A0 133F Ⱡ
|
||||
E2B1A1 E2B1A1 E2B1A0 133F ⱡ
|
||||
C9AB C9AB 1340 ɫ
|
||||
C9AB C9AB E2B1A2 1340 ɫ
|
||||
E2B1A2 C9AB E2B1A2 1340 Ɫ
|
||||
E1B5BD E1B5BD E2B1A3 13B8 ᵽ
|
||||
E2B1A3 E1B5BD E2B1A3 13B8 Ᵽ
|
||||
|
@ -8237,11 +8237,11 @@ C98A C98B C98A 13D2 Ɋ
|
|||
C98B C98B C98A 13D2 ɋ
|
||||
C98C C98D C98C 13E4 Ɍ
|
||||
C98D C98D C98C 13E4 ɍ
|
||||
C9BD C9BD 13FC ɽ
|
||||
C9BD C9BD E2B1A4 13FC ɽ
|
||||
E2B1A4 C9BD E2B1A4 13FC Ɽ
|
||||
EA9CA8 EA9CA9 EA9CA8 143314AD Ꜩ
|
||||
EA9CA9 EA9CA9 EA9CA8 143314AD ꜩ
|
||||
C8BE C8BE 143C Ⱦ
|
||||
C8BE E2B1A6 C8BE 143C Ⱦ
|
||||
E2B1A6 E2B1A6 C8BE 143C ⱦ
|
||||
C984 CA89 C984 145B Ʉ
|
||||
CA89 CA89 C984 145B ʉ
|
||||
|
|
|
@ -587,3 +587,177 @@ DROP TABLE t1;
|
|||
#
|
||||
# End of 10.2 tests
|
||||
#
|
||||
#
|
||||
# Start of 10.3 tests
|
||||
#
|
||||
#
|
||||
# MDEV-30556 UPPER() returns an empty string for U+0251 in Unicode-5.2.0+ collations for utf8
|
||||
#
|
||||
SET NAMES utf8mb3 COLLATE utf8mb3_unicode_ci /*Unicode-4.0 folding*/;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A C8BA C8BA Ⱥ
|
||||
23E C8BE C8BE Ⱦ
|
||||
23F C8BF C8BF ȿ
|
||||
240 C980 C980 ɀ
|
||||
250 C990 C990 ɐ
|
||||
251 C991 C991 ɑ
|
||||
252 C992 C992 ɒ
|
||||
26B C9AB C9AB ɫ
|
||||
271 C9B1 C9B1 ɱ
|
||||
27D C9BD C9BD ɽ
|
||||
DROP TABLE case_folding;
|
||||
SET NAMES utf8mb3 COLLATE utf8mb3_unicode_520_ci;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_520_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A E2B1A5 C8BA Ⱥ
|
||||
23E E2B1A6 C8BE Ⱦ
|
||||
23F C8BF E2B1BE ȿ
|
||||
240 C980 E2B1BF ɀ
|
||||
250 C990 E2B1AF ɐ
|
||||
251 C991 E2B1AD ɑ
|
||||
252 C992 E2B1B0 ɒ
|
||||
26B C9AB E2B1A2 ɫ
|
||||
271 C9B1 E2B1AE ɱ
|
||||
27D C9BD E2B1A4 ɽ
|
||||
DROP TABLE case_folding;
|
||||
SET NAMES utf8mb3 COLLATE utf8mb3_unicode_520_nopad_ci;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_520_nopad_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A E2B1A5 C8BA Ⱥ
|
||||
23E E2B1A6 C8BE Ⱦ
|
||||
23F C8BF E2B1BE ȿ
|
||||
240 C980 E2B1BF ɀ
|
||||
250 C990 E2B1AF ɐ
|
||||
251 C991 E2B1AD ɑ
|
||||
252 C992 E2B1B0 ɒ
|
||||
26B C9AB E2B1A2 ɫ
|
||||
271 C9B1 E2B1AE ɱ
|
||||
27D C9BD E2B1A4 ɽ
|
||||
DROP TABLE case_folding;
|
||||
SET NAMES utf8mb3 COLLATE utf8mb3_myanmar_ci;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8 COLLATE utf8_myanmar_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A E2B1A5 C8BA Ⱥ
|
||||
23E E2B1A6 C8BE Ⱦ
|
||||
23F C8BF E2B1BE ȿ
|
||||
240 C980 E2B1BF ɀ
|
||||
250 C990 E2B1AF ɐ
|
||||
251 C991 E2B1AD ɑ
|
||||
252 C992 E2B1B0 ɒ
|
||||
26B C9AB E2B1A2 ɫ
|
||||
271 C9B1 E2B1AE ɱ
|
||||
27D C9BD E2B1A4 ɽ
|
||||
DROP TABLE case_folding;
|
||||
SET NAMES utf8mb3 COLLATE utf8mb3_thai_520_w2;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A E2B1A5 C8BA Ⱥ
|
||||
23E E2B1A6 C8BE Ⱦ
|
||||
23F C8BF E2B1BE ȿ
|
||||
240 C980 E2B1BF ɀ
|
||||
250 C990 E2B1AF ɐ
|
||||
251 C991 E2B1AD ɑ
|
||||
252 C992 E2B1B0 ɒ
|
||||
26B C9AB E2B1A2 ɫ
|
||||
271 C9B1 E2B1AE ɱ
|
||||
27D C9BD E2B1A4 ɽ
|
||||
DROP TABLE case_folding;
|
||||
#
|
||||
# End of 10.3 tests
|
||||
#
|
||||
|
|
|
@ -21,3 +21,32 @@ SET NAMES utf8 COLLATE utf8_unicode_nopad_ci;
|
|||
--echo #
|
||||
--echo # End of 10.2 tests
|
||||
--echo #
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.3 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-30556 UPPER() returns an empty string for U+0251 in Unicode-5.2.0+ collations for utf8
|
||||
--echo #
|
||||
|
||||
SET NAMES utf8mb3 COLLATE utf8mb3_unicode_ci /*Unicode-4.0 folding*/;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
SET NAMES utf8mb3 COLLATE utf8mb3_unicode_520_ci;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
SET NAMES utf8mb3 COLLATE utf8mb3_unicode_520_nopad_ci;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
SET NAMES utf8mb3 COLLATE utf8mb3_myanmar_ci;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
SET NAMES utf8mb3 COLLATE utf8mb3_thai_520_w2;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.3 tests
|
||||
--echo #
|
||||
|
|
|
@ -6605,3 +6605,177 @@ SET NAMES utf8mb4;
|
|||
#
|
||||
# End of 10.2 tests
|
||||
#
|
||||
#
|
||||
# Start of 10.3 tests
|
||||
#
|
||||
#
|
||||
# MDEV-30556 UPPER() returns an empty string for U+0251 in Unicode-5.2.0+ collations for utf8
|
||||
#
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci /*Unicode-4.0 folding*/;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A C8BA C8BA Ⱥ
|
||||
23E C8BE C8BE Ⱦ
|
||||
23F C8BF C8BF ȿ
|
||||
240 C980 C980 ɀ
|
||||
250 C990 C990 ɐ
|
||||
251 C991 C991 ɑ
|
||||
252 C992 C992 ɒ
|
||||
26B C9AB C9AB ɫ
|
||||
271 C9B1 C9B1 ɱ
|
||||
27D C9BD C9BD ɽ
|
||||
DROP TABLE case_folding;
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_ci;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A E2B1A5 C8BA Ⱥ
|
||||
23E E2B1A6 C8BE Ⱦ
|
||||
23F C8BF E2B1BE ȿ
|
||||
240 C980 E2B1BF ɀ
|
||||
250 C990 E2B1AF ɐ
|
||||
251 C991 E2B1AD ɑ
|
||||
252 C992 E2B1B0 ɒ
|
||||
26B C9AB E2B1A2 ɫ
|
||||
271 C9B1 E2B1AE ɱ
|
||||
27D C9BD E2B1A4 ɽ
|
||||
DROP TABLE case_folding;
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_nopad_ci;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_nopad_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A E2B1A5 C8BA Ⱥ
|
||||
23E E2B1A6 C8BE Ⱦ
|
||||
23F C8BF E2B1BE ȿ
|
||||
240 C980 E2B1BF ɀ
|
||||
250 C990 E2B1AF ɐ
|
||||
251 C991 E2B1AD ɑ
|
||||
252 C992 E2B1B0 ɒ
|
||||
26B C9AB E2B1A2 ɫ
|
||||
271 C9B1 E2B1AE ɱ
|
||||
27D C9BD E2B1A4 ɽ
|
||||
DROP TABLE case_folding;
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_myanmar_ci;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_myanmar_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A E2B1A5 C8BA Ⱥ
|
||||
23E E2B1A6 C8BE Ⱦ
|
||||
23F C8BF E2B1BE ȿ
|
||||
240 C980 E2B1BF ɀ
|
||||
250 C990 E2B1AF ɐ
|
||||
251 C991 E2B1AD ɑ
|
||||
252 C992 E2B1B0 ɒ
|
||||
26B C9AB E2B1A2 ɫ
|
||||
271 C9B1 E2B1AE ɱ
|
||||
27D C9BD E2B1A4 ɽ
|
||||
DROP TABLE case_folding;
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_thai_520_w2;
|
||||
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
|
||||
SHOW CREATE TABLE case_folding;
|
||||
Table Create Table
|
||||
case_folding CREATE TABLE `case_folding` (
|
||||
`code` int(1) NOT NULL,
|
||||
`c` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_thai_520_w2 DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
INSERT INTO case_folding (code) VALUES
|
||||
(0x23A),
|
||||
(0x23E),
|
||||
(0x23F),
|
||||
(0x240),
|
||||
(0x250),
|
||||
(0x251),
|
||||
(0x252),
|
||||
(0x26B),
|
||||
(0x271),
|
||||
(0x27D);
|
||||
UPDATE case_folding SET c=CHAR(code USING ucs2);
|
||||
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
|
||||
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
|
||||
23A E2B1A5 C8BA Ⱥ
|
||||
23E E2B1A6 C8BE Ⱦ
|
||||
23F C8BF E2B1BE ȿ
|
||||
240 C980 E2B1BF ɀ
|
||||
250 C990 E2B1AF ɐ
|
||||
251 C991 E2B1AD ɑ
|
||||
252 C992 E2B1B0 ɒ
|
||||
26B C9AB E2B1A2 ɫ
|
||||
271 C9B1 E2B1AE ɱ
|
||||
27D C9BD E2B1A4 ɽ
|
||||
DROP TABLE case_folding;
|
||||
#
|
||||
# End of 10.3 tests
|
||||
#
|
||||
|
|
|
@ -108,3 +108,32 @@ SET NAMES utf8mb4;
|
|||
--echo #
|
||||
--echo # End of 10.2 tests
|
||||
--echo #
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.3 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-30556 UPPER() returns an empty string for U+0251 in Unicode-5.2.0+ collations for utf8
|
||||
--echo #
|
||||
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci /*Unicode-4.0 folding*/;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_ci;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_nopad_ci;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_myanmar_ci;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
SET NAMES utf8mb4 COLLATE utf8mb4_thai_520_w2;
|
||||
--source include/ctype_casefolding.inc
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.3 tests
|
||||
--echo #
|
||||
|
|
|
@ -525,3 +525,35 @@ DELETE v2 FROM v2;
|
|||
ERROR HY000: Can not delete from join view 'test.v2'
|
||||
DROP VIEW v2, v1;
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.5 tests
|
||||
#
|
||||
# MDEV-30586: DELETE with WHERE containing nested subquery
|
||||
# with set function aggregated in outer subquery
|
||||
#
|
||||
create table t1 (a int);
|
||||
insert into t1 values (3), (7), (1);
|
||||
create table t2 (b int);
|
||||
insert into t2 values (2), (1), (4), (7);
|
||||
create table t3 (a int, b int);
|
||||
insert into t3 values (2,10), (7,30), (2,30), (1,10), (7,40);
|
||||
select * from t1
|
||||
where t1.a in (select t3.a from t3 group by t3.a
|
||||
having t3.a > any (select t2.b from t2
|
||||
where t2.b*10 < sum(t3.b)));
|
||||
a
|
||||
7
|
||||
delete from t1
|
||||
where t1.a in (select t3.a from t3 group by t3.a
|
||||
having t3.a > any (select t2.b from t2
|
||||
where t2.b*10 < sum(t3.b)));
|
||||
select * from t1
|
||||
where t1.a in (select t3.a from t3 group by t3.a
|
||||
having t3.a > any (select t2.b from t2
|
||||
where t2.b*10 < sum(t3.b)));
|
||||
a
|
||||
update t1 set t1.a=t1.a+10
|
||||
where t1.a in (select t3.a from t3 group by t3.a
|
||||
having t3.a > any (select t2.b from t2
|
||||
where t2.b*10 < sum(t3.b)));
|
||||
drop table t1,t2,t3;
|
||||
End of 10.4 tests
|
||||
|
|
|
@ -582,3 +582,44 @@ DELETE v2 FROM v2;
|
|||
|
||||
DROP VIEW v2, v1;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo End of 5.5 tests
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-30586: DELETE with WHERE containing nested subquery
|
||||
--echo # with set function aggregated in outer subquery
|
||||
--echo #
|
||||
|
||||
create table t1 (a int);
|
||||
insert into t1 values (3), (7), (1);
|
||||
|
||||
create table t2 (b int);
|
||||
insert into t2 values (2), (1), (4), (7);
|
||||
|
||||
create table t3 (a int, b int);
|
||||
insert into t3 values (2,10), (7,30), (2,30), (1,10), (7,40);
|
||||
|
||||
let $c=
|
||||
t1.a in (select t3.a from t3 group by t3.a
|
||||
having t3.a > any (select t2.b from t2
|
||||
where t2.b*10 < sum(t3.b)));
|
||||
|
||||
eval
|
||||
select * from t1
|
||||
where $c;
|
||||
|
||||
eval
|
||||
delete from t1
|
||||
where $c;
|
||||
|
||||
eval
|
||||
select * from t1
|
||||
where $c;
|
||||
|
||||
eval
|
||||
update t1 set t1.a=t1.a+10
|
||||
where $c;
|
||||
|
||||
drop table t1,t2,t3;
|
||||
|
||||
--echo End of 10.4 tests
|
||||
|
|
|
@ -1251,3 +1251,123 @@ EXPLAIN
|
|||
}
|
||||
}
|
||||
DROP TABLES t1, t2;
|
||||
# End of 10.3 tests
|
||||
#
|
||||
# MDEV-28538: multi-table UPDATE/DELETE with possible exists-to-in
|
||||
#
|
||||
create table t1 (c1 int, c2 int, c3 int, index idx(c2));
|
||||
insert into t1 values
|
||||
(1,1,1),(3,2,2),(1,3,3),
|
||||
(2,1,4),(2,2,5),(4,3,6),
|
||||
(2,4,7),(2,5,8);
|
||||
create table t2 (c1 int, c2 int, c3 int, index idx(c2));
|
||||
insert into t2 values
|
||||
(1,7,1),(1,8,2),(1,3,3),
|
||||
(2,1,4),(2,2,5),(2,3,6),
|
||||
(2,4,7),(2,5,8);
|
||||
create table t3 (c1 int, c2 int, c3 int, index idx(c2));
|
||||
insert into t3 values
|
||||
(1,1,1),(1,2,2),(1,3,3),
|
||||
(2,1,4),(2,2,5),(2,3,6),
|
||||
(2,4,7),(2,5,8);
|
||||
insert into t3 select c1+1, c2+2, c3 from t3;
|
||||
insert into t3 select c1, c2+2, c3 from t3;
|
||||
analyze table t1,t2,t3 persistent for all;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
test.t3 analyze status Engine-independent statistics collected
|
||||
test.t3 analyze status OK
|
||||
explain select * from t1,t3
|
||||
where t1.c2 = t3.c2 and
|
||||
t1.c1 > 1 and
|
||||
exists (select 'X' from t2 where t2.c1 = t1.c1 and t2.c2 > 4);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL idx NULL NULL NULL 8 Using where
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
1 PRIMARY t3 ref idx idx 5 test.t1.c2 3
|
||||
2 MATERIALIZED t2 range idx idx 5 NULL 3 Using index condition; Using where
|
||||
explain delete from t1 using t1,t3
|
||||
where t1.c2 = t3.c2 and
|
||||
t1.c1 > 1 and
|
||||
exists (select 'X' from t2 where t2.c1 = t1.c1 and t2.c2 > 4);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL idx NULL NULL NULL 8 Using where
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
1 PRIMARY t3 ref idx idx 5 test.t1.c2 3 Using index
|
||||
2 MATERIALIZED t2 range idx idx 5 NULL 3 Using where
|
||||
explain update t1,t3 set t1.c1 = t1.c1+10
|
||||
where t1.c2 = t3.c2 and
|
||||
t1.c1 > 1 and
|
||||
exists (select 'X' from t2 where t2.c1 = t1.c1 and t2.c2 > 4);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL idx NULL NULL NULL 8 Using where
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
1 PRIMARY t3 ref idx idx 5 test.t1.c2 3 Using index
|
||||
2 MATERIALIZED t2 range idx idx 5 NULL 3 Using where
|
||||
create table t as select * from t1;
|
||||
select * from t1,t3
|
||||
where t1.c2 = t3.c2 and
|
||||
t1.c1 > 1 and
|
||||
exists (select 'X' from t2 where t2.c1 = t1.c1 and t2.c2 > 4);
|
||||
c1 c2 c3 c1 c2 c3
|
||||
2 1 4 1 1 1
|
||||
2 1 4 2 1 4
|
||||
2 2 5 1 2 2
|
||||
2 2 5 2 2 5
|
||||
2 4 7 2 4 7
|
||||
2 4 7 2 4 2
|
||||
2 4 7 3 4 5
|
||||
2 4 7 1 4 2
|
||||
2 4 7 2 4 5
|
||||
2 5 8 2 5 8
|
||||
2 5 8 2 5 3
|
||||
2 5 8 3 5 6
|
||||
2 5 8 1 5 3
|
||||
2 5 8 2 5 6
|
||||
2 5 8 2 5 1
|
||||
2 5 8 3 5 4
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
3 2 2
|
||||
1 3 3
|
||||
2 1 4
|
||||
2 2 5
|
||||
4 3 6
|
||||
2 4 7
|
||||
2 5 8
|
||||
delete from t1 using t1,t3
|
||||
where t1.c2 = t3.c2 and
|
||||
t1.c1 > 1 and
|
||||
exists (select 'X' from t2 where t2.c1 = t1.c1 and t2.c2 > 4);
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
3 2 2
|
||||
1 3 3
|
||||
4 3 6
|
||||
truncate table t1;
|
||||
insert into t1 select * from t;
|
||||
analyze table t1 persistent for all;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status Table is already up to date
|
||||
update t1,t3 set t1.c1 = t1.c1+10
|
||||
where t1.c2 = t3.c2 and
|
||||
t1.c1 > 1 and
|
||||
exists (select 'X' from t2 where t2.c1 = t1.c1 and t2.c2 > 4);
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
3 2 2
|
||||
1 3 3
|
||||
12 1 4
|
||||
12 2 5
|
||||
4 3 6
|
||||
12 4 7
|
||||
12 5 8
|
||||
drop table t1,t2,t3,t;
|
||||
# End of 10.4 tests
|
||||
|
|
|
@ -1130,3 +1130,73 @@ EXPLAIN FORMAT=JSON UPDATE t2 JOIN t1 USING(a) SET t2.part=2 WHERE t2.part=1 AND
|
|||
EXPLAIN FORMAT=JSON UPDATE t2 JOIN t1 USING(a) SET t2.part=3 WHERE t2.part=2 AND t1.part=2;
|
||||
|
||||
DROP TABLES t1, t2;
|
||||
|
||||
--echo # End of 10.3 tests
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-28538: multi-table UPDATE/DELETE with possible exists-to-in
|
||||
--echo #
|
||||
|
||||
create table t1 (c1 int, c2 int, c3 int, index idx(c2));
|
||||
insert into t1 values
|
||||
(1,1,1),(3,2,2),(1,3,3),
|
||||
(2,1,4),(2,2,5),(4,3,6),
|
||||
(2,4,7),(2,5,8);
|
||||
|
||||
create table t2 (c1 int, c2 int, c3 int, index idx(c2));
|
||||
insert into t2 values
|
||||
(1,7,1),(1,8,2),(1,3,3),
|
||||
(2,1,4),(2,2,5),(2,3,6),
|
||||
(2,4,7),(2,5,8);
|
||||
|
||||
create table t3 (c1 int, c2 int, c3 int, index idx(c2));
|
||||
insert into t3 values
|
||||
(1,1,1),(1,2,2),(1,3,3),
|
||||
(2,1,4),(2,2,5),(2,3,6),
|
||||
(2,4,7),(2,5,8);
|
||||
insert into t3 select c1+1, c2+2, c3 from t3;
|
||||
insert into t3 select c1, c2+2, c3 from t3;
|
||||
|
||||
analyze table t1,t2,t3 persistent for all;
|
||||
|
||||
let $c=
|
||||
t1.c2 = t3.c2 and
|
||||
t1.c1 > 1 and
|
||||
exists (select 'X' from t2 where t2.c1 = t1.c1 and t2.c2 > 4);
|
||||
|
||||
let $q1=
|
||||
select * from t1,t3
|
||||
where $c;
|
||||
|
||||
eval explain $q1;
|
||||
|
||||
let $q2=
|
||||
delete from t1 using t1,t3
|
||||
where $c;
|
||||
|
||||
eval explain $q2;
|
||||
|
||||
let $q3=
|
||||
update t1,t3 set t1.c1 = t1.c1+10
|
||||
where $c;
|
||||
|
||||
eval explain $q3;
|
||||
|
||||
create table t as select * from t1;
|
||||
|
||||
eval $q1;
|
||||
select * from t1;
|
||||
|
||||
eval $q2;
|
||||
select * from t1;
|
||||
|
||||
truncate table t1;
|
||||
insert into t1 select * from t;
|
||||
analyze table t1 persistent for all;
|
||||
|
||||
eval $q3;
|
||||
select * from t1;
|
||||
|
||||
drop table t1,t2,t3,t;
|
||||
|
||||
--echo # End of 10.4 tests
|
||||
|
|
|
@ -76,7 +76,8 @@ rollback;
|
|||
explain update t1 set c1=0 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 > 3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 Using where
|
||||
2 DEPENDENT SUBQUERY a ALL NULL NULL NULL NULL 8 Using where
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
2 MATERIALIZED a ALL NULL NULL NULL NULL 8
|
||||
start transaction;
|
||||
update t1 set c1=c1+10 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 >= 3;
|
||||
affected rows: 4
|
||||
|
@ -317,7 +318,8 @@ rollback;
|
|||
explain update t1 set c1=0 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 > 3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 range t1_c2 t1_c2 5 NULL 2 Using where
|
||||
2 DEPENDENT SUBQUERY a ref t1_c2 t1_c2 5 test.t1.c2 4 Using index
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
2 MATERIALIZED a range t1_c2 t1_c2 5 NULL 2 Using where; Using index
|
||||
start transaction;
|
||||
update t1 set c1=c1+10 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 >= 3;
|
||||
affected rows: 4
|
||||
|
@ -558,7 +560,8 @@ rollback;
|
|||
explain update t1 set c1=0 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 > 3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 range t1_c2 t1_c2 5 NULL 2 Using where
|
||||
2 DEPENDENT SUBQUERY a ref t1_c2 t1_c2 5 test.t1.c2 1 Using index
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
2 MATERIALIZED a range t1_c2 t1_c2 5 NULL 2 Using where; Using index
|
||||
start transaction;
|
||||
update t1 set c1=c1+10 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 >= 3;
|
||||
affected rows: 4
|
||||
|
@ -800,7 +803,8 @@ rollback;
|
|||
explain update t1 set c1=0 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 > 3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 range t1_c2 t1_c2 5 NULL 2 Using where
|
||||
2 DEPENDENT SUBQUERY a ref t1_c2 t1_c2 5 test.t1.c2 1 Using index
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
2 MATERIALIZED a range t1_c2 t1_c2 5 NULL 2 Using where; Using index
|
||||
start transaction;
|
||||
update t1 set c1=c1+10 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 >= 3;
|
||||
affected rows: 4
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
connection node_2;
|
||||
connection node_1;
|
||||
CREATE TABLE t1 (c1 BIGINT NOT NULL PRIMARY KEY, c2 BINARY (10), c3 DATETIME);
|
||||
SELECT get_lock ('test2', 0);
|
||||
get_lock ('test2', 0)
|
||||
1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SET SESSION wsrep_trx_fragment_size=10;
|
||||
SET SESSION autocommit=0;
|
||||
SELECT * FROM t1 WHERE c1 <=0 ORDER BY c1 DESC;
|
||||
c1
|
||||
INSERT INTO t1 VALUES (4),(3),(1),(2);
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, b INT) ENGINE=SEQUENCE;
|
||||
ERROR 42S01: Table 't1' already exists
|
||||
ALTER TABLE t1 DROP COLUMN c2;
|
||||
ERROR 42000: Can't DROP COLUMN `c2`; check that it exists
|
||||
SELECT get_lock ('test', 1.5);
|
||||
get_lock ('test', 1.5)
|
||||
1
|
||||
DROP TABLE t1;
|
|
@ -1,18 +0,0 @@
|
|||
connection node_2;
|
||||
connection node_1;
|
||||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
|
||||
connection node_2a;
|
||||
SELECT GET_LOCK("foo", 1000);
|
||||
GET_LOCK("foo", 1000)
|
||||
1
|
||||
connection node_2;
|
||||
SET AUTOCOMMIT=OFF;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SELECT GET_LOCK("foo", 1000);;
|
||||
connection node_1;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
connection node_2;
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
wsrep_local_aborts_increment
|
||||
1
|
||||
DROP TABLE t1;
|
|
@ -1,20 +0,0 @@
|
|||
--source include/galera_cluster.inc
|
||||
--source include/have_sequence.inc
|
||||
|
||||
CREATE TABLE t1 (c1 BIGINT NOT NULL PRIMARY KEY, c2 BINARY (10), c3 DATETIME);
|
||||
SELECT get_lock ('test2', 0);
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SET SESSION wsrep_trx_fragment_size=10;
|
||||
SET SESSION autocommit=0;
|
||||
SELECT * FROM t1 WHERE c1 <=0 ORDER BY c1 DESC;
|
||||
--error ER_LOCK_DEADLOCK
|
||||
INSERT INTO t1 VALUES (4),(3),(1),(2);
|
||||
--error ER_TABLE_EXISTS_ERROR
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, b INT) ENGINE=SEQUENCE;
|
||||
--error ER_CANT_DROP_FIELD_OR_KEY
|
||||
ALTER TABLE t1 DROP COLUMN c2;
|
||||
SELECT get_lock ('test', 1.5);
|
||||
DROP TABLE t1;
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
--source include/galera_cluster.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
#
|
||||
# Test a local transaction being aborted by a slave one while it is running a GET_LOCK()
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
|
||||
|
||||
--let $galera_connection_name = node_2a
|
||||
--let $galera_server_number = 2
|
||||
--source include/galera_connect.inc
|
||||
--connection node_2a
|
||||
SELECT GET_LOCK("foo", 1000);
|
||||
|
||||
--connection node_2
|
||||
SET AUTOCOMMIT=OFF;
|
||||
--let $wsrep_local_bf_aborts_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
|
||||
INSERT INTO t1 VALUES (1);
|
||||
--send SELECT GET_LOCK("foo", 1000);
|
||||
|
||||
--connection node_1
|
||||
INSERT INTO t1 VALUES (1);
|
||||
|
||||
--connection node_2
|
||||
--error ER_LOCK_DEADLOCK
|
||||
--reap
|
||||
|
||||
--let $wsrep_local_bf_aborts_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
|
||||
|
||||
# Check that wsrep_local_bf_aborts has been incremented by exactly 1
|
||||
--disable_query_log
|
||||
--eval SELECT $wsrep_local_bf_aborts_after - $wsrep_local_bf_aborts_before = 1 AS wsrep_local_aborts_increment;
|
||||
--enable_query_log
|
||||
|
||||
DROP TABLE t1;
|
12
mysql-test/suite/mariabackup/full_backup_win.result
Normal file
12
mysql-test/suite/mariabackup/full_backup_win.result
Normal file
|
@ -0,0 +1,12 @@
|
|||
#
|
||||
# MDEV-30492 Crash when use mariabackup.exe with config 'innodb_flush_method=async_unbuffered'
|
||||
#
|
||||
# xtrabackup backup
|
||||
# xtrabackup prepare
|
||||
# shutdown server
|
||||
# remove datadir
|
||||
# xtrabackup move back
|
||||
# restart
|
||||
#
|
||||
# End of 10.4 tests
|
||||
#
|
24
mysql-test/suite/mariabackup/full_backup_win.test
Normal file
24
mysql-test/suite/mariabackup/full_backup_win.test
Normal file
|
@ -0,0 +1,24 @@
|
|||
--source include/windows.inc
|
||||
|
||||
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-30492 Crash when use mariabackup.exe with config 'innodb_flush_method=async_unbuffered'
|
||||
--echo #
|
||||
|
||||
echo # xtrabackup backup;
|
||||
--disable_result_log
|
||||
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --innodb_flush_method=normal --backup --target-dir=$targetdir;
|
||||
--enable_result_log
|
||||
|
||||
echo # xtrabackup prepare;
|
||||
--disable_result_log
|
||||
exec $XTRABACKUP --prepare --innodb-flush-method=async_unbuffered --target-dir=$targetdir;
|
||||
-- source include/restart_and_restore.inc
|
||||
--enable_result_log
|
||||
|
||||
rmdir $targetdir;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.4 tests
|
||||
--echo #
|
|
@ -1,3 +1,4 @@
|
|||
SET names utf8;
|
||||
select * from information_schema.locales;
|
||||
ID NAME DESCRIPTION MAX_MONTH_NAME_LENGTH MAX_DAY_NAME_LENGTH DECIMAL_POINT THOUSAND_SEP ERROR_MESSAGE_LANGUAGE
|
||||
0 en_US English - United States 9 9 . , english
|
||||
|
@ -52,7 +53,7 @@ ID NAME DESCRIPTION MAX_MONTH_NAME_LENGTH MAX_DAY_NAME_LENGTH DECIMAL_POINT THOU
|
|||
49 ta_IN Tamil - India 10 8 . , english
|
||||
50 te_IN Telugu - India 10 9 . , english
|
||||
51 th_TH Thai - Thailand 10 8 . , english
|
||||
52 tr_TR Turkish - Turkey 7 9 , . english
|
||||
52 tr_TR Turkish - Türkiye 7 9 , . english
|
||||
53 uk_UA Ukrainian - Ukraine 8 9 , . ukrainian
|
||||
54 ur_PK Urdu - Pakistan 6 6 . , english
|
||||
55 vi_VN Vietnamese - Vietnam 16 11 , . english
|
||||
|
@ -165,7 +166,7 @@ Id Name Description Error_Message_Language
|
|||
49 ta_IN Tamil - India english
|
||||
50 te_IN Telugu - India english
|
||||
51 th_TH Thai - Thailand english
|
||||
52 tr_TR Turkish - Turkey english
|
||||
52 tr_TR Turkish - Türkiye english
|
||||
53 uk_UA Ukrainian - Ukraine ukrainian
|
||||
54 ur_PK Urdu - Pakistan english
|
||||
55 vi_VN Vietnamese - Vietnam english
|
||||
|
|
|
@ -2,6 +2,7 @@ if (`select count(*) = 0 from information_schema.plugins where plugin_name = 'lo
|
|||
{
|
||||
--skip LOCALES plugin is not active
|
||||
}
|
||||
SET names utf8;
|
||||
|
||||
select * from information_schema.locales;
|
||||
show locales;
|
||||
|
|
|
@ -35,9 +35,19 @@ connection master;
|
|||
insert into t1 values (1);
|
||||
# Sleep 3 to create gap between events
|
||||
insert into t1 values (2);
|
||||
include/save_master_pos.inc
|
||||
connection slave;
|
||||
LOCK TABLES t1 WRITE;
|
||||
SET @@global.debug_dbug="+d,pause_sql_thread_on_next_event";
|
||||
START SLAVE IO_THREAD;
|
||||
# Before we start processing the events, we ensure both transactions
|
||||
# were written into the relay log. Otherwise, if the IO thread takes too
|
||||
# long to queue the events, the sql thread can think it has caught up
|
||||
# too quickly.
|
||||
SET DEBUG_SYNC='now WAIT_FOR paused_on_event';
|
||||
include/sync_io_with_master.inc
|
||||
SET @@global.debug_dbug="-d,pause_sql_thread_on_next_event";
|
||||
SET DEBUG_SYNC='now SIGNAL sql_thread_continue';
|
||||
# Wait for first transaction to complete SQL delay and begin execution..
|
||||
# Validate SBM calculation doesn't use the second transaction because SQL thread shouldn't have gone idle..
|
||||
# ..and that SBM wasn't calculated using prior committed transactions
|
||||
|
@ -50,6 +60,8 @@ UNLOCK TABLES;
|
|||
include/stop_slave.inc
|
||||
CHANGE MASTER TO master_delay=0;
|
||||
set @@GLOBAL.slave_parallel_threads=4;
|
||||
SET @@global.debug_dbug="";
|
||||
SET DEBUG_SYNC='RESET';
|
||||
include/start_slave.inc
|
||||
connection master;
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -12,9 +12,12 @@
|
|||
#
|
||||
|
||||
--source include/master-slave.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_debug_sync.inc
|
||||
|
||||
--connection slave
|
||||
--source include/stop_slave.inc
|
||||
--let $old_debug_dbug= `SELECT @@global.debug_dbug`
|
||||
--let $master_delay= 3
|
||||
--eval change master to master_delay=$master_delay, master_use_gtid=Slave_Pos
|
||||
--let $old_slave_threads= `SELECT @@GLOBAL.slave_parallel_threads`
|
||||
|
@ -82,12 +85,24 @@ sleep 3;
|
|||
--eval insert into t1 values ($insert_ctr)
|
||||
--inc $insert_ctr
|
||||
--let $ts_trx_after_ins= `SELECT UNIX_TIMESTAMP()`
|
||||
--source include/save_master_pos.inc
|
||||
|
||||
--connection slave
|
||||
LOCK TABLES t1 WRITE;
|
||||
|
||||
SET @@global.debug_dbug="+d,pause_sql_thread_on_next_event";
|
||||
|
||||
START SLAVE IO_THREAD;
|
||||
|
||||
--echo # Before we start processing the events, we ensure both transactions
|
||||
--echo # were written into the relay log. Otherwise, if the IO thread takes too
|
||||
--echo # long to queue the events, the sql thread can think it has caught up
|
||||
--echo # too quickly.
|
||||
SET DEBUG_SYNC='now WAIT_FOR paused_on_event';
|
||||
--source include/sync_io_with_master.inc
|
||||
SET @@global.debug_dbug="-d,pause_sql_thread_on_next_event";
|
||||
SET DEBUG_SYNC='now SIGNAL sql_thread_continue';
|
||||
|
||||
--echo # Wait for first transaction to complete SQL delay and begin execution..
|
||||
--let $wait_condition= SELECT count(*) FROM information_schema.processlist WHERE state LIKE 'Waiting for table metadata lock%' AND command LIKE 'Slave_Worker';
|
||||
--source include/wait_condition.inc
|
||||
|
@ -120,6 +135,8 @@ UNLOCK TABLES;
|
|||
--source include/stop_slave.inc
|
||||
--eval CHANGE MASTER TO master_delay=0
|
||||
--eval set @@GLOBAL.slave_parallel_threads=$old_slave_threads
|
||||
--eval SET @@global.debug_dbug="$old_debug_dbug"
|
||||
SET DEBUG_SYNC='RESET';
|
||||
--source include/start_slave.inc
|
||||
|
||||
--connection master
|
||||
|
|
|
@ -381,6 +381,8 @@ static int add_collation(struct charset_info_st *cs)
|
|||
&my_charset_utf8mb4_unicode_ci,
|
||||
cs);
|
||||
newcs->m_ctype= my_charset_utf8mb4_unicode_ci.m_ctype;
|
||||
if (init_state_maps(newcs))
|
||||
return MY_XML_ERROR;
|
||||
newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED;
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ public:
|
|||
uchar source_tail[MY_AES_BLOCK_SIZE];
|
||||
|
||||
MyCTX_nopad() : MyCTX() { }
|
||||
~MyCTX_nopad() { }
|
||||
~MyCTX_nopad() = default;
|
||||
|
||||
int init(const EVP_CIPHER *cipher, int encrypt, const uchar *key, uint klen,
|
||||
const uchar *iv, uint ivlen)
|
||||
|
|
|
@ -189,9 +189,7 @@ database::database(const config& c)
|
|||
{
|
||||
}
|
||||
|
||||
database::~database()
|
||||
{
|
||||
}
|
||||
database::~database() = default;
|
||||
|
||||
dbcontext_ptr
|
||||
database::create_context(bool for_write) volatile
|
||||
|
@ -226,9 +224,7 @@ dbcontext::dbcontext(volatile database *d, bool for_write)
|
|||
user_level_lock_timeout = d->get_conf().get_int("wrlock_timeout", 12);
|
||||
}
|
||||
|
||||
dbcontext::~dbcontext()
|
||||
{
|
||||
}
|
||||
dbcontext::~dbcontext() = default;
|
||||
|
||||
namespace {
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ struct dbcontext_i;
|
|||
typedef std::auto_ptr<dbcontext_i> dbcontext_ptr;
|
||||
|
||||
struct database_i {
|
||||
virtual ~database_i() { }
|
||||
virtual ~database_i() = default;
|
||||
virtual dbcontext_ptr create_context(bool for_write) volatile = 0;
|
||||
virtual void stop() volatile = 0;
|
||||
virtual const config& get_conf() const volatile = 0;
|
||||
|
@ -57,7 +57,7 @@ struct prep_stmt {
|
|||
};
|
||||
|
||||
struct dbcallback_i {
|
||||
virtual ~dbcallback_i () { }
|
||||
virtual ~dbcallback_i() = default;
|
||||
virtual void dbcb_set_prep_stmt(size_t pst_id, const prep_stmt& v) = 0;
|
||||
virtual const prep_stmt *dbcb_get_prep_stmt(size_t pst_id) const = 0;
|
||||
virtual void dbcb_resp_short(uint32_t code, const char *msg) = 0;
|
||||
|
@ -111,7 +111,7 @@ struct cmd_exec_args {
|
|||
};
|
||||
|
||||
struct dbcontext_i {
|
||||
virtual ~dbcontext_i() { }
|
||||
virtual ~dbcontext_i() = default;
|
||||
virtual void init_thread(const void *stack_bottom,
|
||||
volatile int& shutdown_flag) = 0;
|
||||
virtual void term_thread() = 0;
|
||||
|
|
|
@ -47,7 +47,7 @@ struct hstcpsvr_i;
|
|||
typedef std::auto_ptr<hstcpsvr_i> hstcpsvr_ptr;
|
||||
|
||||
struct hstcpsvr_i {
|
||||
virtual ~hstcpsvr_i() { }
|
||||
virtual ~hstcpsvr_i() = default;
|
||||
virtual std::string start_listen() = 0;
|
||||
static hstcpsvr_ptr create(const config& conf);
|
||||
};
|
||||
|
|
|
@ -24,7 +24,7 @@ struct hstcpsvr_worker_arg {
|
|||
};
|
||||
|
||||
struct hstcpsvr_worker_i {
|
||||
virtual ~hstcpsvr_worker_i() { }
|
||||
virtual ~hstcpsvr_worker_i() = default;
|
||||
virtual void run() = 0;
|
||||
static hstcpsvr_worker_ptr create(const hstcpsvr_worker_arg& arg);
|
||||
};
|
||||
|
|
|
@ -33,7 +33,7 @@ struct hstcpcli_i;
|
|||
typedef std::auto_ptr<hstcpcli_i> hstcpcli_ptr;
|
||||
|
||||
struct hstcpcli_i {
|
||||
virtual ~hstcpcli_i() { }
|
||||
virtual ~hstcpcli_i() = default;
|
||||
virtual void close() = 0;
|
||||
virtual int reconnect() = 0;
|
||||
virtual bool stable_point() = 0;
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace dena {
|
|||
|
||||
/* boost::noncopyable */
|
||||
struct noncopyable {
|
||||
noncopyable() { }
|
||||
noncopyable() = default;
|
||||
private:
|
||||
noncopyable(const noncopyable&);
|
||||
noncopyable& operator =(const noncopyable&);
|
||||
|
|
|
@ -153,7 +153,7 @@ class time_collector
|
|||
|
||||
public:
|
||||
time_collector(utility& u): m_utility(&u) { flush(); }
|
||||
~time_collector() { }
|
||||
~time_collector() = default;
|
||||
uint32_t count(uint index) { return m_count[index]; }
|
||||
uint64_t total(uint index) { return m_total[index]; }
|
||||
void flush()
|
||||
|
|
|
@ -67,8 +67,8 @@ protected:
|
|||
memcpy(m_buffer, str, length);
|
||||
return false;
|
||||
}
|
||||
// Non-initializing constructor
|
||||
Inet4() { }
|
||||
|
||||
Inet4() = default;
|
||||
public:
|
||||
void to_binary(char *dst, size_t dstsize) const
|
||||
{
|
||||
|
@ -161,7 +161,7 @@ protected:
|
|||
return false;
|
||||
}
|
||||
|
||||
Inet6() { }
|
||||
Inet6() = default;
|
||||
|
||||
public:
|
||||
static uint binary_length() { return IN6_ADDR_SIZE; }
|
||||
|
|
|
@ -36,8 +36,8 @@ public:
|
|||
static Create_func_trt<TRT_FIELD> s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_trt<TRT_FIELD>() {}
|
||||
virtual ~Create_func_trt<TRT_FIELD>() {}
|
||||
Create_func_trt<TRT_FIELD>() = default;
|
||||
virtual ~Create_func_trt<TRT_FIELD>() = default;
|
||||
};
|
||||
|
||||
template<TR_table::field_id_t TRT_FIELD>
|
||||
|
@ -132,8 +132,8 @@ public:
|
|||
static Create_func_trt_trx_sees<Item_func_trt_trx_seesX> s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_trt_trx_sees<Item_func_trt_trx_seesX>() {}
|
||||
virtual ~Create_func_trt_trx_sees<Item_func_trt_trx_seesX>() {}
|
||||
Create_func_trt_trx_sees<Item_func_trt_trx_seesX>() = default;
|
||||
virtual ~Create_func_trt_trx_sees<Item_func_trt_trx_seesX>() = default;
|
||||
};
|
||||
|
||||
template<class X>
|
||||
|
|
|
@ -56,7 +56,7 @@ public:
|
|||
derived_handler(THD *thd_arg, handlerton *ht_arg)
|
||||
: thd(thd_arg), ht(ht_arg), derived(0),table(0), tmp_table_param(0),
|
||||
unit(0), select(0) {}
|
||||
virtual ~derived_handler() {}
|
||||
virtual ~derived_handler() = default;
|
||||
|
||||
/*
|
||||
Functions to scan data. All these returns 0 if ok, error code in case
|
||||
|
|
|
@ -328,9 +328,7 @@ Event_queue_element::Event_queue_element():
|
|||
SYNOPSIS
|
||||
Event_queue_element::Event_queue_element()
|
||||
*/
|
||||
Event_queue_element::~Event_queue_element()
|
||||
{
|
||||
}
|
||||
Event_queue_element::~Event_queue_element() = default;
|
||||
|
||||
|
||||
/*
|
||||
|
@ -356,9 +354,7 @@ Event_timed::Event_timed():
|
|||
Event_timed::~Event_timed()
|
||||
*/
|
||||
|
||||
Event_timed::~Event_timed()
|
||||
{
|
||||
}
|
||||
Event_timed::~Event_timed() = default;
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -71,7 +71,7 @@ class Event_parse_data;
|
|||
class Event_db_repository
|
||||
{
|
||||
public:
|
||||
Event_db_repository(){}
|
||||
Event_db_repository() = default;
|
||||
|
||||
bool
|
||||
create_event(THD *thd, Event_parse_data *parse_data,
|
||||
|
|
|
@ -605,7 +605,7 @@ public:
|
|||
name.length= 0;
|
||||
};
|
||||
Virtual_column_info* clone(THD *thd);
|
||||
~Virtual_column_info() {};
|
||||
~Virtual_column_info() = default;
|
||||
enum_vcol_info_type get_vcol_type() const
|
||||
{
|
||||
return vcol_type;
|
||||
|
@ -894,7 +894,7 @@ public:
|
|||
Field(uchar *ptr_arg,uint32 length_arg,uchar *null_ptr_arg,
|
||||
uchar null_bit_arg, utype unireg_check_arg,
|
||||
const LEX_CSTRING *field_name_arg);
|
||||
virtual ~Field() {}
|
||||
virtual ~Field() = default;
|
||||
|
||||
virtual Type_numeric_attributes type_numeric_attributes() const
|
||||
{
|
||||
|
@ -5822,8 +5822,8 @@ public:
|
|||
Field *from_field,*to_field;
|
||||
String tmp; // For items
|
||||
|
||||
Copy_field() {}
|
||||
~Copy_field() {}
|
||||
Copy_field() = default;
|
||||
~Copy_field() = default;
|
||||
void set(Field *to,Field *from,bool save); // Field to field
|
||||
void set(uchar *to,Field *from); // Field to string
|
||||
void (*do_copy)(Copy_field *);
|
||||
|
|
|
@ -238,22 +238,11 @@ public:
|
|||
/**
|
||||
We need an assignment operator, see filesort().
|
||||
This happens to have the same semantics as the one that would be
|
||||
generated by the compiler. We still implement it here, to show shallow
|
||||
assignment explicitly: we have two objects sharing the same array.
|
||||
generated by the compiler.
|
||||
Note that this is a shallow copy. We have two objects sharing the same
|
||||
array.
|
||||
*/
|
||||
Filesort_buffer &operator=(const Filesort_buffer &rhs)
|
||||
{
|
||||
m_next_rec_ptr= rhs.m_next_rec_ptr;
|
||||
m_rawmem= rhs.m_rawmem;
|
||||
m_record_pointers= rhs.m_record_pointers;
|
||||
m_sort_keys= rhs.m_sort_keys;
|
||||
m_num_records= rhs.m_num_records;
|
||||
m_record_length= rhs.m_record_length;
|
||||
m_sort_length= rhs.m_sort_length;
|
||||
m_size_in_bytes= rhs.m_size_in_bytes;
|
||||
m_idx= rhs.m_idx;
|
||||
return *this;
|
||||
}
|
||||
Filesort_buffer &operator=(const Filesort_buffer &rhs) = default;
|
||||
|
||||
uint get_sort_length() const { return m_sort_length; }
|
||||
void set_sort_length(uint val) { m_sort_length= val; }
|
||||
|
|
|
@ -344,7 +344,7 @@ public:
|
|||
{
|
||||
return complete_ring() || complete_poly();
|
||||
}
|
||||
virtual ~Gcalc_shape_transporter() {}
|
||||
virtual ~Gcalc_shape_transporter() = default;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ public:
|
|||
|
||||
group_by_handler(THD *thd_arg, handlerton *ht_arg)
|
||||
: thd(thd_arg), ht(ht_arg), table(0) {}
|
||||
virtual ~group_by_handler() {}
|
||||
virtual ~group_by_handler() = default;
|
||||
|
||||
/*
|
||||
Functions to scan data. All these returns 0 if ok, error code in case
|
||||
|
|
|
@ -877,7 +877,7 @@ struct xid_t {
|
|||
long bqual_length;
|
||||
char data[XIDDATASIZE]; // not \0-terminated !
|
||||
|
||||
xid_t() {} /* Remove gcc warning */
|
||||
xid_t() = default; /* Remove gcc warning */
|
||||
bool eq(struct xid_t *xid) const
|
||||
{ return !xid->is_null() && eq(xid->gtrid_length, xid->bqual_length, xid->data); }
|
||||
bool eq(long g, long b, const char *d) const
|
||||
|
@ -1561,7 +1561,7 @@ struct handlerton
|
|||
public:
|
||||
virtual bool add_table(const char *tname, size_t tlen) = 0;
|
||||
virtual bool add_file(const char *fname) = 0;
|
||||
protected: virtual ~discovered_list() {}
|
||||
protected: virtual ~discovered_list() = default;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -1794,7 +1794,7 @@ struct THD_TRANS
|
|||
m_unsafe_rollback_flags= 0;
|
||||
}
|
||||
bool is_empty() const { return ha_list == NULL; }
|
||||
THD_TRANS() {} /* Remove gcc warning */
|
||||
THD_TRANS() = default; /* Remove gcc warning */
|
||||
|
||||
unsigned int m_unsafe_rollback_flags;
|
||||
/*
|
||||
|
@ -2035,7 +2035,7 @@ struct Table_period_info: Sql_alloc
|
|||
|
||||
struct start_end_t
|
||||
{
|
||||
start_end_t() {};
|
||||
start_end_t() = default;
|
||||
start_end_t(const LEX_CSTRING& _start, const LEX_CSTRING& _end) :
|
||||
start(_start),
|
||||
end(_end) {}
|
||||
|
@ -2348,9 +2348,9 @@ struct Table_specification_st: public HA_CREATE_INFO,
|
|||
class inplace_alter_handler_ctx : public Sql_alloc
|
||||
{
|
||||
public:
|
||||
inplace_alter_handler_ctx() {}
|
||||
inplace_alter_handler_ctx() = default;
|
||||
|
||||
virtual ~inplace_alter_handler_ctx() {}
|
||||
virtual ~inplace_alter_handler_ctx() = default;
|
||||
virtual void set_shared_data(const inplace_alter_handler_ctx& ctx) {}
|
||||
};
|
||||
|
||||
|
@ -2576,8 +2576,8 @@ typedef struct st_key_create_information
|
|||
class TABLEOP_HOOKS
|
||||
{
|
||||
public:
|
||||
TABLEOP_HOOKS() {}
|
||||
virtual ~TABLEOP_HOOKS() {}
|
||||
TABLEOP_HOOKS() = default;
|
||||
virtual ~TABLEOP_HOOKS() = default;
|
||||
|
||||
inline void prelock(TABLE **tables, uint count)
|
||||
{
|
||||
|
@ -2618,7 +2618,7 @@ typedef class Item COND;
|
|||
|
||||
typedef struct st_ha_check_opt
|
||||
{
|
||||
st_ha_check_opt() {} /* Remove gcc warning */
|
||||
st_ha_check_opt() = default; /* Remove gcc warning */
|
||||
uint flags; /* isam layer flags (e.g. for myisamchk) */
|
||||
uint sql_flags; /* sql layer flags - for something myisamchk cannot do */
|
||||
time_t start_time; /* When check/repair starts */
|
||||
|
@ -2997,8 +2997,8 @@ uint calculate_key_len(TABLE *, uint, const uchar *, key_part_map);
|
|||
class Handler_share
|
||||
{
|
||||
public:
|
||||
Handler_share() {}
|
||||
virtual ~Handler_share() {}
|
||||
Handler_share() = default;
|
||||
virtual ~Handler_share() = default;
|
||||
};
|
||||
|
||||
enum class Compare_keys : uint32_t
|
||||
|
@ -5134,7 +5134,7 @@ public:
|
|||
const LEX_CSTRING *wild_arg);
|
||||
Discovered_table_list(THD *thd_arg, Dynamic_array<LEX_CSTRING*> *tables_arg)
|
||||
: thd(thd_arg), wild(NULL), with_temps(true), tables(tables_arg) {}
|
||||
~Discovered_table_list() {}
|
||||
~Discovered_table_list() = default;
|
||||
|
||||
bool add_table(const char *tname, size_t tlen);
|
||||
bool add_file(const char *fname);
|
||||
|
|
|
@ -35,7 +35,7 @@ class hash_filo_element
|
|||
private:
|
||||
hash_filo_element *next_used,*prev_used;
|
||||
public:
|
||||
hash_filo_element() {}
|
||||
hash_filo_element() = default;
|
||||
hash_filo_element *next()
|
||||
{ return next_used; }
|
||||
hash_filo_element *prev()
|
||||
|
|
|
@ -74,8 +74,7 @@ Host_errors::Host_errors()
|
|||
m_local(0)
|
||||
{}
|
||||
|
||||
Host_errors::~Host_errors()
|
||||
{}
|
||||
Host_errors::~Host_errors() = default;
|
||||
|
||||
void Host_errors::reset()
|
||||
{
|
||||
|
|
20
sql/item.h
20
sql/item.h
|
@ -287,7 +287,7 @@ private:
|
|||
TABLE_LIST *save_next_local;
|
||||
|
||||
public:
|
||||
Name_resolution_context_state() {} /* Remove gcc warning */
|
||||
Name_resolution_context_state() = default; /* Remove gcc warning */
|
||||
|
||||
public:
|
||||
/* Save the state of a name resolution context. */
|
||||
|
@ -388,7 +388,7 @@ class sp_rcontext;
|
|||
class Sp_rcontext_handler
|
||||
{
|
||||
public:
|
||||
virtual ~Sp_rcontext_handler() {}
|
||||
virtual ~Sp_rcontext_handler() = default;
|
||||
/**
|
||||
A prefix used for SP variable names in queries:
|
||||
- EXPLAIN EXTENDED
|
||||
|
@ -461,8 +461,8 @@ public:
|
|||
required, otherwise we only reading it and SELECT
|
||||
privilege might be required.
|
||||
*/
|
||||
Settable_routine_parameter() {}
|
||||
virtual ~Settable_routine_parameter() {}
|
||||
Settable_routine_parameter() = default;
|
||||
virtual ~Settable_routine_parameter() = default;
|
||||
virtual void set_required_privilege(bool rw) {};
|
||||
|
||||
/*
|
||||
|
@ -544,7 +544,7 @@ class Rewritable_query_parameter
|
|||
limit_clause_param(false)
|
||||
{ }
|
||||
|
||||
virtual ~Rewritable_query_parameter() { }
|
||||
virtual ~Rewritable_query_parameter() = default;
|
||||
|
||||
virtual bool append_for_log(THD *thd, String *str) = 0;
|
||||
};
|
||||
|
@ -711,7 +711,7 @@ public:
|
|||
class Item_const
|
||||
{
|
||||
public:
|
||||
virtual ~Item_const() {}
|
||||
virtual ~Item_const() = default;
|
||||
virtual const Type_all_attributes *get_type_all_attributes_from_const() const= 0;
|
||||
virtual bool const_is_null() const { return false; }
|
||||
virtual const longlong *const_ptr_longlong() const { return NULL; }
|
||||
|
@ -2771,8 +2771,8 @@ class Field_enumerator
|
|||
{
|
||||
public:
|
||||
virtual void visit_field(Item_field *field)= 0;
|
||||
virtual ~Field_enumerator() {}; /* purecov: inspected */
|
||||
Field_enumerator() {} /* Remove gcc warning */
|
||||
virtual ~Field_enumerator() = default;; /* purecov: inspected */
|
||||
Field_enumerator() = default; /* Remove gcc warning */
|
||||
};
|
||||
|
||||
class Item_string;
|
||||
|
@ -3297,7 +3297,7 @@ public:
|
|||
Item_result_field(THD *thd, Item_result_field *item):
|
||||
Item_fixed_hybrid(thd, item), result_field(item->result_field)
|
||||
{}
|
||||
~Item_result_field() {} /* Required with gcc 2.95 */
|
||||
~Item_result_field() = default;
|
||||
Field *get_tmp_table_field() override { return result_field; }
|
||||
Field *create_tmp_field_ex(MEM_ROOT *root, TABLE *table, Tmp_field_src *src,
|
||||
const Tmp_field_param *param) override
|
||||
|
@ -7532,7 +7532,7 @@ public:
|
|||
*/
|
||||
virtual void close()= 0;
|
||||
|
||||
virtual ~Item_iterator() {}
|
||||
virtual ~Item_iterator() = default;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ Cached_item *new_Cached_item(THD *thd, Item *item, bool pass_through_ref)
|
|||
}
|
||||
}
|
||||
|
||||
Cached_item::~Cached_item() {}
|
||||
Cached_item::~Cached_item() = default;
|
||||
|
||||
/**
|
||||
Compare with old value and replace value with new value.
|
||||
|
|
|
@ -249,8 +249,7 @@ protected:
|
|||
Item_bool_func(thd, a), value(a_value), affirmative(a_affirmative)
|
||||
{}
|
||||
|
||||
~Item_func_truth()
|
||||
{}
|
||||
~Item_func_truth() = default;
|
||||
private:
|
||||
/**
|
||||
True for <code>X IS [NOT] TRUE</code>,
|
||||
|
@ -272,7 +271,7 @@ class Item_func_istrue : public Item_func_truth
|
|||
{
|
||||
public:
|
||||
Item_func_istrue(THD *thd, Item *a): Item_func_truth(thd, a, true, true) {}
|
||||
~Item_func_istrue() {}
|
||||
~Item_func_istrue() = default;
|
||||
virtual const char* func_name() const { return "istrue"; }
|
||||
Item *get_copy(THD *thd)
|
||||
{ return get_item_copy<Item_func_istrue>(thd, this); }
|
||||
|
@ -288,7 +287,7 @@ class Item_func_isnottrue : public Item_func_truth
|
|||
public:
|
||||
Item_func_isnottrue(THD *thd, Item *a):
|
||||
Item_func_truth(thd, a, true, false) {}
|
||||
~Item_func_isnottrue() {}
|
||||
~Item_func_isnottrue() = default;
|
||||
virtual const char* func_name() const { return "isnottrue"; }
|
||||
bool find_not_null_fields(table_map allowed) { return false; }
|
||||
Item *get_copy(THD *thd)
|
||||
|
@ -305,7 +304,7 @@ class Item_func_isfalse : public Item_func_truth
|
|||
{
|
||||
public:
|
||||
Item_func_isfalse(THD *thd, Item *a): Item_func_truth(thd, a, false, true) {}
|
||||
~Item_func_isfalse() {}
|
||||
~Item_func_isfalse() = default;
|
||||
virtual const char* func_name() const { return "isfalse"; }
|
||||
Item *get_copy(THD *thd)
|
||||
{ return get_item_copy<Item_func_isfalse>(thd, this); }
|
||||
|
@ -321,7 +320,7 @@ class Item_func_isnotfalse : public Item_func_truth
|
|||
public:
|
||||
Item_func_isnotfalse(THD *thd, Item *a):
|
||||
Item_func_truth(thd, a, false, false) {}
|
||||
~Item_func_isnotfalse() {}
|
||||
~Item_func_isnotfalse() = default;
|
||||
virtual const char* func_name() const { return "isnotfalse"; }
|
||||
bool find_not_null_fields(table_map allowed) { return false; }
|
||||
Item *get_copy(THD *thd)
|
||||
|
@ -1345,13 +1344,13 @@ public:
|
|||
CHARSET_INFO *collation;
|
||||
uint count;
|
||||
uint used_count;
|
||||
in_vector() {}
|
||||
in_vector() = default;
|
||||
in_vector(THD *thd, uint elements, uint element_length, qsort2_cmp cmp_func,
|
||||
CHARSET_INFO *cmp_coll)
|
||||
:base((char*) thd_calloc(thd, elements * element_length)),
|
||||
size(element_length), compare(cmp_func), collation(cmp_coll),
|
||||
count(elements), used_count(elements) {}
|
||||
virtual ~in_vector() {}
|
||||
virtual ~in_vector() = default;
|
||||
virtual void set(uint pos,Item *item)=0;
|
||||
virtual uchar *get_value(Item *item)=0;
|
||||
void sort()
|
||||
|
@ -1550,7 +1549,7 @@ class cmp_item :public Sql_alloc
|
|||
public:
|
||||
CHARSET_INFO *cmp_charset;
|
||||
cmp_item() { cmp_charset= &my_charset_bin; }
|
||||
virtual ~cmp_item() {}
|
||||
virtual ~cmp_item() = default;
|
||||
virtual void store_value(Item *item)= 0;
|
||||
/**
|
||||
@returns result (TRUE, FALSE or UNKNOWN) of
|
||||
|
@ -1579,7 +1578,7 @@ class cmp_item_string : public cmp_item_scalar
|
|||
protected:
|
||||
String *value_res;
|
||||
public:
|
||||
cmp_item_string () {}
|
||||
cmp_item_string () = default;
|
||||
cmp_item_string (CHARSET_INFO *cs) { cmp_charset= cs; }
|
||||
void set_charset(CHARSET_INFO *cs) { cmp_charset= cs; }
|
||||
friend class cmp_item_sort_string;
|
||||
|
@ -1645,7 +1644,7 @@ class cmp_item_int : public cmp_item_scalar
|
|||
{
|
||||
longlong value;
|
||||
public:
|
||||
cmp_item_int() {} /* Remove gcc warning */
|
||||
cmp_item_int() = default; /* Remove gcc warning */
|
||||
void store_value(Item *item)
|
||||
{
|
||||
value= item->val_int();
|
||||
|
@ -1678,7 +1677,7 @@ class cmp_item_temporal: public cmp_item_scalar
|
|||
protected:
|
||||
longlong value;
|
||||
public:
|
||||
cmp_item_temporal() {}
|
||||
cmp_item_temporal() = default;
|
||||
int compare(cmp_item *ci);
|
||||
};
|
||||
|
||||
|
@ -1734,7 +1733,7 @@ class cmp_item_real : public cmp_item_scalar
|
|||
{
|
||||
double value;
|
||||
public:
|
||||
cmp_item_real() {} /* Remove gcc warning */
|
||||
cmp_item_real() = default; /* Remove gcc warning */
|
||||
void store_value(Item *item)
|
||||
{
|
||||
value= item->val_real();
|
||||
|
@ -1764,7 +1763,7 @@ class cmp_item_decimal : public cmp_item_scalar
|
|||
{
|
||||
my_decimal value;
|
||||
public:
|
||||
cmp_item_decimal() {} /* Remove gcc warning */
|
||||
cmp_item_decimal() = default; /* Remove gcc warning */
|
||||
void store_value(Item *item);
|
||||
int cmp(Item *arg);
|
||||
int cmp_not_null(const Value *val);
|
||||
|
@ -3514,8 +3513,8 @@ Item *and_expressions(Item *a, Item *b, Item **org_item);
|
|||
class Comp_creator
|
||||
{
|
||||
public:
|
||||
Comp_creator() {} /* Remove gcc warning */
|
||||
virtual ~Comp_creator() {} /* Remove gcc warning */
|
||||
Comp_creator() = default; /* Remove gcc warning */
|
||||
virtual ~Comp_creator() = default; /* Remove gcc warning */
|
||||
/**
|
||||
Create operation with given arguments.
|
||||
*/
|
||||
|
@ -3534,8 +3533,8 @@ public:
|
|||
class Eq_creator :public Comp_creator
|
||||
{
|
||||
public:
|
||||
Eq_creator() {} /* Remove gcc warning */
|
||||
virtual ~Eq_creator() {} /* Remove gcc warning */
|
||||
Eq_creator() = default; /* Remove gcc warning */
|
||||
virtual ~Eq_creator() = default; /* Remove gcc warning */
|
||||
Item_bool_rowready_func2* create(THD *thd, Item *a, Item *b) const;
|
||||
Item_bool_rowready_func2* create_swap(THD *thd, Item *a, Item *b) const;
|
||||
const char* symbol(bool invert) const { return invert? "<>" : "="; }
|
||||
|
@ -3546,8 +3545,8 @@ public:
|
|||
class Ne_creator :public Comp_creator
|
||||
{
|
||||
public:
|
||||
Ne_creator() {} /* Remove gcc warning */
|
||||
virtual ~Ne_creator() {} /* Remove gcc warning */
|
||||
Ne_creator() = default; /* Remove gcc warning */
|
||||
virtual ~Ne_creator() = default; /* Remove gcc warning */
|
||||
Item_bool_rowready_func2* create(THD *thd, Item *a, Item *b) const;
|
||||
Item_bool_rowready_func2* create_swap(THD *thd, Item *a, Item *b) const;
|
||||
const char* symbol(bool invert) const { return invert? "=" : "<>"; }
|
||||
|
@ -3558,8 +3557,8 @@ public:
|
|||
class Gt_creator :public Comp_creator
|
||||
{
|
||||
public:
|
||||
Gt_creator() {} /* Remove gcc warning */
|
||||
virtual ~Gt_creator() {} /* Remove gcc warning */
|
||||
Gt_creator() = default; /* Remove gcc warning */
|
||||
virtual ~Gt_creator() = default; /* Remove gcc warning */
|
||||
Item_bool_rowready_func2* create(THD *thd, Item *a, Item *b) const;
|
||||
Item_bool_rowready_func2* create_swap(THD *thd, Item *a, Item *b) const;
|
||||
const char* symbol(bool invert) const { return invert? "<=" : ">"; }
|
||||
|
@ -3570,8 +3569,8 @@ public:
|
|||
class Lt_creator :public Comp_creator
|
||||
{
|
||||
public:
|
||||
Lt_creator() {} /* Remove gcc warning */
|
||||
virtual ~Lt_creator() {} /* Remove gcc warning */
|
||||
Lt_creator() = default; /* Remove gcc warning */
|
||||
virtual ~Lt_creator() = default; /* Remove gcc warning */
|
||||
Item_bool_rowready_func2* create(THD *thd, Item *a, Item *b) const;
|
||||
Item_bool_rowready_func2* create_swap(THD *thd, Item *a, Item *b) const;
|
||||
const char* symbol(bool invert) const { return invert? ">=" : "<"; }
|
||||
|
@ -3582,8 +3581,8 @@ public:
|
|||
class Ge_creator :public Comp_creator
|
||||
{
|
||||
public:
|
||||
Ge_creator() {} /* Remove gcc warning */
|
||||
virtual ~Ge_creator() {} /* Remove gcc warning */
|
||||
Ge_creator() = default; /* Remove gcc warning */
|
||||
virtual ~Ge_creator() = default; /* Remove gcc warning */
|
||||
Item_bool_rowready_func2* create(THD *thd, Item *a, Item *b) const;
|
||||
Item_bool_rowready_func2* create_swap(THD *thd, Item *a, Item *b) const;
|
||||
const char* symbol(bool invert) const { return invert? "<" : ">="; }
|
||||
|
@ -3594,8 +3593,8 @@ public:
|
|||
class Le_creator :public Comp_creator
|
||||
{
|
||||
public:
|
||||
Le_creator() {} /* Remove gcc warning */
|
||||
virtual ~Le_creator() {} /* Remove gcc warning */
|
||||
Le_creator() = default; /* Remove gcc warning */
|
||||
virtual ~Le_creator() = default; /* Remove gcc warning */
|
||||
Item_bool_rowready_func2* create(THD *thd, Item *a, Item *b) const;
|
||||
Item_bool_rowready_func2* create_swap(THD *thd, Item *a, Item *b) const;
|
||||
const char* symbol(bool invert) const { return invert? ">" : "<="; }
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -63,9 +63,9 @@ public:
|
|||
|
||||
protected:
|
||||
/** Constructor */
|
||||
Create_func() {}
|
||||
Create_func() = default;
|
||||
/** Destructor */
|
||||
virtual ~Create_func() {}
|
||||
virtual ~Create_func() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -88,9 +88,9 @@ public:
|
|||
|
||||
protected:
|
||||
/** Constructor. */
|
||||
Create_func_arg0() {}
|
||||
Create_func_arg0() = default;
|
||||
/** Destructor. */
|
||||
virtual ~Create_func_arg0() {}
|
||||
virtual ~Create_func_arg0() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -114,9 +114,9 @@ public:
|
|||
|
||||
protected:
|
||||
/** Constructor. */
|
||||
Create_func_arg1() {}
|
||||
Create_func_arg1() = default;
|
||||
/** Destructor. */
|
||||
virtual ~Create_func_arg1() {}
|
||||
virtual ~Create_func_arg1() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -141,9 +141,9 @@ public:
|
|||
|
||||
protected:
|
||||
/** Constructor. */
|
||||
Create_func_arg2() {}
|
||||
Create_func_arg2() = default;
|
||||
/** Destructor. */
|
||||
virtual ~Create_func_arg2() {}
|
||||
virtual ~Create_func_arg2() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -169,9 +169,9 @@ public:
|
|||
|
||||
protected:
|
||||
/** Constructor. */
|
||||
Create_func_arg3() {}
|
||||
Create_func_arg3() = default;
|
||||
/** Destructor. */
|
||||
virtual ~Create_func_arg3() {}
|
||||
virtual ~Create_func_arg3() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -203,9 +203,9 @@ public:
|
|||
|
||||
protected:
|
||||
/** Constructor. */
|
||||
Create_native_func() {}
|
||||
Create_native_func() = default;
|
||||
/** Destructor. */
|
||||
virtual ~Create_native_func() {}
|
||||
virtual ~Create_native_func() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -246,9 +246,9 @@ public:
|
|||
|
||||
protected:
|
||||
/** Constructor. */
|
||||
Create_qfunc() {}
|
||||
Create_qfunc() = default;
|
||||
/** Destructor. */
|
||||
virtual ~Create_qfunc() {}
|
||||
virtual ~Create_qfunc() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -295,9 +295,9 @@ public:
|
|||
|
||||
protected:
|
||||
/** Constructor. */
|
||||
Create_udf_func() {}
|
||||
Create_udf_func() = default;
|
||||
/** Destructor. */
|
||||
virtual ~Create_udf_func() {}
|
||||
virtual ~Create_udf_func() = default;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -4001,7 +4001,7 @@ class Interruptible_wait
|
|||
Interruptible_wait(THD *thd)
|
||||
: m_thd(thd) {}
|
||||
|
||||
~Interruptible_wait() {}
|
||||
~Interruptible_wait() = default;
|
||||
|
||||
public:
|
||||
/**
|
||||
|
|
|
@ -478,7 +478,7 @@ public:
|
|||
class Handler
|
||||
{
|
||||
public:
|
||||
virtual ~Handler() { }
|
||||
virtual ~Handler() = default;
|
||||
virtual String *val_str(Item_handled_func *, String *) const= 0;
|
||||
virtual String *val_str_ascii(Item_handled_func *, String *) const= 0;
|
||||
virtual double val_real(Item_handled_func *) const= 0;
|
||||
|
@ -3470,8 +3470,7 @@ public:
|
|||
Item_func_sp(THD *thd, Name_resolution_context *context_arg,
|
||||
sp_name *name, const Sp_handler *sph, List<Item> &list);
|
||||
|
||||
virtual ~Item_func_sp()
|
||||
{}
|
||||
virtual ~Item_func_sp() = default;
|
||||
|
||||
void update_used_tables();
|
||||
|
||||
|
|
|
@ -1533,9 +1533,7 @@ exit:
|
|||
}
|
||||
|
||||
|
||||
Item_func_spatial_operation::~Item_func_spatial_operation()
|
||||
{
|
||||
}
|
||||
Item_func_spatial_operation::~Item_func_spatial_operation() = default;
|
||||
|
||||
|
||||
String *Item_func_spatial_operation::val_str(String *str_value)
|
||||
|
@ -2791,8 +2789,8 @@ public:
|
|||
static Create_func_area s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_area() {}
|
||||
virtual ~Create_func_area() {}
|
||||
Create_func_area() = default;
|
||||
virtual ~Create_func_area() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2807,8 +2805,8 @@ public:
|
|||
static Create_func_as_wkb s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_as_wkb() {}
|
||||
virtual ~Create_func_as_wkb() {}
|
||||
Create_func_as_wkb() = default;
|
||||
virtual ~Create_func_as_wkb() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2823,8 +2821,8 @@ public:
|
|||
static Create_func_as_wkt s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_as_wkt() {}
|
||||
virtual ~Create_func_as_wkt() {}
|
||||
Create_func_as_wkt() = default;
|
||||
virtual ~Create_func_as_wkt() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2840,8 +2838,8 @@ public:
|
|||
static Create_func_centroid s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_centroid() {}
|
||||
virtual ~Create_func_centroid() {}
|
||||
Create_func_centroid() = default;
|
||||
virtual ~Create_func_centroid() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2856,8 +2854,8 @@ public:
|
|||
static Create_func_convexhull s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_convexhull() {}
|
||||
virtual ~Create_func_convexhull() {}
|
||||
Create_func_convexhull() = default;
|
||||
virtual ~Create_func_convexhull() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2872,8 +2870,8 @@ public:
|
|||
static Create_func_pointonsurface s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_pointonsurface() {}
|
||||
virtual ~Create_func_pointonsurface() {}
|
||||
Create_func_pointonsurface() = default;
|
||||
virtual ~Create_func_pointonsurface() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2889,8 +2887,8 @@ public:
|
|||
static Create_func_mbr_contains s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_mbr_contains() {}
|
||||
virtual ~Create_func_mbr_contains() {}
|
||||
Create_func_mbr_contains() = default;
|
||||
virtual ~Create_func_mbr_contains() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2905,8 +2903,8 @@ public:
|
|||
static Create_func_contains s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_contains() {}
|
||||
virtual ~Create_func_contains() {}
|
||||
Create_func_contains() = default;
|
||||
virtual ~Create_func_contains() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2921,8 +2919,8 @@ public:
|
|||
static Create_func_crosses s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_crosses() {}
|
||||
virtual ~Create_func_crosses() {}
|
||||
Create_func_crosses() = default;
|
||||
virtual ~Create_func_crosses() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2937,8 +2935,8 @@ public:
|
|||
static Create_func_dimension s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_dimension() {}
|
||||
virtual ~Create_func_dimension() {}
|
||||
Create_func_dimension() = default;
|
||||
virtual ~Create_func_dimension() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2954,8 +2952,8 @@ public:
|
|||
static Create_func_mbr_disjoint s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_mbr_disjoint() {}
|
||||
virtual ~Create_func_mbr_disjoint() {}
|
||||
Create_func_mbr_disjoint() = default;
|
||||
virtual ~Create_func_mbr_disjoint() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2970,8 +2968,8 @@ public:
|
|||
static Create_func_disjoint s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_disjoint() {}
|
||||
virtual ~Create_func_disjoint() {}
|
||||
Create_func_disjoint() = default;
|
||||
virtual ~Create_func_disjoint() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2986,8 +2984,8 @@ public:
|
|||
static Create_func_distance s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_distance() {}
|
||||
virtual ~Create_func_distance() {}
|
||||
Create_func_distance() = default;
|
||||
virtual ~Create_func_distance() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2999,8 +2997,8 @@ public:
|
|||
static Create_func_distance_sphere s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_distance_sphere() {}
|
||||
virtual ~Create_func_distance_sphere() {}
|
||||
Create_func_distance_sphere() = default;
|
||||
virtual ~Create_func_distance_sphere() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3034,8 +3032,8 @@ public:
|
|||
static Create_func_endpoint s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_endpoint() {}
|
||||
virtual ~Create_func_endpoint() {}
|
||||
Create_func_endpoint() = default;
|
||||
virtual ~Create_func_endpoint() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3050,8 +3048,8 @@ public:
|
|||
static Create_func_envelope s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_envelope() {}
|
||||
virtual ~Create_func_envelope() {}
|
||||
Create_func_envelope() = default;
|
||||
virtual ~Create_func_envelope() = default;
|
||||
};
|
||||
|
||||
class Create_func_boundary : public Create_func_arg1
|
||||
|
@ -3065,8 +3063,8 @@ public:
|
|||
static Create_func_boundary s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_boundary() {}
|
||||
virtual ~Create_func_boundary() {}
|
||||
Create_func_boundary() = default;
|
||||
virtual ~Create_func_boundary() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3082,8 +3080,8 @@ public:
|
|||
static Create_func_mbr_equals s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_mbr_equals() {}
|
||||
virtual ~Create_func_mbr_equals() {}
|
||||
Create_func_mbr_equals() = default;
|
||||
virtual ~Create_func_mbr_equals() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3099,8 +3097,8 @@ public:
|
|||
static Create_func_equals s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_equals() {}
|
||||
virtual ~Create_func_equals() {}
|
||||
Create_func_equals() = default;
|
||||
virtual ~Create_func_equals() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3116,8 +3114,8 @@ public:
|
|||
static Create_func_exteriorring s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_exteriorring() {}
|
||||
virtual ~Create_func_exteriorring() {}
|
||||
Create_func_exteriorring() = default;
|
||||
virtual ~Create_func_exteriorring() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3131,8 +3129,8 @@ public:
|
|||
static Create_func_geometry_from_text s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_geometry_from_text() {}
|
||||
virtual ~Create_func_geometry_from_text() {}
|
||||
Create_func_geometry_from_text() = default;
|
||||
virtual ~Create_func_geometry_from_text() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3182,8 +3180,8 @@ public:
|
|||
static Create_func_geometry_from_wkb s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_geometry_from_wkb() {}
|
||||
virtual ~Create_func_geometry_from_wkb() {}
|
||||
Create_func_geometry_from_wkb() = default;
|
||||
virtual ~Create_func_geometry_from_wkb() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3232,8 +3230,8 @@ public:
|
|||
static Create_func_geometry_from_json s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_geometry_from_json() {}
|
||||
virtual ~Create_func_geometry_from_json() {}
|
||||
Create_func_geometry_from_json() = default;
|
||||
virtual ~Create_func_geometry_from_json() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3292,8 +3290,8 @@ public:
|
|||
static Create_func_as_geojson s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_as_geojson() {}
|
||||
virtual ~Create_func_as_geojson() {}
|
||||
Create_func_as_geojson() = default;
|
||||
virtual ~Create_func_as_geojson() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3352,8 +3350,8 @@ public:
|
|||
static Create_func_geometry_type s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_geometry_type() {}
|
||||
virtual ~Create_func_geometry_type() {}
|
||||
Create_func_geometry_type() = default;
|
||||
virtual ~Create_func_geometry_type() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3369,8 +3367,8 @@ public:
|
|||
static Create_func_geometryn s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_geometryn() {}
|
||||
virtual ~Create_func_geometryn() {}
|
||||
Create_func_geometryn() = default;
|
||||
virtual ~Create_func_geometryn() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3386,8 +3384,8 @@ public:
|
|||
static Create_func_gis_debug s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_gis_debug() {}
|
||||
virtual ~Create_func_gis_debug() {}
|
||||
Create_func_gis_debug() = default;
|
||||
virtual ~Create_func_gis_debug() = default;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -3403,8 +3401,8 @@ public:
|
|||
static Create_func_glength s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_glength() {}
|
||||
virtual ~Create_func_glength() {}
|
||||
Create_func_glength() = default;
|
||||
virtual ~Create_func_glength() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3420,8 +3418,8 @@ public:
|
|||
static Create_func_interiorringn s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_interiorringn() {}
|
||||
virtual ~Create_func_interiorringn() {}
|
||||
Create_func_interiorringn() = default;
|
||||
virtual ~Create_func_interiorringn() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3436,8 +3434,8 @@ public:
|
|||
static Create_func_relate s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_relate() {}
|
||||
virtual ~Create_func_relate() {}
|
||||
Create_func_relate() = default;
|
||||
virtual ~Create_func_relate() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3453,8 +3451,8 @@ public:
|
|||
static Create_func_mbr_intersects s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_mbr_intersects() {}
|
||||
virtual ~Create_func_mbr_intersects() {}
|
||||
Create_func_mbr_intersects() = default;
|
||||
virtual ~Create_func_mbr_intersects() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3470,8 +3468,8 @@ public:
|
|||
static Create_func_intersects s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_intersects() {}
|
||||
virtual ~Create_func_intersects() {}
|
||||
Create_func_intersects() = default;
|
||||
virtual ~Create_func_intersects() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3487,8 +3485,8 @@ public:
|
|||
static Create_func_intersection s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_intersection() {}
|
||||
virtual ~Create_func_intersection() {}
|
||||
Create_func_intersection() = default;
|
||||
virtual ~Create_func_intersection() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3504,8 +3502,8 @@ public:
|
|||
static Create_func_difference s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_difference() {}
|
||||
virtual ~Create_func_difference() {}
|
||||
Create_func_difference() = default;
|
||||
virtual ~Create_func_difference() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3521,8 +3519,8 @@ public:
|
|||
static Create_func_union s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_union() {}
|
||||
virtual ~Create_func_union() {}
|
||||
Create_func_union() = default;
|
||||
virtual ~Create_func_union() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3538,8 +3536,8 @@ public:
|
|||
static Create_func_symdifference s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_symdifference() {}
|
||||
virtual ~Create_func_symdifference() {}
|
||||
Create_func_symdifference() = default;
|
||||
virtual ~Create_func_symdifference() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3554,8 +3552,8 @@ public:
|
|||
static Create_func_buffer s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_buffer() {}
|
||||
virtual ~Create_func_buffer() {}
|
||||
Create_func_buffer() = default;
|
||||
virtual ~Create_func_buffer() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3570,8 +3568,8 @@ public:
|
|||
static Create_func_isclosed s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_isclosed() {}
|
||||
virtual ~Create_func_isclosed() {}
|
||||
Create_func_isclosed() = default;
|
||||
virtual ~Create_func_isclosed() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3586,8 +3584,8 @@ public:
|
|||
static Create_func_isring s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_isring() {}
|
||||
virtual ~Create_func_isring() {}
|
||||
Create_func_isring() = default;
|
||||
virtual ~Create_func_isring() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3602,8 +3600,8 @@ public:
|
|||
static Create_func_isempty s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_isempty() {}
|
||||
virtual ~Create_func_isempty() {}
|
||||
Create_func_isempty() = default;
|
||||
virtual ~Create_func_isempty() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3618,8 +3616,8 @@ public:
|
|||
static Create_func_issimple s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_issimple() {}
|
||||
virtual ~Create_func_issimple() {}
|
||||
Create_func_issimple() = default;
|
||||
virtual ~Create_func_issimple() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3635,8 +3633,8 @@ public:
|
|||
static Create_func_numgeometries s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_numgeometries() {}
|
||||
virtual ~Create_func_numgeometries() {}
|
||||
Create_func_numgeometries() = default;
|
||||
virtual ~Create_func_numgeometries() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3651,8 +3649,8 @@ public:
|
|||
static Create_func_numinteriorring s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_numinteriorring() {}
|
||||
virtual ~Create_func_numinteriorring() {}
|
||||
Create_func_numinteriorring() = default;
|
||||
virtual ~Create_func_numinteriorring() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3667,8 +3665,8 @@ public:
|
|||
static Create_func_numpoints s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_numpoints() {}
|
||||
virtual ~Create_func_numpoints() {}
|
||||
Create_func_numpoints() = default;
|
||||
virtual ~Create_func_numpoints() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3684,8 +3682,8 @@ public:
|
|||
static Create_func_mbr_overlaps s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_mbr_overlaps() {}
|
||||
virtual ~Create_func_mbr_overlaps() {}
|
||||
Create_func_mbr_overlaps() = default;
|
||||
virtual ~Create_func_mbr_overlaps() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3701,8 +3699,8 @@ public:
|
|||
static Create_func_overlaps s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_overlaps() {}
|
||||
virtual ~Create_func_overlaps() {}
|
||||
Create_func_overlaps() = default;
|
||||
virtual ~Create_func_overlaps() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3720,8 +3718,8 @@ public:
|
|||
static Create_func_pointn s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_pointn() {}
|
||||
virtual ~Create_func_pointn() {}
|
||||
Create_func_pointn() = default;
|
||||
virtual ~Create_func_pointn() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3738,8 +3736,8 @@ public:
|
|||
static Create_func_srid s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_srid() {}
|
||||
virtual ~Create_func_srid() {}
|
||||
Create_func_srid() = default;
|
||||
virtual ~Create_func_srid() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3755,8 +3753,8 @@ public:
|
|||
static Create_func_startpoint s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_startpoint() {}
|
||||
virtual ~Create_func_startpoint() {}
|
||||
Create_func_startpoint() = default;
|
||||
virtual ~Create_func_startpoint() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3773,8 +3771,8 @@ public:
|
|||
static Create_func_touches s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_touches() {}
|
||||
virtual ~Create_func_touches() {}
|
||||
Create_func_touches() = default;
|
||||
virtual ~Create_func_touches() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3790,8 +3788,8 @@ public:
|
|||
static Create_func_mbr_within s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_mbr_within() {}
|
||||
virtual ~Create_func_mbr_within() {}
|
||||
Create_func_mbr_within() = default;
|
||||
virtual ~Create_func_mbr_within() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3807,8 +3805,8 @@ public:
|
|||
static Create_func_within s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_within() {}
|
||||
virtual ~Create_func_within() {}
|
||||
Create_func_within() = default;
|
||||
virtual ~Create_func_within() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3823,8 +3821,8 @@ public:
|
|||
static Create_func_x s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_x() {}
|
||||
virtual ~Create_func_x() {}
|
||||
Create_func_x() = default;
|
||||
virtual ~Create_func_x() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -3839,8 +3837,8 @@ public:
|
|||
static Create_func_y s_singleton;
|
||||
|
||||
protected:
|
||||
Create_func_y() {}
|
||||
virtual ~Create_func_y() {}
|
||||
Create_func_y() = default;
|
||||
virtual ~Create_func_y() = default;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -2861,7 +2861,9 @@ bool Item_exists_subselect::select_prepare_to_be_in()
|
|||
bool trans_res= FALSE;
|
||||
DBUG_ENTER("Item_exists_subselect::select_prepare_to_be_in");
|
||||
if (!optimizer &&
|
||||
thd->lex->sql_command == SQLCOM_SELECT &&
|
||||
(thd->lex->sql_command == SQLCOM_SELECT ||
|
||||
thd->lex->sql_command == SQLCOM_UPDATE_MULTI ||
|
||||
thd->lex->sql_command == SQLCOM_DELETE_MULTI) &&
|
||||
!unit->first_select()->is_part_of_union() &&
|
||||
optimizer_flag(thd, OPTIMIZER_SWITCH_EXISTS_TO_IN) &&
|
||||
(is_top_level_item() ||
|
||||
|
|
|
@ -837,7 +837,7 @@ public:
|
|||
item= si;
|
||||
maybe_null= 0;
|
||||
}
|
||||
virtual ~subselect_engine() {}; // to satisfy compiler
|
||||
virtual ~subselect_engine() = default;; // to satisfy compiler
|
||||
virtual void cleanup()= 0;
|
||||
|
||||
/*
|
||||
|
|
|
@ -59,7 +59,7 @@ protected:
|
|||
|
||||
public:
|
||||
Aggregator (Item_sum *arg): item_sum(arg) {}
|
||||
virtual ~Aggregator () {} /* Keep gcc happy */
|
||||
virtual ~Aggregator () = default; /* Keep gcc happy */
|
||||
|
||||
enum Aggregator_type { SIMPLE_AGGREGATOR, DISTINCT_AGGREGATOR };
|
||||
virtual Aggregator_type Aggrtype() = 0;
|
||||
|
|
10
sql/log.cc
10
sql/log.cc
|
@ -210,7 +210,7 @@ public:
|
|||
m_message[0]= '\0';
|
||||
}
|
||||
|
||||
virtual ~Silence_log_table_errors() {}
|
||||
virtual ~Silence_log_table_errors() = default;
|
||||
|
||||
virtual bool handle_condition(THD *thd,
|
||||
uint sql_errno,
|
||||
|
@ -643,14 +643,10 @@ end:
|
|||
}
|
||||
|
||||
|
||||
Log_to_csv_event_handler::Log_to_csv_event_handler()
|
||||
{
|
||||
}
|
||||
Log_to_csv_event_handler::Log_to_csv_event_handler() = default;
|
||||
|
||||
|
||||
Log_to_csv_event_handler::~Log_to_csv_event_handler()
|
||||
{
|
||||
}
|
||||
Log_to_csv_event_handler::~Log_to_csv_event_handler() = default;
|
||||
|
||||
|
||||
void Log_to_csv_event_handler::cleanup()
|
||||
|
|
12
sql/log.h
12
sql/log.h
|
@ -42,8 +42,8 @@ class TC_LOG
|
|||
{
|
||||
public:
|
||||
int using_heuristic_recover();
|
||||
TC_LOG() {}
|
||||
virtual ~TC_LOG() {}
|
||||
TC_LOG() = default;
|
||||
virtual ~TC_LOG() = default;
|
||||
|
||||
virtual int open(const char *opt_name)=0;
|
||||
virtual void close()=0;
|
||||
|
@ -100,7 +100,7 @@ extern PSI_cond_key key_COND_prepare_ordered;
|
|||
class TC_LOG_DUMMY: public TC_LOG // use it to disable the logging
|
||||
{
|
||||
public:
|
||||
TC_LOG_DUMMY() {}
|
||||
TC_LOG_DUMMY() = default;
|
||||
int open(const char *opt_name) { return 0; }
|
||||
void close() { }
|
||||
/*
|
||||
|
@ -308,7 +308,7 @@ class MYSQL_LOG
|
|||
{
|
||||
public:
|
||||
MYSQL_LOG();
|
||||
virtual ~MYSQL_LOG() {}
|
||||
virtual ~MYSQL_LOG() = default;
|
||||
void init_pthread_objects();
|
||||
void cleanup();
|
||||
bool open(
|
||||
|
@ -977,7 +977,7 @@ public:
|
|||
class Log_event_handler
|
||||
{
|
||||
public:
|
||||
Log_event_handler() {}
|
||||
Log_event_handler() = default;
|
||||
virtual bool init()= 0;
|
||||
virtual void cleanup()= 0;
|
||||
|
||||
|
@ -991,7 +991,7 @@ public:
|
|||
const char *command_type, size_t command_type_len,
|
||||
const char *sql_text, size_t sql_text_len,
|
||||
CHARSET_INFO *client_cs)= 0;
|
||||
virtual ~Log_event_handler() {}
|
||||
virtual ~Log_event_handler() = default;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -152,7 +152,7 @@ public:
|
|||
reinit_io_cache(m_cache, WRITE_CACHE, 0L, FALSE, TRUE);
|
||||
}
|
||||
|
||||
~Write_on_release_cache() {}
|
||||
~Write_on_release_cache() = default;
|
||||
|
||||
bool flush_data()
|
||||
{
|
||||
|
@ -4092,9 +4092,7 @@ Ignorable_log_event::Ignorable_log_event(const char *buf,
|
|||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
Ignorable_log_event::~Ignorable_log_event()
|
||||
{
|
||||
}
|
||||
Ignorable_log_event::~Ignorable_log_event() = default;
|
||||
|
||||
bool copy_event_cache_to_file_and_reinit(IO_CACHE *cache, FILE *file)
|
||||
{
|
||||
|
|
|
@ -2545,8 +2545,7 @@ public:
|
|||
*/
|
||||
Load_log_event(const char* buf, uint event_len,
|
||||
const Format_description_log_event* description_event);
|
||||
~Load_log_event()
|
||||
{}
|
||||
~Load_log_event() = default;
|
||||
Log_event_type get_type_code()
|
||||
{
|
||||
return sql_ex.new_format() ? NEW_LOAD_EVENT: LOAD_EVENT;
|
||||
|
@ -2630,13 +2629,13 @@ public:
|
|||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
Start_log_event_v3() {}
|
||||
Start_log_event_v3() = default;
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Start_log_event_v3(const char* buf, uint event_len,
|
||||
const Format_description_log_event* description_event);
|
||||
~Start_log_event_v3() {}
|
||||
~Start_log_event_v3() = default;
|
||||
Log_event_type get_type_code() { return START_EVENT_V3;}
|
||||
my_off_t get_header_len(my_off_t l __attribute__((unused)))
|
||||
{ return LOG_EVENT_MINIMAL_HEADER_LEN; }
|
||||
|
@ -2926,7 +2925,7 @@ Intvar_log_event(THD* thd_arg,uchar type_arg, ulonglong val_arg,
|
|||
|
||||
Intvar_log_event(const char* buf,
|
||||
const Format_description_log_event *description_event);
|
||||
~Intvar_log_event() {}
|
||||
~Intvar_log_event() = default;
|
||||
Log_event_type get_type_code() { return INTVAR_EVENT;}
|
||||
const char* get_var_type_name();
|
||||
int get_data_size() { return 9; /* sizeof(type) + sizeof(val) */;}
|
||||
|
@ -3007,7 +3006,7 @@ class Rand_log_event: public Log_event
|
|||
|
||||
Rand_log_event(const char* buf,
|
||||
const Format_description_log_event *description_event);
|
||||
~Rand_log_event() {}
|
||||
~Rand_log_event() = default;
|
||||
Log_event_type get_type_code() { return RAND_EVENT;}
|
||||
int get_data_size() { return 16; /* sizeof(ulonglong) * 2*/ }
|
||||
#ifdef MYSQL_SERVER
|
||||
|
@ -3087,7 +3086,7 @@ public:
|
|||
|
||||
Xid_log_event(const char* buf,
|
||||
const Format_description_log_event *description_event);
|
||||
~Xid_log_event() {}
|
||||
~Xid_log_event() = default;
|
||||
Log_event_type get_type_code() { return XID_EVENT;}
|
||||
int get_data_size() { return sizeof(xid); }
|
||||
#ifdef MYSQL_SERVER
|
||||
|
@ -3306,7 +3305,7 @@ public:
|
|||
|
||||
User_var_log_event(const char* buf, uint event_len,
|
||||
const Format_description_log_event *description_event);
|
||||
~User_var_log_event() {}
|
||||
~User_var_log_event() = default;
|
||||
Log_event_type get_type_code() { return USER_VAR_EVENT;}
|
||||
#ifdef MYSQL_SERVER
|
||||
bool write();
|
||||
|
@ -3356,7 +3355,7 @@ public:
|
|||
const Format_description_log_event *description_event):
|
||||
Log_event(buf, description_event)
|
||||
{}
|
||||
~Stop_log_event() {}
|
||||
~Stop_log_event() = default;
|
||||
Log_event_type get_type_code() { return STOP_EVENT;}
|
||||
bool is_valid() const { return 1; }
|
||||
|
||||
|
@ -3622,7 +3621,7 @@ public:
|
|||
#endif
|
||||
Gtid_log_event(const char *buf, uint event_len,
|
||||
const Format_description_log_event *description_event);
|
||||
~Gtid_log_event() { }
|
||||
~Gtid_log_event() = default;
|
||||
Log_event_type get_type_code() { return GTID_EVENT; }
|
||||
enum_logged_status logged_status() { return LOGGED_NO_DATA; }
|
||||
int get_data_size()
|
||||
|
@ -3875,7 +3874,7 @@ public:
|
|||
Append_block_log_event(const char* buf, uint event_len,
|
||||
const Format_description_log_event
|
||||
*description_event);
|
||||
~Append_block_log_event() {}
|
||||
~Append_block_log_event() = default;
|
||||
Log_event_type get_type_code() { return APPEND_BLOCK_EVENT;}
|
||||
int get_data_size() { return block_len + APPEND_BLOCK_HEADER_LEN ;}
|
||||
bool is_valid() const { return block != 0; }
|
||||
|
@ -3916,7 +3915,7 @@ public:
|
|||
|
||||
Delete_file_log_event(const char* buf, uint event_len,
|
||||
const Format_description_log_event* description_event);
|
||||
~Delete_file_log_event() {}
|
||||
~Delete_file_log_event() = default;
|
||||
Log_event_type get_type_code() { return DELETE_FILE_EVENT;}
|
||||
int get_data_size() { return DELETE_FILE_HEADER_LEN ;}
|
||||
bool is_valid() const { return file_id != 0; }
|
||||
|
@ -3956,7 +3955,7 @@ public:
|
|||
Execute_load_log_event(const char* buf, uint event_len,
|
||||
const Format_description_log_event
|
||||
*description_event);
|
||||
~Execute_load_log_event() {}
|
||||
~Execute_load_log_event() = default;
|
||||
Log_event_type get_type_code() { return EXEC_LOAD_EVENT;}
|
||||
int get_data_size() { return EXEC_LOAD_HEADER_LEN ;}
|
||||
bool is_valid() const { return file_id != 0; }
|
||||
|
@ -3996,7 +3995,7 @@ public:
|
|||
Begin_load_query_log_event(const char* buf, uint event_len,
|
||||
const Format_description_log_event
|
||||
*description_event);
|
||||
~Begin_load_query_log_event() {}
|
||||
~Begin_load_query_log_event() = default;
|
||||
Log_event_type get_type_code() { return BEGIN_LOAD_QUERY_EVENT; }
|
||||
private:
|
||||
#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)
|
||||
|
@ -4054,7 +4053,7 @@ public:
|
|||
Execute_load_query_log_event(const char* buf, uint event_len,
|
||||
const Format_description_log_event
|
||||
*description_event);
|
||||
~Execute_load_query_log_event() {}
|
||||
~Execute_load_query_log_event() = default;
|
||||
|
||||
Log_event_type get_type_code() { return EXECUTE_LOAD_QUERY_EVENT; }
|
||||
bool is_valid() const { return Query_log_event::is_valid() && file_id != 0; }
|
||||
|
@ -4092,7 +4091,7 @@ public:
|
|||
{}
|
||||
/* constructor for hopelessly corrupted events */
|
||||
Unknown_log_event(): Log_event(), what(ENCRYPTED) {}
|
||||
~Unknown_log_event() {}
|
||||
~Unknown_log_event() = default;
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
Log_event_type get_type_code() { return UNKNOWN_EVENT;}
|
||||
bool is_valid() const { return 1; }
|
||||
|
|
14
sql/mdl.cc
14
sql/mdl.cc
|
@ -415,7 +415,7 @@ public:
|
|||
virtual bool needs_notification(const MDL_ticket *ticket) const = 0;
|
||||
virtual bool conflicting_locks(const MDL_ticket *ticket) const = 0;
|
||||
virtual bitmap_t hog_lock_types_bitmap() const = 0;
|
||||
virtual ~MDL_lock_strategy() {}
|
||||
virtual ~MDL_lock_strategy() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -426,7 +426,7 @@ public:
|
|||
*/
|
||||
struct MDL_scoped_lock : public MDL_lock_strategy
|
||||
{
|
||||
MDL_scoped_lock() {}
|
||||
MDL_scoped_lock() = default;
|
||||
virtual const bitmap_t *incompatible_granted_types_bitmap() const
|
||||
{ return m_granted_incompatible; }
|
||||
virtual const bitmap_t *incompatible_waiting_types_bitmap() const
|
||||
|
@ -463,7 +463,7 @@ public:
|
|||
*/
|
||||
struct MDL_object_lock : public MDL_lock_strategy
|
||||
{
|
||||
MDL_object_lock() {}
|
||||
MDL_object_lock() = default;
|
||||
virtual const bitmap_t *incompatible_granted_types_bitmap() const
|
||||
{ return m_granted_incompatible; }
|
||||
virtual const bitmap_t *incompatible_waiting_types_bitmap() const
|
||||
|
@ -507,7 +507,7 @@ public:
|
|||
|
||||
struct MDL_backup_lock: public MDL_lock_strategy
|
||||
{
|
||||
MDL_backup_lock() {}
|
||||
MDL_backup_lock() = default;
|
||||
virtual const bitmap_t *incompatible_granted_types_bitmap() const
|
||||
{ return m_granted_incompatible; }
|
||||
virtual const bitmap_t *incompatible_waiting_types_bitmap() const
|
||||
|
@ -1876,13 +1876,11 @@ bool MDL_lock::has_pending_conflicting_lock(enum_mdl_type type)
|
|||
|
||||
|
||||
MDL_wait_for_graph_visitor::~MDL_wait_for_graph_visitor()
|
||||
{
|
||||
}
|
||||
= default;
|
||||
|
||||
|
||||
MDL_wait_for_subgraph::~MDL_wait_for_subgraph()
|
||||
{
|
||||
}
|
||||
= default;
|
||||
|
||||
/**
|
||||
Check if ticket represents metadata lock of "stronger" or equal type
|
||||
|
|
|
@ -60,7 +60,7 @@ typedef unsigned short mdl_bitmap_t;
|
|||
class MDL_context_owner
|
||||
{
|
||||
public:
|
||||
virtual ~MDL_context_owner() {}
|
||||
virtual ~MDL_context_owner() = default;
|
||||
|
||||
/**
|
||||
Enter a condition wait.
|
||||
|
@ -471,7 +471,7 @@ public:
|
|||
{
|
||||
mdl_key_init(namespace_arg, db_arg, name_arg);
|
||||
}
|
||||
MDL_key() {} /* To use when part of MDL_request. */
|
||||
MDL_key() = default; /* To use when part of MDL_request. */
|
||||
|
||||
/**
|
||||
Get thread state name to be used in case when we have to
|
||||
|
@ -640,7 +640,7 @@ public:
|
|||
|
||||
virtual bool inspect_edge(MDL_context *dest) = 0;
|
||||
virtual ~MDL_wait_for_graph_visitor();
|
||||
MDL_wait_for_graph_visitor() {}
|
||||
MDL_wait_for_graph_visitor() = default;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -799,7 +799,7 @@ private:
|
|||
class MDL_savepoint
|
||||
{
|
||||
public:
|
||||
MDL_savepoint() {};
|
||||
MDL_savepoint() = default;;
|
||||
|
||||
private:
|
||||
MDL_savepoint(MDL_ticket *stmt_ticket, MDL_ticket *trans_ticket)
|
||||
|
|
|
@ -204,7 +204,7 @@ class Mrr_reader
|
|||
public:
|
||||
virtual int get_next(range_id_t *range_info) = 0;
|
||||
virtual int refill_buffer(bool initial) = 0;
|
||||
virtual ~Mrr_reader() {}; /* just to remove compiler warning */
|
||||
virtual ~Mrr_reader() = default; /* just to remove compiler warning */
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -92,7 +92,7 @@ public:
|
|||
public:
|
||||
/* This function will be called in the target thread */
|
||||
virtual void call_in_target_thread()= 0;
|
||||
virtual ~Apc_call() {}
|
||||
virtual ~Apc_call() = default;
|
||||
};
|
||||
|
||||
/* Make a call in the target thread (see function definition for details) */
|
||||
|
|
|
@ -392,12 +392,14 @@ protected:
|
|||
|
||||
public:
|
||||
|
||||
#ifdef ENABLED_JSON_WRITER_CONSISTENCY_CHECKS
|
||||
virtual ~Json_writer_struct()
|
||||
{
|
||||
#ifdef ENABLED_JSON_WRITER_CONSISTENCY_CHECKS
|
||||
named_items_expectation.pop_back();
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
virtual ~Json_writer_struct() = default;
|
||||
#endif
|
||||
|
||||
bool trace_started() const
|
||||
{
|
||||
|
|
|
@ -1212,8 +1212,7 @@ class Buffered_log : public Sql_alloc
|
|||
public:
|
||||
Buffered_log(enum loglevel level, const char *message);
|
||||
|
||||
~Buffered_log()
|
||||
{}
|
||||
~Buffered_log() = default;
|
||||
|
||||
void print(void);
|
||||
|
||||
|
@ -1273,11 +1272,9 @@ void Buffered_log::print()
|
|||
class Buffered_logs
|
||||
{
|
||||
public:
|
||||
Buffered_logs()
|
||||
{}
|
||||
Buffered_logs() = default;
|
||||
|
||||
~Buffered_logs()
|
||||
{}
|
||||
~Buffered_logs() = default;
|
||||
|
||||
void init();
|
||||
void cleanup();
|
||||
|
@ -2569,11 +2566,9 @@ void close_connection(THD *thd, uint sql_errno)
|
|||
thd->protocol->net_send_error(thd, sql_errno, ER_DEFAULT(sql_errno), NULL);
|
||||
thd->print_aborted_warning(lvl, ER_DEFAULT(sql_errno));
|
||||
}
|
||||
else
|
||||
thd->print_aborted_warning(lvl, (thd->main_security_ctx.user ?
|
||||
"This connection closed normally" :
|
||||
"This connection closed normally without"
|
||||
" authentication"));
|
||||
else if (!thd->main_security_ctx.user)
|
||||
thd->print_aborted_warning(lvl, "This connection closed normally without"
|
||||
" authentication");
|
||||
|
||||
thd->disconnect();
|
||||
|
||||
|
|
|
@ -2227,7 +2227,7 @@ public:
|
|||
{ return (void*) alloc_root(mem_root, (uint) size); }
|
||||
static void operator delete(void *ptr,size_t size) { TRASH_FREE(ptr, size); }
|
||||
static void operator delete(void *ptr, MEM_ROOT *mem_root) { /* Never called */ }
|
||||
virtual ~TABLE_READ_PLAN() {} /* Remove gcc warning */
|
||||
virtual ~TABLE_READ_PLAN() = default; /* Remove gcc warning */
|
||||
/**
|
||||
Add basic info for this TABLE_READ_PLAN to the optimizer trace.
|
||||
|
||||
|
@ -2262,7 +2262,7 @@ public:
|
|||
TRP_RANGE(SEL_ARG *key_arg, uint idx_arg, uint mrr_flags_arg)
|
||||
: key(key_arg), key_idx(idx_arg), mrr_flags(mrr_flags_arg)
|
||||
{}
|
||||
virtual ~TRP_RANGE() {} /* Remove gcc warning */
|
||||
virtual ~TRP_RANGE() = default; /* Remove gcc warning */
|
||||
|
||||
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
|
||||
MEM_ROOT *parent_alloc)
|
||||
|
@ -2309,8 +2309,8 @@ void TRP_RANGE::trace_basic_info(PARAM *param,
|
|||
class TRP_ROR_INTERSECT : public TABLE_READ_PLAN
|
||||
{
|
||||
public:
|
||||
TRP_ROR_INTERSECT() {} /* Remove gcc warning */
|
||||
virtual ~TRP_ROR_INTERSECT() {} /* Remove gcc warning */
|
||||
TRP_ROR_INTERSECT() = default; /* Remove gcc warning */
|
||||
virtual ~TRP_ROR_INTERSECT() = default; /* Remove gcc warning */
|
||||
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
|
||||
MEM_ROOT *parent_alloc);
|
||||
|
||||
|
@ -2335,8 +2335,8 @@ public:
|
|||
class TRP_ROR_UNION : public TABLE_READ_PLAN
|
||||
{
|
||||
public:
|
||||
TRP_ROR_UNION() {} /* Remove gcc warning */
|
||||
virtual ~TRP_ROR_UNION() {} /* Remove gcc warning */
|
||||
TRP_ROR_UNION() = default; /* Remove gcc warning */
|
||||
virtual ~TRP_ROR_UNION() = default; /* Remove gcc warning */
|
||||
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
|
||||
MEM_ROOT *parent_alloc);
|
||||
TABLE_READ_PLAN **first_ror; /* array of ptrs to plans for merged scans */
|
||||
|
@ -2368,8 +2368,8 @@ void TRP_ROR_UNION::trace_basic_info(PARAM *param,
|
|||
class TRP_INDEX_INTERSECT : public TABLE_READ_PLAN
|
||||
{
|
||||
public:
|
||||
TRP_INDEX_INTERSECT() {} /* Remove gcc warning */
|
||||
virtual ~TRP_INDEX_INTERSECT() {} /* Remove gcc warning */
|
||||
TRP_INDEX_INTERSECT() = default; /* Remove gcc warning */
|
||||
virtual ~TRP_INDEX_INTERSECT() = default; /* Remove gcc warning */
|
||||
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
|
||||
MEM_ROOT *parent_alloc);
|
||||
TRP_RANGE **range_scans; /* array of ptrs to plans of intersected scans */
|
||||
|
@ -2405,8 +2405,8 @@ void TRP_INDEX_INTERSECT::trace_basic_info(PARAM *param,
|
|||
class TRP_INDEX_MERGE : public TABLE_READ_PLAN
|
||||
{
|
||||
public:
|
||||
TRP_INDEX_MERGE() {} /* Remove gcc warning */
|
||||
virtual ~TRP_INDEX_MERGE() {} /* Remove gcc warning */
|
||||
TRP_INDEX_MERGE() = default; /* Remove gcc warning */
|
||||
virtual ~TRP_INDEX_MERGE() = default; /* Remove gcc warning */
|
||||
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
|
||||
MEM_ROOT *parent_alloc);
|
||||
TRP_RANGE **range_scans; /* array of ptrs to plans of merged scans */
|
||||
|
@ -2474,7 +2474,7 @@ public:
|
|||
if (key_infix_len)
|
||||
memcpy(this->key_infix, key_infix_arg, key_infix_len);
|
||||
}
|
||||
virtual ~TRP_GROUP_MIN_MAX() {} /* Remove gcc warning */
|
||||
virtual ~TRP_GROUP_MIN_MAX() = default; /* Remove gcc warning */
|
||||
|
||||
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
|
||||
MEM_ROOT *parent_alloc);
|
||||
|
@ -9714,7 +9714,6 @@ tree_or(RANGE_OPT_PARAM *param,SEL_TREE *tree1,SEL_TREE *tree2)
|
|||
DBUG_RETURN(tree2);
|
||||
|
||||
SEL_TREE *result= NULL;
|
||||
key_map result_keys;
|
||||
key_map ored_keys;
|
||||
SEL_TREE *rtree[2]= {NULL,NULL};
|
||||
SEL_IMERGE *imerge[2]= {NULL, NULL};
|
||||
|
|
|
@ -324,7 +324,7 @@ public:
|
|||
/* See RANGE_OPT_PARAM::alloced_sel_args */
|
||||
enum { MAX_SEL_ARGS = 16000 };
|
||||
|
||||
SEL_ARG() {}
|
||||
SEL_ARG() = default;
|
||||
SEL_ARG(SEL_ARG &);
|
||||
SEL_ARG(Field *,const uchar *, const uchar *);
|
||||
SEL_ARG(Field *field, uint8 part, uchar *min_value, uchar *max_value,
|
||||
|
@ -934,7 +934,7 @@ public:
|
|||
uint used_key_parts;
|
||||
|
||||
QUICK_SELECT_I();
|
||||
virtual ~QUICK_SELECT_I(){};
|
||||
virtual ~QUICK_SELECT_I() = default;;
|
||||
|
||||
/*
|
||||
Do post-constructor initialization.
|
||||
|
|
|
@ -218,7 +218,7 @@ class Dep_value : public Sql_alloc
|
|||
{
|
||||
public:
|
||||
Dep_value(): bound(FALSE) {}
|
||||
virtual ~Dep_value(){} /* purecov: inspected */ /* stop compiler warnings */
|
||||
virtual ~Dep_value() = default; /* purecov: inspected */
|
||||
|
||||
bool is_bound() { return bound; }
|
||||
void make_bound() { bound= TRUE; }
|
||||
|
@ -342,7 +342,7 @@ const size_t Dep_value::iterator_size=
|
|||
class Dep_module : public Sql_alloc
|
||||
{
|
||||
public:
|
||||
virtual ~Dep_module(){} /* purecov: inspected */ /* stop compiler warnings */
|
||||
virtual ~Dep_module() = default; /* purecov: inspected */
|
||||
|
||||
/* Mark as bound. Currently is non-virtual and does nothing */
|
||||
void make_bound() {};
|
||||
|
|
|
@ -55,8 +55,8 @@ struct File_option
|
|||
class Unknown_key_hook
|
||||
{
|
||||
public:
|
||||
Unknown_key_hook() {} /* Remove gcc warning */
|
||||
virtual ~Unknown_key_hook() {} /* Remove gcc warning */
|
||||
Unknown_key_hook() = default; /* Remove gcc warning */
|
||||
virtual ~Unknown_key_hook() = default; /* Remove gcc warning */
|
||||
virtual bool process_unknown_string(const char *&unknown_key, uchar* base,
|
||||
MEM_ROOT *mem_root, const char *end)= 0;
|
||||
};
|
||||
|
@ -67,7 +67,7 @@ public:
|
|||
class File_parser_dummy_hook: public Unknown_key_hook
|
||||
{
|
||||
public:
|
||||
File_parser_dummy_hook() {} /* Remove gcc warning */
|
||||
File_parser_dummy_hook() = default; /* Remove gcc warning */
|
||||
virtual bool process_unknown_string(const char *&unknown_key, uchar* base,
|
||||
MEM_ROOT *mem_root, const char *end);
|
||||
};
|
||||
|
|
|
@ -159,7 +159,7 @@ public:
|
|||
empty(part_elem->empty),
|
||||
type(CONVENTIONAL)
|
||||
{}
|
||||
~partition_element() {}
|
||||
~partition_element() = default;
|
||||
|
||||
part_column_list_val& get_col_val(uint idx)
|
||||
{
|
||||
|
|
|
@ -336,7 +336,7 @@ public:
|
|||
part_field_list.empty();
|
||||
subpart_field_list.empty();
|
||||
}
|
||||
~partition_info() {}
|
||||
~partition_info() = default;
|
||||
|
||||
partition_info *get_clone(THD *thd, bool empty_data_and_index_file= FALSE);
|
||||
bool set_named_partition_bitmap(const char *part_name, size_t length);
|
||||
|
|
|
@ -90,7 +90,7 @@ protected:
|
|||
public:
|
||||
THD *thd;
|
||||
Protocol(THD *thd_arg) { init(thd_arg); }
|
||||
virtual ~Protocol() {}
|
||||
virtual ~Protocol() = default;
|
||||
void init(THD* thd_arg);
|
||||
|
||||
enum { SEND_NUM_ROWS= 1, SEND_EOF= 2 };
|
||||
|
|
|
@ -195,7 +195,7 @@ public:
|
|||
/* True if the container does not contain any element */
|
||||
virtual bool is_empty() = 0;
|
||||
|
||||
virtual ~Rowid_filter_container() {}
|
||||
virtual ~Rowid_filter_container() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -232,7 +232,7 @@ public:
|
|||
*/
|
||||
virtual bool check(char *elem) = 0;
|
||||
|
||||
virtual ~Rowid_filter() {}
|
||||
virtual ~Rowid_filter() = default;
|
||||
|
||||
bool is_empty() { return container->is_empty(); }
|
||||
|
||||
|
|
|
@ -131,9 +131,7 @@ injector::transaction::binlog_pos injector::transaction::start_pos() const
|
|||
*/
|
||||
|
||||
/* This constructor is called below */
|
||||
inline injector::injector()
|
||||
{
|
||||
}
|
||||
inline injector::injector() = default;
|
||||
|
||||
static injector *s_injector= 0;
|
||||
injector *injector::instance()
|
||||
|
|
|
@ -307,7 +307,7 @@ public:
|
|||
|
||||
private:
|
||||
explicit injector();
|
||||
~injector() { } /* Nothing needs to be done */
|
||||
~injector() = default; /* Nothing needs to be done */
|
||||
injector(injector const&); /* You're not allowed to copy injector
|
||||
instances.
|
||||
*/
|
||||
|
|
|
@ -454,7 +454,7 @@ class Repl_semi_sync_master
|
|||
|
||||
public:
|
||||
Repl_semi_sync_master();
|
||||
~Repl_semi_sync_master() {}
|
||||
~Repl_semi_sync_master() = default;
|
||||
|
||||
void cleanup();
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ class Ack_receiver : public Repl_semi_sync_base
|
|||
{
|
||||
public:
|
||||
Ack_receiver();
|
||||
~Ack_receiver() {}
|
||||
~Ack_receiver() = default;
|
||||
void cleanup();
|
||||
/**
|
||||
Notify ack receiver to receive acks on the dump session.
|
||||
|
|
|
@ -34,7 +34,7 @@ class Repl_semi_sync_slave
|
|||
:public Repl_semi_sync_base {
|
||||
public:
|
||||
Repl_semi_sync_slave() :m_slave_enabled(false) {}
|
||||
~Repl_semi_sync_slave() {}
|
||||
~Repl_semi_sync_slave() = default;
|
||||
|
||||
void set_trace_level(unsigned long trace_level) {
|
||||
m_trace_level = trace_level;
|
||||
|
|
|
@ -78,7 +78,7 @@ private:
|
|||
bool m_changed;
|
||||
|
||||
public:
|
||||
virtual ~State_tracker() {}
|
||||
virtual ~State_tracker() = default;
|
||||
|
||||
/** Getters */
|
||||
bool is_enabled() const
|
||||
|
|
|
@ -99,7 +99,7 @@ public:
|
|||
on_check_function on_check_func, on_update_function on_update_func,
|
||||
const char *substitute);
|
||||
|
||||
virtual ~sys_var() {}
|
||||
virtual ~sys_var() = default;
|
||||
|
||||
/**
|
||||
All the cleanup procedures should be performed here
|
||||
|
@ -278,8 +278,8 @@ protected:
|
|||
class set_var_base :public Sql_alloc
|
||||
{
|
||||
public:
|
||||
set_var_base() {}
|
||||
virtual ~set_var_base() {}
|
||||
set_var_base() = default;
|
||||
virtual ~set_var_base() = default;
|
||||
virtual int check(THD *thd)=0; /* To check privileges etc. */
|
||||
virtual int update(THD *thd)=0; /* To set the value */
|
||||
virtual int light_check(THD *thd) { return check(thd); } /* for PS */
|
||||
|
|
|
@ -8277,11 +8277,11 @@ ER_INVALID_DEFAULT_VALUE_FOR_FIELD 22007
|
|||
eng "Incorrect default value '%-.128T' for column '%.192s'"
|
||||
hindi "गलत डिफ़ॉल्ट मान '%-.128T' कॉलम '%.192s' के लिए"
|
||||
ER_KILL_QUERY_DENIED_ERROR
|
||||
chi "你不是查询%lu的所有者"
|
||||
eng "You are not owner of query %lu"
|
||||
ger "Sie sind nicht Eigentümer von Abfrage %lu"
|
||||
hindi "आप क्वेरी %lu के OWNER नहीं हैं"
|
||||
rus "Вы не являетесь владельцем запроса %lu"
|
||||
chi "你不是查询%lld的所有者"
|
||||
eng "You are not owner of query %lld"
|
||||
ger "Sie sind nicht Eigentümer von Abfrage %lld"
|
||||
hindi "आप क्वेरी %lld के OWNER नहीं हैं"
|
||||
rus "Вы не являетесь владельцем запроса %lld"
|
||||
ER_NO_EIS_FOR_FIELD
|
||||
chi "没有收集无关的统计信息列'%s'"
|
||||
eng "Engine-independent statistics are not collected for column '%s'"
|
||||
|
|
15
sql/slave.cc
15
sql/slave.cc
|
@ -4179,6 +4179,21 @@ static int exec_relay_log_event(THD* thd, Relay_log_info* rli,
|
|||
int exec_res;
|
||||
Log_event_type typ= ev->get_type_code();
|
||||
|
||||
DBUG_EXECUTE_IF(
|
||||
"pause_sql_thread_on_next_event",
|
||||
{
|
||||
/*
|
||||
Temporarily unlock data_lock so we can check-in with the IO thread
|
||||
*/
|
||||
mysql_mutex_unlock(&rli->data_lock);
|
||||
DBUG_ASSERT(!debug_sync_set_action(
|
||||
thd,
|
||||
STRING_WITH_LEN(
|
||||
"now SIGNAL paused_on_event WAIT_FOR sql_thread_continue")));
|
||||
DBUG_SET("-d,pause_sql_thread_on_next_event");
|
||||
mysql_mutex_lock(&rli->data_lock);
|
||||
});
|
||||
|
||||
/*
|
||||
Even if we don't execute this event, we keep the master timestamp,
|
||||
so that seconds behind master shows correct delta (there are events
|
||||
|
|
2
sql/sp.h
2
sql/sp.h
|
@ -119,7 +119,7 @@ public: // TODO: make it private or protected
|
|||
const;
|
||||
|
||||
public:
|
||||
virtual ~Sp_handler() {}
|
||||
virtual ~Sp_handler() = default;
|
||||
static const Sp_handler *handler(enum enum_sql_command cmd);
|
||||
static const Sp_handler *handler(enum_sp_type type);
|
||||
static const Sp_handler *handler(MDL_key::enum_mdl_namespace ns);
|
||||
|
|
|
@ -124,8 +124,7 @@ public:
|
|||
/** Create temporary sp_name object from MDL key. Store in qname_buff */
|
||||
sp_name(const MDL_key *key, char *qname_buff);
|
||||
|
||||
~sp_name()
|
||||
{}
|
||||
~sp_name() = default;
|
||||
};
|
||||
|
||||
|
||||
|
@ -1303,8 +1302,7 @@ public:
|
|||
m_query.length= 0;
|
||||
}
|
||||
|
||||
virtual ~sp_instr_stmt()
|
||||
{};
|
||||
virtual ~sp_instr_stmt() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1339,8 +1337,7 @@ public:
|
|||
m_lex_keeper(lex, lex_resp)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_set()
|
||||
{}
|
||||
virtual ~sp_instr_set() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1383,8 +1380,7 @@ public:
|
|||
m_field_offset(field_offset)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_set_row_field()
|
||||
{}
|
||||
virtual ~sp_instr_set_row_field() = default;
|
||||
|
||||
virtual int exec_core(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1426,8 +1422,7 @@ public:
|
|||
m_field_name(field_name)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_set_row_field_by_name()
|
||||
{}
|
||||
virtual ~sp_instr_set_row_field_by_name() = default;
|
||||
|
||||
virtual int exec_core(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1453,8 +1448,7 @@ public:
|
|||
value(val), m_lex_keeper(lex, TRUE)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_set_trigger_field()
|
||||
{}
|
||||
virtual ~sp_instr_set_trigger_field() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1497,8 +1491,7 @@ public:
|
|||
m_dest(dest), m_cont_dest(0), m_optdest(0), m_cont_optdest(0)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_opt_meta()
|
||||
{}
|
||||
virtual ~sp_instr_opt_meta() = default;
|
||||
|
||||
virtual void set_destination(uint old_dest, uint new_dest)
|
||||
= 0;
|
||||
|
@ -1527,8 +1520,7 @@ public:
|
|||
: sp_instr_opt_meta(ip, ctx, dest)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_jump()
|
||||
{}
|
||||
virtual ~sp_instr_jump() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1579,8 +1571,7 @@ public:
|
|||
m_lex_keeper(lex, TRUE)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_jump_if_not()
|
||||
{}
|
||||
virtual ~sp_instr_jump_if_not() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1627,8 +1618,7 @@ public:
|
|||
: sp_instr(ip, ctx)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_preturn()
|
||||
{}
|
||||
virtual ~sp_instr_preturn() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1659,8 +1649,7 @@ public:
|
|||
m_lex_keeper(lex, TRUE)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_freturn()
|
||||
{}
|
||||
virtual ~sp_instr_freturn() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1765,8 +1754,7 @@ public:
|
|||
: sp_instr(ip, ctx), m_count(count)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_hpop()
|
||||
{}
|
||||
virtual ~sp_instr_hpop() = default;
|
||||
|
||||
void update_count(uint count)
|
||||
{
|
||||
|
@ -1799,8 +1787,7 @@ public:
|
|||
m_frame(ctx->current_var_count())
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_hreturn()
|
||||
{}
|
||||
virtual ~sp_instr_hreturn() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1836,8 +1823,7 @@ public:
|
|||
: sp_instr(ip, ctx), m_lex_keeper(lex, TRUE), m_cursor(offset)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_cpush()
|
||||
{}
|
||||
virtual ~sp_instr_cpush() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1871,8 +1857,7 @@ public:
|
|||
: sp_instr(ip, ctx), m_count(count)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_cpop()
|
||||
{}
|
||||
virtual ~sp_instr_cpop() = default;
|
||||
|
||||
void update_count(uint count)
|
||||
{
|
||||
|
@ -1904,8 +1889,7 @@ public:
|
|||
: sp_instr(ip, ctx), m_cursor(c)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_copen()
|
||||
{}
|
||||
virtual ~sp_instr_copen() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1942,8 +1926,7 @@ public:
|
|||
m_cursor(coffs),
|
||||
m_var(voffs)
|
||||
{}
|
||||
virtual ~sp_instr_cursor_copy_struct()
|
||||
{}
|
||||
virtual ~sp_instr_cursor_copy_struct() = default;
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
virtual int exec_core(THD *thd, uint *nextp);
|
||||
virtual void print(String *str);
|
||||
|
@ -1965,8 +1948,7 @@ public:
|
|||
: sp_instr(ip, ctx), m_cursor(c)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_cclose()
|
||||
{}
|
||||
virtual ~sp_instr_cclose() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -1995,8 +1977,7 @@ public:
|
|||
m_varlist.empty();
|
||||
}
|
||||
|
||||
virtual ~sp_instr_cfetch()
|
||||
{}
|
||||
virtual ~sp_instr_cfetch() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -2034,8 +2015,7 @@ public:
|
|||
sp_instr_agg_cfetch(uint ip, sp_pcontext *ctx)
|
||||
: sp_instr(ip, ctx){}
|
||||
|
||||
virtual ~sp_instr_agg_cfetch()
|
||||
{}
|
||||
virtual ~sp_instr_agg_cfetch() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -2060,8 +2040,7 @@ public:
|
|||
: sp_instr(ip, ctx), m_errcode(errcode)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_error()
|
||||
{}
|
||||
virtual ~sp_instr_error() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
@ -2094,8 +2073,7 @@ public:
|
|||
m_lex_keeper(lex, TRUE)
|
||||
{}
|
||||
|
||||
virtual ~sp_instr_set_case_expr()
|
||||
{}
|
||||
virtual ~sp_instr_set_case_expr() = default;
|
||||
|
||||
virtual int execute(THD *thd, uint *nextp);
|
||||
|
||||
|
|
|
@ -214,8 +214,8 @@ struct Geometry_buffer;
|
|||
class Geometry
|
||||
{
|
||||
public:
|
||||
Geometry() {} /* Remove gcc warning */
|
||||
virtual ~Geometry() {} /* Remove gcc warning */
|
||||
Geometry() = default; /* Remove gcc warning */
|
||||
virtual ~Geometry() = default; /* Remove gcc warning */
|
||||
static void *operator new(size_t size, void *buffer)
|
||||
{
|
||||
return buffer;
|
||||
|
@ -397,8 +397,8 @@ protected:
|
|||
class Gis_point: public Geometry
|
||||
{
|
||||
public:
|
||||
Gis_point() {} /* Remove gcc warning */
|
||||
virtual ~Gis_point() {} /* Remove gcc warning */
|
||||
Gis_point() = default; /* Remove gcc warning */
|
||||
virtual ~Gis_point() = default; /* Remove gcc warning */
|
||||
uint32 get_data_size() const;
|
||||
bool init_from_wkt(Gis_read_stream *trs, String *wkb);
|
||||
uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res);
|
||||
|
@ -467,8 +467,8 @@ public:
|
|||
class Gis_line_string: public Geometry
|
||||
{
|
||||
public:
|
||||
Gis_line_string() {} /* Remove gcc warning */
|
||||
virtual ~Gis_line_string() {} /* Remove gcc warning */
|
||||
Gis_line_string() = default; /* Remove gcc warning */
|
||||
virtual ~Gis_line_string() = default; /* Remove gcc warning */
|
||||
uint32 get_data_size() const;
|
||||
bool init_from_wkt(Gis_read_stream *trs, String *wkb);
|
||||
uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res);
|
||||
|
@ -500,8 +500,8 @@ public:
|
|||
class Gis_polygon: public Geometry
|
||||
{
|
||||
public:
|
||||
Gis_polygon() {} /* Remove gcc warning */
|
||||
virtual ~Gis_polygon() {} /* Remove gcc warning */
|
||||
Gis_polygon() = default; /* Remove gcc warning */
|
||||
virtual ~Gis_polygon() = default; /* Remove gcc warning */
|
||||
uint32 get_data_size() const;
|
||||
bool init_from_wkt(Gis_read_stream *trs, String *wkb);
|
||||
uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res);
|
||||
|
@ -537,8 +537,8 @@ class Gis_multi_point: public Geometry
|
|||
(uint32) (UINT_MAX32 - WKB_HEADER_SIZE - 4 /* n_points */) /
|
||||
(WKB_HEADER_SIZE + POINT_DATA_SIZE);
|
||||
public:
|
||||
Gis_multi_point() {} /* Remove gcc warning */
|
||||
virtual ~Gis_multi_point() {} /* Remove gcc warning */
|
||||
Gis_multi_point() = default; /* Remove gcc warning */
|
||||
virtual ~Gis_multi_point() = default; /* Remove gcc warning */
|
||||
uint32 get_data_size() const;
|
||||
bool init_from_wkt(Gis_read_stream *trs, String *wkb);
|
||||
uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res);
|
||||
|
@ -568,8 +568,8 @@ public:
|
|||
class Gis_multi_line_string: public Geometry
|
||||
{
|
||||
public:
|
||||
Gis_multi_line_string() {} /* Remove gcc warning */
|
||||
virtual ~Gis_multi_line_string() {} /* Remove gcc warning */
|
||||
Gis_multi_line_string() = default; /* Remove gcc warning */
|
||||
virtual ~Gis_multi_line_string() = default; /* Remove gcc warning */
|
||||
uint32 get_data_size() const;
|
||||
bool init_from_wkt(Gis_read_stream *trs, String *wkb);
|
||||
uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res);
|
||||
|
@ -599,8 +599,8 @@ public:
|
|||
class Gis_multi_polygon: public Geometry
|
||||
{
|
||||
public:
|
||||
Gis_multi_polygon() {} /* Remove gcc warning */
|
||||
virtual ~Gis_multi_polygon() {} /* Remove gcc warning */
|
||||
Gis_multi_polygon() = default; /* Remove gcc warning */
|
||||
virtual ~Gis_multi_polygon() = default; /* Remove gcc warning */
|
||||
uint32 get_data_size() const;
|
||||
bool init_from_wkt(Gis_read_stream *trs, String *wkb);
|
||||
uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res);
|
||||
|
@ -630,8 +630,8 @@ public:
|
|||
class Gis_geometry_collection: public Geometry
|
||||
{
|
||||
public:
|
||||
Gis_geometry_collection() {} /* Remove gcc warning */
|
||||
virtual ~Gis_geometry_collection() {} /* Remove gcc warning */
|
||||
Gis_geometry_collection() = default; /* Remove gcc warning */
|
||||
virtual ~Gis_geometry_collection() = default; /* Remove gcc warning */
|
||||
uint32 get_data_size() const;
|
||||
bool init_from_wkt(Gis_read_stream *trs, String *wkb);
|
||||
uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res);
|
||||
|
|
|
@ -200,7 +200,7 @@ class ACL_USER :public ACL_USER_BASE,
|
|||
{
|
||||
public:
|
||||
|
||||
ACL_USER() { }
|
||||
ACL_USER() = default;
|
||||
ACL_USER(THD *thd, const LEX_USER &combo,
|
||||
const Account_options &options,
|
||||
const privilege_t privileges);
|
||||
|
@ -338,7 +338,7 @@ class ACL_PROXY_USER :public ACL_ACCESS
|
|||
MYSQL_PROXIES_PRIV_GRANTOR,
|
||||
MYSQL_PROXIES_PRIV_TIMESTAMP } proxy_table_fields;
|
||||
public:
|
||||
ACL_PROXY_USER () {};
|
||||
ACL_PROXY_USER () = default;
|
||||
|
||||
void init(const char *host_arg, const char *user_arg,
|
||||
const char *proxied_host_arg, const char *proxied_user_arg,
|
||||
|
@ -929,7 +929,7 @@ class User_table: public Grant_table_base
|
|||
virtual longlong get_password_lifetime () const = 0;
|
||||
virtual int set_password_lifetime (longlong x) const = 0;
|
||||
|
||||
virtual ~User_table() {}
|
||||
virtual ~User_table() = default;
|
||||
private:
|
||||
friend class Grant_tables;
|
||||
virtual int setup_sysvars() const = 0;
|
||||
|
@ -1278,7 +1278,7 @@ class User_table_tabular: public User_table
|
|||
return 1;
|
||||
}
|
||||
|
||||
virtual ~User_table_tabular() {}
|
||||
virtual ~User_table_tabular() = default;
|
||||
private:
|
||||
friend class Grant_tables;
|
||||
|
||||
|
@ -1689,7 +1689,7 @@ class User_table_json: public User_table
|
|||
int set_password_expired (bool x) const
|
||||
{ return x ? set_password_last_changed(0) : 0; }
|
||||
|
||||
~User_table_json() {}
|
||||
~User_table_json() = default;
|
||||
private:
|
||||
friend class Grant_tables;
|
||||
static const uint JSON_SIZE=1024;
|
||||
|
@ -5318,7 +5318,7 @@ public:
|
|||
GRANT_NAME(const char *h, const char *d,const char *u,
|
||||
const char *t, privilege_t p, bool is_routine);
|
||||
GRANT_NAME (TABLE *form, bool is_routine);
|
||||
virtual ~GRANT_NAME() {};
|
||||
virtual ~GRANT_NAME() = default;
|
||||
virtual bool ok() { return privs != NO_ACL; }
|
||||
void set_user_details(const char *h, const char *d,
|
||||
const char *u, const char *t,
|
||||
|
@ -11602,8 +11602,7 @@ public:
|
|||
: is_grave(FALSE)
|
||||
{}
|
||||
|
||||
virtual ~Silence_routine_definer_errors()
|
||||
{}
|
||||
virtual ~Silence_routine_definer_errors() = default;
|
||||
|
||||
virtual bool handle_condition(THD *thd,
|
||||
uint sql_errno,
|
||||
|
|
|
@ -184,11 +184,9 @@ enum ACL_internal_access_result
|
|||
class ACL_internal_table_access
|
||||
{
|
||||
public:
|
||||
ACL_internal_table_access()
|
||||
{}
|
||||
ACL_internal_table_access() = default;
|
||||
|
||||
virtual ~ACL_internal_table_access()
|
||||
{}
|
||||
virtual ~ACL_internal_table_access() = default;
|
||||
|
||||
/**
|
||||
Check access to an internal table.
|
||||
|
@ -223,11 +221,9 @@ public:
|
|||
class ACL_internal_schema_access
|
||||
{
|
||||
public:
|
||||
ACL_internal_schema_access()
|
||||
{}
|
||||
ACL_internal_schema_access() = default;
|
||||
|
||||
virtual ~ACL_internal_schema_access()
|
||||
{}
|
||||
virtual ~ACL_internal_schema_access() = default;
|
||||
|
||||
/**
|
||||
Check access to an internal schema.
|
||||
|
|
|
@ -34,11 +34,9 @@ public:
|
|||
/**
|
||||
Constructor, used to represent a ANALYZE TABLE statement.
|
||||
*/
|
||||
Sql_cmd_analyze_table()
|
||||
{}
|
||||
Sql_cmd_analyze_table() = default;
|
||||
|
||||
~Sql_cmd_analyze_table()
|
||||
{}
|
||||
~Sql_cmd_analyze_table() = default;
|
||||
|
||||
bool execute(THD *thd);
|
||||
|
||||
|
@ -59,11 +57,9 @@ public:
|
|||
/**
|
||||
Constructor, used to represent a CHECK TABLE statement.
|
||||
*/
|
||||
Sql_cmd_check_table()
|
||||
{}
|
||||
Sql_cmd_check_table() = default;
|
||||
|
||||
~Sql_cmd_check_table()
|
||||
{}
|
||||
~Sql_cmd_check_table() = default;
|
||||
|
||||
bool execute(THD *thd);
|
||||
|
||||
|
@ -83,11 +79,9 @@ public:
|
|||
/**
|
||||
Constructor, used to represent a OPTIMIZE TABLE statement.
|
||||
*/
|
||||
Sql_cmd_optimize_table()
|
||||
{}
|
||||
Sql_cmd_optimize_table() = default;
|
||||
|
||||
~Sql_cmd_optimize_table()
|
||||
{}
|
||||
~Sql_cmd_optimize_table() = default;
|
||||
|
||||
bool execute(THD *thd);
|
||||
|
||||
|
@ -108,11 +102,9 @@ public:
|
|||
/**
|
||||
Constructor, used to represent a REPAIR TABLE statement.
|
||||
*/
|
||||
Sql_cmd_repair_table()
|
||||
{}
|
||||
Sql_cmd_repair_table() = default;
|
||||
|
||||
~Sql_cmd_repair_table()
|
||||
{}
|
||||
~Sql_cmd_repair_table() = default;
|
||||
|
||||
bool execute(THD *thd);
|
||||
|
||||
|
|
|
@ -355,11 +355,9 @@ protected:
|
|||
/**
|
||||
Constructor.
|
||||
*/
|
||||
Sql_cmd_common_alter_table()
|
||||
{}
|
||||
Sql_cmd_common_alter_table() = default;
|
||||
|
||||
virtual ~Sql_cmd_common_alter_table()
|
||||
{}
|
||||
virtual ~Sql_cmd_common_alter_table() = default;
|
||||
|
||||
virtual enum_sql_command sql_command_code() const
|
||||
{
|
||||
|
@ -378,11 +376,9 @@ public:
|
|||
/**
|
||||
Constructor, used to represent a ALTER TABLE statement.
|
||||
*/
|
||||
Sql_cmd_alter_table()
|
||||
{}
|
||||
Sql_cmd_alter_table() = default;
|
||||
|
||||
~Sql_cmd_alter_table()
|
||||
{}
|
||||
~Sql_cmd_alter_table() = default;
|
||||
|
||||
Storage_engine_name *option_storage_engine_name() { return this; }
|
||||
|
||||
|
@ -404,8 +400,7 @@ public:
|
|||
:DDL_options(options)
|
||||
{}
|
||||
|
||||
~Sql_cmd_alter_sequence()
|
||||
{}
|
||||
~Sql_cmd_alter_sequence() = default;
|
||||
|
||||
enum_sql_command sql_command_code() const
|
||||
{
|
||||
|
|
|
@ -1391,7 +1391,7 @@ public:
|
|||
: m_ot_ctx(ot_ctx_arg), m_is_active(FALSE)
|
||||
{}
|
||||
|
||||
virtual ~MDL_deadlock_handler() {}
|
||||
virtual ~MDL_deadlock_handler() = default;
|
||||
|
||||
virtual bool handle_condition(THD *thd,
|
||||
uint sql_errno,
|
||||
|
|
|
@ -392,7 +392,7 @@ inline bool setup_fields_with_no_wrap(THD *thd, Ref_ptr_array ref_pointer_array,
|
|||
class Prelocking_strategy
|
||||
{
|
||||
public:
|
||||
virtual ~Prelocking_strategy() { }
|
||||
virtual ~Prelocking_strategy() = default;
|
||||
|
||||
virtual void reset(THD *thd) { };
|
||||
virtual bool handle_routine(THD *thd, Query_tables_list *prelocking_ctx,
|
||||
|
|
|
@ -90,7 +90,7 @@ public:
|
|||
or to call set_all()/clear_all()/set_prefix()
|
||||
to initialize bitmap.
|
||||
*/
|
||||
Bitmap() { }
|
||||
Bitmap() = default;
|
||||
|
||||
explicit Bitmap(uint prefix)
|
||||
{
|
||||
|
|
|
@ -91,7 +91,7 @@ typedef my_bool (*qc_engine_callback)(THD *thd, const char *table_key,
|
|||
*/
|
||||
struct Query_cache_block_table
|
||||
{
|
||||
Query_cache_block_table() {} /* Remove gcc warning */
|
||||
Query_cache_block_table() = default; /* Remove gcc warning */
|
||||
|
||||
/**
|
||||
This node holds a position in a static table list belonging
|
||||
|
@ -122,7 +122,7 @@ struct Query_cache_block_table
|
|||
|
||||
struct Query_cache_block
|
||||
{
|
||||
Query_cache_block() {} /* Remove gcc warning */
|
||||
Query_cache_block() = default; /* Remove gcc warning */
|
||||
enum block_type {FREE, QUERY, RESULT, RES_CONT, RES_BEG,
|
||||
RES_INCOMPLETE, TABLE, INCOMPLETE};
|
||||
|
||||
|
@ -161,7 +161,7 @@ struct Query_cache_query
|
|||
uint8 ready;
|
||||
ulonglong hit_count;
|
||||
|
||||
Query_cache_query() {} /* Remove gcc warning */
|
||||
Query_cache_query() = default; /* Remove gcc warning */
|
||||
inline void init_n_lock();
|
||||
void unlock_n_destroy();
|
||||
inline ulonglong found_rows() { return limit_found_rows; }
|
||||
|
@ -197,7 +197,7 @@ struct Query_cache_query
|
|||
|
||||
struct Query_cache_table
|
||||
{
|
||||
Query_cache_table() {} /* Remove gcc warning */
|
||||
Query_cache_table() = default; /* Remove gcc warning */
|
||||
char *tbl;
|
||||
uint32 key_len;
|
||||
uint8 suffix_len; /* For partitioned tables */
|
||||
|
@ -240,7 +240,7 @@ struct Query_cache_table
|
|||
|
||||
struct Query_cache_result
|
||||
{
|
||||
Query_cache_result() {} /* Remove gcc warning */
|
||||
Query_cache_result() = default; /* Remove gcc warning */
|
||||
Query_cache_block *query;
|
||||
|
||||
inline uchar* data()
|
||||
|
@ -266,7 +266,7 @@ extern "C" void query_cache_invalidate_by_MyISAM_filename(const char* filename);
|
|||
|
||||
struct Query_cache_memory_bin
|
||||
{
|
||||
Query_cache_memory_bin() {} /* Remove gcc warning */
|
||||
Query_cache_memory_bin() = default; /* Remove gcc warning */
|
||||
#ifndef DBUG_OFF
|
||||
size_t size;
|
||||
#endif
|
||||
|
@ -285,7 +285,7 @@ struct Query_cache_memory_bin
|
|||
|
||||
struct Query_cache_memory_bin_step
|
||||
{
|
||||
Query_cache_memory_bin_step() {} /* Remove gcc warning */
|
||||
Query_cache_memory_bin_step() = default; /* Remove gcc warning */
|
||||
size_t size;
|
||||
size_t increment;
|
||||
size_t idx;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue