mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge 10.1 into 10.2
This commit is contained in:
@@ -90,7 +90,7 @@ PenaltyExcessCharacter: 1000000
|
||||
PenaltyReturnTypeOnItsOwnLine: 60
|
||||
PointerAlignment: Right
|
||||
ReflowComments: true
|
||||
SortIncludes: true
|
||||
SortIncludes: false
|
||||
SortUsingDeclarations: true
|
||||
SpaceAfterCStyleCast: true
|
||||
SpaceAfterLogicalNot: false
|
||||
|
@@ -80,7 +80,7 @@ while (<F>) {
|
||||
s/table id \d+/table id #/;
|
||||
s/mapped to number \d+/mapped to number #/;
|
||||
s/CRC32 0x[0-9a-f]+/CRC32 0x########/;
|
||||
print if /GTID|BEGIN|COMMIT|Table_map|Write_rows|Update_rows|Delete_rows|generated by server|40005 TEMPORARY/;
|
||||
print if /\b(GTID|BEGIN|COMMIT|Table_map|Write_rows|Update_rows|Delete_rows|generated by server|40005 TEMPORARY)\b/;
|
||||
}
|
||||
close F;
|
||||
EOF
|
||||
|
@@ -4621,6 +4621,8 @@ sub extract_warning_lines ($$) {
|
||||
qr/missing DBUG_RETURN/,
|
||||
qr/Attempting backtrace/,
|
||||
qr/Assertion .* failed/,
|
||||
qr/Sanitizer/,
|
||||
qr/runtime error:/,
|
||||
);
|
||||
# These are taken from the include/mtr_warnings.sql global suppression
|
||||
# list. They occur delayed, so they can be parsed during shutdown rather
|
||||
|
@@ -4,7 +4,7 @@
|
||||
# Verbose run
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=InnoDB;
|
||||
ALTER TABLE time_zone_name ENGINE=InnoDB;
|
||||
ALTER TABLE time_zone_transition ENGINE=InnoDB;
|
||||
@@ -36,7 +36,7 @@ ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
||||
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
||||
@@ -46,7 +46,7 @@ END IF|
|
||||
# Silent run
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=InnoDB;
|
||||
ALTER TABLE time_zone_name ENGINE=InnoDB;
|
||||
ALTER TABLE time_zone_transition ENGINE=InnoDB;
|
||||
@@ -75,7 +75,7 @@ ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
||||
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
||||
@@ -93,7 +93,7 @@ INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset,
|
||||
;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
||||
@@ -105,21 +105,21 @@ END IF|
|
||||
#
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone_leap_second ENGINE=InnoDB;
|
||||
END IF|
|
||||
\d ;
|
||||
TRUNCATE TABLE time_zone_leap_second;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone_leap_second ENGINE=MyISAM;
|
||||
END IF|
|
||||
\d ;
|
||||
ALTER TABLE time_zone_leap_second ORDER BY Transition_time;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
||||
@@ -131,7 +131,7 @@ END IF|
|
||||
#
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=InnoDB;
|
||||
ALTER TABLE time_zone_name ENGINE=InnoDB;
|
||||
ALTER TABLE time_zone_transition ENGINE=InnoDB;
|
||||
@@ -146,7 +146,7 @@ ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
||||
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
||||
|
@@ -1198,6 +1198,87 @@ Warning 1292 Incorrect datetime value: '2' for column `test`.`t1`.`pk` at row 2
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-21319 COUNT(*) returns 1, actual SELECT returns no result in 10.3.21, but 1 result in 10.1.41
|
||||
#
|
||||
CREATE TABLE t1
|
||||
(
|
||||
id INT NOT NULL PRIMARY KEY,
|
||||
id2 INT,
|
||||
k TINYINT,
|
||||
j INT,
|
||||
t DATETIME,
|
||||
KEY k1 (id2,k,j,t)
|
||||
);
|
||||
INSERT INTO t1 VALUES
|
||||
(53,54,1,0,'2019-12-13 10:09:59'),
|
||||
(54,54,1,0,'2019-12-13 16:28:41'),
|
||||
(55,54,1,0,'2019-12-13 16:29:10'),
|
||||
(56,54,1,0,'2019-12-13 16:29:43'),
|
||||
(57,54,1,0,'2019-12-13 16:30:16'),
|
||||
(58,54,1,0,'2019-12-13 16:30:49'),
|
||||
(59,54,1,0,'2019-12-13 16:31:23'),
|
||||
(60,54,1,0,'2019-12-13 16:31:55'),
|
||||
(61,54,1,0,'2019-12-13 16:32:28'),
|
||||
(62,54,1,0,'2019-12-13 16:33:01'),
|
||||
(63,54,1,0,'2019-12-13 16:33:34'),
|
||||
(64,54,1,0,'2019-12-13 16:34:07'),
|
||||
(65,54,1,0,'2019-12-13 16:34:40'),
|
||||
(66,54,1,0,'2019-12-13 16:35:13'),
|
||||
(67,54,1,0,'2019-12-13 16:35:46'),
|
||||
(68,54,1,0,'2019-12-13 16:36:19');
|
||||
SELECT t FROM t1 GROUP BY t HAVING t=max(t);
|
||||
t
|
||||
2019-12-13 10:09:59
|
||||
2019-12-13 16:28:41
|
||||
2019-12-13 16:29:10
|
||||
2019-12-13 16:29:43
|
||||
2019-12-13 16:30:16
|
||||
2019-12-13 16:30:49
|
||||
2019-12-13 16:31:23
|
||||
2019-12-13 16:31:55
|
||||
2019-12-13 16:32:28
|
||||
2019-12-13 16:33:01
|
||||
2019-12-13 16:33:34
|
||||
2019-12-13 16:34:07
|
||||
2019-12-13 16:34:40
|
||||
2019-12-13 16:35:13
|
||||
2019-12-13 16:35:46
|
||||
2019-12-13 16:36:19
|
||||
SELECT t FROM t1 WHERE id2=54 and j=0 and k=1 GROUP BY t HAVING t=max(t);
|
||||
t
|
||||
2019-12-13 10:09:59
|
||||
2019-12-13 16:28:41
|
||||
2019-12-13 16:29:10
|
||||
2019-12-13 16:29:43
|
||||
2019-12-13 16:30:16
|
||||
2019-12-13 16:30:49
|
||||
2019-12-13 16:31:23
|
||||
2019-12-13 16:31:55
|
||||
2019-12-13 16:32:28
|
||||
2019-12-13 16:33:01
|
||||
2019-12-13 16:33:34
|
||||
2019-12-13 16:34:07
|
||||
2019-12-13 16:34:40
|
||||
2019-12-13 16:35:13
|
||||
2019-12-13 16:35:46
|
||||
2019-12-13 16:36:19
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (pk INT);
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SELECT pk<DATE'2001-01-01' FROM t1 GROUP BY pk;
|
||||
pk<DATE'2001-01-01'
|
||||
1
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1
|
||||
SELECT pk<DATE'2001-01-01' FROM v1 GROUP BY pk;
|
||||
pk<DATE'2001-01-01'
|
||||
1
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.1 tests
|
||||
#
|
||||
#
|
||||
|
@@ -20,6 +20,19 @@ COALESCE(@a)
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-21065 UNIQUE constraint causes a query with string comparison to omit a row in the result set
|
||||
#
|
||||
CREATE TABLE t1 (c0 INT UNIQUE);
|
||||
INSERT INTO t1 VALUES (NULL), (NULL), (NULL), (NULL), (1), (0);
|
||||
SELECT * FROM t1 WHERE c0 < '\n2';
|
||||
c0
|
||||
0
|
||||
1
|
||||
DROP TABLE t1;
|
||||
SELECT CAST('\n2' AS INT);
|
||||
CAST('\n2' AS INT)
|
||||
2
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
@@ -1246,6 +1246,72 @@ drop table t1;
|
||||
SET @@optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
|
||||
set @@old_mode= @save_old_mode;
|
||||
#
|
||||
# MDEV-21319 COUNT(*) returns 1, actual SELECT returns no result in 10.3.21, but 1 result in 10.1.41
|
||||
#
|
||||
CREATE OR REPLACE TABLE t1
|
||||
(
|
||||
id INT NOT NULL PRIMARY KEY,
|
||||
id2 INT,
|
||||
k TINYINT,
|
||||
j INT,
|
||||
t TIME,
|
||||
KEY k1 (id2,k,j,t)
|
||||
);
|
||||
INSERT INTO t1 VALUES
|
||||
(53,54,1,0,'10:09:59'),
|
||||
(54,54,1,0,'16:28:41'),
|
||||
(55,54,1,0,'16:29:10'),
|
||||
(56,54,1,0,'16:29:43'),
|
||||
(57,54,1,0,'16:30:16'),
|
||||
(58,54,1,0,'16:30:49'),
|
||||
(59,54,1,0,'16:31:23'),
|
||||
(60,54,1,0,'16:31:55'),
|
||||
(61,54,1,0,'16:32:28'),
|
||||
(62,54,1,0,'16:33:01'),
|
||||
(63,54,1,0,'16:33:34'),
|
||||
(64,54,1,0,'16:34:07'),
|
||||
(65,54,1,0,'16:34:40'),
|
||||
(66,54,1,0,'16:35:13'),
|
||||
(67,54,1,0,'16:35:46'),
|
||||
(68,54,1,0,'16:36:19');
|
||||
SELECT t FROM t1 GROUP BY t HAVING t=MAX(t);
|
||||
t
|
||||
10:09:59
|
||||
16:28:41
|
||||
16:29:10
|
||||
16:29:43
|
||||
16:30:16
|
||||
16:30:49
|
||||
16:31:23
|
||||
16:31:55
|
||||
16:32:28
|
||||
16:33:01
|
||||
16:33:34
|
||||
16:34:07
|
||||
16:34:40
|
||||
16:35:13
|
||||
16:35:46
|
||||
16:36:19
|
||||
SELECT t FROM t1 WHERE id2=54 AND j=0 AND k=1 GROUP BY t HAVING t=MAX(t);
|
||||
t
|
||||
10:09:59
|
||||
16:28:41
|
||||
16:29:10
|
||||
16:29:43
|
||||
16:30:16
|
||||
16:30:49
|
||||
16:31:23
|
||||
16:31:55
|
||||
16:32:28
|
||||
16:33:01
|
||||
16:33:34
|
||||
16:34:07
|
||||
16:34:40
|
||||
16:35:13
|
||||
16:35:46
|
||||
16:36:19
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.1 tests
|
||||
#
|
||||
#
|
||||
|
@@ -4,7 +4,7 @@
|
||||
# Verbose run
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=InnoDB;
|
||||
ALTER TABLE time_zone_name ENGINE=InnoDB;
|
||||
ALTER TABLE time_zone_transition ENGINE=InnoDB;
|
||||
@@ -36,7 +36,7 @@ ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
||||
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
||||
@@ -46,7 +46,7 @@ END IF|
|
||||
# Silent run
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=InnoDB;
|
||||
ALTER TABLE time_zone_name ENGINE=InnoDB;
|
||||
ALTER TABLE time_zone_transition ENGINE=InnoDB;
|
||||
@@ -75,7 +75,7 @@ ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
||||
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
||||
@@ -93,7 +93,7 @@ INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset,
|
||||
;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
||||
@@ -105,21 +105,21 @@ END IF|
|
||||
#
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone_leap_second ENGINE=InnoDB;
|
||||
END IF|
|
||||
\d ;
|
||||
TRUNCATE TABLE time_zone_leap_second;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone_leap_second ENGINE=MyISAM;
|
||||
END IF|
|
||||
\d ;
|
||||
ALTER TABLE time_zone_leap_second ORDER BY Transition_time;
|
||||
\d |
|
||||
IF (select count(*) from information_schema.global_variables where
|
||||
variable_name='wsrep_on') = 1 THEN
|
||||
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
||||
ALTER TABLE time_zone ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
||||
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
||||
|
@@ -2,7 +2,7 @@
|
||||
# MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above
|
||||
#
|
||||
# Verbose run
|
||||
set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');
|
||||
set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');
|
||||
prepare set_wsrep_write_binlog from @prep1;
|
||||
set @toggle=0; execute set_wsrep_write_binlog using @toggle;
|
||||
TRUNCATE TABLE time_zone;
|
||||
@@ -29,7 +29,7 @@ Warning: Skipping directory 'MYSQLTEST_VARDIR/zoneinfo/posix/posix': to avoid in
|
||||
ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
||||
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
||||
# Silent run
|
||||
set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');
|
||||
set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');
|
||||
prepare set_wsrep_write_binlog from @prep1;
|
||||
set @toggle=0; execute set_wsrep_write_binlog using @toggle;
|
||||
TRUNCATE TABLE time_zone;
|
||||
@@ -55,7 +55,7 @@ ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
||||
#
|
||||
# Testing with explicit timezonefile
|
||||
#
|
||||
set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');
|
||||
set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');
|
||||
prepare set_wsrep_write_binlog from @prep1;
|
||||
set @toggle=0; execute set_wsrep_write_binlog using @toggle;
|
||||
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
||||
@@ -67,7 +67,7 @@ INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset,
|
||||
#
|
||||
# Testing --leap
|
||||
#
|
||||
set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');
|
||||
set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');
|
||||
prepare set_wsrep_write_binlog from @prep1;
|
||||
set @toggle=0; execute set_wsrep_write_binlog using @toggle;
|
||||
TRUNCATE TABLE time_zone_leap_second;
|
||||
|
3
mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink.opt
Normal file
3
mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink.opt
Normal file
@@ -0,0 +1,3 @@
|
||||
--wsrep-provider=$WSREP_PROVIDER --wsrep-cluster-address=gcomm:// --wsrep-on=1 --binlog_format=ROW
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
--source include/have_wsrep.inc
|
||||
--source include/have_symlink.inc
|
||||
--source include/not_windows.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above
|
||||
|
@@ -0,0 +1,3 @@
|
||||
--wsrep-provider=$WSREP_PROVIDER --wsrep-cluster-address=gcomm:// --wsrep-on=1 --binlog_format=ROW
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
--source include/have_wsrep.inc
|
||||
--source include/have_symlink.inc
|
||||
--source include/not_windows.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above
|
||||
|
@@ -747,6 +747,49 @@ DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-21319 COUNT(*) returns 1, actual SELECT returns no result in 10.3.21, but 1 result in 10.1.41
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1
|
||||
(
|
||||
id INT NOT NULL PRIMARY KEY,
|
||||
id2 INT,
|
||||
k TINYINT,
|
||||
j INT,
|
||||
t DATETIME,
|
||||
KEY k1 (id2,k,j,t)
|
||||
);
|
||||
INSERT INTO t1 VALUES
|
||||
(53,54,1,0,'2019-12-13 10:09:59'),
|
||||
(54,54,1,0,'2019-12-13 16:28:41'),
|
||||
(55,54,1,0,'2019-12-13 16:29:10'),
|
||||
(56,54,1,0,'2019-12-13 16:29:43'),
|
||||
(57,54,1,0,'2019-12-13 16:30:16'),
|
||||
(58,54,1,0,'2019-12-13 16:30:49'),
|
||||
(59,54,1,0,'2019-12-13 16:31:23'),
|
||||
(60,54,1,0,'2019-12-13 16:31:55'),
|
||||
(61,54,1,0,'2019-12-13 16:32:28'),
|
||||
(62,54,1,0,'2019-12-13 16:33:01'),
|
||||
(63,54,1,0,'2019-12-13 16:33:34'),
|
||||
(64,54,1,0,'2019-12-13 16:34:07'),
|
||||
(65,54,1,0,'2019-12-13 16:34:40'),
|
||||
(66,54,1,0,'2019-12-13 16:35:13'),
|
||||
(67,54,1,0,'2019-12-13 16:35:46'),
|
||||
(68,54,1,0,'2019-12-13 16:36:19');
|
||||
SELECT t FROM t1 GROUP BY t HAVING t=max(t);
|
||||
SELECT t FROM t1 WHERE id2=54 and j=0 and k=1 GROUP BY t HAVING t=max(t);
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (pk INT);
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SELECT pk<DATE'2001-01-01' FROM t1 GROUP BY pk;
|
||||
SELECT pk<DATE'2001-01-01' FROM v1 GROUP BY pk;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.1 tests
|
||||
--echo #
|
||||
|
@@ -14,6 +14,18 @@ SELECT COALESCE(@a:=1) FROM t1 ORDER BY STRCMP(STDDEV_SAMP(a), 'bar');
|
||||
SELECT COALESCE(@a) FROM t1 ORDER BY STRCMP(STDDEV_SAMP(a), 'bar');
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-21065 UNIQUE constraint causes a query with string comparison to omit a row in the result set
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (c0 INT UNIQUE);
|
||||
INSERT INTO t1 VALUES (NULL), (NULL), (NULL), (NULL), (1), (0);
|
||||
SELECT * FROM t1 WHERE c0 < '\n2';
|
||||
DROP TABLE t1;
|
||||
|
||||
SELECT CAST('\n2' AS INT);
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
@@ -746,6 +746,40 @@ drop table t1;
|
||||
SET @@optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
|
||||
set @@old_mode= @save_old_mode;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-21319 COUNT(*) returns 1, actual SELECT returns no result in 10.3.21, but 1 result in 10.1.41
|
||||
--echo #
|
||||
|
||||
CREATE OR REPLACE TABLE t1
|
||||
(
|
||||
id INT NOT NULL PRIMARY KEY,
|
||||
id2 INT,
|
||||
k TINYINT,
|
||||
j INT,
|
||||
t TIME,
|
||||
KEY k1 (id2,k,j,t)
|
||||
);
|
||||
INSERT INTO t1 VALUES
|
||||
(53,54,1,0,'10:09:59'),
|
||||
(54,54,1,0,'16:28:41'),
|
||||
(55,54,1,0,'16:29:10'),
|
||||
(56,54,1,0,'16:29:43'),
|
||||
(57,54,1,0,'16:30:16'),
|
||||
(58,54,1,0,'16:30:49'),
|
||||
(59,54,1,0,'16:31:23'),
|
||||
(60,54,1,0,'16:31:55'),
|
||||
(61,54,1,0,'16:32:28'),
|
||||
(62,54,1,0,'16:33:01'),
|
||||
(63,54,1,0,'16:33:34'),
|
||||
(64,54,1,0,'16:34:07'),
|
||||
(65,54,1,0,'16:34:40'),
|
||||
(66,54,1,0,'16:35:13'),
|
||||
(67,54,1,0,'16:35:46'),
|
||||
(68,54,1,0,'16:36:19');
|
||||
SELECT t FROM t1 GROUP BY t HAVING t=MAX(t);
|
||||
SELECT t FROM t1 WHERE id2=54 AND j=0 AND k=1 GROUP BY t HAVING t=MAX(t);
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.1 tests
|
||||
--echo #
|
||||
|
@@ -399,10 +399,12 @@ IF(WIN32 AND MYSQLD_EXECUTABLE)
|
||||
ENDIF()
|
||||
MAKE_DIRECTORY(${CMAKE_CURRENT_BINARY_DIR}/data)
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/initdb.dep
|
||||
COMMAND ${CMAKE_COMMAND} ${CONFIG_PARAM} -P ${CMAKE_CURRENT_BINARY_DIR}/create_initial_db.cmake
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/initdb.dep
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/data
|
||||
OUTPUT initdb.dep
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory data
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory data
|
||||
COMMAND ${CMAKE_COMMAND} -E chdir data ${CMAKE_COMMAND}
|
||||
${CONFIG_PARAM} -P ${CMAKE_CURRENT_BINARY_DIR}/create_initial_db.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
|
||||
DEPENDS mysqld
|
||||
)
|
||||
ADD_CUSTOM_TARGET(initial_database
|
||||
|
24
sql/item.cc
24
sql/item.cc
@@ -158,6 +158,19 @@ bool Item::get_date_with_conversion(MYSQL_TIME *ltime, ulonglong fuzzydate)
|
||||
}
|
||||
|
||||
|
||||
longlong Item::val_datetime_packed_result()
|
||||
{
|
||||
MYSQL_TIME ltime, tmp;
|
||||
if (get_date_result(<ime, TIME_FUZZY_DATES | TIME_INVALID_DATES))
|
||||
return 0;
|
||||
if (ltime.time_type != MYSQL_TIMESTAMP_TIME)
|
||||
return pack_time(<ime);
|
||||
if ((null_value= time_to_datetime_with_warn(current_thd, <ime, &tmp, 0)))
|
||||
return 0;
|
||||
return pack_time(&tmp);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Get date/time/datetime.
|
||||
If DATETIME or DATE result is returned, it's converted to TIME.
|
||||
@@ -2855,12 +2868,13 @@ bool Item_field::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate)
|
||||
|
||||
bool Item_field::get_date_result(MYSQL_TIME *ltime, ulonglong fuzzydate)
|
||||
{
|
||||
if (result_field->is_null() || result_field->get_date(ltime,fuzzydate))
|
||||
if ((null_value= result_field->is_null()) ||
|
||||
result_field->get_date(ltime, fuzzydate))
|
||||
{
|
||||
bzero((char*) ltime,sizeof(*ltime));
|
||||
return (null_value= 1);
|
||||
return true;
|
||||
}
|
||||
return (null_value= 0);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -8014,7 +8028,7 @@ bool Item_ref::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate)
|
||||
longlong Item_ref::val_datetime_packed()
|
||||
{
|
||||
DBUG_ASSERT(fixed);
|
||||
longlong tmp= (*ref)->val_datetime_packed();
|
||||
longlong tmp= (*ref)->val_datetime_packed_result();
|
||||
null_value= (*ref)->null_value;
|
||||
return tmp;
|
||||
}
|
||||
@@ -8023,7 +8037,7 @@ longlong Item_ref::val_datetime_packed()
|
||||
longlong Item_ref::val_time_packed()
|
||||
{
|
||||
DBUG_ASSERT(fixed);
|
||||
longlong tmp= (*ref)->val_time_packed();
|
||||
longlong tmp= (*ref)->val_time_packed_result();
|
||||
null_value= (*ref)->null_value;
|
||||
return tmp;
|
||||
}
|
||||
|
@@ -1503,6 +1503,13 @@ public:
|
||||
uint fuzzydate= TIME_FUZZY_DATES | TIME_INVALID_DATES | TIME_TIME_ONLY;
|
||||
return get_date(<ime, fuzzydate) ? 0 : pack_time(<ime);
|
||||
}
|
||||
longlong val_datetime_packed_result();
|
||||
longlong val_time_packed_result()
|
||||
{
|
||||
MYSQL_TIME ltime;
|
||||
uint fuzzydate= TIME_TIME_ONLY | TIME_INVALID_DATES | TIME_FUZZY_DATES;
|
||||
return get_date_result(<ime, fuzzydate) ? 0 : pack_time(<ime);
|
||||
}
|
||||
// Get a temporal value in packed DATE/DATETIME or TIME format
|
||||
longlong val_temporal_packed(enum_field_types f_type)
|
||||
{
|
||||
|
@@ -1297,28 +1297,6 @@ public:
|
||||
Sroutine_hash_entry **sroutines_list_own_last;
|
||||
uint sroutines_list_own_elements;
|
||||
|
||||
/**
|
||||
Locking state of tables in this particular statement.
|
||||
|
||||
If we under LOCK TABLES or in prelocked mode we consider tables
|
||||
for the statement to be "locked" if there was a call to lock_tables()
|
||||
(which called handler::start_stmt()) for tables of this statement
|
||||
and there was no matching close_thread_tables() call.
|
||||
|
||||
As result this state may differ significantly from one represented
|
||||
by Open_tables_state::lock/locked_tables_mode more, which are always
|
||||
"on" under LOCK TABLES or in prelocked mode.
|
||||
*/
|
||||
enum enum_lock_tables_state {
|
||||
LTS_NOT_LOCKED = 0,
|
||||
LTS_LOCKED
|
||||
};
|
||||
enum_lock_tables_state lock_tables_state;
|
||||
bool is_query_tables_locked()
|
||||
{
|
||||
return (lock_tables_state == LTS_LOCKED);
|
||||
}
|
||||
|
||||
/**
|
||||
Number of tables which were open by open_tables() and to be locked
|
||||
by lock_tables().
|
||||
|
@@ -14354,7 +14354,7 @@ static COND* substitute_for_best_equal_field(THD *thd, JOIN_TAB *context_tab,
|
||||
}
|
||||
}
|
||||
else if (cond->type() == Item::FUNC_ITEM &&
|
||||
((Item_cond*) cond)->functype() == Item_func::MULT_EQUAL_FUNC)
|
||||
((Item_func*) cond)->functype() == Item_func::MULT_EQUAL_FUNC)
|
||||
{
|
||||
item_equal= (Item_equal *) cond;
|
||||
item_equal->sort(&compare_fields_by_table_order, table_join_idx);
|
||||
|
@@ -2441,7 +2441,7 @@ print_tz_leaps_as_sql(const TIME_ZONE_INFO *sp)
|
||||
if (!opt_skip_write_binlog)
|
||||
printf("\\d |\n"
|
||||
"IF (select count(*) from information_schema.global_variables where\n"
|
||||
"variable_name='wsrep_on') = 1 THEN\n"
|
||||
"variable_name='wsrep_on' and variable_value='ON') = 1 THEN\n"
|
||||
"ALTER TABLE time_zone_leap_second ENGINE=InnoDB;\n"
|
||||
"END IF|\n"
|
||||
"\\d ;\n");
|
||||
@@ -2461,7 +2461,7 @@ print_tz_leaps_as_sql(const TIME_ZONE_INFO *sp)
|
||||
if (!opt_skip_write_binlog)
|
||||
printf("\\d |\n"
|
||||
"IF (select count(*) from information_schema.global_variables where\n"
|
||||
"variable_name='wsrep_on') = 1 THEN\n"
|
||||
"variable_name='wsrep_on' and variable_value='ON') = 1 THEN\n"
|
||||
"ALTER TABLE time_zone_leap_second ENGINE=MyISAM;\n"
|
||||
"END IF|\n"
|
||||
"\\d ;\n");
|
||||
@@ -2717,7 +2717,7 @@ main(int argc, char **argv)
|
||||
sql_log_bin and wsrep_on to avoid Galera replicating below
|
||||
truncate table clauses. This will allow user to set different
|
||||
time zones to nodes in Galera cluster. */
|
||||
printf("set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');\n"
|
||||
printf("set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');\n"
|
||||
"prepare set_wsrep_write_binlog from @prep1;\n"
|
||||
"set @toggle=0; execute set_wsrep_write_binlog using @toggle;\n");
|
||||
|
||||
@@ -2733,7 +2733,7 @@ main(int argc, char **argv)
|
||||
// to allow changes to them to replicate with Galera
|
||||
printf("\\d |\n"
|
||||
"IF (select count(*) from information_schema.global_variables where\n"
|
||||
"variable_name='wsrep_on') = 1 THEN\n"
|
||||
"variable_name='wsrep_on' and variable_value='ON') = 1 THEN\n"
|
||||
"ALTER TABLE time_zone ENGINE=InnoDB;\n"
|
||||
"ALTER TABLE time_zone_name ENGINE=InnoDB;\n"
|
||||
"ALTER TABLE time_zone_transition ENGINE=InnoDB;\n"
|
||||
@@ -2788,7 +2788,7 @@ main(int argc, char **argv)
|
||||
// Fall back to MyISAM
|
||||
printf("\\d |\n"
|
||||
"IF (select count(*) from information_schema.global_variables where\n"
|
||||
"variable_name='wsrep_on') = 1 THEN\n"
|
||||
"variable_name='wsrep_on' and variable_value='ON') = 1 THEN\n"
|
||||
"ALTER TABLE time_zone ENGINE=MyISAM;\n"
|
||||
"ALTER TABLE time_zone_name ENGINE=MyISAM;\n"
|
||||
"ALTER TABLE time_zone_transition ENGINE=MyISAM;\n"
|
||||
|
@@ -312,7 +312,8 @@ LEX_CUSTRING build_frm_image(THD *thd, const char *table,
|
||||
pos+= reclength;
|
||||
int2store(pos, create_info->connect_string.length);
|
||||
pos+= 2;
|
||||
memcpy(pos, create_info->connect_string.str, create_info->connect_string.length);
|
||||
if (create_info->connect_string.length)
|
||||
memcpy(pos, create_info->connect_string.str, create_info->connect_string.length);
|
||||
pos+= create_info->connect_string.length;
|
||||
int2store(pos, str_db_type.length);
|
||||
pos+= 2;
|
||||
|
@@ -318,9 +318,6 @@ ENDIF(CONNECT_WITH_MONGO)
|
||||
OPTION(CONNECT_WITH_REST "Compile CONNECT storage engine with REST support" ON)
|
||||
|
||||
IF(CONNECT_WITH_REST)
|
||||
MESSAGE(STATUS "=====> REST support is ON")
|
||||
SET(CONNECT_SOURCES ${CONNECT_SOURCES} tabrest.cpp tabrest.h)
|
||||
add_definitions(-DREST_SUPPORT)
|
||||
FIND_PACKAGE(cpprestsdk QUIET)
|
||||
IF (cpprestsdk_FOUND)
|
||||
IF(UNIX)
|
||||
@@ -334,12 +331,8 @@ IF(CONNECT_WITH_REST)
|
||||
# Comment it out if not needed depending on your cpprestsdk installation.
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
|
||||
ENDIF(UNIX)
|
||||
# IF(REST_LIBRARY) why this? how about Windows
|
||||
SET(CONNECT_SOURCES ${CONNECT_SOURCES} restget.cpp)
|
||||
add_definitions(-DREST_SOURCE)
|
||||
# ENDIF()
|
||||
ELSE(NOT cpprestsdk_FOUND)
|
||||
# MESSAGE(STATUS "=====> cpprestsdk package not found")
|
||||
SET(CONNECT_SOURCES ${CONNECT_SOURCES} tabrest.cpp restget.cpp tabrest.h)
|
||||
add_definitions(-DREST_SUPPORT)
|
||||
ENDIF (cpprestsdk_FOUND)
|
||||
ENDIF(CONNECT_WITH_REST)
|
||||
|
||||
|
@@ -130,29 +130,6 @@ struct set_numa_interleave_t
|
||||
#include "snappy-c.h"
|
||||
#endif
|
||||
|
||||
inline void* aligned_malloc(size_t size, size_t align) {
|
||||
void *result;
|
||||
#ifdef _MSC_VER
|
||||
result = _aligned_malloc(size, align);
|
||||
#elif defined (HAVE_POSIX_MEMALIGN)
|
||||
if(posix_memalign(&result, align, size)) {
|
||||
result = 0;
|
||||
}
|
||||
#else
|
||||
/* Use unaligned malloc as fallback */
|
||||
result = malloc(size);
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
|
||||
inline void aligned_free(void *ptr) {
|
||||
#ifdef _MSC_VER
|
||||
_aligned_free(ptr);
|
||||
#else
|
||||
free(ptr);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
IMPLEMENTATION OF THE BUFFER POOL
|
||||
=================================
|
||||
|
@@ -706,6 +706,27 @@ buf_page_is_corrupted(
|
||||
#endif
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
inline void *aligned_malloc(size_t size, size_t align)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
return _aligned_malloc(size, align);
|
||||
#else
|
||||
void *result;
|
||||
if (posix_memalign(&result, align, size))
|
||||
result= NULL;
|
||||
return result;
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void aligned_free(void *ptr)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
_aligned_free(ptr);
|
||||
#else
|
||||
free(ptr);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef UNIV_INNOCHECKSUM
|
||||
/**********************************************************************//**
|
||||
Gets the space id, page offset, and byte offset within page of a
|
||||
|
@@ -176,11 +176,6 @@ IF(NOT MSVC)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686")
|
||||
ENDIF()
|
||||
|
||||
CHECK_FUNCTION_EXISTS(posix_memalign HAVE_POSIX_MEMALIGN)
|
||||
IF(HAVE_POSIX_MEMALIGN)
|
||||
ADD_DEFINITIONS(-DHAVE_POSIX_MEMALIGN)
|
||||
ENDIF()
|
||||
|
||||
# Only use futexes on Linux if GCC atomics are available
|
||||
IF(NOT MSVC AND NOT CMAKE_CROSSCOMPILING)
|
||||
CHECK_C_SOURCE_RUNS(
|
||||
|
@@ -99,11 +99,6 @@ MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-class-memaccess")
|
||||
|
||||
IF(NOT MSVC)
|
||||
|
||||
CHECK_FUNCTION_EXISTS(posix_memalign HAVE_POSIX_MEMALIGN)
|
||||
IF(HAVE_POSIX_MEMALIGN)
|
||||
ADD_DEFINITIONS(-DHAVE_POSIX_MEMALIGN)
|
||||
ENDIF()
|
||||
|
||||
# either define HAVE_IB_GCC_ATOMIC_BUILTINS or not
|
||||
# workaround for old gcc on x86, gcc atomic ops only work under -march=i686
|
||||
IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686" AND CMAKE_COMPILER_IS_GNUCC AND
|
||||
|
@@ -92,17 +92,14 @@ buf_mark_space_corrupt(
|
||||
/* prototypes for new functions added to ha_innodb.cc */
|
||||
trx_t* innobase_get_trx();
|
||||
|
||||
inline void* aligned_malloc(size_t size, size_t align) {
|
||||
static void* aligned_malloc(size_t size, size_t align) {
|
||||
void *result;
|
||||
#ifdef _MSC_VER
|
||||
result = _aligned_malloc(size, align);
|
||||
#elif defined (HAVE_POSIX_MEMALIGN)
|
||||
if(posix_memalign(&result, align, size)) {
|
||||
result = 0;
|
||||
}
|
||||
#else
|
||||
/* Use unaligned malloc as fallback */
|
||||
result = malloc(size);
|
||||
if(posix_memalign(&result, align, size)) {
|
||||
result = NULL;
|
||||
}
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
|
@@ -1598,7 +1598,8 @@ my_strntoull10rnd_8bit(CHARSET_INFO *cs __attribute__((unused)),
|
||||
int shift= 0, digits= 0, negative, addon;
|
||||
|
||||
/* Skip leading spaces and tabs */
|
||||
for ( ; str < end && (*str == ' ' || *str == '\t') ; str++);
|
||||
for ( ; str < end && my_isspace(&my_charset_latin1, *str) ; )
|
||||
str++;
|
||||
|
||||
if (str >= end)
|
||||
goto ret_edom;
|
||||
|
@@ -98,18 +98,25 @@ longlong my_strtoll10(const char *nptr, char **endptr, int *error)
|
||||
if (endptr)
|
||||
{
|
||||
end= *endptr;
|
||||
while (s != end && (*s == ' ' || *s == '\t'))
|
||||
/* Skip leading spaces */
|
||||
for ( ; s < end && my_isspace(&my_charset_latin1, *s) ; )
|
||||
s++;
|
||||
|
||||
if (s == end)
|
||||
goto no_conv;
|
||||
}
|
||||
else
|
||||
{
|
||||
endptr= &dummy; /* Easier end test */
|
||||
while (*s == ' ' || *s == '\t')
|
||||
s++;
|
||||
if (!*s)
|
||||
goto no_conv;
|
||||
/* Skip leading spaces */
|
||||
for ( ; ; s++)
|
||||
{
|
||||
if (!*s)
|
||||
goto no_conv;
|
||||
if (!my_isspace(&my_charset_latin1, *s))
|
||||
break;
|
||||
}
|
||||
|
||||
/* This number must be big to guard against a lot of pre-zeros */
|
||||
end= s+65535; /* Can't be longer than this */
|
||||
}
|
||||
|
@@ -128,6 +128,13 @@ UMask=007
|
||||
# LOAD DATA INFILE you can enable PrivateTmp=true for a little more security.
|
||||
PrivateTmp=false
|
||||
|
||||
# Set an explicit Start and Stop timeout of 900 seconds (15 minutes!)
|
||||
# this is the same value as used in SysV init scripts in the past
|
||||
# Galera might need a longer timeout, check the KB if you want to change this:
|
||||
# https://mariadb.com/kb/en/library/systemd/#configuring-the-systemd-service-timeout
|
||||
TimeoutStartSec=900
|
||||
TimeoutStopSec=900
|
||||
|
||||
##
|
||||
## Options previously available to be set via [mysqld_safe]
|
||||
## that now needs to be set by systemd config files as mysqld_safe
|
||||
|
@@ -154,6 +154,13 @@ UMask=007
|
||||
# LOAD DATA INFILE you can enable PrivateTmp=true for a little more security.
|
||||
PrivateTmp=false
|
||||
|
||||
# Set an explicit Start and Stop timeout of 900 seconds (15 minutes!)
|
||||
# this is the same value as used in SysV init scripts in the past
|
||||
# if you need a longer timeout, check the KB:
|
||||
# https://mariadb.com/kb/en/library/systemd/#configuring-the-systemd-service-timeout
|
||||
TimeoutStartSec=900
|
||||
TimeoutStopSec=900
|
||||
|
||||
##
|
||||
## Options previously available to be set via [mysqld_safe]
|
||||
## that now needs to be set by systemd config files as mysqld_safe
|
||||
|
Reference in New Issue
Block a user