diff --git a/plugins/org.jkiss.dbeaver.ext.exasol/plugin.xml b/plugins/org.jkiss.dbeaver.ext.exasol/plugin.xml
index cfdef6a3e5e61dc1e1777188a883e69e0f1c931a..88fcbdede2296fa76b3d46a4ced891785b767ab4 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 4d1ddcf9a559624c32fa6ceda68f96b22b26356c..86124e8d57625dd48ed8a7be28b880f641277329 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 35bf848461be69c21b98ffffea33b43f86bd0803..31a68bda372bf1633f31d5cf6e9079e1652d4be3 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 f8b2f938c3de18ef8ff7720e25272b42ba8933a5..c033807940b32984022a5673f96d74e6ac8a6256 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 ee111c4db4be62338b6122677b17e6524dba74aa..88468b47660f9ce51daa8b7a71ab09d746ebea38 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 de8bdcbbd58b28ef934ad10575787839c18c3cad..d9577d5e241f8d614b994f8821dd7bb9f3b20485 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 050a490dd0d8af42380f8457554e7bf7cf61b02e..b7e30dfa815cc612e5a34d75876c45497de40f4b 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 4ce1a9cd892749d3e6b36929d0916af8eda974c4..0286a766bab5a45f929c0baec0dec35f316573a2 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 4b81078aac171494969b219931ffc49c835091b2..d37733d37ec613897f3afe49d366206ba37218ba 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 8cb759c43f0d6d6f81a2e55f9f1622d0647e4592..5f8cf16fd097fd709cacccd6c18ad847aa0c9665 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 e4b0aec441b02fa9af2a06e0eb2d96424bceb2bd..793a4d9a69d91f157c2e12833e1916f0e57a9c07 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 223df1849fc7bb560b9fca64c1dce0af23b37176..bc27df22b02adcadd5b8cd1c9bef906efcdead1e 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 0b8ca26480250f76c546d727133d80841c86988d..ce57d2b7bf669db3262821af3f949b30ae0364f3 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 8158ce18fc19f538fec45e8a30012a433e2339bb..b98116e2c757128d7f7d92e24af5209f02f2d2f0 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 35b1ce6ca7880882bd129bd8b5ae4710b2fc93ca..23f6977b024bf749ba354b5356068a59e90f2176 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 f7b7e1831141fee500721947d5d415de97937352..113cba82a2b1d8595e7578d75c23b3973d1a4051 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 b9f8b04066365c37913d251d7d382b498d778fee..6e3242e58689bf5275e0987be56aae9fae417ab5 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 05c03c0273601ef34340206bf53e630207c03adf..b3d30ac808ccf73419806735374e0a98b1e65836 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 76acd86f01adff00e078fd1af185b08e63d3641c..5b8d7b60dfb598732f1267d2a3fb31bf2e432cd5 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 3ee66b2879f376107ff802e4f6ce3d9b25b2b424..db1aeb4dd359b93789cb7300a2e6d3afe0d3ed1b 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 831dc96c72b02161c86ce91d32464b71068b868a..3c2a65253dde740b48e5a40f03f4e656f5f5009e 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 af7f34b0f84ec046dcf696f0df742b946d32d83a..aa8f313c38cc7dc713f60217c3f525dbe2f5ce0c 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 e26e0f13b2bde711245213f12f2ce802b9d8c052..dd8c98bab8876bbd68163f85b555919b589bd151 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 5bf169e9c98131f8c71c7bf42a6103f76d9c6b0f..4c823a0322f1f57645f57b9f70a7242983040b5e 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 fa41660d2c2ff24ba64e44de904ae94a2e1760db..57709efb3c4f82a94aabcd78ca063e8c284ac808 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 d884da98cc445a4e4d969182bcc455d42a11bb3b..0c19077824b851b334f95da72cf187d78fad3774 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 bb729fef8a98619f2ca9cd5f9b24d07cab4918f2..b6125f0cd6c5eaa6b522862871f25d4a3cfcd173 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 bd8263c6da57109e9b2d45953353847530796dda..159c271093affdef75c541b69907d8693cdbc4af 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 045368d2d817cee62a41778c6ce2ac05bda62124..4a054a3a27ffa9e765a063c3f2836b172a3b18a8 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 209a9f5591ff1e777d93791ddab8933050829c5b..fe2ef3c216ee20bf11612946422aca93b462cb65 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 236ba7cb9911079a909d1872a302b2ad5491c64a..252860c6ed01a88714fa428d5819cbf493abc5ff 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 5de8572e64b0ef3acbf86aac545f94c139de6d74..d4a8f2d19bec994dc224da6b3db8a79df595c70b 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 849e650a038f228ab69386f915af195883ec83b1..6684bc33c7734d10fdbba0b9713fa2916b9e5a91 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 670f867cc1301998f09923a25f34f5323d5b8f96..694d6d0e0d801a247ef03d1e37643da4306c8206 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 e45869d88036088e0d730b39c3c639f7641b73cc..69aad1067e22985c7b6314f9869c617d410f6aaa 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 b57570dbb84263645692e7a551924bece28447f6..bbb2d7e299da8c4fb107e191cf4d05e30c1ccfd5 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 {