Vladimir Sitnikov created CALCITE-2439:
------------------------------------------

             Summary: Smart complete for SqlAdvisor
                 Key: CALCITE-2439
                 URL: https://issues.apache.org/jira/browse/CALCITE-2439
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.17.0
            Reporter: Vladimir Sitnikov
            Assignee: Julian Hyde


Current implementation of SqlAdvisor provides no way to perform smart complete.

For example,
 1) A valid completion for {{select cd^ from clients}} might be {{select 
client_id from clients}}.
 That is completion is valid if all input characters are represented in final 
word in a proper sequence.

2) Completion might be case-insensitive if all input characters have the same 
upper/lower case.

3) "Contains" might be valid completion option as well. That is {{select id^ 
from ...}} might be completed to \{{select client_id from...} as well.

Of course, exact match should be sorted the first, then partial matches and so 
on.

It is not clear if smart complete logic belongs to {{SqlAdvisor}} or not. 
Current client-facing API provides no way to skip default "case-sensitive 
prefix filtering", so there's no way to implement smart complete at the client 
side only.

It is not clear where this logic belongs:
 a) Ultimate solution would be "skip filtering the identifiers at SqlAdvisor 
side". Then client can filter and sort the way it wants. The downside of the 
approach is it would force client to pipe large amount of items across JDBC 
bridge
 b) It might be helpful if Calcite had pre-defined implementations that would 
filter and sort the results. The good part is it simplifies client development, 
however various clients might have various filters applied.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to