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