oceanbase/unittest/sql/optimizer/opt_est/test_sel_basic.result
oceanbase-admin cea7de1475 init push
2021-05-31 22:56:52 +08:00

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