Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-2439

Smart complete for SqlAdvisor

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.17.0
    • None
    • core
    • None

    Description

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            vladimirsitnikov Vladimir Sitnikov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: