From 0abbc538e49271cf94cd3eb09a8f781fb6bf32b3 Mon Sep 17 00:00:00 2001 From: ShadelessFox Date: Thu, 1 Apr 2021 19:11:41 +0300 Subject: [PATCH] dbeaver/dbeaver#10858 Retrieve rule manager from the completion context --- .../cloudbeaver/service/sql/WebSQLCompletionContext.java | 6 ++++++ .../src/io/cloudbeaver/service/sql/WebSQLProcessor.java | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLCompletionContext.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLCompletionContext.java index 5914ced9c1..81df579789 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLCompletionContext.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLCompletionContext.java @@ -25,6 +25,7 @@ import org.jkiss.dbeaver.model.sql.SQLSyntaxManager; import org.jkiss.dbeaver.model.sql.completion.SQLCompletionContext; import org.jkiss.dbeaver.model.sql.completion.SQLCompletionProposalBase; import org.jkiss.dbeaver.model.sql.completion.SQLCompletionRequest; +import org.jkiss.dbeaver.model.sql.parser.SQLRuleManager; import java.util.Map; @@ -58,6 +59,11 @@ public class WebSQLCompletionContext implements SQLCompletionContext { return sqlContext.getProcessor().getSyntaxManager(); } + @Override + public SQLRuleManager getRuleManager() { + return sqlContext.getProcessor().getRuleManager(); + } + @Override public boolean isUseFQNames() { return false; diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java index 029aff7f51..25fbfee929 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java @@ -37,6 +37,7 @@ import org.jkiss.dbeaver.model.navigator.DBNNode; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.sql.SQLQuery; import org.jkiss.dbeaver.model.sql.SQLSyntaxManager; +import org.jkiss.dbeaver.model.sql.parser.SQLRuleManager; import org.jkiss.dbeaver.model.struct.*; import org.jkiss.utils.CommonUtils; @@ -56,6 +57,7 @@ public class WebSQLProcessor { private final WebSession webSession; private final WebConnectionInfo connection; private final SQLSyntaxManager syntaxManager; + private final SQLRuleManager ruleManager; private final Map contexts = new LinkedHashMap<>(); private AtomicInteger contextId = new AtomicInteger(); @@ -66,6 +68,9 @@ public class WebSQLProcessor { syntaxManager = new SQLSyntaxManager(); syntaxManager.init(connection.getDataSource()); + + ruleManager = new SQLRuleManager(syntaxManager); + ruleManager.loadRules(connection.getDataSource(), false); } void dispose() { @@ -87,6 +92,10 @@ public class WebSQLProcessor { return syntaxManager; } + SQLRuleManager getRuleManager() { + return ruleManager; + } + DBCExecutionContext getExecutionContext() { return DBUtils.getDefaultContext(connection.getDataSource(), false); }