diff -Nru mariadb-5.5-5.5.63/client/CMakeLists.txt mariadb-5.5-5.5.64/client/CMakeLists.txt --- mariadb-5.5-5.5.63/client/CMakeLists.txt 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/client/CMakeLists.txt 2019-04-26 12:37:01.000000000 +0000 @@ -1,5 +1,5 @@ # Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved. -# Copyright (c) 2008, 2018, MariaDB Corporation +# Copyright (c) 2008, 2019, MariaDB Corporation # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -80,7 +80,7 @@ ADD_EXECUTABLE(async_example async_example.c) TARGET_LINK_LIBRARIES(async_example mysqlclient) -SET_TARGET_PROPERTIES (mysqlcheck mysqldump mysqlimport mysql_upgrade mysqlshow mysqlslap mysql_plugin +SET_TARGET_PROPERTIES (mysqlcheck mysqldump mysqlimport mysql_upgrade mysqlshow mysqlslap mysql_plugin async_example PROPERTIES HAS_CXX TRUE) ADD_DEFINITIONS(-DHAVE_DLOPEN) diff -Nru mariadb-5.5-5.5.63/client/mysqlbinlog.cc mariadb-5.5-5.5.64/client/mysqlbinlog.cc --- mariadb-5.5-5.5.63/client/mysqlbinlog.cc 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/client/mysqlbinlog.cc 2019-04-26 12:37:01.000000000 +0000 @@ -2020,6 +2020,7 @@ if ((rev->ident_len != logname_len) || memcmp(rev->new_log_ident, logname, logname_len)) { + delete ev; DBUG_RETURN(OK_CONTINUE); } /* @@ -2028,6 +2029,7 @@ log. If we are running with to_last_remote_log, we print it, because it serves as a useful marker between binlogs then. */ + delete ev; continue; } len= 1; // fake Rotate, so don't increment old_off diff -Nru mariadb-5.5-5.5.63/client/mysql.cc mariadb-5.5-5.5.64/client/mysql.cc --- mariadb-5.5-5.5.63/client/mysql.cc 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/client/mysql.cc 2019-04-26 12:37:01.000000000 +0000 @@ -3754,9 +3754,10 @@ MYSQL_FIELD *field; mysql_field_seek(result,0); - (void) tee_fputs("", PAGER); + (void) tee_fputs("
", PAGER); if (column_names) { + (void) tee_fputs("", PAGER); while((field = mysql_fetch_field(result))) { tee_fputs("
", PAGER); diff -Nru mariadb-5.5-5.5.63/debian/changelog mariadb-5.5-5.5.64/debian/changelog --- mariadb-5.5-5.5.63/debian/changelog 2019-02-07 06:49:27.000000000 +0000 +++ mariadb-5.5-5.5.64/debian/changelog 2019-05-16 14:56:26.000000000 +0000 @@ -1,3 +1,12 @@ +mariadb-5.5 (5.5.64-1ubuntu0.14.04.1) trusty-security; urgency=high + + * SECURITY UPDATE: New upstream release 5.5.64. Includes fixes for + the following security vulnerabilities (LP: #1825572): + - CVE-2019-2627 + - CVE-2019-2614 + + -- Otto Kekäläinen Mon, 29 Apr 2019 22:18:13 +0300 + mariadb-5.5 (5.5.63-1ubuntu0.14.04.1) trusty-security; urgency=high * SECURITY UPDATE: New upstream release 5.5.63. Includes fixes for @@ -22,6 +31,7 @@ - CVE-2018-3058 * Previous release 5.5.60 included included fixes for the following security vulnerabilities: + - CVE-2019-2455 - CVE-2018-2819 - CVE-2018-2817 - CVE-2018-2813 @@ -300,6 +310,7 @@ * SECURITY UPDATE: Update to 5.5.37 to fix security issues (LP: #1313187) - http://www.oracle.com/technetwork/topics/security/cpuapr2014-1972952.html + - CVE-2019-2481 - CVE-2014-0001 - CVE-2014-0384 - CVE-2014-2419 diff -Nru mariadb-5.5-5.5.63/Docs/INFO_SRC mariadb-5.5-5.5.64/Docs/INFO_SRC --- mariadb-5.5-5.5.63/Docs/INFO_SRC 2019-01-27 18:02:26.000000000 +0000 +++ mariadb-5.5-5.5.64/Docs/INFO_SRC 2019-04-26 12:37:03.000000000 +0000 @@ -1,8 +1,8 @@ -commit: 2175bfce3e9da8332f10ab0e0286dc93915533a2 -date: 2019-01-27 18:54:12 +0100 -build-date: 2019-01-27 18:02:26 +0000 -short: 2175bfc +commit: 926446880f937568eaae9a9671193d9d652f7bf9 +date: 2019-04-26 15:31:31 +0300 +build-date: 2019-04-26 12:37:03 +0000 +short: 9264468 branch: HEAD -MySQL source 5.5.63 +MySQL source 5.5.64 diff -Nru mariadb-5.5-5.5.63/mysql-test/disabled.def mariadb-5.5-5.5.64/mysql-test/disabled.def --- mariadb-5.5-5.5.63/mysql-test/disabled.def 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/disabled.def 2019-04-26 12:37:01.000000000 +0000 @@ -15,3 +15,4 @@ mysql_embedded : Bug#12561297 2011-05-14 Anitha Dependent on PB2 changes - eventum#41836 file_contents : MDEV-6526 these files are not installed anymore lowercase_fs_on : lower_case_table_names=0 is not an error until 10.1 +partition_open_files_limit : open_files_limit check broken by MDEV-18360 diff -Nru mariadb-5.5-5.5.63/mysql-test/include/mix2.inc mariadb-5.5-5.5.64/mysql-test/include/mix2.inc --- mariadb-5.5-5.5.63/mysql-test/include/mix2.inc 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/include/mix2.inc 2019-04-26 12:37:01.000000000 +0000 @@ -1153,7 +1153,7 @@ drop table t1,t2,t3, t4, t5, t6; # -# Test problem with refering to different fields in same table in UNION +# Test problem with referring to different fields in same table in UNION # (Bug#2552: UNION returns NULL instead of expected value (innoDB only tables)) # eval create table t1 (id int, name char(10) not null, name2 char(10) not null) engine=$engine_type; diff -Nru mariadb-5.5-5.5.63/mysql-test/r/ddl_i18n_koi8r.result mariadb-5.5-5.5.64/mysql-test/r/ddl_i18n_koi8r.result --- mariadb-5.5-5.5.63/mysql-test/r/ddl_i18n_koi8r.result 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/ddl_i18n_koi8r.result 2019-04-26 12:37:01.000000000 +0000 @@ -2174,7 +2174,7 @@ CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci| use mysqltest1| -CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT ev1 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10); SELECT @@ -2186,7 +2186,7 @@ @@character_set_client AS c6; END| -CREATE EVENT ev2 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT ev2 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT @@ -2198,7 +2198,7 @@ @@character_set_client AS c6; END| -CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT @@ -2210,7 +2210,7 @@ @@character_set_client AS c6; END| -CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT @@ -2226,7 +2226,7 @@ SHOW CREATE EVENT ev1| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10); SELECT COLLATION(1) AS c1, @@ -2239,7 +2239,7 @@ SHOW CREATE EVENT ev2| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2252,7 +2252,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2265,7 +2265,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2279,11 +2279,11 @@ SHOW EVENTS LIKE 'ev1'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci +mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev2'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci +mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev3'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation @@ -2303,7 +2303,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2316,7 +2316,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2329,7 +2329,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2342,7 +2342,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci ALTER DATABASE mysqltest1 COLLATE cp866_general_ci| @@ -2361,7 +2361,7 @@ SHOW CREATE EVENT ev1| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10); SELECT COLLATION(1) AS c1, @@ -2374,7 +2374,7 @@ SHOW CREATE EVENT ev2| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2387,7 +2387,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2400,7 +2400,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2414,11 +2414,11 @@ SHOW EVENTS LIKE 'ev1'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci +mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev2'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci +mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev3'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation @@ -2438,7 +2438,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2451,7 +2451,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2464,7 +2464,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2477,7 +2477,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci ---> Dump of mysqltest1 @@ -2497,7 +2497,7 @@ /*!50003 SET sql_mode = '' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; -/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev1` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10); SELECT COLLATION(1) AS c1, @@ -2525,7 +2525,7 @@ /*!50003 SET sql_mode = '' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; -/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev2` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2564,7 +2564,7 @@ /*!50003 SET sql_mode = '' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; -/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2592,7 +2592,7 @@ /*!50003 SET sql_mode = '' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; -/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev4` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev4` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2634,7 +2634,7 @@ SHOW CREATE EVENT ev1| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10); SELECT COLLATION(1) AS c1, @@ -2647,7 +2647,7 @@ SHOW CREATE EVENT ev2| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2660,7 +2660,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2673,7 +2673,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(1) AS c1, @@ -2687,11 +2687,11 @@ SHOW EVENTS LIKE 'ev1'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci +mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev2'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 koi8r koi8r_general_ci utf8_unicode_ci +mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev3'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation @@ -2711,7 +2711,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2724,7 +2724,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2737,7 +2737,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2750,7 +2750,7 @@ COLLATION( '') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci ------------------------------------------------------------------- DDL statements within stored routine. diff -Nru mariadb-5.5-5.5.63/mysql-test/r/ddl_i18n_utf8.result mariadb-5.5-5.5.64/mysql-test/r/ddl_i18n_utf8.result --- mariadb-5.5-5.5.63/mysql-test/r/ddl_i18n_utf8.result 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/ddl_i18n_utf8.result 2019-04-26 12:37:01.000000000 +0000 @@ -2174,7 +2174,7 @@ CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci| use mysqltest1| -CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT ev1 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10); SELECT @@ -2186,7 +2186,7 @@ @@character_set_client AS c6; END| -CREATE EVENT ev2 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT ev2 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT @@ -2198,7 +2198,7 @@ @@character_set_client AS c6; END| -CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT @@ -2210,7 +2210,7 @@ @@character_set_client AS c6; END| -CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT @@ -2226,7 +2226,7 @@ SHOW CREATE EVENT ev1| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10); SELECT COLLATION(перем1) AS c1, @@ -2239,7 +2239,7 @@ SHOW CREATE EVENT ev2| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2252,7 +2252,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2265,7 +2265,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2279,11 +2279,11 @@ SHOW EVENTS LIKE 'ev1'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci +mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev2'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci +mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev3'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation @@ -2303,7 +2303,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2316,7 +2316,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2329,7 +2329,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2342,7 +2342,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci ALTER DATABASE mysqltest1 COLLATE cp866_general_ci| @@ -2361,7 +2361,7 @@ SHOW CREATE EVENT ev1| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10); SELECT COLLATION(перем1) AS c1, @@ -2374,7 +2374,7 @@ SHOW CREATE EVENT ev2| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2387,7 +2387,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2400,7 +2400,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2414,11 +2414,11 @@ SHOW EVENTS LIKE 'ev1'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci +mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev2'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci +mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev3'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation @@ -2438,7 +2438,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2451,7 +2451,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2464,7 +2464,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2477,7 +2477,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci ---> Dump of mysqltest1 @@ -2497,7 +2497,7 @@ /*!50003 SET sql_mode = '' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; -/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev1` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10); SELECT COLLATION(перем1) AS c1, @@ -2525,7 +2525,7 @@ /*!50003 SET sql_mode = '' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; -/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev2` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2564,7 +2564,7 @@ /*!50003 SET sql_mode = '' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; -/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2592,7 +2592,7 @@ /*!50003 SET sql_mode = '' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; -/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev4` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `ev4` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2634,7 +2634,7 @@ SHOW CREATE EVENT ev1| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10); SELECT COLLATION(перем1) AS c1, @@ -2647,7 +2647,7 @@ SHOW CREATE EVENT ev2| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev2 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev2` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2660,7 +2660,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2673,7 +2673,7 @@ SHOW CREATE EVENT mysqltest2.ev3| Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN +ev3 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev3` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; SELECT COLLATION(перем1) AS c1, @@ -2687,11 +2687,11 @@ SHOW EVENTS LIKE 'ev1'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev1 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci +mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev2'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation -mysqltest1 ev2 root@localhost SYSTEM ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci utf8_unicode_ci +mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci SHOW EVENTS LIKE 'ev3'| Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation @@ -2711,7 +2711,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2724,7 +2724,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2737,7 +2737,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'| EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION @@ -2750,7 +2750,7 @@ COLLATION( 'текст') AS c4, @@collation_connection AS c5, @@character_set_client AS c6; -END ONE TIME 2030-01-01 00:00:00 NULL NULL NULL NULL ENABLED NOT PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci +END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci ------------------------------------------------------------------- DDL statements within stored routine. diff -Nru mariadb-5.5-5.5.63/mysql-test/r/events_1.result mariadb-5.5-5.5.64/mysql-test/r/events_1.result --- mariadb-5.5-5.5.63/mysql-test/r/events_1.result 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/events_1.result 2019-04-26 12:37:01.000000000 +0000 @@ -49,7 +49,7 @@ SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test'; execute_at IS NULL starts IS NULL ends IS NULL comment 1 0 1 -ALTER EVENT event_starts_test ON SCHEDULE AT '2020-02-02 20:00:02'; +ALTER EVENT event_starts_test ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE; SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test'; execute_at IS NULL starts IS NULL ends IS NULL comment 0 1 1 @@ -62,7 +62,7 @@ execute_at IS NULL starts IS NULL ends IS NULL comment 0 1 1 DROP EVENT event_starts_test; -CREATE EVENT event_starts_test ON SCHEDULE EVERY 20 SECOND STARTS '2020-02-02 20:00:02' ENDS '2022-02-02 20:00:02' DO SELECT 2; +CREATE EVENT event_starts_test ON SCHEDULE EVERY 20 SECOND STARTS '1970-01-02 00:00:00' ENDS '1970-01-03 00:00:00' ON COMPLETION PRESERVE DISABLE DO SELECT 2; SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test'; execute_at IS NULL starts IS NULL ends IS NULL comment 1 0 0 diff -Nru mariadb-5.5-5.5.63/mysql-test/r/grant4.result mariadb-5.5-5.5.64/mysql-test/r/grant4.result --- mariadb-5.5-5.5.63/mysql-test/r/grant4.result 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/grant4.result 2019-04-26 12:37:01.000000000 +0000 @@ -121,3 +121,21 @@ v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t_select_priv`.`a` AS `a`,`t_select_priv`.`b` AS `b` from `t_select_priv` latin1 latin1_swedish_ci drop database mysqltest_db1; drop user mysqltest_u1@localhost; +call mtr.add_suppression("Table 'mysql.user' doesn't exist"); +rename table mysql.user to mysql.user1; +create view mysql.user as select * from mysql.user1; +flush privileges; +ERROR 42S02: Table 'mysql.user' doesn't exist +drop view mysql.user; +create temporary table mysql.user select * from mysql.user1 limit 0; +flush privileges; +ERROR 42S02: Table 'mysql.user' doesn't exist +drop temporary table mysql.user; +rename table mysql.user1 to mysql.user; +call mtr.add_suppression('mysql.user table is damaged'); +rename table mysql.user to mysql.user1; +create table mysql.user (Host char(100), User char(100)); +flush privileges; +ERROR HY000: Unknown error +drop table mysql.user; +rename table mysql.user1 to mysql.user; diff -Nru mariadb-5.5-5.5.63/mysql-test/r/information_schema_prepare.result mariadb-5.5-5.5.64/mysql-test/r/information_schema_prepare.result --- mariadb-5.5-5.5.63/mysql-test/r/information_schema_prepare.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/information_schema_prepare.result 2019-04-26 12:37:01.000000000 +0000 @@ -0,0 +1,4 @@ +PREPARE stmt2 FROM "CREATE VIEW v AS SELECT * FROM INFORMATION_SCHEMA.TABLES"; +FLUSH PRIVILEGES; +EXECUTE stmt2; +DROP VIEW v; diff -Nru mariadb-5.5-5.5.63/mysql-test/r/loaddata.result mariadb-5.5-5.5.64/mysql-test/r/loaddata.result --- mariadb-5.5-5.5.63/mysql-test/r/loaddata.result 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/loaddata.result 2019-04-26 12:37:01.000000000 +0000 @@ -550,3 +550,53 @@ HEX(a) C3A4 DROP TABLE t1; +# +# MDEV-15744: Assertion `derived->table' failed in mysql_derived_merge_for_insert +# +create table t1 (a int, b int); +CREATE OR REPLACE VIEW t2 AS SELECT * FROM t1; +CREATE VIEW v2 AS SELECT * FROM t2; +LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE v2 +FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; +select * from v2; +a b +2 2 +3 3 +4 4 +5 5 +6 6 +select * from t2; +a b +2 2 +3 3 +4 4 +5 5 +6 6 +DROP VIEW IF EXISTS v2,t2; +DROP TABLE IF EXISTS t1; +# +# MDEV-15950: LOAD DATA INTO compex_view crashed +# +create table t1 (a int, b int); +create table t0 (x int, y int); +CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1,t0; +CREATE VIEW v2 AS SELECT * FROM v1; +LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE v1 +FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; +ERROR HY000: Incorrect usage of Multi-table VIEW and LOAD +LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE v2 +FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; +ERROR HY000: Incorrect usage of Multi-table VIEW and LOAD +DROP VIEW IF EXISTS v2,v1; +DROP TABLE IF EXISTS t1,t0; +CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), UNIQUE(b)); +INSERT INTO t1 VALUES (1,1); +CREATE TABLE t2 (c INT); +CREATE VIEW v AS SELECT t1.* FROM t1 JOIN t2; +SELECT a, b FROM t1 INTO OUTFILE '15645.data'; +LOAD DATA INFILE '15645.data' IGNORE INTO TABLE v (a,b); +ERROR HY000: Incorrect usage of Multi-table VIEW and LOAD +LOAD DATA INFILE '15645.data' REPLACE INTO TABLE v (a,b); +ERROR HY000: Incorrect usage of Multi-table VIEW and LOAD +drop table t1,t2; +drop view v; diff -Nru mariadb-5.5-5.5.63/mysql-test/r/multi_update2.result mariadb-5.5-5.5.64/mysql-test/r/multi_update2.result --- mariadb-5.5-5.5.63/mysql-test/r/multi_update2.result 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/multi_update2.result 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -DROP TABLE IF EXISTS t1,t2; -CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL) ; -# The protocolling of many inserts into t1 is suppressed. -ALTER TABLE t1 ADD INDEX i1(a); -DELETE FROM t1 WHERE a > 2000000; -CREATE TABLE t2 LIKE t1; -INSERT INTO t2 SELECT * FROM t1; -SELECT 't2 rows before small delete', COUNT(*) FROM t1; -t2 rows before small delete COUNT(*) -t2 rows before small delete 2000000 -DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 2; -SELECT 't2 rows after small delete', COUNT(*) FROM t2; -t2 rows after small delete COUNT(*) -t2 rows after small delete 1999999 -SELECT 't1 rows after small delete', COUNT(*) FROM t1; -t1 rows after small delete COUNT(*) -t1 rows after small delete 1999999 -DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 100*1000; -SELECT 't2 rows after big delete', COUNT(*) FROM t2; -t2 rows after big delete COUNT(*) -t2 rows after big delete 1900001 -SELECT 't1 rows after big delete', COUNT(*) FROM t1; -t1 rows after big delete COUNT(*) -t1 rows after big delete 1900001 -DROP TABLE t1,t2; diff -Nru mariadb-5.5-5.5.63/mysql-test/r/multi_update_big.result mariadb-5.5-5.5.64/mysql-test/r/multi_update_big.result --- mariadb-5.5-5.5.63/mysql-test/r/multi_update_big.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/multi_update_big.result 2019-04-26 12:37:01.000000000 +0000 @@ -0,0 +1,25 @@ +DROP TABLE IF EXISTS t1,t2; +CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL) ; +# The protocolling of many inserts into t1 is suppressed. +ALTER TABLE t1 ADD INDEX i1(a); +DELETE FROM t1 WHERE a > 2000000; +CREATE TABLE t2 LIKE t1; +INSERT INTO t2 SELECT * FROM t1; +SELECT 't2 rows before small delete', COUNT(*) FROM t1; +t2 rows before small delete COUNT(*) +t2 rows before small delete 2000000 +DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 2; +SELECT 't2 rows after small delete', COUNT(*) FROM t2; +t2 rows after small delete COUNT(*) +t2 rows after small delete 1999999 +SELECT 't1 rows after small delete', COUNT(*) FROM t1; +t1 rows after small delete COUNT(*) +t1 rows after small delete 1999999 +DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 100*1000; +SELECT 't2 rows after big delete', COUNT(*) FROM t2; +t2 rows after big delete COUNT(*) +t2 rows after big delete 1900001 +SELECT 't1 rows after big delete', COUNT(*) FROM t1; +t1 rows after big delete COUNT(*) +t1 rows after big delete 1900001 +DROP TABLE t1,t2; diff -Nru mariadb-5.5-5.5.63/mysql-test/r/multi_update.result mariadb-5.5-5.5.64/mysql-test/r/multi_update.result --- mariadb-5.5-5.5.63/mysql-test/r/multi_update.result 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/multi_update.result 2019-04-26 12:37:01.000000000 +0000 @@ -1017,4 +1017,25 @@ deallocate prepare stmt1; drop view v3,v2,v1; drop table t1,t2,t3; +create table t1 (id int not null, v1 varchar(10) not null); +insert into t1 values (1,1),(2,2); +create table t2 (log varchar(10) not null); +create trigger t1_after_update after update on t1 +for each row insert into t2 values ('triggered'); +create user foo; +grant select, insert, update, delete, create, drop, reload, index, alter, show databases, create temporary tables, lock tables, execute, create view, show view, create routine, alter routine, trigger on *.* to 'foo'@'%'; +set global read_only=1; +create temporary table temp_t1 (id int not null, update_me varchar(10)); +insert into temp_t1 values (1,1),(2,2),(3,3); +update temp_t1 left join t1 on temp_t1.id = t1.id set temp_t1.update_me = 'hello'; +set global read_only = 0; +create table t3 (id int not null); +insert t3 values (2); +update t1 left join t3 on t1.id = t3.id set t1.v1 = 'hello'; +select * from t2; +log +triggered +triggered +drop table t1,t2, t3; +drop user foo; end of 5.5 tests diff -Nru mariadb-5.5-5.5.63/mysql-test/r/mysql.result mariadb-5.5-5.5.64/mysql-test/r/mysql.result --- mariadb-5.5-5.5.63/mysql-test/r/mysql.result 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/mysql.result 2019-04-26 12:37:01.000000000 +0000 @@ -613,3 +613,7 @@ 0 truncate table t1; drop table t1; +# +# MDEV-15538 '-N' Produce html output wrong +# +
1
\ No newline at end of file diff -Nru mariadb-5.5-5.5.63/mysql-test/r/show_check.result mariadb-5.5-5.5.64/mysql-test/r/show_check.result --- mariadb-5.5-5.5.63/mysql-test/r/show_check.result 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/show_check.result 2019-04-26 12:37:01.000000000 +0000 @@ -1424,7 +1424,7 @@ CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET NEW.c1 = ''; -CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO SELECT '' AS test; +CREATE EVENT ev1 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO SELECT '' AS test; set names utf8; SHOW CREATE VIEW v1; View Create View character_set_client collation_connection @@ -1444,7 +1444,7 @@ SET NEW.c1 = 'тест' koi8r koi8r_general_ci latin1_swedish_ci SHOW CREATE EVENT ev1; Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 'тест' AS test koi8r koi8r_general_ci latin1_swedish_ci +ev1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO SELECT 'тест' AS test koi8r koi8r_general_ci latin1_swedish_ci DROP VIEW v1; DROP PROCEDURE p1; DROP FUNCTION f1; diff -Nru mariadb-5.5-5.5.63/mysql-test/r/sp.result mariadb-5.5-5.5.64/mysql-test/r/sp.result --- mariadb-5.5-5.5.63/mysql-test/r/sp.result 2019-01-27 18:02:21.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/sp.result 2019-04-26 12:37:01.000000000 +0000 @@ -8072,4 +8072,53 @@ c a b a b DROP PROCEDURE sp; DROP TABLE t1; +# +# MDEV-17055: Server crashes in find_order_in_list upon +# 2nd (3rd) execution of SP with UPDATE +# +CREATE TABLE t1 (a INT); +CREATE VIEW v1 AS SELECT * FROM t1; +CREATE TABLE t2 (c INT); +CREATE PROCEDURE sp() UPDATE v1 SET a = 1 ORDER BY a, b LIMIT 1; +LOCK TABLE t2 READ; +CALL sp; +ERROR HY000: Table 'v1' was not locked with LOCK TABLES +UNLOCK TABLES; +CALL sp; +ERROR 42S22: Unknown column 'b' in 'order clause' +CALL sp; +ERROR 42S22: Unknown column 'b' in 'order clause' +CALL sp; +ERROR 42S22: Unknown column 'b' in 'order clause' +DROP PROCEDURE sp; +CREATE PROCEDURE sp() UPDATE v1 SET a = 1 WHERE a=1 and b=2; +LOCK TABLE t2 READ; +CALL sp; +ERROR HY000: Table 'v1' was not locked with LOCK TABLES +UNLOCK TABLES; +CALL sp; +ERROR 42S22: Unknown column 'b' in 'where clause' +CALL sp; +ERROR 42S22: Unknown column 'b' in 'where clause' +CALL sp; +ERROR 42S22: Unknown column 'b' in 'where clause' +DROP PROCEDURE sp; +DROP VIEW v1; +DROP TABLE t1, t2; # End of 5.5 test +CREATE PROCEDURE sp() ALTER TABLE non_existing_table OPTIMIZE PARTITION p0; +CALL sp; +Table Op Msg_type Msg_text +test.non_existing_table optimize Error Table 'test.non_existing_table' doesn't exist +test.non_existing_table optimize status Operation failed +SELECT 1; +1 +1 +DROP PROCEDURE sp; +CREATE PROCEDURE sp() SHOW USER_STATISTICS; +CALL sp; +User Total_connections Concurrent_connections Connected_time Busy_time Cpu_time Bytes_received Bytes_sent Binlog_bytes_written Rows_read Rows_sent Rows_deleted Rows_inserted Rows_updated Select_commands Update_commands Other_commands Commit_transactions Rollback_transactions Denied_connections Lost_connections Access_denied Empty_queries +SELECT 1; +1 +1 +DROP PROCEDURE sp; diff -Nru mariadb-5.5-5.5.63/mysql-test/r/subselect_sj_jcl6.result mariadb-5.5-5.5.64/mysql-test/r/subselect_sj_jcl6.result --- mariadb-5.5-5.5.63/mysql-test/r/subselect_sj_jcl6.result 2019-01-27 18:02:21.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/subselect_sj_jcl6.result 2019-04-26 12:37:01.000000000 +0000 @@ -3192,6 +3192,13 @@ a drop view v3; drop table t1,t2,t3; +# +# MDEV-18896: IN subquery in WHERE of a table-less query used for INSERT +# +create table t1 (a1 varchar(25)); +create table t2 (a2 varchar(25)) ; +insert into t1 select 'xxx' from dual where 'xxx' in (select a2 from t2); +drop table t1,t2; # End of 5.5 test set optimizer_switch=@subselect_sj_tmp; # diff -Nru mariadb-5.5-5.5.63/mysql-test/r/subselect_sj.result mariadb-5.5-5.5.64/mysql-test/r/subselect_sj.result --- mariadb-5.5-5.5.63/mysql-test/r/subselect_sj.result 2019-01-27 18:02:21.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/subselect_sj.result 2019-04-26 12:37:01.000000000 +0000 @@ -3178,5 +3178,12 @@ a drop view v3; drop table t1,t2,t3; +# +# MDEV-18896: IN subquery in WHERE of a table-less query used for INSERT +# +create table t1 (a1 varchar(25)); +create table t2 (a2 varchar(25)) ; +insert into t1 select 'xxx' from dual where 'xxx' in (select a2 from t2); +drop table t1,t2; # End of 5.5 test set optimizer_switch=@subselect_sj_tmp; diff -Nru mariadb-5.5-5.5.63/mysql-test/r/view_grant.result mariadb-5.5-5.5.64/mysql-test/r/view_grant.result --- mariadb-5.5-5.5.63/mysql-test/r/view_grant.result 2019-01-27 18:02:21.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/r/view_grant.result 2019-04-26 12:37:01.000000000 +0000 @@ -173,11 +173,14 @@ insert into mysqltest.t1 values (10,2), (20,3), (30,4), (40,5), (50,10); create table mysqltest.t2 (x int); insert into mysqltest.t2 values (3), (4), (5), (6); +create table mysqltest.t3 (x int); +insert into mysqltest.t3 values (3), (4), (5), (6); create view mysqltest.v1 (a,c) as select a, b+1 from mysqltest.t1; create view mysqltest.v2 (a,c) as select a, b from mysqltest.t1; create view mysqltest.v3 (a,c) as select a, b+1 from mysqltest.t1; grant update (a) on mysqltest.v2 to mysqltest_1@localhost; grant update on mysqltest.v1 to mysqltest_1@localhost; +grant update on mysqltest.t3 to mysqltest_1@localhost; grant select on mysqltest.* to mysqltest_1@localhost; use mysqltest; update t2,v1 set v1.a=v1.a+v1.c where t2.x=v1.c; @@ -212,6 +215,7 @@ 48 4 62 5 71 10 +update t3,v3 set t3.x=t3.x+v3.c where t3.x=v3.c; update t2,v2 set v2.c=v2.a+v2.c where t2.x=v2.c; ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for column 'c' in table 'v2' update v2 set c=a+c; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result mariadb-5.5-5.5.64/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result --- mariadb-5.5-5.5.63/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result 2019-01-27 18:02:21.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result 2019-04-26 12:37:01.000000000 +0000 @@ -1,7 +1,7 @@ drop table if exists t1; -reset master; -set @a=UNIX_TIMESTAMP("2020-01-21 15:32:22"); +set @a=UNIX_TIMESTAMP("1970-01-21 15:32:22"); set timestamp=@a; +reset master; create table t1 (a int auto_increment not null primary key, b char(3)); insert into t1 values(null, "a"); insert into t1 values(null, "b"); @@ -21,7 +21,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -32,54 +32,54 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; @@ -94,7 +94,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -107,50 +107,50 @@ /*!*/; SET INSERT_ID=1/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; @@ -165,7 +165,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -178,30 +178,30 @@ /*!*/; SET INSERT_ID=3/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; @@ -217,7 +217,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -228,24 +228,24 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; DELIMITER ; @@ -260,7 +260,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -273,7 +273,7 @@ /*!*/; SET INSERT_ID=3/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; DELIMITER ; @@ -288,7 +288,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -301,30 +301,30 @@ /*!*/; SET INSERT_ID=3/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; @@ -340,7 +340,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -351,24 +351,24 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; DELIMITER ; @@ -385,7 +385,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -396,59 +396,59 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; DELIMITER /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -461,10 +461,10 @@ /*!*/; SET INSERT_ID=6/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; insert into t1 values(null, "f") /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; COMMIT /*!*/; DELIMITER ; @@ -479,7 +479,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -492,55 +492,55 @@ /*!*/; SET INSERT_ID=1/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; DELIMITER /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -553,10 +553,10 @@ /*!*/; SET INSERT_ID=6/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; insert into t1 values(null, "f") /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; COMMIT /*!*/; DELIMITER ; @@ -571,7 +571,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -584,35 +584,35 @@ /*!*/; SET INSERT_ID=3/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; DELIMITER /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -625,10 +625,10 @@ /*!*/; SET INSERT_ID=6/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; insert into t1 values(null, "f") /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; COMMIT /*!*/; DELIMITER ; @@ -644,7 +644,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -655,59 +655,59 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; DELIMITER /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -731,7 +731,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -744,35 +744,35 @@ /*!*/; SET INSERT_ID=3/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; DELIMITER /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -785,10 +785,10 @@ /*!*/; SET INSERT_ID=6/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; insert into t1 values(null, "f") /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; COMMIT /*!*/; DELIMITER ; @@ -804,7 +804,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -815,24 +815,24 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; DELIMITER ; @@ -848,7 +848,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -859,54 +859,54 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; @@ -921,7 +921,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -934,50 +934,50 @@ /*!*/; SET INSERT_ID=1/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; @@ -991,7 +991,7 @@ /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1004,30 +1004,30 @@ /*!*/; SET INSERT_ID=3/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; @@ -1043,7 +1043,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1054,24 +1054,24 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; DELIMITER ; @@ -1085,7 +1085,7 @@ /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1098,7 +1098,7 @@ /*!*/; SET INSERT_ID=3/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; DELIMITER ; @@ -1113,7 +1113,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1126,30 +1126,30 @@ /*!*/; SET INSERT_ID=3/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; @@ -1165,7 +1165,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1176,24 +1176,24 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; DELIMITER ; @@ -1209,7 +1209,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1220,59 +1220,59 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; DELIMITER /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1285,10 +1285,10 @@ /*!*/; SET INSERT_ID=6/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; insert into t1 values(null, "f") /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; COMMIT /*!*/; DELIMITER ; @@ -1303,7 +1303,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1316,55 +1316,55 @@ /*!*/; SET INSERT_ID=1/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; DELIMITER /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1377,10 +1377,10 @@ /*!*/; SET INSERT_ID=6/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; insert into t1 values(null, "f") /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; COMMIT /*!*/; DELIMITER ; @@ -1394,7 +1394,7 @@ /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1407,35 +1407,35 @@ /*!*/; SET INSERT_ID=3/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; DELIMITER /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1448,10 +1448,10 @@ /*!*/; SET INSERT_ID=6/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; insert into t1 values(null, "f") /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; COMMIT /*!*/; DELIMITER ; @@ -1467,7 +1467,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1478,59 +1478,59 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; DELIMITER /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1553,7 +1553,7 @@ /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1566,35 +1566,35 @@ /*!*/; SET INSERT_ID=3/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; DELIMITER ; DELIMITER /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1607,10 +1607,10 @@ /*!*/; SET INSERT_ID=6/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; insert into t1 values(null, "f") /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; COMMIT /*!*/; DELIMITER ; @@ -1626,7 +1626,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1637,24 +1637,24 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; DELIMITER ; @@ -1670,7 +1670,7 @@ DELIMITER /*!*/; ROLLBACK/*!*/; use `test`/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=0/*!*/; @@ -1681,64 +1681,64 @@ SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=1/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "a") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; BEGIN /*!*/; SET INSERT_ID=2/*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; insert into t1 values(null, "b") /*!*/; -SET TIMESTAMP=1579609942/*!*/; +SET TIMESTAMP=1773142/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; BEGIN /*!*/; SET INSERT_ID=3/*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; insert into t1 values(null, "c") /*!*/; -SET TIMESTAMP=1579609944/*!*/; +SET TIMESTAMP=1773144/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=4/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "d") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; BEGIN /*!*/; SET INSERT_ID=5/*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; insert into t1 values(null, "e") /*!*/; -SET TIMESTAMP=1579609946/*!*/; +SET TIMESTAMP=1773146/*!*/; COMMIT /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; BEGIN /*!*/; SET INSERT_ID=6/*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; insert into t1 values(null, "f") /*!*/; -SET TIMESTAMP=1579609943/*!*/; +SET TIMESTAMP=1773143/*!*/; COMMIT /*!*/; DELIMITER ; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test mariadb-5.5-5.5.64/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test --- mariadb-5.5-5.5.63/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test 2019-01-27 18:02:21.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test 2019-04-26 12:37:01.000000000 +0000 @@ -8,15 +8,15 @@ --disable_warnings drop table if exists t1; --enable_warnings -reset master; # We need this for getting fixed timestamps inside of this test. -# I use a date in the future to keep a growing timestamp along the +# I use a date in the past to keep a growing timestamp along the # binlog (including the Start_log_event). This test will work # unchanged everywhere, because mysql-test-run has fixed TZ, which it # exports (so mysqlbinlog has same fixed TZ). -set @a=UNIX_TIMESTAMP("2020-01-21 15:32:22"); +set @a=UNIX_TIMESTAMP("1970-01-21 15:32:22"); set timestamp=@a; +reset master; create table t1 (a int auto_increment not null primary key, b char(3)); insert into t1 values(null, "a"); insert into t1 values(null, "b"); @@ -70,11 +70,11 @@ --disable_query_log select "--- start-datetime --" as ""; --enable_query_log ---exec $MYSQL_BINLOG --short-form "--start-datetime=2020-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 +--exec $MYSQL_BINLOG --short-form "--start-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 --disable_query_log select "--- stop-datetime --" as ""; --enable_query_log ---exec $MYSQL_BINLOG --short-form "--stop-datetime=2020-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 +--exec $MYSQL_BINLOG --short-form "--stop-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 --disable_query_log select "--- Local with 2 binlogs on command line --" as ""; @@ -102,11 +102,11 @@ --disable_query_log select "--- start-datetime --" as ""; --enable_query_log ---exec $MYSQL_BINLOG --short-form "--start-datetime=2020-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 +--exec $MYSQL_BINLOG --short-form "--start-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 --disable_query_log select "--- stop-datetime --" as ""; --enable_query_log ---exec $MYSQL_BINLOG --short-form "--stop-datetime=2020-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 +--exec $MYSQL_BINLOG --short-form "--stop-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 --disable_query_log select "--- Remote --" as ""; @@ -137,11 +137,11 @@ --disable_query_log select "--- start-datetime --" as ""; --enable_query_log ---exec $MYSQL_BINLOG --short-form "--start-datetime=2020-01-21 15:32:24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 +--exec $MYSQL_BINLOG --short-form "--start-datetime=1970-01-21 15:32:24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 --disable_query_log select "--- stop-datetime --" as ""; --enable_query_log ---exec $MYSQL_BINLOG --short-form "--stop-datetime=2020-01-21 15:32:24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 +--exec $MYSQL_BINLOG --short-form "--stop-datetime=1970-01-21 15:32:24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 --disable_query_log select "--- Remote with 2 binlogs on command line --" as ""; @@ -166,11 +166,11 @@ --disable_query_log select "--- start-datetime --" as ""; --enable_query_log ---exec $MYSQL_BINLOG --short-form "--start-datetime=20200121153224" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 +--exec $MYSQL_BINLOG --short-form "--start-datetime=19700121153224" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 --disable_query_log select "--- stop-datetime --" as ""; --enable_query_log ---exec $MYSQL_BINLOG --short-form "--stop-datetime=2020/01/21 15@32@24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 +--exec $MYSQL_BINLOG --short-form "--stop-datetime=1970/01/21 15@32@24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 --disable_query_log select "--- to-last-log --" as ""; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/innodb/r/foreign_key.result mariadb-5.5-5.5.64/mysql-test/suite/innodb/r/foreign_key.result --- mariadb-5.5-5.5.63/mysql-test/suite/innodb/r/foreign_key.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/innodb/r/foreign_key.result 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1,20 @@ +# +# MDEV-18630 Conditional jump or move depends on uninitialised value +# in ib_push_warning / dict_create_foreign_constraints_low +# +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +ALTER IGNORE TABLE t1 ADD FOREIGN KEY (a) REFERENCES t2 (b); +ERROR HY000: Can't create table 'test.#sql-temporary' (errno: 150) +SHOW WARNINGS; +Level Code Message +Warning 150 Alter table `test`.`t1` with foreign key constraint failed. Referenced table `test`.`t2` not found in the data dictionary near 'FOREIGN KEY (a) REFERENCES t2 (b)'. +Error 1005 Can't create table 'test.#sql-temporary' (errno: 150) +DROP TABLE t1; +# +# MDEV-18139 ALTER IGNORE ... ADD FOREIGN KEY causes bogus error +# +CREATE TABLE t1 (f1 INT, f2 INT, f3 INT, KEY(f1)) ENGINE=InnoDB; +CREATE TABLE t2 (f INT, KEY(f)) ENGINE=InnoDB; +ALTER TABLE t1 ADD FOREIGN KEY (f2) REFERENCES t2 (f); +ALTER IGNORE TABLE t1 ADD FOREIGN KEY (f3) REFERENCES t1 (f1); +DROP TABLE t1, t2; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/innodb/r/innodb-truncate.result mariadb-5.5-5.5.64/mysql-test/suite/innodb/r/innodb-truncate.result --- mariadb-5.5-5.5.63/mysql-test/suite/innodb/r/innodb-truncate.result 2019-01-27 18:02:21.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/innodb/r/innodb-truncate.result 2019-04-26 12:37:02.000000000 +0000 @@ -66,3 +66,16 @@ 1 2 DROP TABLE t1; +call mtr.add_suppression('InnoDB: Error: in RENAME TABLE table `test`.`t3`'); +SET FOREIGN_KEY_CHECKS= OFF; +CREATE TABLE t1 (f2 INT, f4 INT, KEY(f2), FOREIGN KEY (f4) REFERENCES t3 (f4)) ENGINE=InnoDB; +SET FOREIGN_KEY_CHECKS= ON; +CREATE TABLE t2 (f2 INT, FOREIGN KEY(f2) REFERENCES t1 (f2)) ENGINE=InnoDB; +CREATE TABLE t3 (a INT) ENGINE=InnoDB; +ERROR HY000: Can't create table 'test.t3' (errno: 150) +ALTER TABLE t1 RENAME TO t3; +ERROR HY000: Error on rename of './test/t1' to './test/t3' (errno: 150) +ALTER TABLE t1 FORCE; +TRUNCATE TABLE t1; +ERROR 42000: Cannot truncate a table referenced in a foreign key constraint (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`f2`) REFERENCES `test`.`t3` (`f2`)) +DROP TABLE t2, t1; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/innodb/r/xa_debug.result mariadb-5.5-5.5.64/mysql-test/suite/innodb/r/xa_debug.result --- mariadb-5.5-5.5.63/mysql-test/suite/innodb/r/xa_debug.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/innodb/r/xa_debug.result 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1,311 @@ +call mtr.add_suppression("Found 50 prepared XA transactions"); +create table t1 (a int) engine=innodb; +insert into t1 values(1); +xa start 'test50'; +insert into t1 values(1); +xa end 'test50'; +xa prepare 'test50'; +xa start 'test49'; +insert into t1 values(1); +xa end 'test49'; +xa prepare 'test49'; +xa start 'test48'; +insert into t1 values(1); +xa end 'test48'; +xa prepare 'test48'; +xa start 'test47'; +insert into t1 values(1); +xa end 'test47'; +xa prepare 'test47'; +xa start 'test46'; +insert into t1 values(1); +xa end 'test46'; +xa prepare 'test46'; +xa start 'test45'; +insert into t1 values(1); +xa end 'test45'; +xa prepare 'test45'; +xa start 'test44'; +insert into t1 values(1); +xa end 'test44'; +xa prepare 'test44'; +xa start 'test43'; +insert into t1 values(1); +xa end 'test43'; +xa prepare 'test43'; +xa start 'test42'; +insert into t1 values(1); +xa end 'test42'; +xa prepare 'test42'; +xa start 'test41'; +insert into t1 values(1); +xa end 'test41'; +xa prepare 'test41'; +xa start 'test40'; +insert into t1 values(1); +xa end 'test40'; +xa prepare 'test40'; +xa start 'test39'; +insert into t1 values(1); +xa end 'test39'; +xa prepare 'test39'; +xa start 'test38'; +insert into t1 values(1); +xa end 'test38'; +xa prepare 'test38'; +xa start 'test37'; +insert into t1 values(1); +xa end 'test37'; +xa prepare 'test37'; +xa start 'test36'; +insert into t1 values(1); +xa end 'test36'; +xa prepare 'test36'; +xa start 'test35'; +insert into t1 values(1); +xa end 'test35'; +xa prepare 'test35'; +xa start 'test34'; +insert into t1 values(1); +xa end 'test34'; +xa prepare 'test34'; +xa start 'test33'; +insert into t1 values(1); +xa end 'test33'; +xa prepare 'test33'; +xa start 'test32'; +insert into t1 values(1); +xa end 'test32'; +xa prepare 'test32'; +xa start 'test31'; +insert into t1 values(1); +xa end 'test31'; +xa prepare 'test31'; +xa start 'test30'; +insert into t1 values(1); +xa end 'test30'; +xa prepare 'test30'; +xa start 'test29'; +insert into t1 values(1); +xa end 'test29'; +xa prepare 'test29'; +xa start 'test28'; +insert into t1 values(1); +xa end 'test28'; +xa prepare 'test28'; +xa start 'test27'; +insert into t1 values(1); +xa end 'test27'; +xa prepare 'test27'; +xa start 'test26'; +insert into t1 values(1); +xa end 'test26'; +xa prepare 'test26'; +xa start 'test25'; +insert into t1 values(1); +xa end 'test25'; +xa prepare 'test25'; +xa start 'test24'; +insert into t1 values(1); +xa end 'test24'; +xa prepare 'test24'; +xa start 'test23'; +insert into t1 values(1); +xa end 'test23'; +xa prepare 'test23'; +xa start 'test22'; +insert into t1 values(1); +xa end 'test22'; +xa prepare 'test22'; +xa start 'test21'; +insert into t1 values(1); +xa end 'test21'; +xa prepare 'test21'; +xa start 'test20'; +insert into t1 values(1); +xa end 'test20'; +xa prepare 'test20'; +xa start 'test19'; +insert into t1 values(1); +xa end 'test19'; +xa prepare 'test19'; +xa start 'test18'; +insert into t1 values(1); +xa end 'test18'; +xa prepare 'test18'; +xa start 'test17'; +insert into t1 values(1); +xa end 'test17'; +xa prepare 'test17'; +xa start 'test16'; +insert into t1 values(1); +xa end 'test16'; +xa prepare 'test16'; +xa start 'test15'; +insert into t1 values(1); +xa end 'test15'; +xa prepare 'test15'; +xa start 'test14'; +insert into t1 values(1); +xa end 'test14'; +xa prepare 'test14'; +xa start 'test13'; +insert into t1 values(1); +xa end 'test13'; +xa prepare 'test13'; +xa start 'test12'; +insert into t1 values(1); +xa end 'test12'; +xa prepare 'test12'; +xa start 'test11'; +insert into t1 values(1); +xa end 'test11'; +xa prepare 'test11'; +xa start 'test10'; +insert into t1 values(1); +xa end 'test10'; +xa prepare 'test10'; +xa start 'test9'; +insert into t1 values(1); +xa end 'test9'; +xa prepare 'test9'; +xa start 'test8'; +insert into t1 values(1); +xa end 'test8'; +xa prepare 'test8'; +xa start 'test7'; +insert into t1 values(1); +xa end 'test7'; +xa prepare 'test7'; +xa start 'test6'; +insert into t1 values(1); +xa end 'test6'; +xa prepare 'test6'; +xa start 'test5'; +insert into t1 values(1); +xa end 'test5'; +xa prepare 'test5'; +xa start 'test4'; +insert into t1 values(1); +xa end 'test4'; +xa prepare 'test4'; +xa start 'test3'; +insert into t1 values(1); +xa end 'test3'; +xa prepare 'test3'; +xa start 'test2'; +insert into t1 values(1); +xa end 'test2'; +xa prepare 'test2'; +xa start 'test1'; +insert into t1 values(1); +xa end 'test1'; +xa prepare 'test1'; +FLUSH TABLES; +xa recover; +formatID gtrid_length bqual_length data +1 5 0 test1 +1 5 0 test2 +1 5 0 test3 +1 5 0 test4 +1 5 0 test5 +1 5 0 test6 +1 5 0 test7 +1 5 0 test8 +1 5 0 test9 +1 6 0 test10 +1 6 0 test11 +1 6 0 test12 +1 6 0 test13 +1 6 0 test14 +1 6 0 test15 +1 6 0 test16 +1 6 0 test17 +1 6 0 test18 +1 6 0 test19 +1 6 0 test20 +1 6 0 test21 +1 6 0 test22 +1 6 0 test23 +1 6 0 test24 +1 6 0 test25 +1 6 0 test26 +1 6 0 test27 +1 6 0 test28 +1 6 0 test29 +1 6 0 test30 +1 6 0 test31 +1 6 0 test32 +1 6 0 test33 +1 6 0 test34 +1 6 0 test35 +1 6 0 test36 +1 6 0 test37 +1 6 0 test38 +1 6 0 test39 +1 6 0 test40 +1 6 0 test41 +1 6 0 test42 +1 6 0 test43 +1 6 0 test44 +1 6 0 test45 +1 6 0 test46 +1 6 0 test47 +1 6 0 test48 +1 6 0 test49 +1 6 0 test50 +xa recover; +formatID gtrid_length bqual_length data +1 5 0 test1 +1 5 0 test2 +1 5 0 test3 +1 5 0 test4 +1 5 0 test5 +1 5 0 test6 +1 5 0 test7 +1 5 0 test8 +1 5 0 test9 +1 6 0 test10 +1 6 0 test11 +1 6 0 test12 +1 6 0 test13 +1 6 0 test14 +1 6 0 test15 +1 6 0 test16 +1 6 0 test17 +1 6 0 test18 +1 6 0 test19 +1 6 0 test20 +1 6 0 test21 +1 6 0 test22 +1 6 0 test23 +1 6 0 test24 +1 6 0 test25 +1 6 0 test26 +1 6 0 test27 +1 6 0 test28 +1 6 0 test29 +1 6 0 test30 +1 6 0 test31 +1 6 0 test32 +1 6 0 test33 +1 6 0 test34 +1 6 0 test35 +1 6 0 test36 +1 6 0 test37 +1 6 0 test38 +1 6 0 test39 +1 6 0 test40 +1 6 0 test41 +1 6 0 test42 +1 6 0 test43 +1 6 0 test44 +1 6 0 test45 +1 6 0 test46 +1 6 0 test47 +1 6 0 test48 +1 6 0 test49 +1 6 0 test50 +xa recover; +formatID gtrid_length bqual_length data +drop table t1; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/innodb/t/foreign_key.test mariadb-5.5-5.5.64/mysql-test/suite/innodb/t/foreign_key.test --- mariadb-5.5-5.5.63/mysql-test/suite/innodb/t/foreign_key.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/innodb/t/foreign_key.test 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1,22 @@ +--source include/have_innodb.inc + +--echo # +--echo # MDEV-18630 Conditional jump or move depends on uninitialised value +--echo # in ib_push_warning / dict_create_foreign_constraints_low +--echo # +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +--replace_regex /#sql-[0-9_a-f-]*/#sql-temporary/ +--error ER_CANT_CREATE_TABLE +ALTER IGNORE TABLE t1 ADD FOREIGN KEY (a) REFERENCES t2 (b); +--replace_regex /#sql-[0-9_a-f-]*/#sql-temporary/ +SHOW WARNINGS; +DROP TABLE t1; + +--echo # +--echo # MDEV-18139 ALTER IGNORE ... ADD FOREIGN KEY causes bogus error +--echo # +CREATE TABLE t1 (f1 INT, f2 INT, f3 INT, KEY(f1)) ENGINE=InnoDB; +CREATE TABLE t2 (f INT, KEY(f)) ENGINE=InnoDB; +ALTER TABLE t1 ADD FOREIGN KEY (f2) REFERENCES t2 (f); +ALTER IGNORE TABLE t1 ADD FOREIGN KEY (f3) REFERENCES t1 (f1); +DROP TABLE t1, t2; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/innodb/t/innodb.test mariadb-5.5-5.5.64/mysql-test/suite/innodb/t/innodb.test --- mariadb-5.5-5.5.63/mysql-test/suite/innodb/t/innodb.test 2019-01-27 18:02:21.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/innodb/t/innodb.test 2019-04-26 12:37:02.000000000 +0000 @@ -1125,7 +1125,7 @@ drop table t1,t2,t3; # -# Test problem with refering to different fields in same table in UNION +# Test problem with referring to different fields in same table in UNION # (Bug #2552) # create table t1 (id int, name char(10) not null, name2 char(10) not null) engine=innodb; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/innodb/t/innodb-truncate.test mariadb-5.5-5.5.64/mysql-test/suite/innodb/t/innodb-truncate.test --- mariadb-5.5-5.5.63/mysql-test/suite/innodb/t/innodb-truncate.test 2019-01-27 18:02:21.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/innodb/t/innodb-truncate.test 2019-04-26 12:37:02.000000000 +0000 @@ -1,4 +1,5 @@ --source include/have_innodb.inc +let $datadir=`select @@datadir`; --echo # --echo # TRUNCATE TABLE --echo # @@ -62,3 +63,20 @@ SELECT * FROM t1 ORDER BY a; DROP TABLE t1; +# +# MDEV-18923 Assertion `!lex_string_cmp(system_charset_info, fk_info->referenced_table, &table->s->table_name)' failed in fk_truncate_illegal_if_parent +# +call mtr.add_suppression('InnoDB: Error: in RENAME TABLE table `test`.`t3`'); +SET FOREIGN_KEY_CHECKS= OFF; +CREATE TABLE t1 (f2 INT, f4 INT, KEY(f2), FOREIGN KEY (f4) REFERENCES t3 (f4)) ENGINE=InnoDB; +SET FOREIGN_KEY_CHECKS= ON; +CREATE TABLE t2 (f2 INT, FOREIGN KEY(f2) REFERENCES t1 (f2)) ENGINE=InnoDB; +--error ER_CANT_CREATE_TABLE +CREATE TABLE t3 (a INT) ENGINE=InnoDB; +--replace_result $datadir ./ +--error ER_ERROR_ON_RENAME +ALTER TABLE t1 RENAME TO t3; +ALTER TABLE t1 FORCE; +--error ER_TRUNCATE_ILLEGAL_FK +TRUNCATE TABLE t1; +DROP TABLE t2, t1; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/innodb/t/xa_debug.test mariadb-5.5-5.5.64/mysql-test/suite/innodb/t/xa_debug.test --- mariadb-5.5-5.5.63/mysql-test/suite/innodb/t/xa_debug.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/innodb/t/xa_debug.test 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1,46 @@ +-- source include/have_innodb.inc +-- source include/have_debug.inc +-- source include/not_embedded.inc + +call mtr.add_suppression("Found 50 prepared XA transactions"); +create table t1 (a int) engine=innodb; +insert into t1 values(1); + +let $trial = 50; +while ($trial) +{ +--connect (con$trial, localhost, root,,) +let $st_pre = `select concat('test', $trial)`; +eval xa start '$st_pre'; +insert into t1 values(1); +eval xa end '$st_pre'; +eval xa prepare '$st_pre'; +dec $trial; +} + +connection default; +# Kill and restart the server. +FLUSH TABLES; +-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +-- shutdown_server 0 +-- source include/wait_until_disconnected.inc + +-- exec echo "restart:--debug_dbug=+d,min_xa_len" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +-- enable_reconnect +-- source include/wait_until_connected_again.inc +-- disable_reconnect +--sorted_result +xa recover; +--sorted_result +xa recover; +--disable_query_log +let $trial = 50; +while ($trial) +{ +let $st_pre = `select concat('test', $trial)`; +eval xa commit '$st_pre'; +dec $trial; +} +--enable_query_log +xa recover; +drop table t1; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/plugins/t/thread_pool_server_audit.test mariadb-5.5-5.5.64/mysql-test/suite/plugins/t/thread_pool_server_audit.test --- mariadb-5.5-5.5.63/mysql-test/suite/plugins/t/thread_pool_server_audit.test 2019-01-27 18:02:21.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/plugins/t/thread_pool_server_audit.test 2019-04-26 12:37:02.000000000 +0000 @@ -42,8 +42,10 @@ 3; insert into t2 values (1), (2); select * from t2; +--disable_ps_protocol --error ER_NO_SUCH_TABLE select * from t_doesnt_exist; +--enable_ps_protocol --error 1064 syntax_error_query; drop table renamed_t1, t2; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/rpl/r/kill_race_condition.result mariadb-5.5-5.5.64/mysql-test/suite/rpl/r/kill_race_condition.result --- mariadb-5.5-5.5.63/mysql-test/suite/rpl/r/kill_race_condition.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/rpl/r/kill_race_condition.result 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1,13 @@ +include/master-slave.inc +[connection master] +set global debug_dbug='d,rows_log_event_before_open_table'; +set debug_sync='now WAIT_FOR before_open_table'; +create table t1 (a int); +insert t1 values (1),(2),(3); +kill slave_sql_thread; +set debug_sync='now SIGNAL go_ahead_sql'; +set global debug_dbug=''; +set debug_sync='RESET'; +drop table t1; +start slave; +include/rpl_end.inc diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/rpl/r/rpl_rewrt_db.result mariadb-5.5-5.5.64/mysql-test/suite/rpl/r/rpl_rewrt_db.result --- mariadb-5.5-5.5.63/mysql-test/suite/rpl/r/rpl_rewrt_db.result 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/rpl/r/rpl_rewrt_db.result 2019-04-26 12:37:02.000000000 +0000 @@ -1,19 +1,36 @@ include/master-slave.inc [connection master] +set sql_log_bin=0; +create database y; +set sql_log_bin=1; drop database if exists mysqltest1; +drop database if exists x; create database mysqltest1; +set sql_log_bin=0; +create database x; +set sql_log_bin=1; use mysqltest1; create table t1 (a int); insert into t1 values(9); +use x; +create table t1 (a int); +insert into t1 values(9); select * from mysqltest1.t1; a 9 +select * from x.t1; +a +9 show databases like 'mysqltest1'; Database (mysqltest1) mysqltest1 select * from test.t1; a 9 +select * from y.t1; +a +9 +use mysqltest1; drop table t1; drop database mysqltest1; drop database if exists rewrite; @@ -209,10 +226,12 @@ DROP DATABASE database_master_temp_01; DROP DATABASE database_master_temp_02; DROP DATABASE database_master_temp_03; +DROP DATABASE x; SET sql_log_bin= 1; SET sql_log_bin= 0; DROP DATABASE database_slave_temp_01; DROP DATABASE database_slave_temp_02; DROP DATABASE database_slave_temp_03; +DROP DATABASE y; SET sql_log_bin= 1; include/rpl_end.inc diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/rpl/r/rpl_slave_invalid_external_user.result mariadb-5.5-5.5.64/mysql-test/suite/rpl/r/rpl_slave_invalid_external_user.result --- mariadb-5.5-5.5.63/mysql-test/suite/rpl/r/rpl_slave_invalid_external_user.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/rpl/r/rpl_slave_invalid_external_user.result 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1,15 @@ +include/master-slave.inc +[connection master] +CREATE USER test_user@localhost; +SET PASSWORD FOR test_user@localhost = password('PWD'); +GRANT ALL ON *.* TO test_user@localhost WITH GRANT OPTION; +connect conn_test,localhost,test_user,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK; +connection conn_test; +CREATE TABLE t1 (f1 INT); +CREATE TABLE t2 (f2 VARCHAR(64)); +CREATE TRIGGER tr_before BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 SELECT variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES; +CREATE DEFINER='root'@'localhost' TRIGGER tr_after AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t2 SELECT variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES; +INSERT INTO t1 VALUES (1); +DROP USER 'test_user'@'localhost'; +DROP TABLE t1, t2; +include/rpl_end.inc diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/rpl/t/kill_race_condition.test mariadb-5.5-5.5.64/mysql-test/suite/rpl/t/kill_race_condition.test --- mariadb-5.5-5.5.63/mysql-test/suite/rpl/t/kill_race_condition.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/rpl/t/kill_race_condition.test 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1,28 @@ +source include/have_debug_sync.inc; +source include/have_binlog_format_row.inc; +source include/master-slave.inc; + +connection slave; +set global debug_dbug='d,rows_log_event_before_open_table'; +send set debug_sync='now WAIT_FOR before_open_table'; + +connection master; +create table t1 (a int); +insert t1 values (1),(2),(3); + +connection slave; +reap; +let $a=`select id from information_schema.processlist where state='debug sync point: now'`; +replace_result $a slave_sql_thread; +eval kill $a; +set debug_sync='now SIGNAL go_ahead_sql'; +set global debug_dbug=''; +set debug_sync='RESET'; + +connection master; +drop table t1; + +connection slave; +start slave; + +source include/rpl_end.inc; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/rpl/t/rpl_rewrt_db-slave.opt mariadb-5.5-5.5.64/mysql-test/suite/rpl/t/rpl_rewrt_db-slave.opt --- mariadb-5.5-5.5.63/mysql-test/suite/rpl/t/rpl_rewrt_db-slave.opt 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/rpl/t/rpl_rewrt_db-slave.opt 2019-04-26 12:37:02.000000000 +0000 @@ -1 +1 @@ -"--replicate-rewrite-db=test->rewrite" "--replicate-rewrite-db=mysqltest1->test" "--replicate-rewrite-db=database_master_temp_01->database_slave_temp_01" "--replicate-rewrite-db=database_master_temp_02->database_slave_temp_02" "--replicate-rewrite-db=database_master_temp_03->database_slave_temp_03" +"--replicate-rewrite-db=test->rewrite" "--replicate-rewrite-db=mysqltest1 -> test" "--replicate-rewrite-db=x -> y" "--replicate-rewrite-db=database_master_temp_01->database_slave_temp_01" "--replicate-rewrite-db=database_master_temp_02->database_slave_temp_02" "--replicate-rewrite-db=database_master_temp_03->database_slave_temp_03" diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/rpl/t/rpl_rewrt_db.test mariadb-5.5-5.5.64/mysql-test/suite/rpl/t/rpl_rewrt_db.test --- mariadb-5.5-5.5.63/mysql-test/suite/rpl/t/rpl_rewrt_db.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/rpl/t/rpl_rewrt_db.test 2019-04-26 12:37:02.000000000 +0000 @@ -2,20 +2,37 @@ -- source include/have_binlog_format_mixed_or_statement.inc -- source include/master-slave.inc +--connection slave +set sql_log_bin=0; +create database y; +set sql_log_bin=1; + +--connection master --disable_warnings drop database if exists mysqltest1; +drop database if exists x; --enable_warnings create database mysqltest1; +set sql_log_bin=0; +create database x; +set sql_log_bin=1; use mysqltest1; create table t1 (a int); insert into t1 values(9); +use x; +create table t1 (a int); +insert into t1 values(9); select * from mysqltest1.t1; +select * from x.t1; sync_slave_with_master; +#TODO no it is no empty show databases like 'mysqltest1'; # should be empty select * from test.t1; +select * from y.t1; # cleanup connection master; +use mysqltest1; drop table t1; drop database mysqltest1; sync_slave_with_master; @@ -224,6 +241,7 @@ DROP DATABASE database_master_temp_01; DROP DATABASE database_master_temp_02; DROP DATABASE database_master_temp_03; +DROP DATABASE x; SET sql_log_bin= 1; connection slave; @@ -231,6 +249,7 @@ DROP DATABASE database_slave_temp_01; DROP DATABASE database_slave_temp_02; DROP DATABASE database_slave_temp_03; +DROP DATABASE y; SET sql_log_bin= 1; connection master; diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/rpl/t/rpl_slave_invalid_external_user.test mariadb-5.5-5.5.64/mysql-test/suite/rpl/t/rpl_slave_invalid_external_user.test --- mariadb-5.5-5.5.63/mysql-test/suite/rpl/t/rpl_slave_invalid_external_user.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/rpl/t/rpl_slave_invalid_external_user.test 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1,42 @@ +# ==== Purpose ==== +# +# Test verifies that when applier thread tries to access 'variable_name' of +# INFORMATION_SCHEMA.SESSION_VARIABLES table through triggers it successfully +# retrieves all the session variables. +# +# ==== Implementation ==== +# +# Steps: +# 0 - Create two tables t1 and t2. +# 1 - Create a trigger such that it reads the names of all session variables +# from INFORMATION_SCHEMA.SESSION_VARIABLES table and populates one of the +# tables. +# 2 - Do a DML on master and wait for it to be replicated and ensure that +# slave is in sync with master and it is up and running. +# +# ==== References ==== +# +# MDEV-14784: Slave crashes in show_status_array upon running a trigger with +# select from I_S + +--source include/master-slave.inc +--source include/have_binlog_format_mixed.inc +--enable_connect_log +CREATE USER test_user@localhost; +SET PASSWORD FOR test_user@localhost = password('PWD'); +GRANT ALL ON *.* TO test_user@localhost WITH GRANT OPTION; +connect(conn_test,localhost,test_user,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); + +--connection conn_test +CREATE TABLE t1 (f1 INT); +CREATE TABLE t2 (f2 VARCHAR(64)); +CREATE TRIGGER tr_before BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 SELECT variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES; +CREATE DEFINER='root'@'localhost' TRIGGER tr_after AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t2 SELECT variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES; + +INSERT INTO t1 VALUES (1); +--disable_connect_log +# Cleanup +--connection master +DROP USER 'test_user'@'localhost'; +DROP TABLE t1, t2; +--source include/rpl_end.inc diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/storage_engine/vcol.result mariadb-5.5-5.5.64/mysql-test/suite/storage_engine/vcol.result --- mariadb-5.5-5.5.63/mysql-test/suite/storage_engine/vcol.result 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/storage_engine/vcol.result 2019-04-26 12:37:02.000000000 +0000 @@ -7,8 +7,8 @@ INSERT INTO t1 (a) VALUES (1),(2); INSERT INTO t1 (a,b) VALUES (3,3),(4,4); Warnings: -Warning 1906 The value specified for computed column 'b' in table 't1' ignored -Warning 1906 The value specified for computed column 'b' in table 't1' ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored SELECT a,b FROM t1; a b 1 2 @@ -24,8 +24,8 @@ INSERT INTO t1 (a) VALUES (1),(2); INSERT INTO t1 (a,b) VALUES (3,3),(4,4); Warnings: -Warning 1906 The value specified for computed column 'b' in table 't1' ignored -Warning 1906 The value specified for computed column 'b' in table 't1' ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored SELECT a,b FROM t1; a b 1 2 @@ -41,8 +41,8 @@ INSERT INTO t1 (a) VALUES (1),(2); INSERT INTO t1 (a,b) VALUES (3,3),(4,4); Warnings: -Warning 1906 The value specified for computed column 'b' in table 't1' ignored -Warning 1906 The value specified for computed column 'b' in table 't1' ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored SELECT a,b FROM t1; a b 1 2 @@ -58,8 +58,8 @@ INSERT INTO t1 (a) VALUES (1),(2); INSERT INTO t1 (a,b) VALUES (3,3),(4,4); Warnings: -Warning 1906 The value specified for computed column 'b' in table 't1' ignored -Warning 1906 The value specified for computed column 'b' in table 't1' ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored SELECT a,b FROM t1; a b 1 2 diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result mariadb-5.5-5.5.64/mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result --- mariadb-5.5-5.5.63/mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result 2019-04-26 12:37:02.000000000 +0000 @@ -25,8 +25,8 @@ # INSERT INTO tbl_name VALUES... a non-NULL value is specified against vcols insert into t1 values (1,2,3); Warnings: -Warning 1906 The value specified for computed column 'b' in table 't1' ignored -Warning 1906 The value specified for computed column 'c' in table 't1' ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +Warning 1906 The value specified for computed column 'c' in table 't1' has been ignored select * from t1; a b c 1 -1 -1 @@ -65,8 +65,8 @@ # against vcols insert into t1 (a,b) values (1,3), (2,4); Warnings: -Warning 1906 The value specified for computed column 'b' in table 't1' ignored -Warning 1906 The value specified for computed column 'b' in table 't1' ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored select * from t1; a b c 1 -1 -1 @@ -107,8 +107,8 @@ create table t2 like t1; insert into t2 select * from t1; Warnings: -Warning 1906 The value specified for computed column 'b' in table 't2' ignored -Warning 1906 The value specified for computed column 'c' in table 't2' ignored +Warning 1906 The value specified for computed column 'b' in table 't2' has been ignored +Warning 1906 The value specified for computed column 'c' in table 't2' has been ignored select * from t1; a b c 2 -2 -2 @@ -123,8 +123,8 @@ create table t2 like t1; insert into t2 (a,b) select a,b from t1; Warnings: -Warning 1906 The value specified for computed column 'b' in table 't2' ignored -Warning 1906 The value specified for computed column 'b' in table 't2' ignored +Warning 1906 The value specified for computed column 'b' in table 't2' has been ignored +Warning 1906 The value specified for computed column 'b' in table 't2' has been ignored select * from t2; a b c 2 -2 -2 @@ -159,7 +159,7 @@ 2 -2 -2 update t1 set c=3 where a=2; Warnings: -Warning 1906 The value specified for computed column 'c' in table 't1' ignored +Warning 1906 The value specified for computed column 'c' in table 't1' has been ignored select * from t1; a b c 1 -1 -1 @@ -189,7 +189,7 @@ 2 -2 -2 update t1 set c=3 where b=-2; Warnings: -Warning 1906 The value specified for computed column 'c' in table 't1' ignored +Warning 1906 The value specified for computed column 'c' in table 't1' has been ignored select * from t1; a b c 1 -1 -1 diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result mariadb-5.5-5.5.64/mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result --- mariadb-5.5-5.5.63/mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result 2019-04-26 12:37:02.000000000 +0000 @@ -25,8 +25,8 @@ # INSERT INTO tbl_name VALUES... a non-NULL value is specified against vcols insert into t1 values (1,2,3); Warnings: -Warning 1906 The value specified for computed column 'b' in table 't1' ignored -Warning 1906 The value specified for computed column 'c' in table 't1' ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +Warning 1906 The value specified for computed column 'c' in table 't1' has been ignored select * from t1; a b c 1 -1 -1 @@ -65,8 +65,8 @@ # against vcols insert into t1 (a,b) values (1,3), (2,4); Warnings: -Warning 1906 The value specified for computed column 'b' in table 't1' ignored -Warning 1906 The value specified for computed column 'b' in table 't1' ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored select * from t1; a b c 1 -1 -1 @@ -107,8 +107,8 @@ create table t2 like t1; insert into t2 select * from t1; Warnings: -Warning 1906 The value specified for computed column 'b' in table 't2' ignored -Warning 1906 The value specified for computed column 'c' in table 't2' ignored +Warning 1906 The value specified for computed column 'b' in table 't2' has been ignored +Warning 1906 The value specified for computed column 'c' in table 't2' has been ignored select * from t1; a b c 2 -2 -2 @@ -123,8 +123,8 @@ create table t2 like t1; insert into t2 (a,b) select a,b from t1; Warnings: -Warning 1906 The value specified for computed column 'b' in table 't2' ignored -Warning 1906 The value specified for computed column 'b' in table 't2' ignored +Warning 1906 The value specified for computed column 'b' in table 't2' has been ignored +Warning 1906 The value specified for computed column 'b' in table 't2' has been ignored select * from t2; a b c 2 -2 -2 @@ -159,7 +159,7 @@ 2 -2 -2 update t1 set c=3 where a=2; Warnings: -Warning 1906 The value specified for computed column 'c' in table 't1' ignored +Warning 1906 The value specified for computed column 'c' in table 't1' has been ignored select * from t1; a b c 1 -1 -1 @@ -189,7 +189,7 @@ 2 -2 -2 update t1 set c=3 where b=-2; Warnings: -Warning 1906 The value specified for computed column 'c' in table 't1' ignored +Warning 1906 The value specified for computed column 'c' in table 't1' has been ignored select * from t1; a b c 1 -1 -1 diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/vcol/r/vcol_misc.result mariadb-5.5-5.5.64/mysql-test/suite/vcol/r/vcol_misc.result --- mariadb-5.5-5.5.63/mysql-test/suite/vcol/r/vcol_misc.result 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/vcol/r/vcol_misc.result 2019-04-26 12:37:02.000000000 +0000 @@ -108,10 +108,10 @@ CREATE TABLE t1 (p int, a double NOT NULL, v double AS (ROUND(a,p)) VIRTUAL); INSERT INTO t1 VALUES (0,1,0); Warnings: -Warning 1906 The value specified for computed column 'v' in table 't1' ignored +Warning 1906 The value specified for computed column 'v' in table 't1' has been ignored INSERT INTO t1 VALUES (NULL,0,0); Warnings: -Warning 1906 The value specified for computed column 'v' in table 't1' ignored +Warning 1906 The value specified for computed column 'v' in table 't1' has been ignored SELECT a, p, v, ROUND(a,p), ROUND(a,p+NULL) FROM t1; a p v ROUND(a,p) ROUND(a,p+NULL) 1 0 1 1 NULL @@ -306,15 +306,15 @@ INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,NULL); UPDATE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a'; Warnings: -Warning 1906 The value specified for computed column 'd' in table 't1' ignored +Warning 1906 The value specified for computed column 'd' in table 't1' has been ignored INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a'); Warnings: -Warning 1906 The value specified for computed column 'd' in table 't1' ignored +Warning 1906 The value specified for computed column 'd' in table 't1' has been ignored set sql_mode='strict_all_tables'; UPDATE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a'; -ERROR HY000: The value specified for computed column 'd' in table 't1' ignored +ERROR HY000: The value specified for computed column 'd' in table 't1' has been ignored INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a'); -ERROR HY000: The value specified for computed column 'd' in table 't1' ignored +ERROR HY000: The value specified for computed column 'd' in table 't1' has been ignored drop table t1; # # MDEV-5611: self-referencing virtual column diff -Nru mariadb-5.5-5.5.63/mysql-test/suite/vcol/r/vcol_select_myisam.result mariadb-5.5-5.5.64/mysql-test/suite/vcol/r/vcol_select_myisam.result --- mariadb-5.5-5.5.63/mysql-test/suite/vcol/r/vcol_select_myisam.result 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/suite/vcol/r/vcol_select_myisam.result 2019-04-26 12:37:02.000000000 +0000 @@ -273,9 +273,9 @@ CREATE TABLE t2 (a int, b int AS (a) VIRTUAL); INSERT INTO t2 VALUES (187,187), (9,9), (187,187); Warnings: -Warning 1906 The value specified for computed column 'b' in table 't2' ignored -Warning 1906 The value specified for computed column 'b' in table 't2' ignored -Warning 1906 The value specified for computed column 'b' in table 't2' ignored +Warning 1906 The value specified for computed column 'b' in table 't2' has been ignored +Warning 1906 The value specified for computed column 'b' in table 't2' has been ignored +Warning 1906 The value specified for computed column 'b' in table 't2' has been ignored EXPLAIN EXTENDED SELECT * FROM t1 JOIN t2 USING (b); id select_type table type possible_keys key key_len ref rows filtered Extra diff -Nru mariadb-5.5-5.5.63/mysql-test/t/ddl_i18n_koi8r.test mariadb-5.5-5.5.64/mysql-test/t/ddl_i18n_koi8r.test --- mariadb-5.5-5.5.63/mysql-test/t/ddl_i18n_koi8r.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/ddl_i18n_koi8r.test 2019-04-26 12:37:02.000000000 +0000 @@ -821,7 +821,7 @@ # - Event ev1 -CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT ev1 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10); @@ -838,7 +838,7 @@ # - Event ev2 -CREATE EVENT ev2 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT ev2 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; @@ -855,7 +855,7 @@ # - Event ev3 -CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; @@ -872,7 +872,7 @@ # - Event ev4 -CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE 1 CHAR(10) CHARACTER SET utf8; diff -Nru mariadb-5.5-5.5.63/mysql-test/t/ddl_i18n_utf8.test mariadb-5.5-5.5.64/mysql-test/t/ddl_i18n_utf8.test --- mariadb-5.5-5.5.63/mysql-test/t/ddl_i18n_utf8.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/ddl_i18n_utf8.test 2019-04-26 12:37:02.000000000 +0000 @@ -821,7 +821,7 @@ # - Event ev1 -CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT ev1 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10); @@ -838,7 +838,7 @@ # - Event ev2 -CREATE EVENT ev2 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT ev2 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; @@ -855,7 +855,7 @@ # - Event ev3 -CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT mysqltest2.ev3 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; @@ -872,7 +872,7 @@ # - Event ev4 -CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '2030-01-01 00:00:00' DO +CREATE EVENT mysqltest2.ev4 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO BEGIN DECLARE перем1 CHAR(10) CHARACTER SET utf8; diff -Nru mariadb-5.5-5.5.63/mysql-test/t/events_1.test mariadb-5.5-5.5.64/mysql-test/t/events_1.test --- mariadb-5.5-5.5.63/mysql-test/t/events_1.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/events_1.test 2019-04-26 12:37:02.000000000 +0000 @@ -67,7 +67,7 @@ CREATE EVENT event_starts_test ON SCHEDULE EVERY 10 SECOND COMMENT "" DO SELECT 1; SELECT interval_field, interval_value, body FROM mysql.event WHERE db='events_test' AND name='event_starts_test'; SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test'; -ALTER EVENT event_starts_test ON SCHEDULE AT '2020-02-02 20:00:02'; +ALTER EVENT event_starts_test ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE; SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test'; ALTER EVENT event_starts_test COMMENT "non-empty comment"; SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test'; @@ -75,7 +75,7 @@ SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test'; DROP EVENT event_starts_test; -CREATE EVENT event_starts_test ON SCHEDULE EVERY 20 SECOND STARTS '2020-02-02 20:00:02' ENDS '2022-02-02 20:00:02' DO SELECT 2; +CREATE EVENT event_starts_test ON SCHEDULE EVERY 20 SECOND STARTS '1970-01-02 00:00:00' ENDS '1970-01-03 00:00:00' ON COMPLETION PRESERVE DISABLE DO SELECT 2; SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test'; ALTER EVENT event_starts_test COMMENT "non-empty comment"; SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test'; diff -Nru mariadb-5.5-5.5.63/mysql-test/t/grant4.test mariadb-5.5-5.5.64/mysql-test/t/grant4.test --- mariadb-5.5-5.5.63/mysql-test/t/grant4.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/grant4.test 2019-04-26 12:37:02.000000000 +0000 @@ -144,3 +144,29 @@ disconnect con1; drop database mysqltest_db1; drop user mysqltest_u1@localhost; + +# +# MDEV-18241 Downgrade from 10.4 to 10.3 crashes +# +call mtr.add_suppression("Table 'mysql.user' doesn't exist"); +rename table mysql.user to mysql.user1; +create view mysql.user as select * from mysql.user1; +--error ER_NO_SUCH_TABLE +flush privileges; +drop view mysql.user; +create temporary table mysql.user select * from mysql.user1 limit 0; +--error ER_NO_SUCH_TABLE +flush privileges; +drop temporary table mysql.user; +rename table mysql.user1 to mysql.user; + +# +# Bug#28986737: RENAMING AND REPLACING MYSQL.USER TABLE CAN LEAD TO A SERVER CRASH +# +call mtr.add_suppression('mysql.user table is damaged'); +rename table mysql.user to mysql.user1; +create table mysql.user (Host char(100), User char(100)); +--error ER_UNKNOWN_ERROR +flush privileges; +drop table mysql.user; +rename table mysql.user1 to mysql.user; diff -Nru mariadb-5.5-5.5.63/mysql-test/t/information_schema_prepare.test mariadb-5.5-5.5.64/mysql-test/t/information_schema_prepare.test --- mariadb-5.5-5.5.63/mysql-test/t/information_schema_prepare.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/information_schema_prepare.test 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1,7 @@ +# +# MDEV-15907 ASAN heap-use-after-free in strnmov / .. / fill_effective_table_privileges on concurrent GRANT and CREATE VIEW +# +PREPARE stmt2 FROM "CREATE VIEW v AS SELECT * FROM INFORMATION_SCHEMA.TABLES"; +FLUSH PRIVILEGES; +EXECUTE stmt2; +DROP VIEW v; diff -Nru mariadb-5.5-5.5.63/mysql-test/t/insert.test mariadb-5.5-5.5.64/mysql-test/t/insert.test --- mariadb-5.5-5.5.63/mysql-test/t/insert.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/insert.test 2019-04-26 12:37:02.000000000 +0000 @@ -1,5 +1,5 @@ # -# Test of refering to old values +# Test of referring to old values # --disable_warnings diff -Nru mariadb-5.5-5.5.63/mysql-test/t/loaddata.test mariadb-5.5-5.5.64/mysql-test/t/loaddata.test --- mariadb-5.5-5.5.63/mysql-test/t/loaddata.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/loaddata.test 2019-04-26 12:37:02.000000000 +0000 @@ -676,3 +676,48 @@ LOAD DATA INFILE '../../std_data/loaddata/mdev-11631.txt' INTO TABLE t1 CHARACTER SET utf8; SELECT HEX(a) FROM t1; DROP TABLE t1; + +--echo # +--echo # MDEV-15744: Assertion `derived->table' failed in mysql_derived_merge_for_insert +--echo # + +create table t1 (a int, b int); +CREATE OR REPLACE VIEW t2 AS SELECT * FROM t1; +CREATE VIEW v2 AS SELECT * FROM t2; +LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE v2 + FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; +select * from v2; +select * from t2; +DROP VIEW IF EXISTS v2,t2; +DROP TABLE IF EXISTS t1; + +--echo # +--echo # MDEV-15950: LOAD DATA INTO compex_view crashed +--echo # +create table t1 (a int, b int); +create table t0 (x int, y int); +CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1,t0; +CREATE VIEW v2 AS SELECT * FROM v1; + +--error ER_WRONG_USAGE +LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE v1 +FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; + +--error ER_WRONG_USAGE +LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE v2 +FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; + +DROP VIEW IF EXISTS v2,v1; +DROP TABLE IF EXISTS t1,t0; + +CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), UNIQUE(b)); +INSERT INTO t1 VALUES (1,1); +CREATE TABLE t2 (c INT); +CREATE VIEW v AS SELECT t1.* FROM t1 JOIN t2; +SELECT a, b FROM t1 INTO OUTFILE '15645.data'; +--error ER_WRONG_USAGE +LOAD DATA INFILE '15645.data' IGNORE INTO TABLE v (a,b); +--error ER_WRONG_USAGE +LOAD DATA INFILE '15645.data' REPLACE INTO TABLE v (a,b); +drop table t1,t2; +drop view v; diff -Nru mariadb-5.5-5.5.63/mysql-test/t/multi_update2-master.opt mariadb-5.5-5.5.64/mysql-test/t/multi_update2-master.opt --- mariadb-5.5-5.5.63/mysql-test/t/multi_update2-master.opt 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/multi_update2-master.opt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ ---tmp_table_size=1024 diff -Nru mariadb-5.5-5.5.63/mysql-test/t/multi_update2.test mariadb-5.5-5.5.64/mysql-test/t/multi_update2.test --- mariadb-5.5-5.5.63/mysql-test/t/multi_update2.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/multi_update2.test 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ ---source include/long_test.inc - -# -# Test of update statement that uses many tables. -# - -# -# If we are running with -# - Valgrind -> $VALGRIND_TEST <> 0 -# - debug tracing -> @@session.debug LIKE '%trace%' -# the resource consumption (storage space needed, runtime) will be extreme. -# Therefore we require that the option "--big-test" is also set. -# - -let $need_big= 0; ---disable_query_log ---error 0,ER_UNKNOWN_SYSTEM_VARIABLE -SET @aux = @@session.debug; -if (!$mysql_errno) -{ - # We have returncode 0 = the server system variable @@session.debug exists. - # But we only need "--big-test" in case of tracing. - if (`SELECT @@session.debug LIKE '%trace%'`) - { - let $need_big= 1; - } -} ---enable_query_log -if ($VALGRIND_TEST) -{ - # We are running with Valgrind - inc $need_big; -} -if (`SELECT '$BIG_TEST' = '' AND $need_big = 1`) -{ - --skip Need "--big-test" when running with the option "--debug" or "--valgrind" -} - -# -# Bug#1820 Rows not deleted from second table on multi-table delete -# - ---disable_warnings -DROP TABLE IF EXISTS t1,t2; ---enable_warnings - -CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL) ; ---echo # The protocolling of many inserts into t1 is suppressed. ---disable_query_log -INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4); -let $1=19; -set @d=4; -begin; -while ($1) -{ - eval INSERT INTO t1 SELECT a+@d,b+@d FROM t1; - eval SET @d=@d*2; - dec $1; -} -commit; ---enable_query_log -ALTER TABLE t1 ADD INDEX i1(a); -DELETE FROM t1 WHERE a > 2000000; -CREATE TABLE t2 LIKE t1; -INSERT INTO t2 SELECT * FROM t1; - -SELECT 't2 rows before small delete', COUNT(*) FROM t1; -DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 2; -SELECT 't2 rows after small delete', COUNT(*) FROM t2; -SELECT 't1 rows after small delete', COUNT(*) FROM t1; - -## Try deleting many rows - -DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 100*1000; -SELECT 't2 rows after big delete', COUNT(*) FROM t2; -SELECT 't1 rows after big delete', COUNT(*) FROM t1; - -DROP TABLE t1,t2; diff -Nru mariadb-5.5-5.5.63/mysql-test/t/multi_update_big.opt mariadb-5.5-5.5.64/mysql-test/t/multi_update_big.opt --- mariadb-5.5-5.5.63/mysql-test/t/multi_update_big.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/multi_update_big.opt 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1 @@ +--tmp_table_size=1024 diff -Nru mariadb-5.5-5.5.63/mysql-test/t/multi_update_big.test mariadb-5.5-5.5.64/mysql-test/t/multi_update_big.test --- mariadb-5.5-5.5.63/mysql-test/t/multi_update_big.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/multi_update_big.test 2019-04-26 12:37:02.000000000 +0000 @@ -0,0 +1,78 @@ +--source include/long_test.inc + +# +# Test of update statement that uses many tables. +# + +# +# If we are running with +# - Valgrind -> $VALGRIND_TEST <> 0 +# - debug tracing -> @@session.debug LIKE '%trace%' +# the resource consumption (storage space needed, runtime) will be extreme. +# Therefore we require that the option "--big-test" is also set. +# + +let $need_big= 0; +--disable_query_log +--error 0,ER_UNKNOWN_SYSTEM_VARIABLE +SET @aux = @@session.debug; +if (!$mysql_errno) +{ + # We have returncode 0 = the server system variable @@session.debug exists. + # But we only need "--big-test" in case of tracing. + if (`SELECT @@session.debug LIKE '%trace%'`) + { + let $need_big= 1; + } +} +--enable_query_log +if ($VALGRIND_TEST) +{ + # We are running with Valgrind + inc $need_big; +} +if (`SELECT '$BIG_TEST' = '' AND $need_big = 1`) +{ + --skip Need "--big-test" when running with the option "--debug" or "--valgrind" +} + +# +# Bug#1820 Rows not deleted from second table on multi-table delete +# + +--disable_warnings +DROP TABLE IF EXISTS t1,t2; +--enable_warnings + +CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL) ; +--echo # The protocolling of many inserts into t1 is suppressed. +--disable_query_log +INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4); +let $1=19; +set @d=4; +begin; +while ($1) +{ + eval INSERT INTO t1 SELECT a+@d,b+@d FROM t1; + eval SET @d=@d*2; + dec $1; +} +commit; +--enable_query_log +ALTER TABLE t1 ADD INDEX i1(a); +DELETE FROM t1 WHERE a > 2000000; +CREATE TABLE t2 LIKE t1; +INSERT INTO t2 SELECT * FROM t1; + +SELECT 't2 rows before small delete', COUNT(*) FROM t1; +DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 2; +SELECT 't2 rows after small delete', COUNT(*) FROM t2; +SELECT 't1 rows after small delete', COUNT(*) FROM t1; + +## Try deleting many rows + +DELETE t1,t2 FROM t1,t2 WHERE t1.b=t2.a AND t1.a < 100*1000; +SELECT 't2 rows after big delete', COUNT(*) FROM t2; +SELECT 't1 rows after big delete', COUNT(*) FROM t1; + +DROP TABLE t1,t2; diff -Nru mariadb-5.5-5.5.63/mysql-test/t/multi_update.test mariadb-5.5-5.5.64/mysql-test/t/multi_update.test --- mariadb-5.5-5.5.63/mysql-test/t/multi_update.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/multi_update.test 2019-04-26 12:37:02.000000000 +0000 @@ -1055,5 +1055,36 @@ drop view v3,v2,v1; drop table t1,t2,t3; + +# +# MDEV-18507 can't update temporary table when joined with table with triggers on read-only +# +create table t1 (id int not null, v1 varchar(10) not null); +insert into t1 values (1,1),(2,2); +create table t2 (log varchar(10) not null); +create trigger t1_after_update after update on t1 + for each row insert into t2 values ('triggered'); + +create user foo; +grant select, insert, update, delete, create, drop, reload, index, alter, show databases, create temporary tables, lock tables, execute, create view, show view, create routine, alter routine, trigger on *.* to 'foo'@'%'; + +set global read_only=1; +connect a, localhost, foo; + +create temporary table temp_t1 (id int not null, update_me varchar(10)); +insert into temp_t1 values (1,1),(2,2),(3,3); +update temp_t1 left join t1 on temp_t1.id = t1.id set temp_t1.update_me = 'hello'; + +connection default; +set global read_only = 0; + +create table t3 (id int not null); +insert t3 values (2); +update t1 left join t3 on t1.id = t3.id set t1.v1 = 'hello'; +select * from t2; + +drop table t1,t2, t3; +drop user foo; + --echo end of 5.5 tests diff -Nru mariadb-5.5-5.5.63/mysql-test/t/mysql.test mariadb-5.5-5.5.64/mysql-test/t/mysql.test --- mariadb-5.5-5.5.63/mysql-test/t/mysql.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/mysql.test 2019-04-26 12:37:02.000000000 +0000 @@ -678,3 +678,9 @@ --exec $MYSQL --disable-local-infile -e "/*q*/$ldli" select count(*) from t1; truncate table t1; drop table t1; + + +--echo # +--echo # MDEV-15538 '-N' Produce html output wrong +--echo # +--exec $MYSQL -NHe "select 1 as a" diff -Nru mariadb-5.5-5.5.63/mysql-test/t/show_check.test mariadb-5.5-5.5.64/mysql-test/t/show_check.test --- mariadb-5.5-5.5.63/mysql-test/t/show_check.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/show_check.test 2019-04-26 12:37:02.000000000 +0000 @@ -1156,7 +1156,7 @@ FOR EACH ROW SET NEW.c1 = ''; -CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO SELECT '' AS test; +CREATE EVENT ev1 ON SCHEDULE AT '1970-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE DO SELECT '' AS test; # Test: switch the character set and show that SHOW CREATE output is # automatically converted to the new character_set_client. diff -Nru mariadb-5.5-5.5.63/mysql-test/t/sp.test mariadb-5.5-5.5.64/mysql-test/t/sp.test --- mariadb-5.5-5.5.63/mysql-test/t/sp.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/sp.test 2019-04-26 12:37:02.000000000 +0000 @@ -9373,5 +9373,56 @@ DROP PROCEDURE sp; DROP TABLE t1; +--echo # +--echo # MDEV-17055: Server crashes in find_order_in_list upon +--echo # 2nd (3rd) execution of SP with UPDATE +--echo # + +CREATE TABLE t1 (a INT); +CREATE VIEW v1 AS SELECT * FROM t1; +CREATE TABLE t2 (c INT); + +CREATE PROCEDURE sp() UPDATE v1 SET a = 1 ORDER BY a, b LIMIT 1; +LOCK TABLE t2 READ; +--error ER_TABLE_NOT_LOCKED +CALL sp; +UNLOCK TABLES; +--error ER_BAD_FIELD_ERROR +CALL sp; +--error ER_BAD_FIELD_ERROR +CALL sp; +--error ER_BAD_FIELD_ERROR +CALL sp; + +# Cleanup +DROP PROCEDURE sp; + +CREATE PROCEDURE sp() UPDATE v1 SET a = 1 WHERE a=1 and b=2; +LOCK TABLE t2 READ; +--error ER_TABLE_NOT_LOCKED +CALL sp; +UNLOCK TABLES; +--error ER_BAD_FIELD_ERROR +CALL sp; +--error ER_BAD_FIELD_ERROR +CALL sp; +--error ER_BAD_FIELD_ERROR +CALL sp; + +# Cleanup +DROP PROCEDURE sp; + +DROP VIEW v1; +DROP TABLE t1, t2; --echo # End of 5.5 test + +#MDEV-17610 +CREATE PROCEDURE sp() ALTER TABLE non_existing_table OPTIMIZE PARTITION p0; +CALL sp; +SELECT 1; +DROP PROCEDURE sp; +CREATE PROCEDURE sp() SHOW USER_STATISTICS; +CALL sp; +SELECT 1; +DROP PROCEDURE sp; diff -Nru mariadb-5.5-5.5.63/mysql-test/t/subselect_sj.test mariadb-5.5-5.5.64/mysql-test/t/subselect_sj.test --- mariadb-5.5-5.5.63/mysql-test/t/subselect_sj.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/subselect_sj.test 2019-04-26 12:37:02.000000000 +0000 @@ -2869,6 +2869,16 @@ drop view v3; drop table t1,t2,t3; +--echo # +--echo # MDEV-18896: IN subquery in WHERE of a table-less query used for INSERT +--echo # + +create table t1 (a1 varchar(25)); +create table t2 (a2 varchar(25)) ; +insert into t1 select 'xxx' from dual where 'xxx' in (select a2 from t2); + +drop table t1,t2; + --echo # End of 5.5 test # The following command must be the last one the file diff -Nru mariadb-5.5-5.5.63/mysql-test/t/view_grant.test mariadb-5.5-5.5.64/mysql-test/t/view_grant.test --- mariadb-5.5-5.5.63/mysql-test/t/view_grant.test 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/mysql-test/t/view_grant.test 2019-04-26 12:37:02.000000000 +0000 @@ -240,12 +240,15 @@ insert into mysqltest.t1 values (10,2), (20,3), (30,4), (40,5), (50,10); create table mysqltest.t2 (x int); insert into mysqltest.t2 values (3), (4), (5), (6); +create table mysqltest.t3 (x int); +insert into mysqltest.t3 values (3), (4), (5), (6); create view mysqltest.v1 (a,c) as select a, b+1 from mysqltest.t1; create view mysqltest.v2 (a,c) as select a, b from mysqltest.t1; create view mysqltest.v3 (a,c) as select a, b+1 from mysqltest.t1; grant update (a) on mysqltest.v2 to mysqltest_1@localhost; grant update on mysqltest.v1 to mysqltest_1@localhost; +grant update on mysqltest.t3 to mysqltest_1@localhost; grant select on mysqltest.* to mysqltest_1@localhost; connection user1; @@ -260,6 +263,8 @@ select * from t1; update v2 set a=a+c; select * from t1; +# update a table, select only on view +update t3,v3 set t3.x=t3.x+v3.c where t3.x=v3.c; # no rights on column --error ER_COLUMNACCESS_DENIED_ERROR update t2,v2 set v2.c=v2.a+v2.c where t2.x=v2.c; diff -Nru mariadb-5.5-5.5.63/sql/handler.cc mariadb-5.5-5.5.64/sql/handler.cc --- mariadb-5.5-5.5.63/sql/handler.cc 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/handler.cc 2019-04-26 12:37:02.000000000 +0000 @@ -1740,6 +1740,7 @@ for (info.len= MAX_XID_LIST_SIZE ; info.list==0 && info.len > MIN_XID_LIST_SIZE; info.len/=2) { + DBUG_EXECUTE_IF("min_xa_len", info.len = 16;); info.list=(XID *)my_malloc(info.len*sizeof(XID), MYF(0)); } if (!info.list) diff -Nru mariadb-5.5-5.5.63/sql/log_event.cc mariadb-5.5-5.5.64/sql/log_event.cc --- mariadb-5.5-5.5.63/sql/log_event.cc 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/log_event.cc 2019-04-26 12:37:02.000000000 +0000 @@ -1,6 +1,6 @@ /* - Copyright (c) 2000, 2018, Oracle and/or its affiliates. - Copyright (c) 2009, 2018, MariaDB + Copyright (c) 2000, 2019, Oracle and/or its affiliates. + Copyright (c) 2009, 2019, MariaDB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -48,6 +48,7 @@ #include "transaction.h" #include #include "sql_show.h" // append_identifier +#include "debug_sync.h" // debug_sync #endif /* MYSQL_CLIENT */ @@ -8512,25 +8513,28 @@ /* A small test to verify that objects have consistent types */ DBUG_ASSERT(sizeof(thd->variables.option_bits) == sizeof(OPTION_RELAXED_UNIQUE_CHECKS)); + DBUG_EXECUTE_IF("rows_log_event_before_open_table", + { + const char action[] = "now SIGNAL before_open_table WAIT_FOR go_ahead_sql"; + DBUG_ASSERT(!debug_sync_set_action(thd, STRING_WITH_LEN(action))); + };); + if (open_and_lock_tables(thd, rli->tables_to_lock, FALSE, 0)) { - uint actual_error= thd->stmt_da->sql_errno(); - if (thd->is_slave_error || thd->is_fatal_error) + if (thd->is_error()) { /* Error reporting borrowed from Query_log_event with many excessive - simplifications. + simplifications. We should not honour --slave-skip-errors at this point as we are - having severe errors which should not be skiped. + having severe errors which should not be skipped. */ - rli->report(ERROR_LEVEL, actual_error, + rli->report(ERROR_LEVEL, thd->stmt_da->sql_errno(), "Error executing row event: '%s'", - (actual_error ? thd->stmt_da->message() : - "unexpected success or fatal error")); + thd->stmt_da->message()); thd->is_slave_error= 1; } - const_cast(rli)->slave_close_thread_tables(thd); - DBUG_RETURN(actual_error); + DBUG_RETURN(1); } /* diff -Nru mariadb-5.5-5.5.63/sql/log_event_old.cc mariadb-5.5-5.5.64/sql/log_event_old.cc --- mariadb-5.5-5.5.63/sql/log_event_old.cc 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/log_event_old.cc 2019-04-26 12:37:02.000000000 +0000 @@ -1,5 +1,5 @@ -/* Copyright (c) 2007, 2018, Oracle and/or its affiliates. - Copyright (c) 2009, 2018, MariaDB +/* Copyright (c) 2007, 2019, Oracle and/or its affiliates. + Copyright (c) 2009, 2019, MariaDB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -100,21 +100,20 @@ if (open_and_lock_tables(ev_thd, rli->tables_to_lock, FALSE, 0)) { - uint actual_error= ev_thd->stmt_da->sql_errno(); - if (ev_thd->is_slave_error || ev_thd->is_fatal_error) + if (ev_thd->is_error()) { /* Error reporting borrowed from Query_log_event with many excessive - simplifications (we don't honour --slave-skip-errors) + simplifications. + We should not honour --slave-skip-errors at this point as we are + having severe errors which should not be skipped. */ - rli->report(ERROR_LEVEL, actual_error, + rli->report(ERROR_LEVEL, ev_thd->stmt_da->sql_errno(), "Error '%s' on opening tables", - (actual_error ? ev_thd->stmt_da->message() : - "unexpected success or fatal error")); + ev_thd->stmt_da->message()); ev_thd->is_slave_error= 1; } - const_cast(rli)->slave_close_thread_tables(thd); - DBUG_RETURN(actual_error); + DBUG_RETURN(1); } /* diff -Nru mariadb-5.5-5.5.63/sql/mysqld.cc mariadb-5.5-5.5.64/sql/mysqld.cc --- mariadb-5.5-5.5.63/sql/mysqld.cc 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/mysqld.cc 2019-04-26 12:37:02.000000000 +0000 @@ -7596,7 +7596,8 @@ val= p--; while (my_isspace(mysqld_charset, *p) && p > argument) *p-- = 0; - if (p == argument) + /* Db name can be one char also */ + if (p == argument && my_isspace(mysqld_charset, *p)) { sql_print_error("Bad syntax in replicate-rewrite-db - empty FROM db!\n"); return 1; diff -Nru mariadb-5.5-5.5.63/sql/opt_subselect.cc mariadb-5.5-5.5.64/sql/opt_subselect.cc --- mariadb-5.5-5.5.63/sql/opt_subselect.cc 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/opt_subselect.cc 2019-04-26 12:37:02.000000000 +0000 @@ -675,7 +675,7 @@ select_lex->outer_select()->join && // 6 parent_unit->first_select()->leaf_tables.elements && // 7 !in_subs->has_strategy() && // 8 - select_lex->outer_select()->leaf_tables.elements && // 9 + select_lex->outer_select()->table_list.first && // 9 !((join->select_options | // 10 select_lex->outer_select()->join->select_options) // 10 & SELECT_STRAIGHT_JOIN)) // 10 diff -Nru mariadb-5.5-5.5.63/sql/share/errmsg-utf8.txt mariadb-5.5-5.5.64/sql/share/errmsg-utf8.txt --- mariadb-5.5-5.5.63/sql/share/errmsg-utf8.txt 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/share/errmsg-utf8.txt 2019-04-26 12:37:02.000000000 +0000 @@ -6511,7 +6511,7 @@ ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN eng "Cannot define foreign key with %s clause on a computed column" ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN - eng "The value specified for computed column '%s' in table '%s' ignored" + eng "The value specified for computed column '%s' in table '%s' has been ignored" ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN eng "This is not yet supported for computed columns" ER_CONST_EXPR_IN_VCOL diff -Nru mariadb-5.5-5.5.63/sql/sp_head.cc mariadb-5.5-5.5.64/sql/sp_head.cc --- mariadb-5.5-5.5.63/sql/sp_head.cc 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sp_head.cc 2019-04-26 12:37:02.000000000 +0000 @@ -563,6 +563,7 @@ DBUG_ENTER("sp_head::sp_head"); + m_security_ctx.init(); m_backpatch.empty(); m_cont_backpatch.empty(); m_lex.empty(); @@ -4249,6 +4250,7 @@ table->table_name_length= stab->table_name_length; table->alias= table->table_name + table->table_name_length + 1; table->lock_type= stab->lock_type; + table->updating= stab->lock_type >= TL_WRITE_ALLOW_WRITE; table->cacheable_table= 1; table->prelocking_placeholder= 1; table->belong_to_view= belong_to_view; diff -Nru mariadb-5.5-5.5.63/sql/sql_acl.cc mariadb-5.5-5.5.64/sql/sql_acl.cc --- mariadb-5.5-5.5.63/sql/sql_acl.cc 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_acl.cc 2019-04-26 12:37:02.000000000 +0000 @@ -825,6 +825,14 @@ goto end; table->use_all_columns(); + + if (table->s->fields < 13) // number of columns in 3.21 + { + sql_print_error("Fatal error: mysql.user table is damaged or in " + "unsupported 3.20 format."); + goto end; + } + username_char_length= min(table->field[1]->char_length(), USERNAME_CHAR_LENGTH); password_length= table->field[2]->field_length / table->field[2]->charset()->mbmaxlen; @@ -1150,6 +1158,20 @@ } +static void fix_table_list(TABLE_LIST *tl, uint n) +{ + TABLE_LIST *end; + for (end= tl + n - 1; tl < end; tl++) + { + tl->i_s_requested_object= OPEN_TABLE_ONLY; + tl->open_type= OT_BASE_ONLY; + tl->next_local= tl->next_global= tl + 1; + } + tl->i_s_requested_object= OPEN_TABLE_ONLY; + tl->open_type= OT_BASE_ONLY; +} + + /* Forget current user/db-level privileges and read new privileges from the privilege tables. @@ -1191,11 +1213,7 @@ tables[3].init_one_table(C_STRING_WITH_LEN("mysql"), C_STRING_WITH_LEN("proxies_priv"), "proxies_priv", TL_READ); - tables[0].next_local= tables[0].next_global= tables + 1; - tables[1].next_local= tables[1].next_global= tables + 2; - tables[2].next_local= tables[2].next_global= tables + 3; - tables[0].open_type= tables[1].open_type= tables[2].open_type= - tables[3].open_type= OT_BASE_ONLY; + fix_table_list(tables, 4); tables[3].open_strategy= TABLE_LIST::OPEN_IF_EXISTS; if (open_and_lock_tables(thd, tables, FALSE, MYSQL_LOCK_IGNORE_TIMEOUT)) @@ -1921,6 +1939,7 @@ DBUG_RETURN(1); tables.init_one_table("mysql", 5, "user", 4, "user", TL_WRITE); + fix_table_list(&tables, 1); #ifdef HAVE_REPLICATION /* @@ -2282,6 +2301,7 @@ ulong db_access; tl.init_one_table(C_STRING_WITH_LEN("mysql"), C_STRING_WITH_LEN("user"), "user", TL_WRITE); + fix_table_list(&tl, 1); create_new_users= 1; db_access=acl_get(sctx->host, sctx->ip, @@ -3689,10 +3709,11 @@ tables[2].init_one_table(C_STRING_WITH_LEN("mysql"), C_STRING_WITH_LEN("columns_priv"), "columns_priv", TL_WRITE); - tables[0].next_local= tables[0].next_global= tables+1; /* Don't open column table if we don't need it ! */ if (column_priv || (revoke_grant && ((rights & COL_ACLS) || columns.elements))) - tables[1].next_local= tables[1].next_global= tables+2; + fix_table_list(tables, 3); + else + fix_table_list(tables, 2); /* This statement will be replicated as a statement, even when using @@ -3930,7 +3951,7 @@ C_STRING_WITH_LEN("user"), "user", TL_WRITE); tables[1].init_one_table(C_STRING_WITH_LEN("mysql"), C_STRING_WITH_LEN("procs_priv"), "procs_priv", TL_WRITE); - tables[0].next_local= tables[0].next_global= tables+1; + fix_table_list(tables, 2); /* This statement will be replicated as a statement, even when using @@ -4104,7 +4125,7 @@ C_STRING_WITH_LEN("db"), "db", TL_WRITE); - tables[0].next_local= tables[0].next_global= tables+1; + fix_table_list(tables, 2); /* This statement will be replicated as a statement, even when using @@ -4525,10 +4546,7 @@ tables[2].init_one_table(C_STRING_WITH_LEN("mysql"), C_STRING_WITH_LEN("procs_priv"), "procs_priv", TL_READ); - - tables[0].next_local= tables[0].next_global= tables+1; - tables[1].next_local= tables[1].next_global= tables+2; - tables[0].open_type= tables[1].open_type= tables[2].open_type= OT_BASE_ONLY; + fix_table_list(tables, 3); /* Reload will work in the following manner:- @@ -5864,29 +5882,24 @@ DBUG_RETURN(-1); } - tables->init_one_table(C_STRING_WITH_LEN("mysql"), - C_STRING_WITH_LEN("user"), "user", TL_WRITE); - (tables+1)->init_one_table(C_STRING_WITH_LEN("mysql"), - C_STRING_WITH_LEN("db"), "db", TL_WRITE); - (tables+2)->init_one_table(C_STRING_WITH_LEN("mysql"), - C_STRING_WITH_LEN("tables_priv"), - "tables_priv", TL_WRITE); - (tables+3)->init_one_table(C_STRING_WITH_LEN("mysql"), - C_STRING_WITH_LEN("columns_priv"), - "columns_priv", TL_WRITE); - (tables+4)->init_one_table(C_STRING_WITH_LEN("mysql"), - C_STRING_WITH_LEN("procs_priv"), - "procs_priv", TL_WRITE); - (tables+5)->init_one_table(C_STRING_WITH_LEN("mysql"), - C_STRING_WITH_LEN("proxies_priv"), - "proxies_priv", TL_WRITE); + tables[0].init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("user"), "user", TL_WRITE); + tables[1].init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("db"), "db", TL_WRITE); + tables[2].init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("tables_priv"), + "tables_priv", TL_WRITE); + tables[3].init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("columns_priv"), + "columns_priv", TL_WRITE); + tables[4].init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("procs_priv"), + "procs_priv", TL_WRITE); + tables[5].init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("proxies_priv"), + "proxies_priv", TL_WRITE); tables[5].open_strategy= TABLE_LIST::OPEN_IF_EXISTS; - - tables->next_local= tables->next_global= tables + 1; - (tables+1)->next_local= (tables+1)->next_global= tables + 2; - (tables+2)->next_local= (tables+2)->next_global= tables + 3; - (tables+3)->next_local= (tables+3)->next_global= tables + 4; - (tables+4)->next_local= (tables+4)->next_global= tables + 5; + fix_table_list(tables, 6); #ifdef HAVE_REPLICATION /* diff -Nru mariadb-5.5-5.5.63/sql/sql_base.cc mariadb-5.5-5.5.64/sql/sql_base.cc --- mariadb-5.5-5.5.63/sql/sql_base.cc 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_base.cc 2019-04-26 12:37:02.000000000 +0000 @@ -4468,6 +4468,45 @@ DBUG_RETURN(FALSE); } +/* + If we are not already in prelocked mode and extended table list is not + yet built we might have to build the prelocking set for this statement. + + Since currently no prelocking strategy prescribes doing anything for + tables which are only read, we do below checks only if table is going + to be changed. +*/ +bool extend_table_list(THD *thd, TABLE_LIST *tables, + Prelocking_strategy *prelocking_strategy, + bool has_prelocking_list) +{ + bool error= false; + LEX *lex= thd->lex; + + if (thd->locked_tables_mode <= LTM_LOCK_TABLES && + ! has_prelocking_list && tables->updating && + tables->lock_type >= TL_WRITE_ALLOW_WRITE) + { + bool need_prelocking= FALSE; + TABLE_LIST **save_query_tables_last= lex->query_tables_last; + /* + Extend statement's table list and the prelocking set with + tables and routines according to the current prelocking + strategy. + + For example, for DML statements we need to add tables and routines + used by triggers which are going to be invoked for this element of + table list and also add tables required for handling of foreign keys. + */ + error= prelocking_strategy->handle_table(thd, lex, tables, + &need_prelocking); + + if (need_prelocking && ! lex->requires_prelocking()) + lex->mark_as_requiring_prelocking(save_query_tables_last); + } + return error; +} + /** Handle table list element by obtaining metadata lock, opening table or view @@ -4496,15 +4535,14 @@ */ static bool -open_and_process_table(THD *thd, LEX *lex, TABLE_LIST *tables, - uint *counter, uint flags, +open_and_process_table(THD *thd, TABLE_LIST *tables, uint *counter, uint flags, Prelocking_strategy *prelocking_strategy, - bool has_prelocking_list, - Open_table_context *ot_ctx, + bool has_prelocking_list, Open_table_context *ot_ctx, MEM_ROOT *new_frm_mem) { bool error= FALSE; bool safe_to_ignore_table= FALSE; + LEX *lex= thd->lex; DBUG_ENTER("open_and_process_table"); DEBUG_SYNC(thd, "open_and_process_table"); @@ -4654,38 +4692,9 @@ if (tables->open_strategy && !tables->table) goto end; - /* - If we are not already in prelocked mode and extended table list is not - yet built we might have to build the prelocking set for this statement. - - Since currently no prelocking strategy prescribes doing anything for - tables which are only read, we do below checks only if table is going - to be changed. - */ - if (thd->locked_tables_mode <= LTM_LOCK_TABLES && - ! has_prelocking_list && - tables->lock_type >= TL_WRITE_ALLOW_WRITE) - { - bool need_prelocking= FALSE; - TABLE_LIST **save_query_tables_last= lex->query_tables_last; - /* - Extend statement's table list and the prelocking set with - tables and routines according to the current prelocking - strategy. - - For example, for DML statements we need to add tables and routines - used by triggers which are going to be invoked for this element of - table list and also add tables required for handling of foreign keys. - */ - error= prelocking_strategy->handle_table(thd, lex, tables, - &need_prelocking); - - if (need_prelocking && ! lex->requires_prelocking()) - lex->mark_as_requiring_prelocking(save_query_tables_last); - - if (error) - goto end; - } + error= extend_table_list(thd, tables, prelocking_strategy, has_prelocking_list); + if (error) + goto end; if (tables->lock_type != TL_UNLOCK && ! thd->locked_tables_mode) { @@ -4994,8 +5003,9 @@ @retval TRUE Error, reported. */ -bool open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags, - Prelocking_strategy *prelocking_strategy) +bool open_tables(THD *thd, TABLE_LIST **start, uint *counter, + Sroutine_hash_entry **sroutine_to_open_list, uint flags, + Prelocking_strategy *prelocking_strategy) { /* We use pointers to "next_global" member in the last processed TABLE_LIST @@ -5043,7 +5053,7 @@ has_prelocking_list= thd->lex->requires_prelocking(); table_to_open= start; - sroutine_to_open= (Sroutine_hash_entry**) &thd->lex->sroutines_list.first; + sroutine_to_open= sroutine_to_open_list; *counter= 0; thd_proc_info(thd, "Opening tables"); @@ -5112,10 +5122,9 @@ for (tables= *table_to_open; tables; table_to_open= &tables->next_global, tables= tables->next_global) { - error= open_and_process_table(thd, thd->lex, tables, counter, - flags, prelocking_strategy, - has_prelocking_list, &ot_ctx, - &new_frm_mem); + error= open_and_process_table(thd, tables, counter, flags, + prelocking_strategy, has_prelocking_list, + &ot_ctx, &new_frm_mem); if (error) { diff -Nru mariadb-5.5-5.5.63/sql/sql_base.h mariadb-5.5-5.5.64/sql/sql_base.h --- mariadb-5.5-5.5.63/sql/sql_base.h 2019-01-27 18:02:22.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_base.h 2019-04-26 12:37:02.000000000 +0000 @@ -276,7 +276,8 @@ bool lock_table_names(THD *thd, TABLE_LIST *table_list, TABLE_LIST *table_list_end, ulong lock_wait_timeout, uint flags); -bool open_tables(THD *thd, TABLE_LIST **tables, uint *counter, uint flags, +bool open_tables(THD *thd, TABLE_LIST **tables, uint *counter, + Sroutine_hash_entry **sroutine_to_open, uint flags, Prelocking_strategy *prelocking_strategy); /* open_and_lock_tables with optional derived handling */ bool open_and_lock_tables(THD *thd, TABLE_LIST *tables, @@ -499,6 +500,15 @@ inline bool +open_tables(THD *thd, TABLE_LIST **tables, uint *counter, uint flags, + Prelocking_strategy *prelocking_strategy) +{ + return open_tables(thd, tables, counter, &thd->lex->sroutines_list.first, + flags, prelocking_strategy); +} + + +inline bool open_tables(THD *thd, TABLE_LIST **tables, uint *counter, uint flags) { DML_prelocking_strategy prelocking_strategy; @@ -528,6 +538,10 @@ } +bool extend_table_list(THD *thd, TABLE_LIST *tables, + Prelocking_strategy *prelocking_strategy, + bool has_prelocking_list); + /** A context of open_tables() function, used to recover from a failed open_table() or open_routine() attempt. diff -Nru mariadb-5.5-5.5.63/sql/sql_delete.cc mariadb-5.5-5.5.64/sql/sql_delete.cc --- mariadb-5.5-5.5.63/sql/sql_delete.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_delete.cc 2019-04-26 12:37:02.000000000 +0000 @@ -37,7 +37,7 @@ #include "sql_trigger.h" #include "transaction.h" #include "records.h" // init_read_record, -#include "sql_derived.h" // mysql_handle_list_of_derived +#include "sql_derived.h" // mysql_handle_derived // end_read_record /** Implement DELETE SQL word. @@ -71,9 +71,9 @@ if (open_and_lock_tables(thd, table_list, TRUE, 0)) DBUG_RETURN(TRUE); - if (mysql_handle_list_of_derived(thd->lex, table_list, DT_MERGE_FOR_INSERT)) + if (thd->lex->handle_list_of_derived(table_list, DT_MERGE_FOR_INSERT)) DBUG_RETURN(TRUE); - if (mysql_handle_list_of_derived(thd->lex, table_list, DT_PREPARE)) + if (thd->lex->handle_list_of_derived(table_list, DT_PREPARE)) DBUG_RETURN(TRUE); if (!table_list->single_table_updatable()) diff -Nru mariadb-5.5-5.5.63/sql/sql_derived.cc mariadb-5.5-5.5.64/sql/sql_derived.cc --- mariadb-5.5-5.5.63/sql/sql_derived.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_derived.cc 2019-04-26 12:37:02.000000000 +0000 @@ -90,6 +90,7 @@ sl= sl->next_select_in_list()) { TABLE_LIST *cursor= sl->get_table_list(); + sl->changed_elements|= TOUCHED_SEL_DERIVED; /* DT_MERGE_FOR_INSERT is not needed for views/derived tables inside subqueries. Views and derived tables of subqueries should be @@ -200,36 +201,6 @@ /** - Run specified phases for derived tables/views in the given list - - @param lex LEX for this thread - @param table_list list of derived tables/view to handle - @param phase_map phases to process tables/views through - - @details - This function runs phases specified by the 'phases_map' on derived - tables/views found in the 'dt_list' with help of the - TABLE_LIST::handle_derived function. - 'lex' is passed as an argument to the TABLE_LIST::handle_derived. - - @return FALSE ok - @return TRUE error -*/ - -bool -mysql_handle_list_of_derived(LEX *lex, TABLE_LIST *table_list, uint phases) -{ - for (TABLE_LIST *tl= table_list; tl; tl= tl->next_local) - { - if (tl->is_view_or_derived() && - tl->handle_derived(lex, phases)) - return TRUE; - } - return FALSE; -} - - -/** Merge a derived table/view into the embedding select @param thd thread handle @@ -1032,8 +1003,7 @@ derived->get_unit())); st_select_lex_unit *unit= derived->get_unit(); - if (derived->table) - derived->merged_for_insert= FALSE; + derived->merged_for_insert= FALSE; unit->unclean(); unit->types.empty(); /* for derived tables & PS (which can't be reset by Item_subquery) */ diff -Nru mariadb-5.5-5.5.63/sql/sql_derived.h mariadb-5.5-5.5.64/sql/sql_derived.h --- mariadb-5.5-5.5.63/sql/sql_derived.h 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_derived.h 2019-04-26 12:37:02.000000000 +0000 @@ -22,7 +22,6 @@ bool mysql_handle_derived(LEX *lex, uint phases); bool mysql_handle_single_derived(LEX *lex, TABLE_LIST *derived, uint phases); -bool mysql_handle_list_of_derived(LEX *lex, TABLE_LIST *dt_list, uint phases); /** Cleans up the SELECT_LEX_UNIT for the derived table (if any). diff -Nru mariadb-5.5-5.5.63/sql/sql_insert.cc mariadb-5.5-5.5.64/sql/sql_insert.cc --- mariadb-5.5-5.5.63/sql/sql_insert.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_insert.cc 2019-04-26 12:37:02.000000000 +0000 @@ -1404,7 +1404,7 @@ DBUG_RETURN(TRUE); if (table_list->handle_derived(thd->lex, DT_MERGE_FOR_INSERT)) DBUG_RETURN(TRUE); - if (mysql_handle_list_of_derived(thd->lex, table_list, DT_PREPARE)) + if (thd->lex->handle_list_of_derived(table_list, DT_PREPARE)) DBUG_RETURN(TRUE); /* For subqueries in VALUES() we should not see the table in which we are @@ -1510,7 +1510,6 @@ DBUG_RETURN(TRUE); } select_lex->fix_prepare_information(thd, &fake_conds, &fake_conds); - select_lex->first_execution= 0; } /* Only call prepare_for_posistion() if we are not performing a DELAYED diff -Nru mariadb-5.5-5.5.63/sql/sql_lex.cc mariadb-5.5-5.5.64/sql/sql_lex.cc --- mariadb-5.5-5.5.63/sql/sql_lex.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_lex.cc 2019-04-26 12:37:02.000000000 +0000 @@ -1904,7 +1904,7 @@ n_child_sum_items= 0; subquery_in_having= explicit_limit= 0; is_item_list_lookup= 0; - first_execution= 1; + changed_elements= 0; first_natural_join_processing= 1; first_cond_optimization= 1; parsing_place= NO_MATTER; @@ -3367,9 +3367,10 @@ Item **having_conds) { DBUG_ENTER("st_select_lex::fix_prepare_information"); - if (!thd->stmt_arena->is_conventional() && first_execution) + if (!thd->stmt_arena->is_conventional() && + !(changed_elements & TOUCHED_SEL_COND)) { - first_execution= 0; + changed_elements|= TOUCHED_SEL_COND; if (group_list.first) { if (!group_list_ptrs) @@ -3593,14 +3594,7 @@ bool st_select_lex::handle_derived(LEX *lex, uint phases) { - for (TABLE_LIST *cursor= (TABLE_LIST*) table_list.first; - cursor; - cursor= cursor->next_local) - { - if (cursor->is_view_or_derived() && cursor->handle_derived(lex, phases)) - return TRUE; - } - return FALSE; + return lex->handle_list_of_derived(table_list.first, phases); } diff -Nru mariadb-5.5-5.5.63/sql/sql_lex.h mariadb-5.5-5.5.64/sql/sql_lex.h --- mariadb-5.5-5.5.63/sql/sql_lex.h 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_lex.h 2019-04-26 12:37:02.000000000 +0000 @@ -589,7 +589,7 @@ enum_mdl_type mdl_type= MDL_SHARED_READ, List *hints= 0, LEX_STRING *option= 0); - virtual void set_lock_for_tables(thr_lock_type lock_type) {} + virtual void set_lock_for_tables(thr_lock_type lock_type, bool for_update) {} friend class st_select_lex_unit; friend bool mysql_new_select(LEX *lex, bool move_down); @@ -729,6 +729,10 @@ typedef class st_select_lex_unit SELECT_LEX_UNIT; + +#define TOUCHED_SEL_COND 1/* WHERE/HAVING/ON should be reinited before use */ +#define TOUCHED_SEL_DERIVED (1<<1)/* derived should be reinited before use */ + /* SELECT_LEX - store information of parsed SELECT statment */ @@ -876,7 +880,8 @@ subquery. Prepared statements work OK in that regard, as in case of an error during prepare the PS is not created. */ - bool first_execution; + uint8 changed_elements; // see TOUCHED_SEL_* + /* TODO: add foloowing first_* to bitmap above */ bool first_natural_join_processing; bool first_cond_optimization; /* do not wrap view fields with Item_ref */ @@ -955,7 +960,7 @@ TABLE_LIST *convert_right_join(); List* get_item_list(); ulong get_table_join_options(); - void set_lock_for_tables(thr_lock_type lock_type); + void set_lock_for_tables(thr_lock_type lock_type, bool for_update); inline void init_order() { order_list.elements= 0; @@ -2785,6 +2790,31 @@ } bool save_prep_leaf_tables(); + + /* + Run specified phases for derived tables/views in the given list + + @param table_list - list of derived tables/view to handle + @param phase - phases to process tables/views through + + @details + This method runs phases specified by the 'phases' on derived + tables/views found in the 'table_list' with help of the + TABLE_LIST::handle_derived function. + 'this' is passed as an argument to the TABLE_LIST::handle_derived. + + @return false - ok + @return true - error + */ + bool handle_list_of_derived(TABLE_LIST *table_list, uint phases) + { + for (TABLE_LIST *tl= table_list; tl; tl= tl->next_local) + { + if (tl->is_view_or_derived() && tl->handle_derived(this, phases)) + return true; + } + return false; + } }; diff -Nru mariadb-5.5-5.5.63/sql/sql_load.cc mariadb-5.5-5.5.64/sql/sql_load.cc --- mariadb-5.5-5.5.63/sql/sql_load.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_load.cc 2019-04-26 12:37:02.000000000 +0000 @@ -233,8 +233,9 @@ if (open_and_lock_tables(thd, table_list, TRUE, 0)) DBUG_RETURN(TRUE); - if (mysql_handle_single_derived(thd->lex, table_list, DT_MERGE_FOR_INSERT) || - mysql_handle_single_derived(thd->lex, table_list, DT_PREPARE)) + if (table_list->handle_derived(thd->lex, DT_MERGE_FOR_INSERT)) + DBUG_RETURN(TRUE); + if (thd->lex->handle_list_of_derived(table_list, DT_PREPARE)) DBUG_RETURN(TRUE); if (setup_tables_and_check_access(thd, &thd->lex->select_lex.context, &thd->lex->select_lex.top_join_list, @@ -250,6 +251,11 @@ my_error(ER_NON_UPDATABLE_TABLE, MYF(0), table_list->alias, "LOAD"); DBUG_RETURN(TRUE); } + if (table_list->is_multitable()) + { + my_error(ER_WRONG_USAGE, MYF(0), "Multi-table VIEW", "LOAD"); + DBUG_RETURN(TRUE); + } if (table_list->prepare_where(thd, 0, TRUE) || table_list->prepare_check_option(thd)) { diff -Nru mariadb-5.5-5.5.63/sql/sql_parse.cc mariadb-5.5-5.5.64/sql/sql_parse.cc --- mariadb-5.5-5.5.63/sql/sql_parse.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_parse.cc 2019-04-26 12:37:02.000000000 +0000 @@ -2065,9 +2065,6 @@ reset_one_shot_variables(thd); DBUG_RETURN(0); } - - for (table=all_tables; table; table=table->next_global) - table->updating= TRUE; } /* @@ -4088,15 +4085,16 @@ my_error(ER_SP_BADSELECT, MYF(0), sp->m_qname.str); goto error; } - /* - If SERVER_MORE_RESULTS_EXISTS is not set, - then remember that it should be cleared - */ - bits_to_be_cleared= (~thd->server_status & - SERVER_MORE_RESULTS_EXISTS); - thd->server_status|= SERVER_MORE_RESULTS_EXISTS; } + /* + If SERVER_MORE_RESULTS_EXISTS is not set, + then remember that it should be cleared + */ + bits_to_be_cleared= (~thd->server_status & + SERVER_MORE_RESULTS_EXISTS); + thd->server_status|= SERVER_MORE_RESULTS_EXISTS; + if (check_routine_access(thd, EXECUTE_ACL, sp->m_db.str, sp->m_name.str, TRUE, FALSE)) { @@ -6540,9 +6538,8 @@ query */ -void st_select_lex::set_lock_for_tables(thr_lock_type lock_type) +void st_select_lex::set_lock_for_tables(thr_lock_type lock_type, bool for_update) { - bool for_update= lock_type >= TL_READ_NO_INSERT; DBUG_ENTER("set_lock_for_tables"); DBUG_PRINT("enter", ("lock_type: %d for_update: %d", lock_type, for_update)); diff -Nru mariadb-5.5-5.5.63/sql/sql_prepare.cc mariadb-5.5-5.5.64/sql/sql_prepare.cc --- mariadb-5.5-5.5.63/sql/sql_prepare.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_prepare.cc 2019-04-26 12:37:02.000000000 +0000 @@ -2496,7 +2496,7 @@ } for (; sl; sl= sl->next_select_in_list()) { - if (!sl->first_execution) + if (sl->changed_elements & TOUCHED_SEL_COND) { /* remove option which was put by mysql_explain_union() */ sl->options&= ~SELECT_DESCRIBE; @@ -2543,19 +2543,28 @@ order->next= sl->group_list_ptrs->at(ix+1); } } + } + { // no harm to do it (item_ptr set on parsing) + ORDER *order; for (order= sl->group_list.first; order; order= order->next) + { order->item= &order->item_ptr; + } /* Fix ORDER list */ for (order= sl->order_list.first; order; order= order->next) - order->item= &order->item_ptr; { + order->item= &order->item_ptr; + } + } + if (sl->changed_elements & TOUCHED_SEL_DERIVED) + { #ifndef DBUG_OFF - bool res= + bool res= #endif - sl->handle_derived(lex, DT_REINIT); - DBUG_ASSERT(res == 0); - } + sl->handle_derived(lex, DT_REINIT); + DBUG_ASSERT(res == 0); } + { SELECT_LEX_UNIT *unit= sl->master_unit(); unit->unclean(); diff -Nru mariadb-5.5-5.5.63/sql/sql_show.cc mariadb-5.5-5.5.64/sql/sql_show.cc --- mariadb-5.5-5.5.63/sql/sql_show.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_show.cc 2019-04-26 12:37:02.000000000 +0000 @@ -7620,8 +7620,6 @@ table->alias_name_used= my_strcasecmp(table_alias_charset, table_list->schema_table_name, table_list->alias); - table_list->table_name= table->s->table_name.str; - table_list->table_name_length= table->s->table_name.length; table_list->table= table; table->next= thd->derived_tables; thd->derived_tables= table; diff -Nru mariadb-5.5-5.5.63/sql/sql_truncate.cc mariadb-5.5-5.5.64/sql/sql_truncate.cc --- mariadb-5.5-5.5.63/sql/sql_truncate.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_truncate.cc 2019-04-26 12:37:02.000000000 +0000 @@ -150,15 +150,11 @@ /* Loop over the set of foreign keys for which this table is a parent. */ while ((fk_info= it++)) { - DBUG_ASSERT(!my_strcasecmp(system_charset_info, - fk_info->referenced_db->str, - table->s->db.str)); - - DBUG_ASSERT(!my_strcasecmp(system_charset_info, - fk_info->referenced_table->str, - table->s->table_name.str)); - - if (my_strcasecmp(system_charset_info, fk_info->foreign_db->str, + if (my_strcasecmp(system_charset_info, fk_info->referenced_db->str, + table->s->db.str) || + my_strcasecmp(system_charset_info, fk_info->referenced_table->str, + table->s->table_name.str) || + my_strcasecmp(system_charset_info, fk_info->foreign_db->str, table->s->db.str) || my_strcasecmp(system_charset_info, fk_info->foreign_table->str, table->s->table_name.str)) diff -Nru mariadb-5.5-5.5.63/sql/sql_union.cc mariadb-5.5-5.5.64/sql/sql_union.cc --- mariadb-5.5-5.5.63/sql/sql_union.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_union.cc 2019-04-26 12:37:02.000000000 +0000 @@ -215,8 +215,9 @@ called at the first execution of the statement, while first_execution shows whether this is called at the first execution of the union that may form just a subselect. - */ - if (!fake_select_lex->first_execution && first_execution) + */ + if ((fake_select_lex->changed_elements & TOUCHED_SEL_COND) && + first_execution) { for (ORDER *order= global_parameters->order_list.first; order; diff -Nru mariadb-5.5-5.5.63/sql/sql_update.cc mariadb-5.5-5.5.64/sql/sql_update.cc --- mariadb-5.5-5.5.63/sql/sql_update.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_update.cc 2019-04-26 12:37:02.000000000 +0000 @@ -1208,6 +1208,9 @@ List *fields= &lex->select_lex.item_list; table_map tables_for_update; bool update_view= 0; + DML_prelocking_strategy prelocking_strategy; + bool has_prelocking_list= thd->lex->requires_prelocking(); + /* if this multi-update was converted from usual update, here is table counter else junk will be assigned here, but then replaced with real @@ -1228,10 +1231,10 @@ keep prepare of multi-UPDATE compatible with concurrent LOCK TABLES WRITE and global read lock. */ - if ((original_multiupdate && - open_tables(thd, &table_list, &table_count, - (thd->stmt_arena->is_stmt_prepare() ? - MYSQL_OPEN_FORCE_SHARED_MDL : 0))) || + if ((original_multiupdate && open_tables(thd, &table_list, &table_count, + thd->stmt_arena->is_stmt_prepare() + ? MYSQL_OPEN_FORCE_SHARED_MDL : 0, + &prelocking_strategy)) || mysql_handle_derived(lex, DT_INIT)) DBUG_RETURN(TRUE); /* @@ -1278,6 +1281,9 @@ if (unsafe_key_update(lex->select_lex.leaf_tables, tables_for_update)) DBUG_RETURN(true); + TABLE_LIST **new_tables= lex->query_tables_last; + DBUG_ASSERT(*new_tables== NULL); + /* Setup timestamp handling and locking mode */ @@ -1305,6 +1311,11 @@ If table will be updated we should not downgrade lock for it and leave it as is. */ + tl->updating= 1; + if (tl->belong_to_view) + tl->belong_to_view->updating= 1; + if (extend_table_list(thd, tl, &prelocking_strategy, has_prelocking_list)) + DBUG_RETURN(TRUE); } else { @@ -1323,9 +1334,21 @@ tl->lock_type= read_lock_type_for_table(thd, lex, tl); else tl->set_lock_type(thd, read_lock_type_for_table(thd, lex, tl)); - tl->updating= 0; } } + + uint addon_table_count= 0; + if (*new_tables) + { + Sroutine_hash_entry **new_routines= thd->lex->sroutines_list.next; + DBUG_ASSERT(*new_routines == NULL); + if (open_tables(thd, new_tables, &addon_table_count, new_routines, + thd->stmt_arena->is_stmt_prepare() + ? MYSQL_OPEN_FORCE_SHARED_MDL : 0, + &prelocking_strategy)) + DBUG_RETURN(TRUE); + } + for (tl= table_list; tl; tl= tl->next_local) { /* Check access privileges for table */ @@ -1358,7 +1381,7 @@ /* now lock and fill tables */ if (!thd->stmt_arena->is_stmt_prepare() && - lock_tables(thd, table_list, table_count, 0)) + lock_tables(thd, table_list, table_count + addon_table_count, 0)) { DBUG_RETURN(TRUE); } diff -Nru mariadb-5.5-5.5.63/sql/sql_view.cc mariadb-5.5-5.5.64/sql/sql_view.cc --- mariadb-5.5-5.5.63/sql/sql_view.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_view.cc 2019-04-26 12:37:02.000000000 +0000 @@ -1511,6 +1511,7 @@ tbl->lock_type= table->lock_type; tbl->mdl_request.set_type((tbl->lock_type >= TL_WRITE_ALLOW_WRITE) ? MDL_SHARED_WRITE : MDL_SHARED_READ); + tbl->updating= table->updating; } /* If the view is mergeable, we might want to diff -Nru mariadb-5.5-5.5.63/sql/sql_yacc.cc mariadb-5.5-5.5.64/sql/sql_yacc.cc --- mariadb-5.5-5.5.63/sql/sql_yacc.cc 2019-01-27 18:02:26.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_yacc.cc 2019-04-26 12:37:03.000000000 +0000 @@ -2715,33 +2715,33 @@ 13494, 13498, 13539, 13557, 13568, 13585, 13598, 13613, 13632, 13658, 13671, 13697, 13740, 13754, 13755, 13756, 13757, 13761, 13762, 13771, 13783, 13784, 13785, 13791, 13797, 13809, 13808, 13824, 13825, 13829, - 13830, 13834, 13849, 13850, 13851, 13856, 13857, 13862, 13861, 13881, - 13893, 13906, 13905, 13939, 13940, 13944, 13945, 13949, 13950, 13951, - 13952, 13954, 13953, 13966, 13967, 13968, 13969, 13970, 13976, 13981, - 13987, 13998, 14009, 14013, 14023, 14028, 14035, 14047, 14059, 14068, - 14070, 14074, 14075, 14082, 14084, 14088, 14089, 14094, 14093, 14097, - 14096, 14100, 14099, 14103, 14102, 14105, 14106, 14107, 14108, 14109, - 14110, 14111, 14112, 14113, 14114, 14115, 14116, 14117, 14118, 14119, - 14120, 14121, 14122, 14123, 14124, 14125, 14126, 14127, 14128, 14129, - 14130, 14134, 14135, 14139, 14140, 14144, 14154, 14164, 14177, 14192, - 14205, 14218, 14230, 14235, 14243, 14248, 14255, 14255, 14256, 14256, - 14259, 14286, 14291, 14297, 14303, 14309, 14313, 14317, 14318, 14322, - 14349, 14351, 14355, 14359, 14363, 14370, 14371, 14375, 14376, 14380, - 14381, 14385, 14386, 14392, 14398, 14404, 14414, 14413, 14423, 14424, - 14429, 14430, 14431, 14436, 14437, 14438, 14442, 14443, 14447, 14459, - 14468, 14478, 14487, 14501, 14502, 14507, 14506, 14522, 14523, 14524, - 14528, 14529, 14533, 14533, 14555, 14556, 14560, 14561, 14562, 14566, - 14570, 14577, 14580, 14578, 14594, 14601, 14622, 14648, 14650, 14654, - 14655, 14659, 14660, 14668, 14669, 14670, 14671, 14677, 14683, 14693, - 14695, 14697, 14702, 14703, 14704, 14705, 14706, 14710, 14711, 14712, - 14713, 14714, 14715, 14725, 14726, 14731, 14744, 14757, 14759, 14761, - 14766, 14771, 14773, 14775, 14781, 14782, 14784, 14790, 14789, 14806, - 14807, 14811, 14816, 14824, 14824, 14848, 14849, 14854, 14855, 14857, - 14859, 14877, 14883, 14888, 14870, 14949, 14966, 14990, 15021, 15025, - 15034, 15057, 14986, 15120, 15144, 15153, 15160, 15119, 15180, 15184, - 15188, 15192, 15196, 15200, 15207, 15214, 15221, 15231, 15232, 15236, - 15237, 15238, 15242, 15243, 15248, 15250, 15249, 15255, 15256, 15260, - 15267, 15277, 15283, 15294 + 13830, 13834, 13852, 13853, 13854, 13859, 13860, 13865, 13864, 13884, + 13896, 13909, 13908, 13942, 13943, 13947, 13948, 13952, 13953, 13954, + 13955, 13957, 13956, 13969, 13970, 13971, 13972, 13973, 13979, 13984, + 13990, 14001, 14012, 14016, 14026, 14031, 14038, 14050, 14062, 14071, + 14073, 14077, 14078, 14085, 14087, 14091, 14092, 14097, 14096, 14100, + 14099, 14103, 14102, 14106, 14105, 14108, 14109, 14110, 14111, 14112, + 14113, 14114, 14115, 14116, 14117, 14118, 14119, 14120, 14121, 14122, + 14123, 14124, 14125, 14126, 14127, 14128, 14129, 14130, 14131, 14132, + 14133, 14137, 14138, 14142, 14143, 14147, 14157, 14167, 14180, 14195, + 14208, 14221, 14233, 14238, 14246, 14251, 14258, 14258, 14259, 14259, + 14262, 14289, 14294, 14300, 14306, 14312, 14316, 14320, 14321, 14325, + 14352, 14354, 14358, 14362, 14366, 14373, 14374, 14378, 14379, 14383, + 14384, 14388, 14389, 14395, 14401, 14407, 14417, 14416, 14426, 14427, + 14432, 14433, 14434, 14439, 14440, 14441, 14445, 14446, 14450, 14462, + 14471, 14481, 14490, 14504, 14505, 14510, 14509, 14525, 14526, 14527, + 14531, 14532, 14536, 14536, 14558, 14559, 14563, 14564, 14565, 14569, + 14573, 14580, 14583, 14581, 14597, 14604, 14625, 14651, 14653, 14657, + 14658, 14662, 14663, 14671, 14672, 14673, 14674, 14680, 14686, 14696, + 14698, 14700, 14705, 14706, 14707, 14708, 14709, 14713, 14714, 14715, + 14716, 14717, 14718, 14728, 14729, 14734, 14747, 14760, 14762, 14764, + 14769, 14774, 14776, 14778, 14784, 14785, 14787, 14793, 14792, 14809, + 14810, 14814, 14819, 14827, 14827, 14851, 14852, 14857, 14858, 14860, + 14862, 14880, 14886, 14891, 14873, 14952, 14969, 14993, 15024, 15028, + 15037, 15060, 14989, 15123, 15147, 15156, 15163, 15122, 15183, 15187, + 15191, 15195, 15199, 15203, 15210, 15217, 15224, 15234, 15235, 15239, + 15240, 15241, 15245, 15246, 15251, 15253, 15252, 15258, 15259, 15263, + 15270, 15280, 15286, 15297 }; #endif @@ -25155,7 +25155,7 @@ #line 7677 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; - lex->current_select->set_lock_for_tables(TL_WRITE); + lex->current_select->set_lock_for_tables(TL_WRITE, false); lex->safe_to_cache_query=0; } #line 25162 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ @@ -25166,7 +25166,7 @@ { LEX *lex=Lex; lex->current_select-> - set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS); + set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS, false); lex->safe_to_cache_query=0; } #line 25173 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ @@ -29826,7 +29826,7 @@ case 1621: #line 10968 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { - Select->set_lock_for_tables((yyvsp[-2].lock_type)); + Select->set_lock_for_tables((yyvsp[-2].lock_type), true); Lex->current_select= &Lex->select_lex; } #line 29833 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ @@ -29852,7 +29852,7 @@ case 1624: #line 10985 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { - Select->set_lock_for_tables((yyvsp[-1].lock_type)); + Select->set_lock_for_tables((yyvsp[-1].lock_type), true); Lex->current_select= &Lex->select_lex; } #line 29859 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ @@ -30133,14 +30133,14 @@ case 1669: #line 11161 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { - LEX *lex= Lex; - if (lex->select_lex.table_list.elements > 1) - lex->sql_command= SQLCOM_UPDATE_MULTI; - else if (lex->select_lex.get_table_list()->derived) + SELECT_LEX *slex= &Lex->select_lex; + if (slex->table_list.elements > 1) + Lex->sql_command= SQLCOM_UPDATE_MULTI; + else if (slex->get_table_list()->derived) { /* it is single table update and it is update of derived table */ my_error(ER_NON_UPDATABLE_TABLE, MYF(0), - lex->select_lex.get_table_list()->alias, "UPDATE"); + slex->get_table_list()->alias, "UPDATE"); MYSQL_YYABORT; } /* @@ -30148,7 +30148,7 @@ be too pessimistic. We will decrease lock level if possible in mysql_multi_update(). */ - Select->set_lock_for_tables((yyvsp[-4].lock_type)); + slex->set_lock_for_tables((yyvsp[-4].lock_type), slex->table_list.elements == 1); } #line 30154 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; @@ -35505,52 +35505,55 @@ #line 13835 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { thr_lock_type lock_type= (thr_lock_type) (yyvsp[0].num); - bool lock_for_write= (lock_type >= TL_WRITE_ALLOW_WRITE); - if (!Select->add_table_to_list(thd, (yyvsp[-2].table), (yyvsp[-1].lex_str_ptr), 0, lock_type, - (lock_for_write ? - lock_type == TL_WRITE_CONCURRENT_INSERT ? - MDL_SHARED_WRITE : - MDL_SHARED_NO_READ_WRITE : - MDL_SHARED_READ))) + bool lock_for_write= lock_type >= TL_WRITE_ALLOW_WRITE; + ulong table_options= lock_for_write ? TL_OPTION_UPDATING : 0; + enum_mdl_type mdl_type= !lock_for_write + ? MDL_SHARED_READ + : lock_type == TL_WRITE_CONCURRENT_INSERT + ? MDL_SHARED_WRITE + : MDL_SHARED_NO_READ_WRITE; + + if (!Select->add_table_to_list(thd, (yyvsp[-2].table), (yyvsp[-1].lex_str_ptr), table_options, + lock_type, mdl_type)) MYSQL_YYABORT; } -#line 35518 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35521 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2382: -#line 13849 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13852 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= TL_READ_NO_INSERT; } -#line 35524 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35527 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2383: -#line 13850 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13853 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= TL_WRITE_DEFAULT; } -#line 35530 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2384: -#line 13852 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13855 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); } -#line 35538 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2385: -#line 13856 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= TL_WRITE_LOW_PRIORITY; } -#line 35544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35547 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2386: -#line 13857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13860 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= TL_READ; } -#line 35550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35553 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2387: -#line 13862 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13865 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -35561,17 +35564,17 @@ } lex->sql_command= SQLCOM_UNLOCK_TABLES; } -#line 35565 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35568 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2388: -#line 13873 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13876 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35571 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35574 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2389: -#line 13882 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13885 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (lex->sphead) @@ -35583,11 +35586,11 @@ if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-2].table), (yyvsp[0].lex_str_ptr), 0)) MYSQL_YYABORT; } -#line 35587 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35590 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2390: -#line 13894 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13897 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (lex->sphead) @@ -35599,11 +35602,11 @@ if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-1].table), 0, 0)) MYSQL_YYABORT; } -#line 35603 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35606 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2391: -#line 13906 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13909 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (lex->sphead) @@ -35623,11 +35626,11 @@ if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-1].table), 0, 0)) MYSQL_YYABORT; } -#line 35627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2392: -#line 13926 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13929 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->expr_allows_subselect= TRUE; /* Stored functions are not supported for HANDLER READ. */ @@ -35638,59 +35641,59 @@ MYSQL_YYABORT; } } -#line 35642 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35645 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2393: -#line 13939 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13942 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ident= null_lex_str; } -#line 35648 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2394: -#line 13940 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13943 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ident= (yyvsp[-1].lex_str); } -#line 35654 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35657 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2395: -#line 13944 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13947 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RFIRST; } -#line 35660 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2396: -#line 13945 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RNEXT; } -#line 35666 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35669 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2397: -#line 13949 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RFIRST; } -#line 35672 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35675 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2398: -#line 13950 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13953 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RNEXT; } -#line 35678 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35681 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2399: -#line 13951 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13954 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RPREV; } -#line 35684 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2400: -#line 13952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13955 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RLAST; } -#line 35690 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2401: -#line 13954 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13957 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->ha_read_mode = RKEY; @@ -35698,63 +35701,63 @@ if (!(lex->insert_list = new List_item)) MYSQL_YYABORT; } -#line 35702 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35705 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2402: -#line 13962 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13965 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35708 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35711 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2403: -#line 13966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13969 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT; } -#line 35714 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35717 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2404: -#line 13967 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13970 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; } -#line 35720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35723 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2405: -#line 13968 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13971 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; } -#line 35726 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35729 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2406: -#line 13969 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13972 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY; } -#line 35732 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35735 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2407: -#line 13970 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13973 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY; } -#line 35738 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35741 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2408: -#line 13977 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13980 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35744 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35747 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2409: -#line 13982 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13985 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_REVOKE; lex->type= 0; } -#line 35754 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35757 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2410: -#line 13988 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13991 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (lex->columns.elements) @@ -35765,11 +35768,11 @@ lex->sql_command= SQLCOM_REVOKE; lex->type= TYPE_ENUM_FUNCTION; } -#line 35769 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35772 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2411: -#line 13999 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14002 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (lex->columns.elements) @@ -35780,46 +35783,46 @@ lex->sql_command= SQLCOM_REVOKE; lex->type= TYPE_ENUM_PROCEDURE; } -#line 35784 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35787 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2412: -#line 14010 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14013 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_REVOKE_ALL; } -#line 35792 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35795 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2413: -#line 14014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->users_list.push_front ((yyvsp[-2].lex_user)); lex->sql_command= SQLCOM_REVOKE; lex->type= TYPE_ENUM_PROXY; } -#line 35803 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35806 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2414: -#line 14024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14027 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35812 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2415: -#line 14030 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14033 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_GRANT; lex->type= 0; } -#line 35819 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35822 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2416: -#line 14037 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (lex->columns.elements) @@ -35830,11 +35833,11 @@ lex->sql_command= SQLCOM_GRANT; lex->type= TYPE_ENUM_FUNCTION; } -#line 35834 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35837 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2417: -#line 14049 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (lex->columns.elements) @@ -35845,253 +35848,253 @@ lex->sql_command= SQLCOM_GRANT; lex->type= TYPE_ENUM_PROCEDURE; } -#line 35849 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35852 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2418: -#line 14060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14063 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->users_list.push_front ((yyvsp[-3].lex_user)); lex->sql_command= SQLCOM_GRANT; lex->type= TYPE_ENUM_PROXY; } -#line 35860 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35863 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2421: -#line 14074 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35866 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35869 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2422: -#line 14076 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14079 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->all_privileges= 1; Lex->grant= GLOBAL_ACLS; } -#line 35875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35878 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2427: -#line 14094 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->which_columns = SELECT_ACL;} -#line 35881 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35884 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2428: -#line 14095 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14098 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35890 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2429: -#line 14097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14100 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->which_columns = INSERT_ACL;} -#line 35893 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35896 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2430: -#line 14098 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35899 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35902 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2431: -#line 14100 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14103 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->which_columns = UPDATE_ACL; } -#line 35905 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35908 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2432: -#line 14101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14104 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35911 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35914 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2433: -#line 14103 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->which_columns = REFERENCES_ACL;} -#line 35917 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35920 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2434: -#line 14104 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14107 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35923 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35926 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2435: -#line 14105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14108 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= DELETE_ACL;} -#line 35929 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35932 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2436: -#line 14106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14109 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35935 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35938 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2437: -#line 14107 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14110 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= INDEX_ACL;} -#line 35941 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35944 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2438: -#line 14108 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= ALTER_ACL;} -#line 35947 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35950 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2439: -#line 14109 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_ACL;} -#line 35953 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35956 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2440: -#line 14110 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= DROP_ACL;} -#line 35959 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35962 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2441: -#line 14111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= EXECUTE_ACL;} -#line 35965 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35968 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2442: -#line 14112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14115 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= RELOAD_ACL;} -#line 35971 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35974 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2443: -#line 14113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= SHUTDOWN_ACL;} -#line 35977 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35980 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2444: -#line 14114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14117 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= PROCESS_ACL;} -#line 35983 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35986 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2445: -#line 14115 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14118 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= FILE_ACL;} -#line 35989 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35992 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2446: -#line 14116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= GRANT_ACL;} -#line 35995 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2447: -#line 14117 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14120 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= SHOW_DB_ACL;} -#line 36001 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36004 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2448: -#line 14118 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= SUPER_ACL;} -#line 36007 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36010 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2449: -#line 14119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14122 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_TMP_ACL;} -#line 36013 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36016 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2450: -#line 14120 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= LOCK_TABLES_ACL; } -#line 36019 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2451: -#line 14121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14124 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= REPL_SLAVE_ACL; } -#line 36025 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36028 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2452: -#line 14122 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= REPL_CLIENT_ACL; } -#line 36031 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2453: -#line 14123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14126 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_VIEW_ACL; } -#line 36037 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36040 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2454: -#line 14124 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14127 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= SHOW_VIEW_ACL; } -#line 36043 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36046 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2455: -#line 14125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14128 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_PROC_ACL; } -#line 36049 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2456: -#line 14126 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14129 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= ALTER_PROC_ACL; } -#line 36055 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2457: -#line 14127 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14130 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_USER_ACL; } -#line 36061 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2458: -#line 14128 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14131 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= EVENT_ACL;} -#line 36067 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2459: -#line 14129 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14132 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= TRIGGER_ACL; } -#line 36073 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36076 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2460: -#line 14130 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_TABLESPACE_ACL; } -#line 36079 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2461: -#line 14134 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14137 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36085 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2462: -#line 14135 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14138 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36091 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2465: -#line 14145 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14148 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (lex->x509_subject) @@ -36101,11 +36104,11 @@ } lex->x509_subject=(yyvsp[0].lex_str).str; } -#line 36105 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36108 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2466: -#line 14155 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14158 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (lex->x509_issuer) @@ -36115,11 +36118,11 @@ } lex->x509_issuer=(yyvsp[0].lex_str).str; } -#line 36119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36122 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2467: -#line 14165 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14168 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (lex->ssl_cipher) @@ -36129,11 +36132,11 @@ } lex->ssl_cipher=(yyvsp[0].lex_str).str; } -#line 36133 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2468: -#line 14178 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14181 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; size_t dummy; @@ -36148,11 +36151,11 @@ MYSQL_YYABORT; } } -#line 36152 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36155 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2469: -#line 14193 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14196 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->current_select->db = (yyvsp[-2].lex_str).str; @@ -36165,11 +36168,11 @@ MYSQL_YYABORT; } } -#line 36169 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36172 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2470: -#line 14206 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14209 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->current_select->db = NULL; @@ -36182,11 +36185,11 @@ MYSQL_YYABORT; } } -#line 36186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36189 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2471: -#line 14219 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14222 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[0].table),NULL, @@ -36195,47 +36198,47 @@ if (lex->grant == GLOBAL_ACLS) lex->grant = TABLE_ACLS & ~GRANT_ACL; } -#line 36199 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36202 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2472: -#line 14231 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14234 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT; } -#line 36208 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36211 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2473: -#line 14236 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14239 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT; } -#line 36217 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36220 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2474: -#line 14244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14247 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT; } -#line 36226 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36229 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2475: -#line 14249 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14252 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT; } -#line 36235 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2480: -#line 14260 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14263 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_user)=(yyvsp[-3].lex_user); (yyvsp[-3].lex_user)->password=(yyvsp[0].lex_str); if ((yyvsp[0].lex_str).length) @@ -36262,55 +36265,55 @@ } } } -#line 36266 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2481: -#line 14287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14290 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-4].lex_user); (yyvsp[-4].lex_user)->password= (yyvsp[0].lex_str); } -#line 36275 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36278 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2482: -#line 14292 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-3].lex_user); (yyvsp[-3].lex_user)->plugin= (yyvsp[0].lex_str); (yyvsp[-3].lex_user)->auth= empty_lex_str; } -#line 36285 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36288 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2483: -#line 14298 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-5].lex_user); (yyvsp[-5].lex_user)->plugin= (yyvsp[-2].lex_str); (yyvsp[-5].lex_user)->auth= (yyvsp[0].lex_str); } -#line 36295 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36298 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2484: -#line 14304 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14307 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[0].lex_user); (yyvsp[0].lex_user)->password= null_lex_str; } -#line 36301 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36304 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2485: -#line 14309 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->grant |= lex->which_columns; } -#line 36310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36313 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2489: -#line 14323 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14326 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { String *new_str = new (thd->mem_root) String((const char*) (yyvsp[0].lex_str).str,(yyvsp[0].lex_str).length,system_charset_info); if (new_str == NULL) @@ -36335,195 +36338,195 @@ lex->columns.push_back(col); } } -#line 36339 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2491: -#line 14352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14355 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_SPECIFIED; } -#line 36347 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36350 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2492: -#line 14356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14359 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_ANY; } -#line 36355 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36358 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2493: -#line 14360 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14363 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_X509; } -#line 36363 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36366 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2494: -#line 14364 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14367 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_NONE; } -#line 36371 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36374 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2495: -#line 14370 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14373 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36377 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36380 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2497: -#line 14375 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14378 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36383 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36386 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2498: -#line 14376 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14379 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= GRANT_ACL;} -#line 36389 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36392 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2499: -#line 14380 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14383 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36395 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36398 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2500: -#line 14381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14384 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36401 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36404 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2501: -#line 14385 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14388 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= GRANT_ACL;} -#line 36407 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36410 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2502: -#line 14387 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14390 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.questions=(yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR; } -#line 36417 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36420 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2503: -#line 14393 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.updates=(yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR; } -#line 36427 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36430 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2504: -#line 14399 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14402 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.conn_per_hour= (yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR; } -#line 36437 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36440 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2505: -#line 14405 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14408 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.user_conn= (yyvsp[0].num); lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS; } -#line 36447 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36450 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2506: -#line 14414 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14417 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_BEGIN; lex->start_transaction_opt= 0; } -#line 36457 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36460 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2507: -#line 14419 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36463 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36466 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2508: -#line 14423 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14426 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36469 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36472 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2509: -#line 14424 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14427 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36475 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36478 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2510: -#line 14429 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14432 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } -#line 36481 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36484 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2511: -#line 14430 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14433 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_NO; } -#line 36487 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36490 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2512: -#line 14431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14434 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_YES; } -#line 36493 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36496 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2513: -#line 14436 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14439 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } -#line 36499 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36502 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2514: -#line 14437 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14440 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_YES; } -#line 36505 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36508 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2515: -#line 14438 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14441 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_NO; } -#line 36511 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36514 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2516: -#line 14442 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14445 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36517 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36520 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2517: -#line 14443 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14446 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2518: -#line 14448 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14451 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_COMMIT; @@ -36532,11 +36535,11 @@ lex->tx_chain= (yyvsp[-1].m_yes_no_unk); lex->tx_release= (yyvsp[0].m_yes_no_unk); } -#line 36536 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36539 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2519: -#line 14460 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK; @@ -36545,56 +36548,56 @@ lex->tx_chain= (yyvsp[-1].m_yes_no_unk); lex->tx_release= (yyvsp[0].m_yes_no_unk); } -#line 36549 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36552 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2520: -#line 14470 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14473 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; lex->ident= (yyvsp[0].lex_str); } -#line 36559 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36562 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2521: -#line 14479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14482 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SAVEPOINT; lex->ident= (yyvsp[0].lex_str); } -#line 36569 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36572 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2522: -#line 14488 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14491 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_RELEASE_SAVEPOINT; lex->ident= (yyvsp[0].lex_str); } -#line 36579 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36582 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2523: -#line 14501 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14504 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36585 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36588 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2525: -#line 14507 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14510 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (add_select_to_union_list(Lex, (bool)(yyvsp[0].num), TRUE)) MYSQL_YYABORT; } -#line 36594 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36597 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2526: -#line 14512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14515 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Remove from the name resolution context stack the context of the @@ -36602,41 +36605,41 @@ */ Lex->pop_context(); } -#line 36606 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2527: -#line 14522 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14525 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 36612 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2528: -#line 14523 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14526 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 36618 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2529: -#line 14524 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14527 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 36624 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2530: -#line 14528 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14531 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.is_not_empty)= false; } -#line 36630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36633 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2531: -#line 14529 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14532 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.is_not_empty)= true; } -#line 36636 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2532: -#line 14533 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14536 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE); @@ -36651,80 +36654,80 @@ } thd->where= "global ORDER clause"; } -#line 36655 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36658 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2533: -#line 14548 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14551 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { thd->lex->current_select->no_table_names_allowed= 0; thd->where= ""; } -#line 36664 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36667 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2536: -#line 14560 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14563 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)=1; } -#line 36670 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36673 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2537: -#line 14561 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14564 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)=1; } -#line 36676 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2538: -#line 14562 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14565 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)=0; } -#line 36682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36685 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2539: -#line 14567 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14570 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); } -#line 36690 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2540: -#line 14571 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14574 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); } -#line 36698 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36701 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2542: -#line 14580 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (add_select_to_union_list(Lex, (bool)(yyvsp[0].num), FALSE)) MYSQL_YYABORT; } -#line 36707 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36710 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2543: -#line 14586 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14589 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->pop_context(); (yyval.select_lex)= (yyvsp[-5].select_lex); } -#line 36716 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36719 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2544: -#line 14595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14598 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 36724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36727 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2545: -#line 14601 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14604 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (!lex->expr_allows_subselect || @@ -36743,11 +36746,11 @@ if (mysql_new_select(Lex, 1)) MYSQL_YYABORT; } -#line 36747 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36750 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2546: -#line 14622 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14625 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; @@ -36772,17 +36775,17 @@ temp->select_n_having_items; } } -#line 36776 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36779 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2551: -#line 14659 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14662 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->options|= SELECT_STRAIGHT_JOIN; } -#line 36782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2552: -#line 14661 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14664 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (check_simple_select()) MYSQL_YYABORT; @@ -36790,73 +36793,73 @@ YYPS->m_mdl_type= MDL_SHARED_READ; Select->options|= SELECT_HIGH_PRIORITY; } -#line 36794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36797 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2553: -#line 14668 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14671 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->options|= SELECT_DISTINCT; } -#line 36800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36803 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2554: -#line 14669 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14672 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->options|= SELECT_SMALL_RESULT; } -#line 36806 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2555: -#line 14670 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14673 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->options|= SELECT_BIG_RESULT; } -#line 36812 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36815 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2556: -#line 14672 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (check_simple_select()) MYSQL_YYABORT; Select->options|= OPTION_BUFFER_RESULT; } -#line 36822 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36825 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2557: -#line 14678 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14681 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (check_simple_select()) MYSQL_YYABORT; Select->options|= OPTION_FOUND_ROWS; } -#line 36832 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36835 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2558: -#line 14683 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14686 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->options|= SELECT_ALL; } -#line 36838 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36841 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2559: -#line 14694 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14697 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36844 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36847 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2560: -#line 14696 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14699 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36850 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36853 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2561: -#line 14698 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14701 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36856 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36859 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2575: -#line 14731 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14734 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* We have to distinguish missing DEFINER-clause from case when @@ -36867,79 +36870,79 @@ */ thd->lex->definer= 0; } -#line 36871 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36874 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2576: -#line 14745 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14748 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { thd->lex->definer= get_current_user(thd, (yyvsp[0].lex_user)); } -#line 36879 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2577: -#line 14758 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14761 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36885 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36888 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2578: -#line 14760 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14763 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36894 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2579: -#line 14762 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14765 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36897 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36900 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2580: -#line 14767 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14770 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; } -#line 36903 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36906 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2581: -#line 14772 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14775 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_algorithm= DTYPE_ALGORITHM_UNDEFINED; } -#line 36909 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36912 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2582: -#line 14774 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14777 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; } -#line 36915 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36918 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2583: -#line 14776 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14779 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; } -#line 36921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36924 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2584: -#line 14781 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14784 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_suid= VIEW_SUID_DEFAULT; } -#line 36927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36930 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2585: -#line 14783 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14786 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_suid= VIEW_SUID_DEFINER; } -#line 36933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36936 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2586: -#line 14785 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14788 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_suid= VIEW_SUID_INVOKER; } -#line 36939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36942 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2587: -#line 14790 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14793 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->sql_command= SQLCOM_CREATE_VIEW; @@ -36951,35 +36954,35 @@ MYSQL_YYABORT; lex->query_tables->open_strategy= TABLE_LIST::OPEN_STUB; } -#line 36955 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36958 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2589: -#line 14806 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14809 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 36961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2591: -#line 14812 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14815 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->view_list.push_back((LEX_STRING*) sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING))); } -#line 36970 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36973 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2592: -#line 14817 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14820 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->view_list.push_back((LEX_STRING*) sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING))); } -#line 36979 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36982 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2593: -#line 14824 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14827 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->parsing_options.allows_variable= FALSE; @@ -36988,11 +36991,11 @@ lex->parsing_options.allows_derived= FALSE; lex->create_view_select.str= (char *) YYLIP->get_cpp_ptr(); } -#line 36992 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36995 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2594: -#line 14833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14836 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; uint len= YYLIP->get_cpp_ptr() - lex->create_view_select.str; @@ -37005,51 +37008,51 @@ lex->parsing_options.allows_select_procedure= TRUE; lex->parsing_options.allows_derived= TRUE; } -#line 37009 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2597: -#line 14854 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_check= VIEW_CHECK_NONE; } -#line 37015 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2598: -#line 14856 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_check= VIEW_CHECK_CASCADED; } -#line 37021 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37024 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2599: -#line 14858 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14861 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_check= VIEW_CHECK_CASCADED; } -#line 37027 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2600: -#line 14860 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14863 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_view_check= VIEW_CHECK_LOCAL; } -#line 37033 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2601: -#line 14877 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14880 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $8 */ Lex->raw_trg_on_table_name_begin= YYLIP->get_tok_start(); } -#line 37041 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37044 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2602: -#line 14883 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14886 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $12 */ Lex->raw_trg_on_table_name_end= YYLIP->get_tok_start(); } -#line 37049 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2603: -#line 14888 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14891 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $15 */ LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -37078,11 +37081,11 @@ lex->sphead->m_chistics= &lex->sp_chistics; lex->sphead->set_body_start(thd, lip->get_cpp_ptr()); } -#line 37082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37085 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2604: -#line 14917 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14920 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $17 */ LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -37106,11 +37109,11 @@ MDL_SHARED_NO_WRITE)) MYSQL_YYABORT; } -#line 37110 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37113 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2605: -#line 14951 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14954 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; if (is_native_function(thd, & (yyvsp[-4].lex_str))) @@ -37126,11 +37129,11 @@ lex->udf.returns=(Item_result) (yyvsp[-2].num); lex->udf.dl=(yyvsp[0].lex_str).str; } -#line 37130 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37133 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2606: -#line 14968 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14971 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; if (is_native_function(thd, & (yyvsp[-4].lex_str))) @@ -37146,11 +37149,11 @@ lex->udf.returns=(Item_result) (yyvsp[-2].num); lex->udf.dl=(yyvsp[0].lex_str).str; } -#line 37150 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37153 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2607: -#line 14990 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14993 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $5 */ LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -37180,19 +37183,19 @@ tmp_param_begin++; lex->sphead->m_param_begin= tmp_param_begin; } -#line 37184 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37187 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2608: -#line 15021 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $8 */ Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); } -#line 37192 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37195 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2609: -#line 15025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $10 */ LEX *lex= Lex; lex->charset= NULL; @@ -37201,11 +37204,11 @@ lex->type= 0; lex->vcol_info= 0; } -#line 37205 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37208 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2610: -#line 15034 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15037 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $12 */ LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -37228,11 +37231,11 @@ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); } -#line 37232 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37235 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2611: -#line 15057 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $14 */ LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -37240,11 +37243,11 @@ lex->sphead->m_chistics= &lex->sp_chistics; lex->sphead->set_body_start(thd, lip->get_cpp_tok_start()); } -#line 37244 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2612: -#line 15065 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15068 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -37296,11 +37299,11 @@ } sp->restore_thd_mem_root(thd); } -#line 37300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37303 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2613: -#line 15120 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp; @@ -37324,11 +37327,11 @@ lex->sphead= sp; } -#line 37328 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2614: -#line 15144 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15147 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { const char* tmp_param_begin; @@ -37336,33 +37339,33 @@ tmp_param_begin++; Lex->sphead->m_param_begin= tmp_param_begin; } -#line 37340 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37343 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2615: -#line 15153 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15156 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); } -#line 37351 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2616: -#line 15160 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15163 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->sphead->m_chistics= &lex->sp_chistics; lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start()); } -#line 37362 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37365 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2617: -#line 15167 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15170 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -37371,209 +37374,209 @@ lex->sql_command= SQLCOM_CREATE_PROCEDURE; sp->restore_thd_mem_root(thd); } -#line 37375 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2618: -#line 15181 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15184 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_START; } -#line 37383 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37386 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2619: -#line 15185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_END; } -#line 37391 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2620: -#line 15189 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15192 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_PREPARE; } -#line 37399 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2621: -#line 15193 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15196 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_COMMIT; } -#line 37407 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37410 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2622: -#line 15197 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15200 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_ROLLBACK; } -#line 37415 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37418 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2623: -#line 15201 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15204 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_RECOVER; } -#line 37423 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2624: -#line 15208 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15211 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[0].string)->length() <= MAXGTRIDSIZE); if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set(1L, (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length(), 0, 0); } -#line 37434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37437 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2625: -#line 15215 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15218 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-2].string)->length() <= MAXGTRIDSIZE && (yyvsp[0].string)->length() <= MAXBQUALSIZE); if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set(1L, (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length(), (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length()); } -#line 37445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37448 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2626: -#line 15222 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-4].string)->length() <= MAXGTRIDSIZE && (yyvsp[-2].string)->length() <= MAXBQUALSIZE); if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set((yyvsp[0].ulong_num), (yyvsp[-4].string)->ptr(), (yyvsp[-4].string)->length(), (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length()); } -#line 37456 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37459 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2627: -#line 15231 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15234 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 37462 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37465 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2628: -#line 15232 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15235 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 37468 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37471 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2629: -#line 15236 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15239 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_NONE; } -#line 37474 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2630: -#line 15237 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15240 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_JOIN; } -#line 37480 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2631: -#line 15238 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_RESUME; } -#line 37486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37489 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2632: -#line 15242 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_NONE; } -#line 37492 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37495 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2633: -#line 15243 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15246 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_ONE_PHASE; } -#line 37498 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2634: -#line 15248 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15251 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_NONE; } -#line 37504 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37507 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2635: -#line 15250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15253 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_SUSPEND; } -#line 37510 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37513 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2637: -#line 15255 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15258 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 37516 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37519 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2638: -#line 15256 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15259 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_FOR_MIGRATE; } -#line 37522 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37525 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2639: -#line 15261 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15264 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_INSTALL_PLUGIN; lex->comment= (yyvsp[-2].lex_str); lex->ident= (yyvsp[0].lex_str); } -#line 37533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37536 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2640: -#line 15268 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15271 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_INSTALL_PLUGIN; lex->comment= null_lex_str; lex->ident= (yyvsp[0].lex_str); } -#line 37544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37547 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2641: -#line 15278 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15281 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_UNINSTALL_PLUGIN; lex->comment= (yyvsp[0].lex_str); } -#line 37554 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37557 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2642: -#line 15284 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_UNINSTALL_PLUGIN; lex->comment= null_lex_str; lex->ident= (yyvsp[0].lex_str); } -#line 37565 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37568 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2643: -#line 15295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 15298 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { YYERROR; } -#line 37573 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; -#line 37577 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37580 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires diff -Nru mariadb-5.5-5.5.63/sql/sql_yacc.yy mariadb-5.5-5.5.64/sql/sql_yacc.yy --- mariadb-5.5-5.5.63/sql/sql_yacc.yy 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/sql_yacc.yy 2019-04-26 12:37:02.000000000 +0000 @@ -7676,14 +7676,14 @@ | FOR_SYM UPDATE_SYM { LEX *lex=Lex; - lex->current_select->set_lock_for_tables(TL_WRITE); + lex->current_select->set_lock_for_tables(TL_WRITE, false); lex->safe_to_cache_query=0; } | LOCK_SYM IN_SYM SHARE_SYM MODE_SYM { LEX *lex=Lex; lex->current_select-> - set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS); + set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS, false); lex->safe_to_cache_query=0; } ; @@ -10966,7 +10966,7 @@ insert_lock_option opt_ignore insert2 { - Select->set_lock_for_tables($3); + Select->set_lock_for_tables($3, true); Lex->current_select= &Lex->select_lex; } insert_field_spec opt_insert_update @@ -10983,7 +10983,7 @@ } replace_lock_option insert2 { - Select->set_lock_for_tables($3); + Select->set_lock_for_tables($3, true); Lex->current_select= &Lex->select_lex; } insert_field_spec @@ -11159,14 +11159,14 @@ opt_low_priority opt_ignore join_table_list SET update_list { - LEX *lex= Lex; - if (lex->select_lex.table_list.elements > 1) - lex->sql_command= SQLCOM_UPDATE_MULTI; - else if (lex->select_lex.get_table_list()->derived) + SELECT_LEX *slex= &Lex->select_lex; + if (slex->table_list.elements > 1) + Lex->sql_command= SQLCOM_UPDATE_MULTI; + else if (slex->get_table_list()->derived) { /* it is single table update and it is update of derived table */ my_error(ER_NON_UPDATABLE_TABLE, MYF(0), - lex->select_lex.get_table_list()->alias, "UPDATE"); + slex->get_table_list()->alias, "UPDATE"); MYSQL_YYABORT; } /* @@ -11174,7 +11174,7 @@ be too pessimistic. We will decrease lock level if possible in mysql_multi_update(). */ - Select->set_lock_for_tables($3); + slex->set_lock_for_tables($3, slex->table_list.elements == 1); } where_clause opt_order_clause delete_limit_clause {} ; @@ -13834,13 +13834,16 @@ table_ident opt_table_alias lock_option { thr_lock_type lock_type= (thr_lock_type) $3; - bool lock_for_write= (lock_type >= TL_WRITE_ALLOW_WRITE); - if (!Select->add_table_to_list(thd, $1, $2, 0, lock_type, - (lock_for_write ? - lock_type == TL_WRITE_CONCURRENT_INSERT ? - MDL_SHARED_WRITE : - MDL_SHARED_NO_READ_WRITE : - MDL_SHARED_READ))) + bool lock_for_write= lock_type >= TL_WRITE_ALLOW_WRITE; + ulong table_options= lock_for_write ? TL_OPTION_UPDATING : 0; + enum_mdl_type mdl_type= !lock_for_write + ? MDL_SHARED_READ + : lock_type == TL_WRITE_CONCURRENT_INSERT + ? MDL_SHARED_WRITE + : MDL_SHARED_NO_READ_WRITE; + + if (!Select->add_table_to_list(thd, $1, $2, table_options, + lock_type, mdl_type)) MYSQL_YYABORT; } ; diff -Nru mariadb-5.5-5.5.63/sql/table.cc mariadb-5.5-5.5.64/sql/table.cc --- mariadb-5.5-5.5.63/sql/table.cc 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/sql/table.cc 2019-04-26 12:37:02.000000000 +0000 @@ -5373,7 +5373,8 @@ return natural_join_it.column_ref()->table_name(); DBUG_ASSERT(!strcmp(table_ref->table_name, - table_ref->table->s->table_name.str)); + table_ref->table->s->table_name.str) || + table_ref->schema_table); return table_ref->table_name; } diff -Nru mariadb-5.5-5.5.63/storage/innobase/dict/dict0dict.c mariadb-5.5-5.5.64/storage/innobase/dict/dict0dict.c --- mariadb-5.5-5.5.63/storage/innobase/dict/dict0dict.c 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/innobase/dict/dict0dict.c 2019-04-26 12:37:02.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -3787,6 +3788,9 @@ } goto loop; + } else { + strncpy(create_name, name, sizeof create_name); + create_name[(sizeof create_name) - 1] = '\0'; } if (table == NULL) { @@ -3811,11 +3815,20 @@ goto loop; } - ptr = dict_accept(cs, ptr, "TABLE", &success); - - if (!success) { - - goto loop; + orig = ptr; + for (;;) { + ptr = dict_accept(cs, ptr, "TABLE", &success); + if (success) { + break; + } + ptr = dict_accept(cs, ptr, "ONLINE", &success); + if (success) { + continue; + } + ptr = dict_accept(cs, ptr, "IGNORE", &success); + if (!success) { + goto loop; + } } /* We are doing an ALTER TABLE: scan the table name we are altering */ diff -Nru mariadb-5.5-5.5.63/storage/innobase/include/trx0sys.ic mariadb-5.5-5.5.64/storage/innobase/include/trx0sys.ic --- mariadb-5.5-5.5.63/storage/innobase/include/trx0sys.ic 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/innobase/include/trx0sys.ic 2019-04-26 12:37:02.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2011, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -353,10 +354,13 @@ } trx = trx_get_on_id(trx_id); - if (trx && (trx->conc_state == TRX_ACTIVE - || trx->conc_state == TRX_PREPARED)) { - - return(TRUE); + if (trx) { + switch (trx->conc_state) { + case TRX_ACTIVE: + case TRX_PREPARED: + case TRX_PREPARED_RECOVERED: + return(TRUE); + } } return(FALSE); diff -Nru mariadb-5.5-5.5.63/storage/innobase/include/trx0trx.h mariadb-5.5-5.5.64/storage/innobase/include/trx0trx.h --- mariadb-5.5-5.5.63/storage/innobase/include/trx0trx.h 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/innobase/include/trx0trx.h 2019-04-26 12:37:02.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2010, Innobase Oy. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -741,6 +742,8 @@ #define TRX_ACTIVE 1 #define TRX_COMMITTED_IN_MEMORY 2 #define TRX_PREPARED 3 /* Support for 2PC/XA */ +#define TRX_PREPARED_RECOVERED 4 /* XA PREPARE transaction that + was returned to ha_recover() */ /* Transaction execution states when trx->conc_state == TRX_ACTIVE */ #define TRX_QUE_RUNNING 0 /* transaction is running */ diff -Nru mariadb-5.5-5.5.63/storage/innobase/lock/lock0lock.c mariadb-5.5-5.5.64/storage/innobase/lock/lock0lock.c --- mariadb-5.5-5.5.63/storage/innobase/lock/lock0lock.c 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/innobase/lock/lock0lock.c 2019-04-26 12:37:02.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -4782,6 +4783,22 @@ } #ifdef UNIV_DEBUG +/** Validate the state of a transaction that holds locks */ +static void lock_trx_state_validate(const trx_t* trx) +{ + switch (trx->conc_state) { + case TRX_NOT_STARTED: + break; + case TRX_ACTIVE: + case TRX_PREPARED: + case TRX_PREPARED_RECOVERED: + case TRX_COMMITTED_IN_MEMORY: + return; + + } + ut_ad(!"wrong state"); +} + /*********************************************************************//** Validates the lock queue on a table. @return TRUE if ok */ @@ -4798,9 +4815,7 @@ lock = UT_LIST_GET_FIRST(table->locks); while (lock) { - ut_a(((lock->trx)->conc_state == TRX_ACTIVE) - || ((lock->trx)->conc_state == TRX_PREPARED) - || ((lock->trx)->conc_state == TRX_COMMITTED_IN_MEMORY)); + ut_d(lock_trx_state_validate(lock->trx)); if (!lock_get_wait(lock)) { @@ -4848,15 +4863,7 @@ lock = lock_rec_get_first(block, heap_no); while (lock) { - switch(lock->trx->conc_state) { - case TRX_ACTIVE: - case TRX_PREPARED: - case TRX_COMMITTED_IN_MEMORY: - break; - default: - ut_error; - } - + ut_d(lock_trx_state_validate(lock->trx)); ut_a(trx_in_trx_list(lock->trx)); if (lock_get_wait(lock)) { @@ -4935,9 +4942,7 @@ lock = lock_rec_get_first(block, heap_no); while (lock) { - ut_a(lock->trx->conc_state == TRX_ACTIVE - || lock->trx->conc_state == TRX_PREPARED - || lock->trx->conc_state == TRX_COMMITTED_IN_MEMORY); + ut_d(lock_trx_state_validate(lock->trx)); ut_a(trx_in_trx_list(lock->trx)); if (index) { @@ -5014,10 +5019,8 @@ } } + ut_d(lock_trx_state_validate(lock->trx)); ut_a(trx_in_trx_list(lock->trx)); - ut_a(lock->trx->conc_state == TRX_ACTIVE - || lock->trx->conc_state == TRX_PREPARED - || lock->trx->conc_state == TRX_COMMITTED_IN_MEMORY); # ifdef UNIV_SYNC_DEBUG /* Only validate the record queues when this thread is not diff -Nru mariadb-5.5-5.5.63/storage/innobase/mysql-test/storage_engine/vcol.rdiff mariadb-5.5-5.5.64/storage/innobase/mysql-test/storage_engine/vcol.rdiff --- mariadb-5.5-5.5.63/storage/innobase/mysql-test/storage_engine/vcol.rdiff 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/innobase/mysql-test/storage_engine/vcol.rdiff 2019-04-26 12:37:02.000000000 +0000 @@ -10,8 +10,8 @@ -INSERT INTO t1 (a) VALUES (1),(2); -INSERT INTO t1 (a,b) VALUES (3,3),(4,4); -Warnings: --Warning 1906 The value specified for computed column 'b' in table 't1' ignored --Warning 1906 The value specified for computed column 'b' in table 't1' ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored -SELECT a,b FROM t1; -a b -1 2 @@ -27,8 +27,8 @@ -INSERT INTO t1 (a) VALUES (1),(2); -INSERT INTO t1 (a,b) VALUES (3,3),(4,4); -Warnings: --Warning 1906 The value specified for computed column 'b' in table 't1' ignored --Warning 1906 The value specified for computed column 'b' in table 't1' ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored -SELECT a,b FROM t1; -a b -1 2 @@ -44,8 +44,8 @@ -INSERT INTO t1 (a) VALUES (1),(2); -INSERT INTO t1 (a,b) VALUES (3,3),(4,4); -Warnings: --Warning 1906 The value specified for computed column 'b' in table 't1' ignored --Warning 1906 The value specified for computed column 'b' in table 't1' ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored -SELECT a,b FROM t1; -a b -1 2 @@ -61,8 +61,8 @@ -INSERT INTO t1 (a) VALUES (1),(2); -INSERT INTO t1 (a,b) VALUES (3,3),(4,4); -Warnings: --Warning 1906 The value specified for computed column 'b' in table 't1' ignored --Warning 1906 The value specified for computed column 'b' in table 't1' ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored -SELECT a,b FROM t1; -a b -1 2 diff -Nru mariadb-5.5-5.5.63/storage/innobase/read/read0read.c mariadb-5.5-5.5.64/storage/innobase/read/read0read.c --- mariadb-5.5-5.5.63/storage/innobase/read/read0read.c 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/innobase/read/read0read.c 2019-04-26 12:37:02.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1997, 2009, Innobase Oy. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -272,15 +273,19 @@ view->low_limit_id = view->low_limit_no; n = 0; - trx = UT_LIST_GET_FIRST(trx_sys->trx_list); /* No active transaction should be visible, except cr_trx */ - while (trx) { - if (trx->id != cr_trx_id - && (trx->conc_state == TRX_ACTIVE - || trx->conc_state == TRX_PREPARED)) { + for (trx = UT_LIST_GET_FIRST(trx_sys->trx_list); trx; + trx = UT_LIST_GET_NEXT(trx_list, trx)) { + if (trx->id == cr_trx_id) { + continue; + } + switch (trx->conc_state) { + case TRX_ACTIVE: + case TRX_PREPARED: + case TRX_PREPARED_RECOVERED: read_view_set_nth_trx_id(view, n, trx->id); n++; @@ -296,8 +301,6 @@ view->low_limit_no = trx->no; } } - - trx = UT_LIST_GET_NEXT(trx_list, trx); } view->n_trx_ids = n; @@ -437,18 +440,15 @@ view->low_limit_id = view->low_limit_no; n = 0; - trx = UT_LIST_GET_FIRST(trx_sys->trx_list); /* No active transaction should be visible */ - - while (trx) { - - if (trx->conc_state == TRX_ACTIVE - || trx->conc_state == TRX_PREPARED) { - - read_view_set_nth_trx_id(view, n, trx->id); - - n++; + for (trx = UT_LIST_GET_FIRST(trx_sys->trx_list); trx; + trx = UT_LIST_GET_NEXT(trx_list, trx)) { + switch (trx->conc_state) { + case TRX_ACTIVE: + case TRX_PREPARED: + case TRX_PREPARED_RECOVERED: + read_view_set_nth_trx_id(view, n++, trx->id); /* NOTE that a transaction whose trx number is < trx_sys->max_trx_id can still be active, if it is @@ -461,8 +461,6 @@ view->low_limit_no = trx->no; } } - - trx = UT_LIST_GET_NEXT(trx_list, trx); } view->n_trx_ids = n; diff -Nru mariadb-5.5-5.5.63/storage/innobase/row/row0mysql.c mariadb-5.5-5.5.64/storage/innobase/row/row0mysql.c --- mariadb-5.5-5.5.63/storage/innobase/row/row0mysql.c 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/innobase/row/row0mysql.c 2019-04-26 12:37:02.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2000, 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -572,8 +573,7 @@ switch (err) { case DB_LOCK_WAIT_TIMEOUT: if (row_rollback_on_timeout) { - trx_general_rollback_for_mysql(trx, NULL); - break; + goto rollback; } /* fall through */ case DB_DUPLICATE_KEY: @@ -586,6 +586,7 @@ case DB_TOO_MANY_CONCURRENT_TRXS: case DB_OUT_OF_FILE_SPACE: case DB_INTERRUPTED: + rollback_to_savept: if (savept) { /* Roll back the latest, possibly incomplete insertion or update */ @@ -609,6 +610,7 @@ case DB_DEADLOCK: case DB_LOCK_TABLE_FULL: + rollback: /* Roll back the whole transaction; this resolution was added to version 3.23.43 */ @@ -638,14 +640,14 @@ "InnoDB: you dump the tables, look at\n" "InnoDB: " REFMAN "forcing-innodb-recovery.html" " for help.\n", stderr); - break; + goto rollback_to_savept; case DB_FOREIGN_EXCEED_MAX_CASCADE: fprintf(stderr, "InnoDB: Cannot delete/update rows with" " cascading foreign key constraints that exceed max" " depth of %lu\n" "Please drop excessive foreign constraints" " and try again\n", (ulong) DICT_FK_MAX_RECURSIVE_LOAD); - break; + goto rollback_to_savept; default: fprintf(stderr, "InnoDB: unknown error code %lu\n", (ulong) err); diff -Nru mariadb-5.5-5.5.63/storage/innobase/trx/trx0roll.c mariadb-5.5-5.5.64/storage/innobase/trx/trx0roll.c --- mariadb-5.5-5.5.63/storage/innobase/trx/trx0roll.c 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/innobase/trx/trx0roll.c 2019-04-26 12:37:02.000000000 +0000 @@ -2,6 +2,7 @@ Copyright (c) 1996, 2009, Innobase Oy. All Rights Reserved. Copyright (c) 2017, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -564,6 +565,7 @@ switch (trx->conc_state) { case TRX_NOT_STARTED: case TRX_PREPARED: + case TRX_PREPARED_RECOVERED: continue; case TRX_COMMITTED_IN_MEMORY: diff -Nru mariadb-5.5-5.5.63/storage/innobase/trx/trx0sys.c mariadb-5.5-5.5.64/storage/innobase/trx/trx0sys.c --- mariadb-5.5-5.5.63/storage/innobase/trx/trx0sys.c 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/innobase/trx/trx0sys.c 2019-04-26 12:37:02.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -1031,7 +1032,7 @@ trx = UT_LIST_GET_FIRST(trx_sys->trx_list); for (;;) { - + ut_ad(trx->conc_state != TRX_PREPARED_RECOVERED); if (trx->conc_state != TRX_PREPARED) { rows_to_undo += trx->undo_no; } diff -Nru mariadb-5.5-5.5.63/storage/innobase/trx/trx0trx.c mariadb-5.5-5.5.64/storage/innobase/trx/trx0trx.c --- mariadb-5.5-5.5.63/storage/innobase/trx/trx0trx.c 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/innobase/trx/trx0trx.c 2019-04-26 12:37:02.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2011, Innobase Oy. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -348,7 +349,8 @@ trx_t* trx) /*!< in, own: trx object */ { ut_ad(mutex_own(&kernel_mutex)); - ut_a(trx->conc_state == TRX_PREPARED); + ut_a(trx->conc_state == TRX_PREPARED + || trx->conc_state == TRX_PREPARED_RECOVERED); ut_a(trx->magic_n == TRX_MAGIC_N); /* Prepared transactions are sort of active; they allow @@ -932,10 +934,11 @@ lsn = 0; } - ut_ad(trx->conc_state == TRX_ACTIVE || trx->conc_state == TRX_PREPARED); + ut_ad(trx->conc_state == TRX_ACTIVE || trx->conc_state == TRX_PREPARED + || trx->conc_state == TRX_PREPARED_RECOVERED); ut_ad(mutex_own(&kernel_mutex)); - if (UNIV_UNLIKELY(trx->conc_state == TRX_PREPARED)) { + if (UNIV_UNLIKELY(trx->conc_state != TRX_ACTIVE)) { ut_a(trx_n_prepared > 0); trx_n_prepared--; } @@ -2072,6 +2075,7 @@ while (trx) { if (trx->conc_state == TRX_PREPARED) { + trx->conc_state = TRX_PREPARED_RECOVERED; xid_list[count] = trx->xid; if (count == 0) { @@ -2096,13 +2100,25 @@ count++; if (count == len) { - break; + goto partial; } } trx = UT_LIST_GET_NEXT(trx_list, trx); } + /* After returning the full list, reset the state, because + init_server_components() wants to recover the collection of + transactions twice, by first calling tc_log->open() and then + ha_recover() directly. */ + for (trx = UT_LIST_GET_FIRST(trx_sys->trx_list); trx; + trx = UT_LIST_GET_NEXT(trx_list, trx)) { + if (trx->conc_state == TRX_PREPARED_RECOVERED) { + trx->conc_state = TRX_PREPARED; + } + } + +partial: mutex_exit(&kernel_mutex); if (count > 0){ @@ -2144,7 +2160,8 @@ the same */ if (trx->is_recovered - && trx->conc_state == TRX_PREPARED + && (trx->conc_state == TRX_PREPARED + || trx->conc_state == TRX_PREPARED_RECOVERED) && xid->gtrid_length == trx->xid.gtrid_length && xid->bqual_length == trx->xid.bqual_length && memcmp(xid->data, trx->xid.data, diff -Nru mariadb-5.5-5.5.63/storage/myisammrg/mysql-test/storage_engine/vcol.rdiff mariadb-5.5-5.5.64/storage/myisammrg/mysql-test/storage_engine/vcol.rdiff --- mariadb-5.5-5.5.63/storage/myisammrg/mysql-test/storage_engine/vcol.rdiff 2019-01-27 18:02:23.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/myisammrg/mysql-test/storage_engine/vcol.rdiff 2019-04-26 12:37:02.000000000 +0000 @@ -10,8 +10,8 @@ -INSERT INTO t1 (a) VALUES (1),(2); -INSERT INTO t1 (a,b) VALUES (3,3),(4,4); -Warnings: --Warning 1906 The value specified for computed column 'b' in table 't1' ignored --Warning 1906 The value specified for computed column 'b' in table 't1' ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored -SELECT a,b FROM t1; -a b -1 2 @@ -27,8 +27,8 @@ -INSERT INTO t1 (a) VALUES (1),(2); -INSERT INTO t1 (a,b) VALUES (3,3),(4,4); -Warnings: --Warning 1906 The value specified for computed column 'b' in table 't1' ignored --Warning 1906 The value specified for computed column 'b' in table 't1' ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored -SELECT a,b FROM t1; -a b -1 2 @@ -44,8 +44,8 @@ -INSERT INTO t1 (a) VALUES (1),(2); -INSERT INTO t1 (a,b) VALUES (3,3),(4,4); -Warnings: --Warning 1906 The value specified for computed column 'b' in table 't1' ignored --Warning 1906 The value specified for computed column 'b' in table 't1' ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored -SELECT a,b FROM t1; -a b -1 2 @@ -61,8 +61,8 @@ -INSERT INTO t1 (a) VALUES (1),(2); -INSERT INTO t1 (a,b) VALUES (3,3),(4,4); -Warnings: --Warning 1906 The value specified for computed column 'b' in table 't1' ignored --Warning 1906 The value specified for computed column 'b' in table 't1' ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored +-Warning 1906 The value specified for computed column 'b' in table 't1' has been ignored -SELECT a,b FROM t1; -a b -1 2 diff -Nru mariadb-5.5-5.5.63/storage/xtradb/dict/dict0dict.c mariadb-5.5-5.5.64/storage/xtradb/dict/dict0dict.c --- mariadb-5.5-5.5.63/storage/xtradb/dict/dict0dict.c 2019-01-27 18:02:25.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/xtradb/dict/dict0dict.c 2019-04-26 12:37:03.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -3921,6 +3922,9 @@ } goto loop; + } else { + strncpy(create_name, name, sizeof create_name); + create_name[(sizeof create_name) - 1] = '\0'; } if (table == NULL) { @@ -3945,11 +3949,20 @@ goto loop; } - ptr = dict_accept(cs, ptr, "TABLE", &success); - - if (!success) { - - goto loop; + orig = ptr; + for (;;) { + ptr = dict_accept(cs, ptr, "TABLE", &success); + if (success) { + break; + } + ptr = dict_accept(cs, ptr, "ONLINE", &success); + if (success) { + continue; + } + ptr = dict_accept(cs, ptr, "IGNORE", &success); + if (!success) { + goto loop; + } } /* We are doing an ALTER TABLE: scan the table name we are altering */ diff -Nru mariadb-5.5-5.5.63/storage/xtradb/include/trx0trx.h mariadb-5.5-5.5.64/storage/xtradb/include/trx0trx.h --- mariadb-5.5-5.5.63/storage/xtradb/include/trx0trx.h 2019-01-27 18:02:26.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/xtradb/include/trx0trx.h 2019-04-26 12:37:03.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2010, Innobase Oy. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -802,6 +803,8 @@ #define TRX_ACTIVE 1 #define TRX_COMMITTED_IN_MEMORY 2 #define TRX_PREPARED 3 /* Support for 2PC/XA */ +#define TRX_PREPARED_RECOVERED 4 /* XA PREPARE transaction that + was returned to ha_recover() */ /* Transaction execution states when trx->conc_state == TRX_ACTIVE */ #define TRX_QUE_RUNNING 0 /* transaction is running */ diff -Nru mariadb-5.5-5.5.63/storage/xtradb/lock/lock0lock.c mariadb-5.5-5.5.64/storage/xtradb/lock/lock0lock.c --- mariadb-5.5-5.5.63/storage/xtradb/lock/lock0lock.c 2019-01-27 18:02:26.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/xtradb/lock/lock0lock.c 2019-04-26 12:37:03.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -4811,6 +4812,22 @@ } #ifdef UNIV_DEBUG +/** Validate the state of a transaction that holds locks */ +static void lock_trx_state_validate(const trx_t* trx) +{ + switch (trx->state) { + case TRX_NOT_STARTED: + break; + case TRX_ACTIVE: + case TRX_PREPARED: + case TRX_PREPARED_RECOVERED: + case TRX_COMMITTED_IN_MEMORY: + return; + + } + ut_ad(!"wrong state"); +} + /*********************************************************************//** Validates the lock queue on a table. @return TRUE if ok */ @@ -4827,9 +4844,7 @@ lock = UT_LIST_GET_FIRST(table->locks); while (lock) { - ut_a(((lock->trx)->state == TRX_ACTIVE) - || ((lock->trx)->state == TRX_PREPARED) - || ((lock->trx)->state == TRX_COMMITTED_IN_MEMORY)); + ut_d(lock_trx_state_validate(lock->trx)); if (!lock_get_wait(lock)) { @@ -4877,15 +4892,7 @@ lock = lock_rec_get_first(block, heap_no); while (lock) { - switch(lock->trx->state) { - case TRX_ACTIVE: - case TRX_PREPARED: - case TRX_COMMITTED_IN_MEMORY: - break; - default: - ut_error; - } - + ut_d(lock_trx_state_validate(lock->trx)); ut_a(trx_in_trx_list(lock->trx)); if (lock_get_wait(lock)) { @@ -4964,9 +4971,7 @@ lock = lock_rec_get_first(block, heap_no); while (lock) { - ut_a(lock->trx->state == TRX_ACTIVE - || lock->trx->state == TRX_PREPARED - || lock->trx->state == TRX_COMMITTED_IN_MEMORY); + ut_d(lock_trx_state_validate(lock->trx)); ut_a(trx_in_trx_list(lock->trx)); if (index) { @@ -5043,10 +5048,8 @@ } } + ut_d(lock_trx_state_validate(lock->trx)); ut_a(trx_in_trx_list(lock->trx)); - ut_a(lock->trx->state == TRX_ACTIVE - || lock->trx->state == TRX_PREPARED - || lock->trx->state == TRX_COMMITTED_IN_MEMORY); # ifdef UNIV_SYNC_DEBUG /* Only validate the record queues when this thread is not diff -Nru mariadb-5.5-5.5.63/storage/xtradb/row/row0mysql.c mariadb-5.5-5.5.64/storage/xtradb/row/row0mysql.c --- mariadb-5.5-5.5.63/storage/xtradb/row/row0mysql.c 2019-01-27 18:02:26.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/xtradb/row/row0mysql.c 2019-04-26 12:37:03.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2000, 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -574,8 +575,7 @@ switch (err) { case DB_LOCK_WAIT_TIMEOUT: if (row_rollback_on_timeout) { - trx_general_rollback_for_mysql(trx, NULL); - break; + goto rollback; } /* fall through */ case DB_DUPLICATE_KEY: @@ -588,6 +588,7 @@ case DB_TOO_MANY_CONCURRENT_TRXS: case DB_OUT_OF_FILE_SPACE: case DB_INTERRUPTED: + rollback_to_savept: if (savept) { /* Roll back the latest, possibly incomplete insertion or update */ @@ -611,6 +612,7 @@ case DB_DEADLOCK: case DB_LOCK_TABLE_FULL: + rollback: /* Roll back the whole transaction; this resolution was added to version 3.23.43 */ @@ -640,14 +642,14 @@ "InnoDB: you dump the tables, look at\n" "InnoDB: " REFMAN "forcing-innodb-recovery.html" " for help.\n", stderr); - break; + goto rollback_to_savept; case DB_FOREIGN_EXCEED_MAX_CASCADE: fprintf(stderr, "InnoDB: Cannot delete/update rows with" " cascading foreign key constraints that exceed max" " depth of %lu\n" "Please drop excessive foreign constraints" " and try again\n", (ulong) DICT_FK_MAX_RECURSIVE_LOAD); - break; + goto rollback_to_savept; default: fprintf(stderr, "InnoDB: unknown error code %lu\n", (ulong) err); diff -Nru mariadb-5.5-5.5.63/storage/xtradb/trx/trx0roll.c mariadb-5.5-5.5.64/storage/xtradb/trx/trx0roll.c --- mariadb-5.5-5.5.63/storage/xtradb/trx/trx0roll.c 2019-01-27 18:02:26.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/xtradb/trx/trx0roll.c 2019-04-26 12:37:03.000000000 +0000 @@ -2,6 +2,7 @@ Copyright (c) 1996, 2009, Innobase Oy. All Rights Reserved. Copyright (c) 2017, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -564,6 +565,7 @@ switch (trx->state) { case TRX_NOT_STARTED: case TRX_PREPARED: + case TRX_PREPARED_RECOVERED: continue; case TRX_COMMITTED_IN_MEMORY: diff -Nru mariadb-5.5-5.5.63/storage/xtradb/trx/trx0sys.c mariadb-5.5-5.5.64/storage/xtradb/trx/trx0sys.c --- mariadb-5.5-5.5.63/storage/xtradb/trx/trx0sys.c 2019-01-27 18:02:26.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/xtradb/trx/trx0sys.c 2019-04-26 12:37:03.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -1355,7 +1356,7 @@ trx = UT_LIST_GET_FIRST(trx_sys->trx_list); for (;;) { - + ut_ad(trx->state != TRX_PREPARED_RECOVERED); if (trx->state != TRX_PREPARED) { rows_to_undo += trx->undo_no; } diff -Nru mariadb-5.5-5.5.63/storage/xtradb/trx/trx0trx.c mariadb-5.5-5.5.64/storage/xtradb/trx/trx0trx.c --- mariadb-5.5-5.5.63/storage/xtradb/trx/trx0trx.c 2019-01-27 18:02:26.000000000 +0000 +++ mariadb-5.5-5.5.64/storage/xtradb/trx/trx0trx.c 2019-04-26 12:37:03.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2011, Innobase Oy. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -481,7 +482,8 @@ trx_t* trx) /*!< in, own: trx object */ { ut_ad(mutex_own(&kernel_mutex)); - ut_a(trx->state == TRX_PREPARED); + ut_a(trx->state == TRX_PREPARED + || trx->state == TRX_PREPARED_RECOVERED); ut_a(trx->magic_n == TRX_MAGIC_N); /* Prepared transactions are sort of active; they allow @@ -1148,10 +1150,11 @@ lsn = 0; } - ut_ad(trx->state == TRX_ACTIVE || trx->state == TRX_PREPARED); + ut_ad(trx->state == TRX_ACTIVE || trx->state == TRX_PREPARED + || trx->state == TRX_PREPARED_RECOVERED); ut_ad(mutex_own(&kernel_mutex)); - if (UNIV_UNLIKELY(trx->state == TRX_PREPARED)) { + if (UNIV_UNLIKELY(trx->state != TRX_ACTIVE)) { ut_a(trx_n_prepared > 0); trx_n_prepared--; } @@ -2359,6 +2362,7 @@ while (trx) { if (trx->state == TRX_PREPARED) { + trx->state = TRX_PREPARED_RECOVERED; xid_list[count] = trx->xid; if (count == 0) { @@ -2383,13 +2387,25 @@ count++; if (count == len) { - break; + goto partial; } } trx = UT_LIST_GET_NEXT(trx_list, trx); } + /* After returning the full list, reset the state, because + init_server_components() wants to recover the collection of + transactions twice, by first calling tc_log->open() and then + ha_recover() directly. */ + for (trx = UT_LIST_GET_FIRST(trx_sys->trx_list); trx; + trx = UT_LIST_GET_NEXT(trx_list, trx)) { + if (trx->state == TRX_PREPARED_RECOVERED) { + trx->state = TRX_PREPARED; + } + } + +partial: mutex_exit(&kernel_mutex); if (count > 0){ @@ -2431,7 +2447,8 @@ the same */ if (trx->is_recovered - && trx->state == TRX_PREPARED + && (trx->state == TRX_PREPARED + || trx->state == TRX_PREPARED_RECOVERED) && xid->gtrid_length == trx->xid.gtrid_length && xid->bqual_length == trx->xid.bqual_length && memcmp(xid->data, trx->xid.data, diff -Nru mariadb-5.5-5.5.63/VERSION mariadb-5.5-5.5.64/VERSION --- mariadb-5.5-5.5.63/VERSION 2019-01-27 18:02:20.000000000 +0000 +++ mariadb-5.5-5.5.64/VERSION 2019-04-26 12:37:01.000000000 +0000 @@ -1,4 +1,4 @@ MYSQL_VERSION_MAJOR=5 MYSQL_VERSION_MINOR=5 -MYSQL_VERSION_PATCH=63 +MYSQL_VERSION_PATCH=64 MYSQL_VERSION_EXTRA= diff -Nru mariadb-5.5-5.5.63/win/packaging/create_msi.cmake.in mariadb-5.5-5.5.64/win/packaging/create_msi.cmake.in --- mariadb-5.5-5.5.63/win/packaging/create_msi.cmake.in 2019-01-27 18:02:26.000000000 +0000 +++ mariadb-5.5-5.5.64/win/packaging/create_msi.cmake.in 2019-04-26 12:37:03.000000000 +0000 @@ -401,9 +401,10 @@ ENDIF() FILE(REMOVE mysql_server.wixobj extra.wixobj) +STRING(REPLACE " " ";" EXTRA_WIX_PREPROCESSOR_FLAGS_LIST ${EXTRA_WIX_PREPROCESSOR_FLAGS}) EXECUTE_PROCESS( COMMAND ${CANDLE_EXECUTABLE} - ${EXTRA_WIX_PREPROCESSOR_FLAGS} + ${EXTRA_WIX_PREPROCESSOR_FLAGS_LIST} ${CANDLE_ARCH} -ext WixUtilExtension -ext WixFirewallExtension @@ -413,7 +414,7 @@ EXECUTE_PROCESS( COMMAND ${CANDLE_EXECUTABLE} ${CANDLE_ARCH} - ${EXTRA_WIX_PREPROCESSOR_FLAGS} + ${EXTRA_WIX_PREPROCESSOR_FLAGS_LIST} -ext WixUtilExtension -ext WixFirewallExtension ${CMAKE_CURRENT_BINARY_DIR}/extra.wxs