mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	comments)
This change set is for 5.1 (manually merged)
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.
		
	
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# Testing of comments
 | 
						|
#
 | 
						|
 | 
						|
select 1+2/*hello*/+3;
 | 
						|
select 1 /* long
 | 
						|
multi line comment */;
 | 
						|
--error 1065
 | 
						|
 ;
 | 
						|
select 1 /*!32301 +1 */;
 | 
						|
select 1 /*!52301 +1 */;
 | 
						|
select 1--1;
 | 
						|
# Note that the following returns 4 while it should return 2
 | 
						|
# This is because the mysqld server doesn't parse -- comments
 | 
						|
select 1 --2
 | 
						|
+1;
 | 
						|
select 1 # The rest of the row will be ignored
 | 
						|
;
 | 
						|
/* line with only comment */;
 | 
						|
 | 
						|
# End of 4.1 tests
 | 
						|
 | 
						|
#
 | 
						|
# Bug#25411 (trigger code truncated)
 | 
						|
#
 | 
						|
 | 
						|
--error ER_PARSE_ERROR
 | 
						|
select 1/*!2*/;
 | 
						|
 | 
						|
--error ER_PARSE_ERROR
 | 
						|
select 1/*!000002*/;
 | 
						|
 | 
						|
select 1/*!999992*/;
 | 
						|
 | 
						|
select 1 + /*!00000 2 */ + 3 /*!99999 noise*/ + 4;
 | 
						|
 | 
						|
#
 | 
						|
# Bug#28779 (mysql_query() allows execution of statements with unbalanced
 | 
						|
# comments)
 | 
						|
#
 | 
						|
 | 
						|
--disable_warnings
 | 
						|
drop table if exists table_28779;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
create table table_28779 (a int);
 | 
						|
 | 
						|
--error 1064
 | 
						|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*' AND b = 'bar';";
 | 
						|
 | 
						|
--error 1064
 | 
						|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*' AND b = 'bar';*";
 | 
						|
 | 
						|
--error 1064
 | 
						|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*! AND 2=2;";
 | 
						|
 | 
						|
--error 1064
 | 
						|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*! AND 2=2;*";
 | 
						|
 | 
						|
--error 1064
 | 
						|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*!98765' AND b = 'bar';";
 | 
						|
 | 
						|
--error 1064
 | 
						|
prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*!98765' AND b = 'bar';*";
 | 
						|
 | 
						|
drop table table_28779;
 | 
						|
 |