mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	 4792ed4220
			
		
	
	4792ed4220
	
	
	
		
			
			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;
 | |
| 
 |