From 71b95dd8e42341ab2a310e082f6801731ebfab61 Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Fri, 2 Apr 2021 17:31:43 +0300 Subject: [PATCH] SQL completion fix (FROM and WHERE) --- .../sql/completion/SQLCompletionAnalyzer.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/completion/SQLCompletionAnalyzer.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/completion/SQLCompletionAnalyzer.java index a3f116df0a..34451ea0bf 100644 --- a/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/completion/SQLCompletionAnalyzer.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/completion/SQLCompletionAnalyzer.java @@ -126,9 +126,10 @@ public class SQLCompletionAnalyzer implements DBRRunnableParametrized(); allowedKeywords.add(SQLConstants.KEYWORD_FROM); - if (CommonUtils.isEmpty(request.getWordPart())) { + if (CommonUtils.isEmpty(request.getWordPart()) || request.getWordPart().equals(ALL_COLUMNS_PATTERN)) { matchedKeywords = Arrays.asList(SQLConstants.KEYWORD_FROM); } + if (delimiter.equals(ALL_COLUMNS_PATTERN)) { + // Shift offset because we need space after * + wordDetector.shiftOffset(1); + } } } else if (sqlDialect.isEntityQueryWord(prevKeyWord)) { allowedKeywords = new HashSet<>(); @@ -331,9 +338,12 @@ public class SQLCompletionAnalyzer implements DBRRunnableParametrized(allowedKeywords); + } } - if (!CommonUtils.isEmpty(request.getWordPart())) { + if (matchedKeywords.isEmpty() && !CommonUtils.isEmpty(request.getWordPart())) { // Keyword assist matchedKeywords = syntaxManager.getDialect().getMatchedKeywords(request.getWordPart()); if (!request.isSimpleMode()) { -- GitLab