******************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