@@ -201,18 +201,8 @@ private void setMaxLineResults() {
201201
202202 private SqlCompleter createSqlCompleter (Connection jdbcConnection ) {
203203
204- SqlCompleter completer = null ;
205- try {
206- Set <String > keywordsCompletions = SqlCompleter .getSqlKeywordsCompletions (jdbcConnection );
207- Set <String > dataModelCompletions =
208- SqlCompleter .getDataModelMetadataCompletions (jdbcConnection );
209- SetView <String > allCompletions = Sets .union (keywordsCompletions , dataModelCompletions );
210- completer = new SqlCompleter (allCompletions , dataModelCompletions );
211-
212- } catch (IOException | SQLException e ) {
213- logger .error ("Cannot create SQL completer" , e );
214- }
215-
204+ SqlCompleter completer = new SqlCompleter ();
205+ completer .initFromConnection (jdbcConnection , "" );
216206 return completer ;
217207 }
218208
@@ -712,7 +702,8 @@ public Scheduler getScheduler() {
712702 public List <InterpreterCompletion > completion (String buf , int cursor ) {
713703 List <CharSequence > candidates = new ArrayList <>();
714704 SqlCompleter sqlCompleter = propertyKeySqlCompleterMap .get (getPropertyKey (buf ));
715- if (sqlCompleter != null && sqlCompleter .complete (buf , cursor , candidates ) >= 0 ) {
705+ // It's strange but here cursor comes with additional +1 (even if buf is "" cursor = 1)
706+ if (sqlCompleter != null && sqlCompleter .complete (buf , cursor - 1 , candidates ) >= 0 ) {
716707 List <InterpreterCompletion > completion ;
717708 completion = Lists .transform (candidates , sequenceToStringTransformer );
718709
0 commit comments