Maryann Xue created PHOENIX-2957:
------------------------------------

             Summary: WhereOptimizer to provide an estimate of key selectivity 
for key filters containing bind variables
                 Key: PHOENIX-2957
                 URL: https://issues.apache.org/jira/browse/PHOENIX-2957
             Project: Phoenix
          Issue Type: Bug
            Reporter: Maryann Xue
            Priority: Minor


Calcite will not load values of bind parameters until execution. This will not 
affect the runtime efficiency even if the bind parameter appears in primary key 
related filters, since we support "dynamic filter" and thus can re-compile it 
into a SkipScanFilter whenever possible. But it does affect cost calculation at 
compile time in some way, so it's better for Phoenix to be able to provide an 
estimate of key selectivity if bind parameters appear in key filters.
 
For example, t has a primary key of (k0, k1):
"select * from t where k0 = ?"
"select * from t where k0 = 'xxx' and k1 < ?"
Given some filter estimate constants, like 0.1 for "=", 0.5 for "<" or ">", we 
can calculate an estimate of the entire filter selectivity using logic provided 
by WhereOptimizer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to