From afccf25dcf62b003d63b417bc5e1ab99a82c2e1f Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Wed, 27 Nov 2019 12:00:10 +0300 Subject: [PATCH] #6041 SQL model refactoring. Export from query process flow redesign. Former-commit-id: acf41858ab0f7db9b724d5fa4f3d64adee399da7 --- .../org.jkiss.dbeaver.ext.exasol/plugin.xml | 2 +- .../org.jkiss.dbeaver.ext.mysql/plugin.xml | 2 +- .../META-INF/MANIFEST.MF | 2 ++ .../OSGI-INF/l10n/bundle.properties | 1 + .../org.jkiss.dbeaver.model.sql/plugin.xml | 7 +++++++ .../schema/org.jkiss.dbeaver.sqlCommand.exsd | 2 +- .../model}/sql/SQLControlCommandHandler.java | 4 +--- .../model/sql/SQLParametersProvider.java | 0 .../dbeaver/model}/sql/SQLQueryListener.java | 4 +--- .../model}/sql/SQLScriptCommitType.java | 2 +- .../dbeaver/model/sql/SQLScriptContext.java | 14 ++++++++++++++ .../model}/sql/SQLScriptErrorHandling.java | 2 +- .../model}/sql/SQLScriptProcessConstants.java | 2 +- .../model}/sql/commands/SQLCommandEcho.java | 4 ++-- .../model}/sql/commands/SQLCommandExport.java | 6 +++--- .../model}/sql/commands/SQLCommandSet.java | 4 ++-- .../model/sql/eval/ScriptEvaluateEngine.java | 0 .../sql/eval/ScriptVariablesContext.java | 0 .../sql/eval/ScriptVariablesResolver.java | 0 .../registry/SQLCommandHandlerDescriptor.java | 4 ++-- .../sql/registry/SQLCommandsRegistry.java | 2 +- .../registry/SQLQueryParameterRegistry.java | 2 +- .../META-INF/MANIFEST.MF | 1 - .../OSGI-INF/l10n/bundle.properties | 1 - .../OSGI-INF/l10n/bundle_de.properties | 2 -- .../OSGI-INF/l10n/bundle_fr.properties | 2 -- .../OSGI-INF/l10n/bundle_ko.properties | 4 ---- .../OSGI-INF/l10n/bundle_zh.properties | 4 ---- .../plugin.xml | 8 ++------ .../dbeaver/ui/editors/sql/SQLEditor.java | 19 ++++--------------- .../dbeaver/ui/editors/sql/SQLEditorBase.java | 2 +- .../sql/commands/SQLCommandInclude.java | 9 ++------- .../dialogs/SQLQueryParameterBindDialog.java | 4 ++-- .../ui/editors/sql/execute/SQLQueryJob.java | 18 +----------------- .../SQLEditorPreferencesInitializer.java | 4 ++-- .../sql/preferences/PrefPageSQLExecute.java | 4 ++-- .../syntax/SQLCommandCompletionProposal.java | 2 +- .../sql/syntax/SQLCompletionProcessor.java | 4 ++-- .../ui/editors/sql/syntax/SQLRuleManager.java | 4 ++-- .../sql/syntax/rules/SQLCommandRule.java | 2 +- 40 files changed, 65 insertions(+), 95 deletions(-) rename plugins/{org.jkiss.dbeaver.ui.editors.sql => org.jkiss.dbeaver.model.sql}/schema/org.jkiss.dbeaver.sqlCommand.exsd (98%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/SQLControlCommandHandler.java (87%) rename plugins/{org.jkiss.dbeaver.model => org.jkiss.dbeaver.model.sql}/src/org/jkiss/dbeaver/model/sql/SQLParametersProvider.java (100%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/SQLQueryListener.java (88%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/SQLScriptCommitType.java (95%) rename plugins/{org.jkiss.dbeaver.model => org.jkiss.dbeaver.model.sql}/src/org/jkiss/dbeaver/model/sql/SQLScriptContext.java (88%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/SQLScriptErrorHandling.java (95%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/SQLScriptProcessConstants.java (95%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/commands/SQLCommandEcho.java (92%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/commands/SQLCommandExport.java (87%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/commands/SQLCommandSet.java (94%) rename plugins/{org.jkiss.dbeaver.model => org.jkiss.dbeaver.model.sql}/src/org/jkiss/dbeaver/model/sql/eval/ScriptEvaluateEngine.java (100%) rename plugins/{org.jkiss.dbeaver.model => org.jkiss.dbeaver.model.sql}/src/org/jkiss/dbeaver/model/sql/eval/ScriptVariablesContext.java (100%) rename plugins/{org.jkiss.dbeaver.model => org.jkiss.dbeaver.model.sql}/src/org/jkiss/dbeaver/model/sql/eval/ScriptVariablesResolver.java (100%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/registry/SQLCommandHandlerDescriptor.java (94%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/registry/SQLCommandsRegistry.java (97%) rename plugins/{org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors => org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model}/sql/registry/SQLQueryParameterRegistry.java (99%) rename plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/{runtime => ui/editors}/sql/commands/SQLCommandInclude.java (93%) diff --git a/plugins/org.jkiss.dbeaver.ext.exasol/plugin.xml b/plugins/org.jkiss.dbeaver.ext.exasol/plugin.xml index cfdef6a3e5..88fcbdede2 100644 --- a/plugins/org.jkiss.dbeaver.ext.exasol/plugin.xml +++ b/plugins/org.jkiss.dbeaver.ext.exasol/plugin.xml @@ -561,7 +561,7 @@ - + diff --git a/plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml b/plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml index 4d1ddcf9a5..86124e8d57 100644 --- a/plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml +++ b/plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml @@ -300,7 +300,7 @@ - + diff --git a/plugins/org.jkiss.dbeaver.model.sql/META-INF/MANIFEST.MF b/plugins/org.jkiss.dbeaver.model.sql/META-INF/MANIFEST.MF index 35bf848461..31a68bda37 100644 --- a/plugins/org.jkiss.dbeaver.model.sql/META-INF/MANIFEST.MF +++ b/plugins/org.jkiss.dbeaver.model.sql/META-INF/MANIFEST.MF @@ -9,8 +9,10 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Bundle-Activator: org.jkiss.dbeaver.model.sql.internal.SQLModelActivator Export-Package: org.jkiss.dbeaver.model.sql, + org.jkiss.dbeaver.model.sql.commands, org.jkiss.dbeaver.model.sql.completion, org.jkiss.dbeaver.model.sql.data, + org.jkiss.dbeaver.model.sql.eval, org.jkiss.dbeaver.model.sql.format, org.jkiss.dbeaver.model.sql.format.external, org.jkiss.dbeaver.model.sql.format.tokenized, diff --git a/plugins/org.jkiss.dbeaver.model.sql/OSGI-INF/l10n/bundle.properties b/plugins/org.jkiss.dbeaver.model.sql/OSGI-INF/l10n/bundle.properties index f8b2f938c3..c033807940 100644 --- a/plugins/org.jkiss.dbeaver.model.sql/OSGI-INF/l10n/bundle.properties +++ b/plugins/org.jkiss.dbeaver.model.sql/OSGI-INF/l10n/bundle.properties @@ -1,6 +1,7 @@ Bundle-Vendor = JKISS Bundle-Name = DBeaver SQL Model +extension-point.org.jkiss.dbeaver.sqlCommand.name = SQL script commands extension-point.org.jkiss.dbeaver.sqlFormatter.name = SQL formatters sql.formatter.default.name = Default formatter diff --git a/plugins/org.jkiss.dbeaver.model.sql/plugin.xml b/plugins/org.jkiss.dbeaver.model.sql/plugin.xml index ee111c4db4..88468b4766 100644 --- a/plugins/org.jkiss.dbeaver.model.sql/plugin.xml +++ b/plugins/org.jkiss.dbeaver.model.sql/plugin.xml @@ -3,6 +3,7 @@ + @@ -15,4 +16,10 @@ + + + + + + diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/schema/org.jkiss.dbeaver.sqlCommand.exsd b/plugins/org.jkiss.dbeaver.model.sql/schema/org.jkiss.dbeaver.sqlCommand.exsd similarity index 98% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/schema/org.jkiss.dbeaver.sqlCommand.exsd rename to plugins/org.jkiss.dbeaver.model.sql/schema/org.jkiss.dbeaver.sqlCommand.exsd index de8bdcbbd5..d9577d5e24 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/schema/org.jkiss.dbeaver.sqlCommand.exsd +++ b/plugins/org.jkiss.dbeaver.model.sql/schema/org.jkiss.dbeaver.sqlCommand.exsd @@ -53,7 +53,7 @@ - + diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLControlCommandHandler.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLControlCommandHandler.java similarity index 87% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLControlCommandHandler.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLControlCommandHandler.java index 050a490dd0..b7e30dfa81 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLControlCommandHandler.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLControlCommandHandler.java @@ -14,11 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jkiss.dbeaver.runtime.sql; +package org.jkiss.dbeaver.model.sql; import org.jkiss.dbeaver.DBException; -import org.jkiss.dbeaver.model.sql.SQLControlCommand; -import org.jkiss.dbeaver.model.sql.SQLScriptContext; /** * Control command handler diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLParametersProvider.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLParametersProvider.java similarity index 100% rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLParametersProvider.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLParametersProvider.java diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLQueryListener.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLQueryListener.java similarity index 88% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLQueryListener.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLQueryListener.java index 4ce1a9cd89..0286a766ba 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLQueryListener.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLQueryListener.java @@ -14,12 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jkiss.dbeaver.runtime.sql; +package org.jkiss.dbeaver.model.sql; import org.jkiss.dbeaver.model.exec.DBCSession; import org.jkiss.dbeaver.model.exec.DBCStatistics; -import org.jkiss.dbeaver.model.sql.SQLQuery; -import org.jkiss.dbeaver.model.sql.SQLQueryResult; /** * SQLQueryListener diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLScriptCommitType.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptCommitType.java similarity index 95% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLScriptCommitType.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptCommitType.java index 4b81078aac..d37733d37e 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLScriptCommitType.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptCommitType.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.jkiss.dbeaver.runtime.sql; +package org.jkiss.dbeaver.model.sql; /** * SQLScriptCommitType diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLScriptContext.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptContext.java similarity index 88% rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLScriptContext.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptContext.java index 8cb759c43f..5f8cf16fd0 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLScriptContext.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptContext.java @@ -19,8 +19,11 @@ package org.jkiss.dbeaver.model.sql; import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; +import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.DBPContextProvider; import org.jkiss.dbeaver.model.exec.DBCExecutionContext; +import org.jkiss.dbeaver.model.sql.registry.SQLCommandHandlerDescriptor; +import org.jkiss.dbeaver.model.sql.registry.SQLCommandsRegistry; import org.jkiss.utils.CommonUtils; import java.io.File; @@ -141,6 +144,17 @@ public class SQLScriptContext { this.ignoreParameters = ignoreParameters; } + public boolean executeControlCommand(SQLControlCommand command) throws DBException { + if (command.isEmptyCommand()) { + return true; + } + SQLCommandHandlerDescriptor commandHandler = SQLCommandsRegistry.getInstance().getCommandHandler(command.getCommandId()); + if (commandHandler == null) { + throw new DBException("Command '" + command.getCommand() + "' not supported"); + } + return commandHandler.createHandler().handleCommand(command, this); + } + public void copyFrom(SQLScriptContext context) { this.variables.clear(); this.variables.putAll(context.variables); diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLScriptErrorHandling.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptErrorHandling.java similarity index 95% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLScriptErrorHandling.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptErrorHandling.java index e4b0aec441..793a4d9a69 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLScriptErrorHandling.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptErrorHandling.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.jkiss.dbeaver.runtime.sql; +package org.jkiss.dbeaver.model.sql; /** * SQLScriptErrorHandling diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLScriptProcessConstants.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptProcessConstants.java similarity index 95% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLScriptProcessConstants.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptProcessConstants.java index 223df1849f..bc27df22b0 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/SQLScriptProcessConstants.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/SQLScriptProcessConstants.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jkiss.dbeaver.runtime.sql; +package org.jkiss.dbeaver.model.sql; /** * SQL statement pragmaas (execution flow controllers) diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandEcho.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/commands/SQLCommandEcho.java similarity index 92% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandEcho.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/commands/SQLCommandEcho.java index 0b8ca26480..ce57d2b7bf 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandEcho.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/commands/SQLCommandEcho.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jkiss.dbeaver.runtime.sql.commands; +package org.jkiss.dbeaver.model.sql.commands; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.sql.SQLControlCommand; +import org.jkiss.dbeaver.model.sql.SQLControlCommandHandler; import org.jkiss.dbeaver.model.sql.SQLScriptContext; import org.jkiss.dbeaver.model.sql.eval.ScriptVariablesResolver; -import org.jkiss.dbeaver.runtime.sql.SQLControlCommandHandler; import org.jkiss.dbeaver.utils.GeneralUtils; /** diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandExport.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/commands/SQLCommandExport.java similarity index 87% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandExport.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/commands/SQLCommandExport.java index 8158ce18fc..b98116e2c7 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandExport.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/commands/SQLCommandExport.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jkiss.dbeaver.runtime.sql.commands; +package org.jkiss.dbeaver.model.sql.commands; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.sql.SQLControlCommand; +import org.jkiss.dbeaver.model.sql.SQLControlCommandHandler; import org.jkiss.dbeaver.model.sql.SQLScriptContext; -import org.jkiss.dbeaver.runtime.sql.SQLControlCommandHandler; -import org.jkiss.dbeaver.runtime.sql.SQLScriptProcessConstants; +import org.jkiss.dbeaver.model.sql.SQLScriptProcessConstants; /** * Control command handler diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandSet.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/commands/SQLCommandSet.java similarity index 94% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandSet.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/commands/SQLCommandSet.java index 35b1ce6ca7..23f6977b02 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandSet.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/commands/SQLCommandSet.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jkiss.dbeaver.runtime.sql.commands; +package org.jkiss.dbeaver.model.sql.commands; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.exec.DBCException; import org.jkiss.dbeaver.model.sql.SQLControlCommand; +import org.jkiss.dbeaver.model.sql.SQLControlCommandHandler; import org.jkiss.dbeaver.model.sql.SQLScriptContext; -import org.jkiss.dbeaver.runtime.sql.SQLControlCommandHandler; import org.jkiss.dbeaver.utils.GeneralUtils; import org.jkiss.utils.CommonUtils; diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/eval/ScriptEvaluateEngine.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/eval/ScriptEvaluateEngine.java similarity index 100% rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/eval/ScriptEvaluateEngine.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/eval/ScriptEvaluateEngine.java diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/eval/ScriptVariablesContext.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/eval/ScriptVariablesContext.java similarity index 100% rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/eval/ScriptVariablesContext.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/eval/ScriptVariablesContext.java diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/eval/ScriptVariablesResolver.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/eval/ScriptVariablesResolver.java similarity index 100% rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/eval/ScriptVariablesResolver.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/eval/ScriptVariablesResolver.java diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLCommandHandlerDescriptor.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/registry/SQLCommandHandlerDescriptor.java similarity index 94% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLCommandHandlerDescriptor.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/registry/SQLCommandHandlerDescriptor.java index f7b7e18311..113cba82a2 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLCommandHandlerDescriptor.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/registry/SQLCommandHandlerDescriptor.java @@ -15,13 +15,13 @@ * limitations under the License. */ -package org.jkiss.dbeaver.ui.editors.sql.registry; +package org.jkiss.dbeaver.model.sql.registry; import org.eclipse.core.runtime.IConfigurationElement; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.DBPImage; import org.jkiss.dbeaver.model.impl.AbstractContextDescriptor; -import org.jkiss.dbeaver.runtime.sql.SQLControlCommandHandler; +import org.jkiss.dbeaver.model.sql.SQLControlCommandHandler; /** * SQLCommandHandlerDescriptor diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLCommandsRegistry.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/registry/SQLCommandsRegistry.java similarity index 97% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLCommandsRegistry.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/registry/SQLCommandsRegistry.java index b9f8b04066..6e3242e586 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLCommandsRegistry.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/registry/SQLCommandsRegistry.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jkiss.dbeaver.ui.editors.sql.registry; +package org.jkiss.dbeaver.model.sql.registry; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtensionRegistry; diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLQueryParameterRegistry.java b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/registry/SQLQueryParameterRegistry.java similarity index 99% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLQueryParameterRegistry.java rename to plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/registry/SQLQueryParameterRegistry.java index 05c03c0273..b3d30ac808 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLQueryParameterRegistry.java +++ b/plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/registry/SQLQueryParameterRegistry.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.jkiss.dbeaver.ui.editors.sql.registry; +package org.jkiss.dbeaver.model.sql.registry; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.Log; diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/META-INF/MANIFEST.MF b/plugins/org.jkiss.dbeaver.ui.editors.sql/META-INF/MANIFEST.MF index 76acd86f01..5b8d7b60df 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/META-INF/MANIFEST.MF +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/META-INF/MANIFEST.MF @@ -26,7 +26,6 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.ui.ide, org.eclipse.ui.workbench.texteditor;visibility:=reexport Export-Package: org.jkiss.dbeaver.runtime.sql, - org.jkiss.dbeaver.runtime.sql.commands, org.jkiss.dbeaver.ui.controls, org.jkiss.dbeaver.ui.controls.querylog, org.jkiss.dbeaver.ui.editors.sql, diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle.properties b/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle.properties index 3ee66b2879..db1aeb4dd3 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle.properties +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle.properties @@ -1,7 +1,6 @@ Bundle-Vendor = DBeaver Corp Bundle-Name = DBeaver UI Editors - SQL -extension-point.org.jkiss.dbeaver.sqlCommand.name = SQL script commands extension-point.org.jkiss.dbeaver.sql.covertname = SQL text conversions content-type.org.jkiss.dbeaver.sql.name = SQL Script diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_de.properties b/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_de.properties index 831dc96c72..3c2a65253d 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_de.properties +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_de.properties @@ -6,8 +6,6 @@ content-type.org.jkiss.dbeaver.sql.name = SQL-Skript editor.sql.name = SQL-Editor extension-point.org.jkiss.dbeaver.sql.covertname = SQL-Textkonvertierungen -extension-point.org.jkiss.dbeaver.sqlCommand.name = SQL-Skriptbefehle -extension-point.org.jkiss.dbeaver.sqlFormatter.name = SQL-Formatierer sql.convert.unformatted.text.description = Konvertiert SQL-Text in unformatierten einzeiligen Klartext sql.convert.unformatted.text.name = Unformatierter Text diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_fr.properties b/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_fr.properties index af7f34b0f8..aa8f313c38 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_fr.properties +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_fr.properties @@ -1,5 +1,3 @@ -extension-point.org.jkiss.dbeaver.sqlCommand.name = Commandes de scripts SQL -extension-point.org.jkiss.dbeaver.sqlFormatter.name = Formateurs SQL extension-point.org.jkiss.dbeaver.sql.covertname = Conversions textuelles SQL view.sql.results.title=Donn\u00E9es menu.database.sql.generate = G\u00E9n\u00E9rer du SQL diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_ko.properties b/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_ko.properties index e26e0f13b2..dd8c98bab8 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_ko.properties +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_ko.properties @@ -3,10 +3,6 @@ #Bundle-Vendor = DBeaver Corp #Bundle-Name = DBeaver UI Editors - SQL -extension-point.org.jkiss.dbeaver.sqlCommand.name = SQL \uC2A4\uD06C\uB9BD\uD2B8 \uBA85\uB839\uC5B4 -extension-point.org.jkiss.dbeaver.sqlFormatter.name = SQL \uD3EC\uB9F7\uD130 -extension-point.org.jkiss.dbeaver.sql.covertname = SQL \uD14D\uC2A4\uD2B8 \uBCC0\uD658 - content-type.org.jkiss.dbeaver.sql.name = SQL \uC2A4\uD06C\uB9BD\uD2B8 view.sql.results.title=\uB370\uC774\uD130 diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_zh.properties b/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_zh.properties index 5bf169e9c9..4c823a0322 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_zh.properties +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/OSGI-INF/l10n/bundle_zh.properties @@ -13,10 +13,6 @@ context.org.jkiss.dbeaver.ui.editors.sql.scriptname = SQL \u811A\u67 editor.sql.name = SQL \u7F16\u8F91\u5668 -extension-point.org.jkiss.dbeaver.sql.covertname = SQL \u6587\u672C\u8F6C\u6362 -extension-point.org.jkiss.dbeaver.sqlCommand.name = SQL \u811A\u672C\u547D\u4EE4 -extension-point.org.jkiss.dbeaver.sqlFormatter.name = SQL \u683C\u5F0F\u5316 - sql.convert.unformatted.text.description = \u5C06 SQL \u6587\u672C\u8F6C\u6362\u4E3A\u65E0\u683C\u5F0F\u7684\u5355\u884C\u666E\u901A\u6587\u672C sql.convert.unformatted.text.name = \u65E0\u683C\u5F0F\u6587\u672C diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/plugin.xml b/plugins/org.jkiss.dbeaver.ui.editors.sql/plugin.xml index fa41660d2c..57709efb3c 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/plugin.xml +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/plugin.xml @@ -4,8 +4,7 @@ - - + @@ -39,10 +38,7 @@ - - - - + diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java index d884da98cc..0c19077824 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java @@ -82,7 +82,6 @@ import org.jkiss.dbeaver.model.struct.DBSInstance; import org.jkiss.dbeaver.model.struct.DBSObject; import org.jkiss.dbeaver.model.struct.DBSObjectSelector; import org.jkiss.dbeaver.runtime.DBWorkbench; -import org.jkiss.dbeaver.runtime.sql.SQLQueryListener; import org.jkiss.dbeaver.runtime.sql.SQLResultsConsumer; import org.jkiss.dbeaver.runtime.ui.UIServiceConnections; import org.jkiss.dbeaver.tools.transfer.IDataTransferProducer; @@ -118,8 +117,8 @@ import org.jkiss.utils.IOUtils; import java.io.*; import java.net.URI; -import java.util.List; import java.util.*; +import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -2500,29 +2499,19 @@ public class SQLEditor extends SQLEditorBase implements } if (export) { - // Use special consumer and data containers - SQLQueryResultsConsumer resultsConsumer = new SQLQueryResultsConsumer(); - SQLQueryJob job = new SQLQueryJob( - getSite(), - "Export from query", - executionContext, - resultsContainer, - queries, - scriptContext, - resultsConsumer, - listener); - List producers = new ArrayList<>(); for (int i = 0; i < queries.size(); i++) { SQLScriptElement element = queries.get(i); if (element instanceof SQLControlCommand) { try { - job.executeControlCommand((SQLControlCommand) element); + scriptContext.executeControlCommand((SQLControlCommand) element); } catch (DBException e) { DBWorkbench.getPlatformUI().showError("Command error", "Error processing control command", e); } } else { SQLQuery query = (SQLQuery) element; + scriptContext.fillQueryParameters(query); + SQLQueryDataContainer dataContainer = new SQLQueryDataContainer(SQLEditor.this, query, scriptContext, log); producers.add(new DatabaseTransferProducer(dataContainer, null)); } diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java index bb729fef8a..b6125f0cd6 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java @@ -55,6 +55,7 @@ import org.jkiss.dbeaver.model.sql.*; import org.jkiss.dbeaver.model.sql.completion.SQLCompletionContext; import org.jkiss.dbeaver.model.sql.parser.SQLParserPartitions; import org.jkiss.dbeaver.model.sql.parser.SQLWordDetector; +import org.jkiss.dbeaver.model.sql.registry.SQLCommandsRegistry; import org.jkiss.dbeaver.model.text.TextUtils; import org.jkiss.dbeaver.runtime.DBWorkbench; import org.jkiss.dbeaver.ui.*; @@ -62,7 +63,6 @@ import org.jkiss.dbeaver.ui.editors.BaseTextEditorCommands; import org.jkiss.dbeaver.ui.editors.EditorUtils; import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages; import org.jkiss.dbeaver.ui.editors.sql.preferences.*; -import org.jkiss.dbeaver.ui.editors.sql.registry.SQLCommandsRegistry; import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLCharacterPairMatcher; import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLEditorCompletionContext; import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLPartitionScanner; diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandInclude.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/commands/SQLCommandInclude.java similarity index 93% rename from plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandInclude.java rename to plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/commands/SQLCommandInclude.java index bd8263c6da..159c271093 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/runtime/sql/commands/SQLCommandInclude.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/commands/SQLCommandInclude.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jkiss.dbeaver.runtime.sql.commands; +package org.jkiss.dbeaver.ui.editors.sql.commands; import org.eclipse.ui.IURIEditorInput; import org.eclipse.ui.IWorkbenchWindow; @@ -23,13 +23,8 @@ import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.DBUtils; import org.jkiss.dbeaver.model.exec.DBCSession; import org.jkiss.dbeaver.model.exec.DBCStatistics; -import org.jkiss.dbeaver.model.sql.SQLControlCommand; -import org.jkiss.dbeaver.model.sql.SQLQuery; -import org.jkiss.dbeaver.model.sql.SQLQueryResult; -import org.jkiss.dbeaver.model.sql.SQLScriptContext; +import org.jkiss.dbeaver.model.sql.*; import org.jkiss.dbeaver.model.sql.eval.ScriptVariablesResolver; -import org.jkiss.dbeaver.runtime.sql.SQLControlCommandHandler; -import org.jkiss.dbeaver.runtime.sql.SQLQueryListener; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.editors.StringEditorInput; import org.jkiss.dbeaver.ui.editors.sql.SQLEditor; diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/dialogs/SQLQueryParameterBindDialog.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/dialogs/SQLQueryParameterBindDialog.java index 045368d2d8..4a054a3a27 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/dialogs/SQLQueryParameterBindDialog.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/dialogs/SQLQueryParameterBindDialog.java @@ -35,6 +35,7 @@ import org.jkiss.dbeaver.model.sql.SQLQuery; import org.jkiss.dbeaver.model.sql.SQLQueryParameter; import org.jkiss.dbeaver.model.sql.SQLScriptContext; import org.jkiss.dbeaver.model.sql.SQLUtils; +import org.jkiss.dbeaver.model.sql.registry.SQLQueryParameterRegistry; import org.jkiss.dbeaver.runtime.DBWorkbench; import org.jkiss.dbeaver.runtime.ui.UIServiceSQL; import org.jkiss.dbeaver.ui.DBeaverIcons; @@ -42,13 +43,12 @@ import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.controls.CustomTableEditor; import org.jkiss.dbeaver.ui.controls.TableColumnSortListener; import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages; -import org.jkiss.dbeaver.ui.editors.sql.registry.SQLQueryParameterRegistry; import org.jkiss.dbeaver.utils.GeneralUtils; import org.jkiss.utils.CommonUtils; import java.io.StringWriter; -import java.util.List; import java.util.*; +import java.util.List; /** * Parameter binding diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/execute/SQLQueryJob.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/execute/SQLQueryJob.java index 209a9f5591..fe2ef3c216 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/execute/SQLQueryJob.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/execute/SQLQueryJob.java @@ -50,10 +50,7 @@ import org.jkiss.dbeaver.model.sql.parser.SQLSemanticProcessor; import org.jkiss.dbeaver.model.struct.DBSDataContainer; import org.jkiss.dbeaver.runtime.DBWorkbench; import org.jkiss.dbeaver.runtime.jobs.DataSourceJob; -import org.jkiss.dbeaver.runtime.sql.SQLQueryListener; import org.jkiss.dbeaver.runtime.sql.SQLResultsConsumer; -import org.jkiss.dbeaver.runtime.sql.SQLScriptCommitType; -import org.jkiss.dbeaver.runtime.sql.SQLScriptErrorHandling; import org.jkiss.dbeaver.runtime.ui.DBPPlatformUI; import org.jkiss.dbeaver.ui.UITask; import org.jkiss.dbeaver.ui.UIUtils; @@ -62,8 +59,6 @@ import org.jkiss.dbeaver.ui.dialogs.ConfirmationDialog; import org.jkiss.dbeaver.ui.dialogs.exec.ExecutionQueueErrorJob; import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants; import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorActivator; -import org.jkiss.dbeaver.ui.editors.sql.registry.SQLCommandHandlerDescriptor; -import org.jkiss.dbeaver.ui.editors.sql.registry.SQLCommandsRegistry; import org.jkiss.dbeaver.utils.RuntimeUtils; import org.jkiss.utils.CommonUtils; @@ -313,7 +308,7 @@ public class SQLQueryJob extends DataSourceJob { if (element instanceof SQLControlCommand) { try { - return executeControlCommand((SQLControlCommand)element); + return scriptContext.executeControlCommand((SQLControlCommand)element); } catch (Throwable e) { if (!(e instanceof DBException)) { log.error("Unexpected error while processing SQL command", e); @@ -556,17 +551,6 @@ public class SQLQueryJob extends DataSourceJob } } - public boolean executeControlCommand(SQLControlCommand command) throws DBException { - if (command.isEmptyCommand()) { - return true; - } - SQLCommandHandlerDescriptor commandHandler = SQLCommandsRegistry.getInstance().getCommandHandler(command.getCommandId()); - if (commandHandler == null) { - throw new DBException("Command '" + command.getCommand() + "' not supported"); - } - return commandHandler.createHandler().handleCommand(command, scriptContext); - } - private void showExecutionResult(DBCSession session) { if (statistics.getStatementsCount() > 1 || resultSetNumber == 0) { SQLQuery query = new SQLQuery(session.getDataSource(), "", -1, -1); diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/internal/SQLEditorPreferencesInitializer.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/internal/SQLEditorPreferencesInitializer.java index 236ba7cb99..252860c6ed 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/internal/SQLEditorPreferencesInitializer.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/internal/SQLEditorPreferencesInitializer.java @@ -19,10 +19,10 @@ package org.jkiss.dbeaver.ui.editors.sql.internal; import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; import org.eclipse.ui.texteditor.AbstractTextEditor; import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore; +import org.jkiss.dbeaver.model.sql.SQLScriptCommitType; +import org.jkiss.dbeaver.model.sql.SQLScriptErrorHandling; import org.jkiss.dbeaver.model.sql.completion.SQLCompletionContext; import org.jkiss.dbeaver.runtime.DBWorkbench; -import org.jkiss.dbeaver.runtime.sql.SQLScriptCommitType; -import org.jkiss.dbeaver.runtime.sql.SQLScriptErrorHandling; import org.jkiss.dbeaver.ui.editors.sql.SQLEditor; import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants; import org.jkiss.dbeaver.ui.editors.sql.SQLScriptBindingType; diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/preferences/PrefPageSQLExecute.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/preferences/PrefPageSQLExecute.java index 5de8572e64..d4a8f2d19b 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/preferences/PrefPageSQLExecute.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/preferences/PrefPageSQLExecute.java @@ -24,8 +24,8 @@ import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.ModelPreferences; import org.jkiss.dbeaver.model.DBPDataSourceContainer; import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore; -import org.jkiss.dbeaver.runtime.sql.SQLScriptCommitType; -import org.jkiss.dbeaver.runtime.sql.SQLScriptErrorHandling; +import org.jkiss.dbeaver.model.sql.SQLScriptCommitType; +import org.jkiss.dbeaver.model.sql.SQLScriptErrorHandling; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants; import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages; diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCommandCompletionProposal.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCommandCompletionProposal.java index 849e650a03..6684bc33c7 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCommandCompletionProposal.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCommandCompletionProposal.java @@ -12,7 +12,7 @@ package org.jkiss.dbeaver.ui.editors.sql.syntax; import org.jkiss.dbeaver.model.DBPKeywordType; import org.jkiss.dbeaver.model.sql.completion.SQLCompletionRequest; -import org.jkiss.dbeaver.ui.editors.sql.registry.SQLCommandHandlerDescriptor; +import org.jkiss.dbeaver.model.sql.registry.SQLCommandHandlerDescriptor; /** diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionProcessor.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionProcessor.java index 670f867cc1..694d6d0e0d 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionProcessor.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionProcessor.java @@ -35,11 +35,11 @@ import org.jkiss.dbeaver.model.sql.completion.SQLCompletionProposalBase; import org.jkiss.dbeaver.model.sql.completion.SQLCompletionRequest; import org.jkiss.dbeaver.model.sql.parser.SQLParserPartitions; import org.jkiss.dbeaver.model.sql.parser.SQLWordPartDetector; +import org.jkiss.dbeaver.model.sql.registry.SQLCommandHandlerDescriptor; +import org.jkiss.dbeaver.model.sql.registry.SQLCommandsRegistry; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase; import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants; -import org.jkiss.dbeaver.ui.editors.sql.registry.SQLCommandHandlerDescriptor; -import org.jkiss.dbeaver.ui.editors.sql.registry.SQLCommandsRegistry; import org.jkiss.dbeaver.ui.editors.sql.templates.SQLContext; import org.jkiss.dbeaver.ui.editors.sql.templates.SQLTemplateCompletionProposal; import org.jkiss.dbeaver.ui.editors.sql.templates.SQLTemplatesRegistry; diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLRuleManager.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLRuleManager.java index e45869d880..69aad1067e 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLRuleManager.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLRuleManager.java @@ -33,12 +33,12 @@ import org.jkiss.dbeaver.model.sql.SQLConstants; import org.jkiss.dbeaver.model.sql.SQLDialect; import org.jkiss.dbeaver.model.sql.SQLSyntaxManager; import org.jkiss.dbeaver.model.sql.parser.SQLWordDetector; +import org.jkiss.dbeaver.model.sql.registry.SQLCommandHandlerDescriptor; +import org.jkiss.dbeaver.model.sql.registry.SQLCommandsRegistry; import org.jkiss.dbeaver.runtime.DBWorkbench; import org.jkiss.dbeaver.runtime.sql.SQLRuleProvider; import org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase; import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants; -import org.jkiss.dbeaver.ui.editors.sql.registry.SQLCommandHandlerDescriptor; -import org.jkiss.dbeaver.ui.editors.sql.registry.SQLCommandsRegistry; import org.jkiss.dbeaver.ui.editors.sql.syntax.rules.*; import org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.*; import org.jkiss.dbeaver.ui.editors.text.TextWhiteSpaceDetector; diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/rules/SQLCommandRule.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/rules/SQLCommandRule.java index b57570dbb8..bbb2d7e299 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/rules/SQLCommandRule.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/syntax/rules/SQLCommandRule.java @@ -18,7 +18,7 @@ package org.jkiss.dbeaver.ui.editors.sql.syntax.rules; import org.eclipse.jface.text.rules.EndOfLineRule; import org.eclipse.jface.text.rules.ICharacterScanner; -import org.jkiss.dbeaver.ui.editors.sql.registry.SQLCommandHandlerDescriptor; +import org.jkiss.dbeaver.model.sql.registry.SQLCommandHandlerDescriptor; import org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.SQLControlToken; public class SQLCommandRule extends EndOfLineRule { -- GitLab