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)