106 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			106 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
| 
								 | 
							
								###################### ps_modify1.inc ########################
							 | 
						||
| 
								 | 
							
								#                                                            #
							 | 
						||
| 
								 | 
							
								#  Tests for prepared statements: big INSERT .. SELECTs      #
							 | 
						||
| 
								 | 
							
								#                                                            #
							 | 
						||
| 
								 | 
							
								##############################################################
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# NOTE: THESE TESTS CANNOT BE APPLIED TO TABLES OF TYPE MERGE.
							 | 
						||
| 
								 | 
							
								#       Test which can be applied to MERGE tables should be stored in
							 | 
						||
| 
								 | 
							
								#            include/ps_modify.inc .
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#    
							 | 
						||
| 
								 | 
							
								# NOTE: PLEASE SEE ps_1general.test (bottom) 
							 | 
						||
| 
								 | 
							
								#       BEFORE ADDING NEW TEST CASES HERE !!!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Please be aware, that this file will be sourced by several test case files
							 | 
						||
| 
								 | 
							
								# stored within the subdirectory 't'. So every change here will affect 
							 | 
						||
| 
								 | 
							
								# several test cases.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Please do not modify the structure (DROP/ALTER..) of the tables
							 | 
						||
| 
								 | 
							
								#     't1' and 't9'. 
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# But you are encouraged to use these two tables within your statements
							 | 
						||
| 
								 | 
							
								# (DELETE/UPDATE/...) whenever possible. 
							 | 
						||
| 
								 | 
							
								#     t1   - very simple table
							 | 
						||
| 
								 | 
							
								#     t9   - table with nearly all available column types
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# The structure and the content of these tables can be found in
							 | 
						||
| 
								 | 
							
								#     include/ps_create.inc  CREATE TABLE ...
							 | 
						||
| 
								 | 
							
								#     include/ps_renew.inc   DELETE all rows and INSERT some rows
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Both tables are managed by the same storage engine.
							 | 
						||
| 
								 | 
							
								# The type of the storage engine is stored in the variable '$type' . 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#------------------- Please insert your test cases here -------------------#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#-------- Please be very carefull when editing behind this line  ----------#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--source include/ps_renew.inc
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# add a NULL row to t1: this row is used only in this test
							 | 
						||
| 
								 | 
							
								insert into t1 values(0,NULL) ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## big insert select statements
							 | 
						||
| 
								 | 
							
								set @duplicate='duplicate ' ;
							 | 
						||
| 
								 | 
							
								set @1000=1000 ;
							 | 
						||
| 
								 | 
							
								set @5=5 ;
							 | 
						||
| 
								 | 
							
								select a,b from t1 where a < 5 order by a ;
							 | 
						||
| 
								 | 
							
								--enable_info
							 | 
						||
| 
								 | 
							
								insert into t1 select a + @1000, concat(@duplicate,b) from t1
							 | 
						||
| 
								 | 
							
								where a < @5 ;
							 | 
						||
| 
								 | 
							
								--disable_info
							 | 
						||
| 
								 | 
							
								select a,b from t1 where a >= 1000 order by a ;
							 | 
						||
| 
								 | 
							
								delete from t1 where a >= 1000 ;
							 | 
						||
| 
								 | 
							
								prepare stmt1 from ' insert into t1 select a + ?, concat(?,b) from t1
							 | 
						||
| 
								 | 
							
								where a < ? ' ;
							 | 
						||
| 
								 | 
							
								--enable_info
							 | 
						||
| 
								 | 
							
								execute stmt1 using @1000, @duplicate, @5;
							 | 
						||
| 
								 | 
							
								--disable_info
							 | 
						||
| 
								 | 
							
								select a,b from t1 where a >= 1000 order by a ;
							 | 
						||
| 
								 | 
							
								delete from t1 where a >= 1000 ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set @1=1 ;
							 | 
						||
| 
								 | 
							
								set @2=2 ;
							 | 
						||
| 
								 | 
							
								set @100=100 ;
							 | 
						||
| 
								 | 
							
								set @float=1.00;
							 | 
						||
| 
								 | 
							
								set @five='five' ;
							 | 
						||
| 
								 | 
							
								--disable_warnings
							 | 
						||
| 
								 | 
							
								drop table if exists t2;
							 | 
						||
| 
								 | 
							
								--enable_warnings
							 | 
						||
| 
								 | 
							
								create table t2 like t1 ;
							 | 
						||
| 
								 | 
							
								--enable_info
							 | 
						||
| 
								 | 
							
								insert into t2 (b,a) 
							 | 
						||
| 
								 | 
							
								select @duplicate, sum(first.a) from t1 first, t1 second
							 | 
						||
| 
								 | 
							
								  where first.a <> @5 and second.b = first.b
							 | 
						||
| 
								 | 
							
								     and second.b <> @five
							 | 
						||
| 
								 | 
							
								  group by second.b
							 | 
						||
| 
								 | 
							
								  having sum(second.a) > @2
							 | 
						||
| 
								 | 
							
								union
							 | 
						||
| 
								 | 
							
								select b, a + @100 from t1
							 | 
						||
| 
								 | 
							
								  where (a,b) in ( select sqrt(a+@1)+CAST(@float AS signed),b 
							 | 
						||
| 
								 | 
							
								                 from t1);
							 | 
						||
| 
								 | 
							
								--disable_info
							 | 
						||
| 
								 | 
							
								select a,b from t2 order by a ;
							 | 
						||
| 
								 | 
							
								delete from t2 ;
							 | 
						||
| 
								 | 
							
								prepare stmt1 from ' insert into t2 (b,a) 
							 | 
						||
| 
								 | 
							
								select ?, sum(first.a)
							 | 
						||
| 
								 | 
							
								  from t1 first, t1 second 
							 | 
						||
| 
								 | 
							
								  where first.a <> ? and second.b = first.b and second.b <> ?
							 | 
						||
| 
								 | 
							
								  group by second.b
							 | 
						||
| 
								 | 
							
								  having sum(second.a) > ?
							 | 
						||
| 
								 | 
							
								union
							 | 
						||
| 
								 | 
							
								select b, a + ? from t1
							 | 
						||
| 
								 | 
							
								  where (a,b) in ( select sqrt(a+?)+CAST(? AS signed),b 
							 | 
						||
| 
								 | 
							
								                 from t1 ) ' ;
							 | 
						||
| 
								 | 
							
								--enable_info
							 | 
						||
| 
								 | 
							
								execute stmt1 using @duplicate, @5, @five, @2, @100, @1, @float ;
							 | 
						||
| 
								 | 
							
								--disable_info
							 | 
						||
| 
								 | 
							
								select a,b from t2 order by a ;
							 | 
						||
| 
								 | 
							
								drop table t2;
							 |