mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
b0f899e977
comments) Before this fix, the server would accept queries that contained comments, even when the comments were not properly closed with a '*' '/' marker. For example, select 1 /* + 2 <EOF> would be accepted as select 1 /* + 2 */ <EOF> and executed as select 1 With this fix, the server now rejects queries with unclosed comments as syntax errors. Both regular comments ('/' '*') and special comments ('/' '*' '!') must be closed with '*' '/' to be parsed correctly. mysql-test/r/comments.result: Unbalanced comments are a syntax error. mysql-test/t/comments.test: Unbalanced comments are a syntax error. sql/sql_lex.cc: Unbalanced comments are a syntax error.
43 lines
1.9 KiB
Text
43 lines
1.9 KiB
Text
select 1+2/*hello*/+3;
|
|
1+2/*hello*/+3
|
|
6
|
|
select 1 /* long
|
|
multi line comment */;
|
|
1
|
|
1
|
|
;
|
|
ERROR 42000: Query was empty
|
|
select 1 /*!32301 +1 */;
|
|
1 /*!32301 +1
|
|
2
|
|
select 1 /*!52301 +1 */;
|
|
1
|
|
1
|
|
select 1--1;
|
|
1--1
|
|
2
|
|
select 1 --2
|
|
+1;
|
|
1 --2
|
|
+1
|
|
4
|
|
select 1 # The rest of the row will be ignored
|
|
;
|
|
1
|
|
1
|
|
/* line with only comment */;
|
|
drop table if exists table_28779;
|
|
create table table_28779 (a int);
|
|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*' AND b = 'bar';";
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*' AND b = 'bar'' at line 1
|
|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*' AND b = 'bar';*";
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*' AND b = 'bar';*' at line 1
|
|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*! AND 2=2;";
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*! AND 2=2;*";
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';*' at line 1
|
|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*!98765' AND b = 'bar';";
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*!98765' AND b = 'bar'' at line 1
|
|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*!98765' AND b = 'bar';*";
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*!98765' AND b = 'bar';*' at line 1
|
|
drop table table_28779;
|