diff --git a/mysql-test/suite/funcs_1/r/storedproc.result b/mysql-test/suite/funcs_1/r/storedproc.result index 9afadb4b32661..8671d408a6692 100644 --- a/mysql-test/suite/funcs_1/r/storedproc.result +++ b/mysql-test/suite/funcs_1/r/storedproc.result @@ -2434,10 +2434,6 @@ CREATE PROCEDURE low_priority() SELECT * from t1 where f2=f1; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'low_priority() SELECT * from t1 where f2=f1' at line 1 -CREATE PROCEDURE master_ssl_verify_server_cert() -SELECT * from t1 where f2=f1; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'master_ssl_verify_server_cert() -SELECT * from t1 where f2=f1' at line 1 CREATE PROCEDURE match() SELECT * from t1 where f2=f1; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'match() @@ -4918,13 +4914,6 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp SELECT @x; END' at line 2 DROP PROCEDURE IF EXISTS sp1; -CREATE PROCEDURE sp1() -master_ssl_verify_server_cert:BEGIN -SELECT @x; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'master_ssl_verify_server_cert:BEGIN -SELECT @x; -END' at line 2 DROP PROCEDURE IF EXISTS sp1; CREATE PROCEDURE sp1() match:BEGIN @@ -8454,12 +8443,6 @@ END// ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'low_priority char; END' at line 3 DROP PROCEDURE IF EXISTS sp1; -CREATE PROCEDURE sp1() -BEGIN -declare master_ssl_verify_server_cert char; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'master_ssl_verify_server_cert char; -END' at line 3 DROP PROCEDURE IF EXISTS sp1; CREATE PROCEDURE sp1() BEGIN @@ -10620,16 +10603,6 @@ Warnings: Note 1305 PROCEDURE db_storedproc.sp1 does not exist CREATE PROCEDURE sp1( ) BEGIN -declare master_ssl_verify_server_cert condition for sqlstate '02000'; -declare exit handler for int set @var2 = 1; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'master_ssl_verify_server_cert condition for sqlstate '02000'; -declare exit ha...' at line 3 -DROP PROCEDURE IF EXISTS sp1; -Warnings: -Note 1305 PROCEDURE db_storedproc.sp1 does not exist -CREATE PROCEDURE sp1( ) -BEGIN declare match condition for sqlstate '02000'; declare exit handler for match set @var2 = 1; END// @@ -12818,15 +12791,6 @@ Warnings: Note 1305 PROCEDURE db_storedproc.sp1 does not exist CREATE PROCEDURE sp1( ) BEGIN -declare master_ssl_verify_server_cert handler for sqlstate '02000' set @var2 = 1; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'master_ssl_verify_server_cert handler for sqlstate '02000' set @var2 = 1; -END' at line 3 -DROP PROCEDURE IF EXISTS sp1; -Warnings: -Note 1305 PROCEDURE db_storedproc.sp1 does not exist -CREATE PROCEDURE sp1( ) -BEGIN declare match handler for sqlstate '02000' set @var2 = 1; END// ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'match handler for sqlstate '02000' set @var2 = 1; diff --git a/mysql-test/suite/funcs_1/t/storedproc.test b/mysql-test/suite/funcs_1/t/storedproc.test index 621a4cc7f7587..90d6bb5373f9b 100644 --- a/mysql-test/suite/funcs_1/t/storedproc.test +++ b/mysql-test/suite/funcs_1/t/storedproc.test @@ -1454,10 +1454,6 @@ CREATE PROCEDURE loop() CREATE PROCEDURE low_priority() SELECT * from t1 where f2=f1; ---error ER_PARSE_ERROR -CREATE PROCEDURE master_ssl_verify_server_cert() - SELECT * from t1 where f2=f1; - --error ER_PARSE_ERROR CREATE PROCEDURE match() SELECT * from t1 where f2=f1; @@ -4555,14 +4551,6 @@ delimiter ;// DROP PROCEDURE IF EXISTS sp1; --enable_warnings -delimiter //; ---error ER_PARSE_ERROR -CREATE PROCEDURE sp1() - master_ssl_verify_server_cert:BEGIN - SELECT @x; -END// -delimiter ;// - --disable_warnings DROP PROCEDURE IF EXISTS sp1; --enable_warnings @@ -10051,14 +10039,6 @@ delimiter ;// DROP PROCEDURE IF EXISTS sp1; --enable_warnings -delimiter //; ---error ER_PARSE_ERROR -CREATE PROCEDURE sp1() -BEGIN - declare master_ssl_verify_server_cert char; -END// -delimiter ;// - --disable_warnings DROP PROCEDURE IF EXISTS sp1; --enable_warnings @@ -12692,17 +12672,6 @@ delimiter ;// DROP PROCEDURE IF EXISTS sp1; -delimiter //; ---error ER_PARSE_ERROR -CREATE PROCEDURE sp1( ) -BEGIN - declare master_ssl_verify_server_cert condition for sqlstate '02000'; - declare exit handler for int set @var2 = 1; -END// -delimiter ;// - -DROP PROCEDURE IF EXISTS sp1; - delimiter //; --error ER_PARSE_ERROR CREATE PROCEDURE sp1( ) @@ -15204,16 +15173,6 @@ delimiter ;// DROP PROCEDURE IF EXISTS sp1; -delimiter //; ---error ER_PARSE_ERROR -CREATE PROCEDURE sp1( ) -BEGIN - declare master_ssl_verify_server_cert handler for sqlstate '02000' set @var2 = 1; -END// -delimiter ;// - -DROP PROCEDURE IF EXISTS sp1; - delimiter //; --error ER_PARSE_ERROR CREATE PROCEDURE sp1( ) diff --git a/mysql-test/suite/rpl/r/rpl_is_slave_status.result b/mysql-test/suite/rpl/r/rpl_is_slave_status.result new file mode 100644 index 0000000000000..9e49869811785 --- /dev/null +++ b/mysql-test/suite/rpl/r/rpl_is_slave_status.result @@ -0,0 +1,41 @@ +SELECT Master_SSL_Verify_Server_Cert FROM information_schema.slave_status LIMIT 1; +Master_SSL_Verify_Server_Cert +SELECT `Master_SSL_Verify_Server_Cert` FROM information_schema.slave_status LIMIT 1; +Master_SSL_Verify_Server_Cert +CREATE DATABASE db_is_slave_status; +USE db_is_slave_status; +CREATE TABLE t1 ( +Master_SSL_Verify_Server_Cert INT +); +INSERT INTO t1 VALUES (123); +SELECT Master_SSL_Verify_Server_Cert FROM t1; +Master_SSL_Verify_Server_Cert +123 +DROP TABLE t1; +CREATE PROCEDURE master_ssl_verify_server_cert() +BEGIN +SELECT 1; +END// +DROP PROCEDURE IF EXISTS master_ssl_verify_server_cert; +CREATE FUNCTION master_ssl_verify_server_cert() +RETURNS INT +RETURN 1; +DROP FUNCTION IF EXISTS master_ssl_verify_server_cert; +CREATE PROCEDURE sp() +master_ssl_verify_server_cert:BEGIN +SELECT 1; +END// +DROP PROCEDURE IF EXISTS sp; +CREATE PROCEDURE sp() +BEGIN +DECLARE master_ssl_verify_server_cert CHAR; +END// +DROP PROCEDURE IF EXISTS sp; +CREATE PROCEDURE sp() +BEGIN +DECLARE master_ssl_verify_server_cert CONDITION FOR SQLSTATE '02000'; +DECLARE EXIT HANDLER FOR master_ssl_verify_server_cert SET @var2 = 1; +END// +DROP PROCEDURE IF EXISTS sp; +DROP DATABASE IF EXISTS db_is_slave_status; +# End of rpl_is_slave_status.test diff --git a/mysql-test/suite/rpl/t/rpl_is_slave_status.test b/mysql-test/suite/rpl/t/rpl_is_slave_status.test new file mode 100644 index 0000000000000..482e6bc391261 --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_is_slave_status.test @@ -0,0 +1,79 @@ +# +# Test for MDEV-38194: Master_SSL_Verify_Server_Cert should not require identifier quoting +# + +--source include/not_embedded.inc + +# Select the column unquoted +SELECT Master_SSL_Verify_Server_Cert FROM information_schema.slave_status LIMIT 1; + +# Select the column quoted +SELECT `Master_SSL_Verify_Server_Cert` FROM information_schema.slave_status LIMIT 1; + + +# Verify that stored procedures, variables, labels, and functions using the name +# Master_SSL_Verify_Server_Cert can be successfully created + +CREATE DATABASE db_is_slave_status; + +USE db_is_slave_status; + +CREATE TABLE t1 ( + Master_SSL_Verify_Server_Cert INT +); +INSERT INTO t1 VALUES (123); +SELECT Master_SSL_Verify_Server_Cert FROM t1; +DROP TABLE t1; + + +DELIMITER //; +CREATE PROCEDURE master_ssl_verify_server_cert() +BEGIN + SELECT 1; +END// +DELIMITER ;// + +DROP PROCEDURE IF EXISTS master_ssl_verify_server_cert; + +--disable_warnings +CREATE FUNCTION master_ssl_verify_server_cert() +RETURNS INT +RETURN 1; +--enable_warnings + +DROP FUNCTION IF EXISTS master_ssl_verify_server_cert; + + +DELIMITER //; +CREATE PROCEDURE sp() + master_ssl_verify_server_cert:BEGIN + SELECT 1; +END// +DELIMITER ;// + +DROP PROCEDURE IF EXISTS sp; + + +DELIMITER //; +CREATE PROCEDURE sp() +BEGIN + DECLARE master_ssl_verify_server_cert CHAR; +END// +DELIMITER ;// + +DROP PROCEDURE IF EXISTS sp; + + +DELIMITER //; +CREATE PROCEDURE sp() +BEGIN + DECLARE master_ssl_verify_server_cert CONDITION FOR SQLSTATE '02000'; + DECLARE EXIT HANDLER FOR master_ssl_verify_server_cert SET @var2 = 1; +END// +DELIMITER ;// + +DROP PROCEDURE IF EXISTS sp; + +DROP DATABASE IF EXISTS db_is_slave_status; + +--echo # End of rpl_is_slave_status.test diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 9c440234bf61f..e355f76e04354 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -16538,6 +16538,7 @@ keyword_func_sp_var_and_label: | MASTER_SSL_CRL_SYM | MASTER_SSL_CRLPATH_SYM | MASTER_SSL_KEY_SYM + | MASTER_SSL_VERIFY_SERVER_CERT_SYM | MAX_CONNECTIONS_PER_HOUR | MAX_QUERIES_PER_HOUR | MAX_SIZE_SYM @@ -16861,7 +16862,6 @@ reserved_keyword_udt_not_param_type: | LOCK_SYM | LOOP_SYM | LOW_PRIORITY - | MASTER_SSL_VERIFY_SERVER_CERT_SYM | MATCH | MAX_SYM | MAXVALUE_SYM