1108 lines
		
	
	
		
			50 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1108 lines
		
	
	
		
			50 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ******************CASE0******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1.
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 1000 or c1 > 2000 and c1 < 3000;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE1******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 1;
 | |
| SELECTIVITY = 1
 | |
| 
 | |
| ******************CASE2******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 1 > 0;
 | |
| SELECTIVITY = 1
 | |
| 
 | |
| ******************CASE3******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 0;
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE4******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where null;
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE5******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 = 999;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE6******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 = 10001;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE7******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 = 1000;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE8******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 500/10000
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 <=> null;
 | |
| SELECTIVITY = 0.05
 | |
| 
 | |
| ******************CASE9******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 = null;
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE10******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000 * 0.95
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 + 1 = 1000;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE11******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000 * 0.95
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 * 2 = 1000;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE12******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.005(DEFAULT_EQ_SEL)
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 / 2 = 1000;
 | |
| SELECTIVITY = 0.005
 | |
| 
 | |
| ******************CASE13******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000 * 0.95
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 - 100 = 1000;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE14******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > null;
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE15******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > null or 1 > 0;
 | |
| SELECTIVITY = 1
 | |
| 
 | |
| ******************CASE16******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > null or 1 > 2;
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE17******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < null;
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE18******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 30;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE19******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 2*1/1000 * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 50;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE20******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1.0/3.0 as not calc
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 + 1 > 5;
 | |
| SELECTIVITY = 0.333333
 | |
| 
 | |
| ******************CASE21******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (10000-2000)/(10000-1000) * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 2000;
 | |
| SELECTIVITY = 0.845488
 | |
| 
 | |
| ******************CASE22******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 1000 or c1 > 2000 and c1 < 3000;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE23******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (10000-2000)/(10000-1000) * 0.95 + 1/1000 * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 >= 2000;
 | |
| SELECTIVITY = 0.846438
 | |
| 
 | |
| ******************CASE24******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (5000-1000)/(10000-1000) * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 5000;
 | |
| SELECTIVITY = 0.423114
 | |
| 
 | |
| ******************CASE25******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (5000-1000)/(10000-1000) * 0.95 + 1/1000 * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 <= 5000;
 | |
| SELECTIVITY = 0.424064
 | |
| 
 | |
| ******************CASE26******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 20*1/1000 * 0.95(min_distinct 20);
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 <= 500;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE27******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 20*1/1000 * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 >= 10000;
 | |
| SELECTIVITY = 0.0019
 | |
| 
 | |
| ******************CASE28******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1 - 1/1000*0.95 - 100/10000
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 != 500;
 | |
| SELECTIVITY = 0.94905
 | |
| 
 | |
| ******************CASE29******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1 - 1/1000*0.95 - 100/10000
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 != 50;
 | |
| SELECTIVITY = 0.94905
 | |
| 
 | |
| ******************CASE30******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1 - 1/1000*0.95 - 100/10000
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 != 50;
 | |
| SELECTIVITY = 0.94905
 | |
| 
 | |
| ******************CASE31******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1 - 1/1000*0.95 - 100/10000
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 + 1 != 50;
 | |
| SELECTIVITY = 0.94905
 | |
| 
 | |
| ******************CASE32******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1 - 1/1000*0.95 - 100/10000
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 * 2 != 50;
 | |
| SELECTIVITY = 0.94905
 | |
| 
 | |
| ******************CASE33******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.5
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 / 2 != 50;
 | |
| SELECTIVITY = 0.5
 | |
| 
 | |
| ******************CASE34******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (10000-2000)/(10000-1000)*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 2000;
 | |
| SELECTIVITY = 0.845488
 | |
| 
 | |
| ******************CASE35******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (3000-1000)/(10000-1000)*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 3000;
 | |
| SELECTIVITY = 0.211979
 | |
| 
 | |
| ******************CASE36******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 2*1/1000 * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 10000;
 | |
| SELECTIVITY = 0.0019
 | |
| 
 | |
| ******************CASE37******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 500;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE38******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 2*1/1000 * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 500;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE39******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 2*1/1000 * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 1000;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE40******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (10000-9000)/(10000-1000)*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 9000;
 | |
| SELECTIVITY = 0.106517
 | |
| 
 | |
| ******************CASE41******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (8000-1000)/(10000-1000)*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 8000;
 | |
| SELECTIVITY = 0.739815
 | |
| 
 | |
| ******************CASE42******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (3000-2000)/(10000-1000)*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 2000 and c1 < 3000;
 | |
| SELECTIVITY = 0.104617
 | |
| 
 | |
| ******************CASE43******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.019;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 10000 and c1 > 500;
 | |
| SELECTIVITY = 0.0019
 | |
| 
 | |
| ******************CASE44******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 10000 and c1 > 500;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE45******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.019*2;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 500 or c1 > 10000;
 | |
| SELECTIVITY = 0.00285
 | |
| 
 | |
| ******************CASE46******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (10000-2000)/(10000-1000)*0.95 + 0.019;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 2000 or c1 < 1000;
 | |
| SELECTIVITY = 0.846438
 | |
| 
 | |
| ******************CASE47******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (10000-2000)/(10000-1000)*0.95 + 0.019;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 2000 or c1 < 1000 or c1 < 500;
 | |
| SELECTIVITY = 0.846438
 | |
| 
 | |
| ******************CASE48******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (10000-2000)/(10000-1000)*0.95 + 0.0095;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > 2000 or c1 < 1000 and c1 > 500;
 | |
| SELECTIVITY = 0.846438
 | |
| 
 | |
| ******************CASE49******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.0095;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 1000 and c1 > 500;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE50******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.019;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 1000 or c1 > 9000 and c1 > 2000 and c1 < 8000;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE51******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.019;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 < 500 or c1 > 10000 and c1 > 10001 and c1 < 499;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE52******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 500/10000;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 is null;
 | |
| SELECTIVITY = 0.05
 | |
| 
 | |
| ******************CASE53******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000 * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 is false;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE54******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1 * 0.95 - 1/1000(suppose the ratio of false);
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 is true;
 | |
| SELECTIVITY = 0.94905
 | |
| 
 | |
| ******************CASE55******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1 - 500/10000;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 is not null;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE56******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1 - 1/1000 * 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 is not false;
 | |
| SELECTIVITY = 0.99905
 | |
| 
 | |
| ******************CASE57******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1 - 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 is not true;
 | |
| SELECTIVITY = 0.05095
 | |
| 
 | |
| ******************CASE58******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select * from t1 where not 1;
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE59******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select * from t1 where not 0;
 | |
| SELECTIVITY = 1
 | |
| 
 | |
| ******************CASE60******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95 - (10000-2000)/(10000-1000)*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select * from t1 where not c1 > 2000;
 | |
| SELECTIVITY = 0.107362
 | |
| 
 | |
| ******************CASE61******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95 - (3000-2000)/(10000-1000)*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select * from t1 where not (c1 > 2000 and c1 < 3000);
 | |
| SELECTIVITY = 0.848233
 | |
| 
 | |
| ******************CASE62******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95 - 1/1000*0.95*3;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select * from t1 where not c1 in (2000, 3000);
 | |
| SELECTIVITY = 0.9481
 | |
| 
 | |
| ******************CASE63******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.95 * 3;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 in (500, 8000, 10000);
 | |
| SELECTIVITY = 0.00285
 | |
| 
 | |
| ******************CASE64******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select square(1/1000*0.95) * 2
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (c1,c2) in ((500, 8000), (8000, 10000));
 | |
| SELECTIVITY = 1.805e-06
 | |
| 
 | |
| ******************CASE65******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95 - 0.95*2;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 not in (500, 1000);
 | |
| SELECTIVITY = 0.9481
 | |
| 
 | |
| ******************CASE66******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (200) in (100, 200);
 | |
| SELECTIVITY = 1
 | |
| 
 | |
| ******************CASE67******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (200) in (100, 300, 400, 200);
 | |
| SELECTIVITY = 1
 | |
| 
 | |
| ******************CASE68******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (200) in (100, 300, 400, 500);
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE69******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (200) in (c1, 300, 400, 500);
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE70******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (c1) in (c1, 300, 400, 500);
 | |
| SELECTIVITY = 0.95285
 | |
| 
 | |
| ******************CASE71******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 200 in ('200', c2, 300, 400, 500);
 | |
| SELECTIVITY = 1
 | |
| 
 | |
| ******************CASE72******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t3 where 'a' in ('A', c1, '300', '400', '500');
 | |
| SELECTIVITY = 1
 | |
| 
 | |
| ******************CASE73******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/80*(10000 - 10) | str(distinct 80, null:10);
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t3 where c1 = 'a';
 | |
| SELECTIVITY = 0.0124875
 | |
| 
 | |
| ******************CASE74******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/80*(10000 - 10) | str(distinct 80, null:10);
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t3 where 'a' in ('A' collate 'utf8mb4_bin', c1, '300', '400', '500');
 | |
| SELECTIVITY = 0.0124875
 | |
| 
 | |
| ******************CASE75******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.95 * 3;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 in (500, 8000, 10000);
 | |
| SELECTIVITY = 0.00285
 | |
| 
 | |
| ******************CASE76******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :EXPECTED select 0.95 - 1/1000*0.95 * 3;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 not in (500, 8000, 10000);
 | |
| SELECTIVITY = 0.94715
 | |
| 
 | |
| ******************CASE77******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :EXPECTED select 1/1000*0.95 * 2;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 in (500, 1000);
 | |
| SELECTIVITY = 0.0019
 | |
| 
 | |
| ******************CASE78******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :EXPECTED select 0.95 - 1/1000*0.95 * 2;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 not in (500, 1000);
 | |
| SELECTIVITY = 0.9481
 | |
| 
 | |
| ******************CASE79******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :EXPECTED select 1/1000*0.95 * 1/1000*0.95*2;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (c1,c2) in ((500, 8000), (8000, 10000));
 | |
| SELECTIVITY = 1.805e-06
 | |
| 
 | |
| ******************CASE80******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :EXPECTED select 0.95 - 1/1000*0.95 * 1/1000*0.95*2;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (c1,c2) not in ((500, 8000), (8000, 10000));
 | |
| SELECTIVITY = 0.999998
 | |
| 
 | |
| ******************CASE81******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 between 1000 and 10000;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE82******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 20/1000*.95 + 20/1000*0.95,20:minest of half open range
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 not between 1000 and 10000;
 | |
| SELECTIVITY = 0.00285
 | |
| 
 | |
| ******************CASE83******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 between 1000 and 1000;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE84******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 not between 1000 and 1000;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE85******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0;考虑设最低选择率;#bug 8551829 :6;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 between 10000 and 1000;
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE86******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 not between 10000 and 1000;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE87******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.018*0.018;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 >= 10000 and c1<=1000;
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE88******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 1000 between c1 and 1000;
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE89******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1 - 1/1000*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 1000 not between c1 and 1000;
 | |
| SELECTIVITY = 0.333333
 | |
| 
 | |
| ******************CASE90******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (2000-1000)/(10000-1000)*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 2000 between c1 and 10000;
 | |
| SELECTIVITY = 0.107362
 | |
| 
 | |
| ******************CASE91******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (10000-8000)/(10000-1000)*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 2000 not between c1 and 10000;
 | |
| SELECTIVITY = 0.333333
 | |
| 
 | |
| ******************CASE92******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 1000 between 10000 and c1;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE93******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (10000-2000)/(10000-1000)*0.95;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 2000 between 1000 and c1;
 | |
| SELECTIVITY = 0.846438
 | |
| 
 | |
| ******************CASE94******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 1 between 0 and 1;
 | |
| SELECTIVITY = 1
 | |
| 
 | |
| ******************CASE95******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where 100 between 0 and 1;
 | |
| SELECTIVITY = 0
 | |
| 
 | |
| ******************CASE96******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*((2000 - 500)/2000) table2: row count = 2000;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select t1.c1 from t1,t2 where t1.c1 = t2.c1;
 | |
| SELECTIVITY = 0.0007125
 | |
| 
 | |
| ******************CASE97******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.75 table2: row count = 2000;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select t1.c1 from t1,t2 where t1.c1 + 1 = t2.c1;
 | |
| SELECTIVITY = 0.00075
 | |
| 
 | |
| ******************CASE98******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.75 table2: row count = 2000;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select t1.c1 from t1,t2 where t1.c1 + 1 = t2.c1 + 1;
 | |
| SELECTIVITY = 0.00075
 | |
| 
 | |
| ******************CASE99******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.75 table2: row count = 2000;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select t1.c1 from t1,t2 where t1.c1 * 2 = t2.c1 + 1;
 | |
| SELECTIVITY = 0.00075
 | |
| 
 | |
| ******************CASE100******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.75 table2: row count = 2000;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select t1.c1 from t1,t2 where t1.c1 / 2 = t2.c1 + 1;
 | |
| SELECTIVITY = 0.00075
 | |
| 
 | |
| ******************CASE101******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.75 * 1/3;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select t1.c1 from t1,t2 where t1.c1 = t2.c1 and t1.c2 > t2.c2;
 | |
| SELECTIVITY = 0.0002375
 | |
| 
 | |
| ******************CASE102******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/3;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select t1.c1 from t1, t2 where t1.c1 < t2.c2;
 | |
| SELECTIVITY = 0.333333
 | |
| 
 | |
| ******************CASE103******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 0.5;
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select t1.c1 from t1, t2 where t1.c1 != t2.c2;
 | |
| SELECTIVITY = 0.5
 | |
| 
 | |
| ******************CASE104******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000*0.95
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 = (select c2 from t1 where c2 >= 10000);
 | |
| SELECTIVITY = 0.00095
 | |
| 
 | |
| ******************CASE105******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1.0 / 3.0 DEFAULT_INEQ_SEL
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 > (select c2 from t1 where c2 >= 10000);
 | |
| SELECTIVITY = 0.333333
 | |
| 
 | |
| ******************CASE106******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :todo. 1 - 1/1000*0.95 - 0.05
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 != (select c2 from t1 where c2 >= 10000);
 | |
| SELECTIVITY = 0.94905
 | |
| 
 | |
| ******************CASE107******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :todo. DEFAULT_SEL
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 in (select c2 from t1 where c2 = 10000);
 | |
| SELECTIVITY = 0.5
 | |
| 
 | |
| ******************CASE108******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :todo. DEFAULT_SEL
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 = ANY (select c2 from t1 where c2 > 1000);
 | |
| SELECTIVITY = 0.5
 | |
| 
 | |
| ******************CASE109******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :todo. DEFAULT_SEL
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 != ANY (select c2 from t1 where c2 > 1000);
 | |
| SELECTIVITY = 0.5
 | |
| 
 | |
| ******************CASE110******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :todo. DEFAULT_SEL
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 = SOME (select c2 from t1 where c2 > 1000);
 | |
| SELECTIVITY = 0.5
 | |
| 
 | |
| ******************CASE111******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :todo. DEFAULT_SEL
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 != SOME (select c2 from t1 where c2 > 1000);
 | |
| SELECTIVITY = 0.5
 | |
| 
 | |
| ******************CASE112******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :todo. DEFAULT_SEL
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 = ALL (select c2 from t1 where c2 > 1000);
 | |
| SELECTIVITY = 0.5
 | |
| 
 | |
| ******************CASE113******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :todo. DEFAULT_SEL
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where c1 != ALL (select c2 from t1 where c2 > 1000);
 | |
| SELECTIVITY = 0.5
 | |
| 
 | |
| ******************CASE114******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select 1/1000 * 0.95 * (1/1000 * 0.95)
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (c1, c2) = (2000, 10000);
 | |
| SELECTIVITY = 9.025e-07
 | |
| 
 | |
| ******************CASE115******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :todo. T_OP_ROW != T_OP_ROW
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (c1, c2) != (2000, 10000);
 | |
| SELECTIVITY = 0.5
 | |
| 
 | |
| ******************CASE116******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :select (10000 - 2000)/(10000 - 1001) * 0.95
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t1 where (c1, c2) > (2000, 10000);
 | |
| SELECTIVITY = 0.846438
 | |
| 
 | |
| ******************CASE117******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :AC: not null = 0.95
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t5 where c1 < 10001;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE118******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :AC: not null = 0.95
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t5 where c1 > 1000;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE119******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :AC: not null = 0.95
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t5 where c1 <= 10000;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE120******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :AC: not null = 0.95
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t5 where c1 >= 1001;
 | |
| SELECTIVITY = 0.95
 | |
| 
 | |
| ******************CASE121******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :AC: not null / 2 near 0.47
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t5 where c1 > 5500;
 | |
| SELECTIVITY = 0.476003
 | |
| 
 | |
| ******************CASE122******************
 | |
| min = 1001, max = 10000, ndv = 1000, null_num = 500
 | |
| the ratio of not null row is (10000-500)/10000 = 0.95
 | |
| for range cond : if half_open min_selectivity = 20/DNV, else min_selectivity = 10/DNV
 | |
| EXPECTED RESULT :AC: not null / 2 near 0.47
 | |
| ----------------------------------------------------------
 | |
| EXPR_STR: select c1 from t5 where c1 < 5500;
 | |
| SELECTIVITY = 0.475897
 | |
| 
 | 
