95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # | ||
|  | # Some regexp tests | ||
|  | # | ||
|  | 
 | ||
|  | --disable_warnings | ||
|  | drop table if exists t1; | ||
|  | --enable_warnings | ||
|  | 
 | ||
|  | set names latin1; | ||
|  | --source include/ctype_regex.inc | ||
|  | 
 | ||
|  | 
 | ||
|  | # | ||
|  | # This test a bug in regexp on Alpha | ||
|  | # | ||
|  | 
 | ||
|  | create table t1 (xxx char(128)); | ||
|  | insert into t1 (xxx) values('this is a test of some long text to see what happens'); | ||
|  | select * from t1 where xxx regexp('is a test of some long text to'); | ||
|  | explain extended select * from t1 where xxx regexp('is a test of some long text to'); | ||
|  | select * from t1 where xxx regexp('is a test of some long text to '); | ||
|  | select * from t1 where xxx regexp('is a test of some long text to s'); | ||
|  | select * from t1 where xxx regexp('is a test of some long text to se'); | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | create table t1 (xxx char(128)); | ||
|  | insert into t1 (xxx) values('this is some text: to test - out.reg exp (22/45)'); | ||
|  | select * from t1 where xxx REGEXP '^this is some text: to test - out\\.reg exp [[(][0-9]+[/\\][0-9]+[])][ ]*$'; | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | # | ||
|  | # Check with different character sets and collations | ||
|  | # | ||
|  | select _latin1 0xFF regexp _latin1 '[[:lower:]]' COLLATE latin1_bin; | ||
|  | select _koi8r  0xFF regexp _koi8r  '[[:lower:]]' COLLATE koi8r_bin; | ||
|  | select _latin1 0xFF regexp _latin1 '[[:upper:]]' COLLATE latin1_bin; | ||
|  | select _koi8r  0xFF regexp _koi8r  '[[:upper:]]' COLLATE koi8r_bin; | ||
|  | 
 | ||
|  | select _latin1 0xF7 regexp _latin1 '[[:alpha:]]'; | ||
|  | select _koi8r  0xF7 regexp _koi8r  '[[:alpha:]]'; | ||
|  | 
 | ||
|  | select _latin1'a' regexp _latin1'A' collate latin1_general_ci; | ||
|  | select _latin1'a' regexp _latin1'A' collate latin1_bin; | ||
|  | 
 | ||
|  | # | ||
|  | # regexp cleanup() | ||
|  | # | ||
|  | create table t1 (a varchar(40)); | ||
|  | insert into t1 values ('C1'),('C2'),('R1'),('C3'),('R2'),('R3'); | ||
|  | prepare stmt1 from 'select a from t1 where a rlike ? order by a'; | ||
|  | set @a="^C.*"; | ||
|  | execute stmt1 using @a; | ||
|  | set @a="^R.*"; | ||
|  | execute stmt1 using @a; | ||
|  | deallocate prepare stmt1; | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | --echo End of 4.1 tests | ||
|  | 
 | ||
|  | 
 | ||
|  | # | ||
|  | # Bug #31440: 'select 1 regex null' asserts debug server | ||
|  | # | ||
|  | 
 | ||
|  | SELECT 1 REGEXP NULL; | ||
|  | 
 | ||
|  | 
 | ||
|  | # | ||
|  | # Bug #39021: SELECT REGEXP BINARY NULL never returns | ||
|  | # | ||
|  | 
 | ||
|  | SELECT '' REGEXP BINARY NULL; | ||
|  | SELECT NULL REGEXP BINARY NULL; | ||
|  | SELECT 'A' REGEXP BINARY NULL; | ||
|  | SELECT "ABC" REGEXP BINARY NULL; | ||
|  | 
 | ||
|  | --echo End of 5.0 tests | ||
|  | 
 | ||
|  | 
 | ||
|  | # | ||
|  | # Bug #37337: Function returns different results | ||
|  | # | ||
|  | CREATE TABLE t1(a INT, b CHAR(4)); | ||
|  | INSERT INTO t1 VALUES (1, '6.1'), (1, '7.0'), (1, '8.0'); | ||
|  | PREPARE stmt1 FROM "SELECT a FROM t1 WHERE a=1 AND '7.0' REGEXP b LIMIT 1"; | ||
|  | EXECUTE stmt1; | ||
|  | EXECUTE stmt1; | ||
|  | EXECUTE stmt1; | ||
|  | EXECUTE stmt1; | ||
|  | DEALLOCATE PREPARE stmt1; | ||
|  | DROP TABLE t1; | ||
|  | 
 | ||
|  | 
 | ||
|  | --echo End of 5.1 tests |