168 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| use opt;
 | |
| # case 1
 | |
| insert into t1 values(0, 2);
 | |
| insert into t1 values(1, 2);
 | |
| insert into t1 values(2, 2);
 | |
| insert into t1 partition (p3, p0) values(3, 2);
 | |
| insert into opt.t1 values(4, 2);
 | |
| insert into t1 values (1,2) on duplicate key update c2 = c2+1;
 | |
| insert into t2 values (3,4,'test') on duplicate key update t2.c2 = t2.c2 + 1;
 | |
| 
 | |
| # case 2
 | |
| insert into t1(c1, c2) values(1, 2);
 | |
| 
 | |
| # case 3
 | |
| insert into t1(c1) values(1);
 | |
| 
 | |
| # case 4 (expect to fail)
 | |
| #insert into t1(c2) values(2);
 | |
| 
 | |
| # case 5
 | |
| update t1 set c2 = 3 where c1 = 0;
 | |
| update t1 set c2 = 3 where c1 = 1;
 | |
| update t1 set c2 = 3 where c1 = 2;
 | |
| update t1 set c2 = 3 where c1 = 3;
 | |
| update t1 as t set c2 = 3 where c1 = 4;
 | |
| update opt.t1 t set c2 = 3 where c1 = 5;
 | |
| update t10 set c3 = 5 where c2 = 3;
 | |
| 
 | |
| # case 7
 | |
| #update t1 set c2 = c1 + 3;
 | |
| 
 | |
| # case 8
 | |
| #update t1 set c2 = c1 + 3 where c2 > 5;
 | |
| 
 | |
| # case 9
 | |
| update t1 set c2 = 3 where c1 = 1 order by c1 limit 100;
 | |
| 
 | |
| # case 10
 | |
| #update t1 set c2 = c2 + 3 where c2 > 5 order by c2 limit 100;
 | |
| #update t1 set c2 = c2 + 3, c2 = c1 where c2 > 5 order by c2 limit 100;
 | |
| 
 | |
| # case 11
 | |
| #delete from t1;
 | |
| delete from t2 where c1 = 5 order by c3 limit 1;
 | |
| 
 | |
| # case 12
 | |
| delete from t1 where c1 = 5;
 | |
| 
 | |
| # case 13 distributed insert sql not supported
 | |
| #insert into t1 values (1, 2), (4, 5);
 | |
| 
 | |
| # case 14
 | |
| insert into t1 values(1,null);
 | |
| 
 | |
| # case 15
 | |
| insert into t3(c1) values(1);
 | |
| 
 | |
| # case 16
 | |
| #update t1 set c1 = 1 where c1 = 2;
 | |
| update t1 set c1 = 1 where c1 = 1;
 | |
| update t1 set c1 = 1 + 1 where c1 = 2;
 | |
| #part key expr now depend obj_type
 | |
| #update t5 set c2 = 2, c3 = 1 where c2 = 2 and c3 =1;
 | |
| 
 | |
| #case 17 partition by key
 | |
| #update t5 set c1 = 1 where c2 = 3 and c3 = 4;
 | |
| #UPDATE __all_root_table SET sql_port = 51997, zone = 'test', partition_cnt = 1, role = 0, row_count = 0, data_size = 0, data_version = 1, data_checksum = 0, row_checksum = 0, column_checksum = '' WHERE tenant_id = 1 AND table_id = 2 AND partition_id = 0 AND ip = '10.232.36.175' AND port = 51951;
 | |
| 
 | |
| #test for partition selection in dml_stmt
 | |
| insert into t1 partition (p3, p0) values(3, 2);
 | |
| replace into t1 partition (p3, p0) values(0, 3);
 | |
| delete from t1 partition (p0) where c1 = 5;
 | |
| update t1 partition(p3) set c2 = 2 where c1 = 3;
 | |
| 
 | |
| insert into t9(c1, c2) values(0, 2);
 | |
| update t2_no_part set c2 = (c3 = 1 and 1 = 1) where c1 = 1;
 | |
| 
 | |
| # dml using subquery
 | |
| delete from t7 where c1 in (select c1 from t8 where t7.c2=c2);
 | |
| update t7 set c1=1 where c1 in (select c1 from t8 where t7.c2=c2);
 | |
| update t7 set c1=(select c1 from t8);
 | |
| update t7 set c1=(select c1 from t8 where t7.c2=c2);
 | |
| 
 | |
| ##elimilation of orderby in delete_stmt and update_stmt
 | |
| delete from t7 where abs(c1) > 0 order by c1 limit 1;
 | |
| update t7 set c1 = 1 where abs(c2) > 0 order by c1 limit 1;
 | |
| 
 | |
| use insert_db;
 | |
| #test insert into...select...
 | |
| insert into t1 select * from t2;
 | |
| insert into t2 select * from t1;
 | |
| insert into t1 select * from t1;
 | |
| insert into t2 select * from t2;
 | |
| insert into t2 select c1, c2 from t3;
 | |
| insert into t3 select c1, c2, c1 from t2;
 | |
| #insert into t1 select * from t4;
 | |
| #insert into t1 select t3.c1, t3.c2 from t3 join t4 using(c1);
 | |
| #insert into t1 (select c1, c2 from t3 union select c1, c2 from t4);
 | |
| use opt;
 | |
| 
 | |
| ## select list elimination ( -> 1)
 | |
| ## group by, order by elimination
 | |
| #update
 | |
| update t7 set c1 = 1 where exists(select c2+2 from t8);
 | |
| update t7 set c1 = 1 where not exists(select c2+2 from t8);
 | |
| update t7 set c1 = 1 where exists(select c2+2 from t8 group by c2 order by c2);
 | |
| update t7 set c1 = 1 where exists(select c2+2 from t8 group by c2 order by c2 limit 2);
 | |
| 
 | |
| #delete
 | |
| delete from t7 where exists(select c2+2 from t8);
 | |
| delete from t7 where not exists(select c2+2 from t8);
 | |
| delete from t7 where exists(select c2+2 from t8 group by c2 order by c2);
 | |
| delete from t7 where exists(select c2+2 from t8 group by c2 order by c2 limit 2);
 | |
| 
 | |
| # UPDATE + sub-queries
 | |
| UPDATE t1 SET c2 = CONCAT(c2, (SELECT c2 FROM t2 where t2.c1=1)) WHERE c1 = 1;
 | |
| UPDATE t7 SET c2 = CONCAT(c2, (SELECT c2 FROM t2 where t2.c1=1));
 | |
| UPDATE t1 SET c2 = CONCAT(c2, (SELECT c2 FROM t7 limit 1)) WHERE c1 = 0;
 | |
| UPDATE t7 SET c2 = CONCAT(c2, (SELECT c2 FROM t8 limit 1));
 | |
| UPDATE t1 SET c2 = CONCAT(c2, (SELECT c2 FROM t2 where t2.c1=1)) WHERE c1 = 0;
 | |
| 
 | |
| # DELETE + sub-queries
 | |
| delete from t7 where c1 in (select c1 from t1);
 | |
| 
 | |
| #part p1
 | |
| insert into t_u values(18446744073709551612);
 | |
| #part p0
 | |
| insert into t_u values(18446744073709551613);
 | |
| #part p0
 | |
| insert into t_u values(0);
 | |
| #part p1
 | |
| insert into t_u values(1);
 | |
| #part p2
 | |
| insert into t_u values(2);
 | |
| #part p1
 | |
| insert into t_u values(9223372036854775807);
 | |
| insert into t_u values(9223372036854775808);
 | |
| #part p1
 | |
| insert into t_u values(9223372036854775809);
 | |
| #part p0
 | |
| insert into t_u values(9223372036854775810);
 | |
| 
 | |
| # LIMIT on TABLE SCAN push down
 | |
| select c2 from t7 where c2 >=1 and c2 <= 10 limit 3,4;
 | |
| select c2 from t7 where c2 = 2 limit 2,4;
 | |
| select * from t8 where c2 in (select c2 from t7 where c2 >=1 and c2 <= 10 limit 3,4);
 | |
| select * from t7 as t limit 789,456;
 | |
| select * from t7 as t limit 789,345;
 | |
| update t7 set c1 = 2 limit 3,4;
 | |
| delete from t7 limit 5,6;
 | |
| insert into t7 select (select c1 from t7)+1, c2 from t7;
 | |
| #range partition not considered range is local case now.
 | |
| insert into t_s values(1, '2013-10-10');
 | |
| insert into t_s values(1, '2013-10-9'), (3, '2013-2-1');
 | |
| insert into t_s1 values(1, '2016-1-2');
 | |
| insert into tp values(2, 1);
 | |
| insert into ts2 values(1, '2013-10-13', c1+1, c2);
 | |
| insert into ts2 values(1, '2013-10-13', 1, c2);
 | |
| insert into ts2 values(1, '2013-10-9', 2, c2);
 | |
| insert into ts2 values(1, '2013-10-10', 2, c2);
 | |
| insert into ts2 values(1, '2013-10-9', 2, c2), (3, '2013-2-1', 2, c2);
 | |
| update ts set c1 = 1 where c1 = 3 and c2 = '2013-10-10';
 | |
| update ts set c2 = '2016-3-29' where c1 = 3 and c2 = '2013-10-10';
 | |
| insert into t15 (c2, c3) values(2,'a');
 | |
| insert into test_insert set c1 = 4, c4 = c1 + 3;
 | |
| insert into tg(c1, c3) values ('bcde', 10);
 | |
| insert into tg(c1, c3) values ('caaaa', 10);
 | 
