mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 10:57:54 +02:00
MDEV-38194 Correct classification of MASTER_SSL_VERIFY_SERVER_CERT
This patch removes MASTER_SSL_VERIFY_SERVER_CERT from the list reserved_keyword_udt_not_param_type and adds it to keyword_func_sp_var_and_label in the parser. All other MASTER_SSL_* keywords are in this list. This allows MASTER_SSL_VERIFY_SERVER_CERT to be used unquoted when directly accessed via INFORMATION_SCHEMA.slave_status, as well as opens it up to be used as names in other places, e.g. stored procedures. Reviewed-by: Brandon Nesterenko <brandon.nesterenko@mariadb.com>
This commit is contained in:
parent
c1fcedf443
commit
afbad3b02b
5 changed files with 121 additions and 78 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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( )
|
||||
|
|
|
|||
41
mysql-test/suite/rpl/r/rpl_is_slave_status.result
Normal file
41
mysql-test/suite/rpl/r/rpl_is_slave_status.result
Normal file
|
|
@ -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
|
||||
79
mysql-test/suite/rpl/t/rpl_is_slave_status.test
Normal file
79
mysql-test/suite/rpl/t/rpl_is_slave_status.test
Normal file
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue