提交 afccf25d 编写于 作者: S Serge Rider

#6041 SQL model refactoring. Export from query process flow redesign.


Former-commit-id: acf41858
上级 27961195
...@@ -561,7 +561,7 @@ ...@@ -561,7 +561,7 @@
</extension> </extension>
<extension point="org.jkiss.dbeaver.sqlCommand"> <extension point="org.jkiss.dbeaver.sqlCommand">
<command id="exasol.define" class="org.jkiss.dbeaver.runtime.sql.commands.SQLCommandSet" label="Define" description="Defines variable"/> <command id="exasol.define" class="org.jkiss.dbeaver.model.sql.commands.SQLCommandSet" label="Define" description="Defines variable"/>
</extension> </extension>
<extension point="org.eclipse.core.runtime.adapters"> <extension point="org.eclipse.core.runtime.adapters">
......
...@@ -300,7 +300,7 @@ ...@@ -300,7 +300,7 @@
</extension> </extension>
<extension point="org.jkiss.dbeaver.sqlCommand"> <extension point="org.jkiss.dbeaver.sqlCommand">
<command id="mysql.source" class="org.jkiss.dbeaver.runtime.sql.commands.SQLCommandInclude" label="Include" description="Include another MySQL script file"/> <command id="mysql.source" class="org.jkiss.dbeaver.ui.editors.sql.commands.SQLCommandInclude" label="Include" description="Include another MySQL script file"/>
</extension> </extension>
<extension point="org.jkiss.dbeaver.dashboard"> <extension point="org.jkiss.dbeaver.dashboard">
......
...@@ -9,8 +9,10 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 ...@@ -9,8 +9,10 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-Activator: org.jkiss.dbeaver.model.sql.internal.SQLModelActivator Bundle-Activator: org.jkiss.dbeaver.model.sql.internal.SQLModelActivator
Export-Package: org.jkiss.dbeaver.model.sql, Export-Package: org.jkiss.dbeaver.model.sql,
org.jkiss.dbeaver.model.sql.commands,
org.jkiss.dbeaver.model.sql.completion, org.jkiss.dbeaver.model.sql.completion,
org.jkiss.dbeaver.model.sql.data, org.jkiss.dbeaver.model.sql.data,
org.jkiss.dbeaver.model.sql.eval,
org.jkiss.dbeaver.model.sql.format, org.jkiss.dbeaver.model.sql.format,
org.jkiss.dbeaver.model.sql.format.external, org.jkiss.dbeaver.model.sql.format.external,
org.jkiss.dbeaver.model.sql.format.tokenized, org.jkiss.dbeaver.model.sql.format.tokenized,
......
Bundle-Vendor = JKISS Bundle-Vendor = JKISS
Bundle-Name = DBeaver SQL Model Bundle-Name = DBeaver SQL Model
extension-point.org.jkiss.dbeaver.sqlCommand.name = SQL script commands
extension-point.org.jkiss.dbeaver.sqlFormatter.name = SQL formatters extension-point.org.jkiss.dbeaver.sqlFormatter.name = SQL formatters
sql.formatter.default.name = Default formatter sql.formatter.default.name = Default formatter
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<plugin> <plugin>
<extension-point id="org.jkiss.dbeaver.sqlFormatter" name="%extension-point.org.jkiss.dbeaver.sqlFormatter.name" schema="schema/org.jkiss.dbeaver.sqlFormatter.exsd"/> <extension-point id="org.jkiss.dbeaver.sqlFormatter" name="%extension-point.org.jkiss.dbeaver.sqlFormatter.name" schema="schema/org.jkiss.dbeaver.sqlFormatter.exsd"/>
<extension-point id="org.jkiss.dbeaver.sqlCommand" name="%extension-point.org.jkiss.dbeaver.sqlCommand.name" schema="schema/org.jkiss.dbeaver.sqlCommand.exsd"/>
<extension point="org.eclipse.core.runtime.preferences"> <extension point="org.eclipse.core.runtime.preferences">
<initializer class="org.jkiss.dbeaver.model.sql.internal.SQLModelPreferencesInitializer"/> <initializer class="org.jkiss.dbeaver.model.sql.internal.SQLModelPreferencesInitializer"/>
...@@ -15,4 +16,10 @@ ...@@ -15,4 +16,10 @@
<formatter id="external" class="org.jkiss.dbeaver.model.sql.format.external.SQLFormatterExternal" label="%sql.formatter.external.name" description="%sql.formatter.external.tip"/> <formatter id="external" class="org.jkiss.dbeaver.model.sql.format.external.SQLFormatterExternal" label="%sql.formatter.external.name" description="%sql.formatter.external.tip"/>
</extension> </extension>
<extension point="org.jkiss.dbeaver.sqlCommand">
<command id="set" class="org.jkiss.dbeaver.model.sql.commands.SQLCommandSet" label="Set" description="Sets variable/parameter value"/>
<command id="echo" class="org.jkiss.dbeaver.model.sql.commands.SQLCommandEcho" label="Echo" description="Prints string to Output log"/>
<command id="export" class="org.jkiss.dbeaver.model.sql.commands.SQLCommandExport" label="Export resultset" description="Export results of the next query. Launches data transfer process."/>
</extension>
</plugin> </plugin>
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
</documentation> </documentation>
<appInfo> <appInfo>
<meta.attribute kind="java" basedOn=":org.jkiss.dbeaver.runtime.sql.SQLControlCommandHandler"/> <meta.attribute kind="java" basedOn=":org.jkiss.dbeaver.model.sql.SQLControlCommandHandler"/>
</appInfo> </appInfo>
</annotation> </annotation>
</attribute> </attribute>
......
...@@ -14,11 +14,9 @@ ...@@ -14,11 +14,9 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * 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.DBException;
import org.jkiss.dbeaver.model.sql.SQLControlCommand;
import org.jkiss.dbeaver.model.sql.SQLScriptContext;
/** /**
* Control command handler * Control command handler
......
...@@ -14,12 +14,10 @@ ...@@ -14,12 +14,10 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * 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.DBCSession;
import org.jkiss.dbeaver.model.exec.DBCStatistics; import org.jkiss.dbeaver.model.exec.DBCStatistics;
import org.jkiss.dbeaver.model.sql.SQLQuery;
import org.jkiss.dbeaver.model.sql.SQLQueryResult;
/** /**
* SQLQueryListener * SQLQueryListener
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jkiss.dbeaver.runtime.sql; package org.jkiss.dbeaver.model.sql;
/** /**
* SQLScriptCommitType * SQLScriptCommitType
......
...@@ -19,8 +19,11 @@ package org.jkiss.dbeaver.model.sql; ...@@ -19,8 +19,11 @@ package org.jkiss.dbeaver.model.sql;
import org.jkiss.code.NotNull; import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable; import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBPContextProvider; import org.jkiss.dbeaver.model.DBPContextProvider;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext; 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 org.jkiss.utils.CommonUtils;
import java.io.File; import java.io.File;
...@@ -141,6 +144,17 @@ public class SQLScriptContext { ...@@ -141,6 +144,17 @@ public class SQLScriptContext {
this.ignoreParameters = ignoreParameters; 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) { public void copyFrom(SQLScriptContext context) {
this.variables.clear(); this.variables.clear();
this.variables.putAll(context.variables); this.variables.putAll(context.variables);
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jkiss.dbeaver.runtime.sql; package org.jkiss.dbeaver.model.sql;
/** /**
* SQLScriptErrorHandling * SQLScriptErrorHandling
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.jkiss.dbeaver.runtime.sql; package org.jkiss.dbeaver.model.sql;
/** /**
* SQL statement pragmaas (execution flow controllers) * SQL statement pragmaas (execution flow controllers)
......
...@@ -14,13 +14,13 @@ ...@@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * 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.DBException;
import org.jkiss.dbeaver.model.sql.SQLControlCommand; 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.SQLScriptContext;
import org.jkiss.dbeaver.model.sql.eval.ScriptVariablesResolver; import org.jkiss.dbeaver.model.sql.eval.ScriptVariablesResolver;
import org.jkiss.dbeaver.runtime.sql.SQLControlCommandHandler;
import org.jkiss.dbeaver.utils.GeneralUtils; import org.jkiss.dbeaver.utils.GeneralUtils;
/** /**
......
...@@ -14,13 +14,13 @@ ...@@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * 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.DBException;
import org.jkiss.dbeaver.model.sql.SQLControlCommand; 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.SQLScriptContext;
import org.jkiss.dbeaver.runtime.sql.SQLControlCommandHandler; import org.jkiss.dbeaver.model.sql.SQLScriptProcessConstants;
import org.jkiss.dbeaver.runtime.sql.SQLScriptProcessConstants;
/** /**
* Control command handler * Control command handler
......
...@@ -14,13 +14,13 @@ ...@@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * 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.DBException;
import org.jkiss.dbeaver.model.exec.DBCException; import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.sql.SQLControlCommand; 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.SQLScriptContext;
import org.jkiss.dbeaver.runtime.sql.SQLControlCommandHandler;
import org.jkiss.dbeaver.utils.GeneralUtils; import org.jkiss.dbeaver.utils.GeneralUtils;
import org.jkiss.utils.CommonUtils; import org.jkiss.utils.CommonUtils;
......
...@@ -15,13 +15,13 @@ ...@@ -15,13 +15,13 @@
* limitations under the License. * 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.IConfigurationElement;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBPImage; import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.impl.AbstractContextDescriptor; import org.jkiss.dbeaver.model.impl.AbstractContextDescriptor;
import org.jkiss.dbeaver.runtime.sql.SQLControlCommandHandler; import org.jkiss.dbeaver.model.sql.SQLControlCommandHandler;
/** /**
* SQLCommandHandlerDescriptor * SQLCommandHandlerDescriptor
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * 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.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.IExtensionRegistry;
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* limitations under the License. * 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.DBException;
import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.Log;
......
...@@ -26,7 +26,6 @@ Require-Bundle: org.eclipse.core.runtime, ...@@ -26,7 +26,6 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.ui.ide, org.eclipse.ui.ide,
org.eclipse.ui.workbench.texteditor;visibility:=reexport org.eclipse.ui.workbench.texteditor;visibility:=reexport
Export-Package: org.jkiss.dbeaver.runtime.sql, Export-Package: org.jkiss.dbeaver.runtime.sql,
org.jkiss.dbeaver.runtime.sql.commands,
org.jkiss.dbeaver.ui.controls, org.jkiss.dbeaver.ui.controls,
org.jkiss.dbeaver.ui.controls.querylog, org.jkiss.dbeaver.ui.controls.querylog,
org.jkiss.dbeaver.ui.editors.sql, org.jkiss.dbeaver.ui.editors.sql,
......
Bundle-Vendor = DBeaver Corp Bundle-Vendor = DBeaver Corp
Bundle-Name = DBeaver UI Editors - SQL 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 extension-point.org.jkiss.dbeaver.sql.covertname = SQL text conversions
content-type.org.jkiss.dbeaver.sql.name = SQL Script content-type.org.jkiss.dbeaver.sql.name = SQL Script
......
...@@ -6,8 +6,6 @@ content-type.org.jkiss.dbeaver.sql.name = SQL-Skript ...@@ -6,8 +6,6 @@ content-type.org.jkiss.dbeaver.sql.name = SQL-Skript
editor.sql.name = SQL-Editor editor.sql.name = SQL-Editor
extension-point.org.jkiss.dbeaver.sql.covertname = SQL-Textkonvertierungen 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.description = Konvertiert SQL-Text in unformatierten einzeiligen Klartext
sql.convert.unformatted.text.name = Unformatierter Text sql.convert.unformatted.text.name = Unformatierter Text
......
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 extension-point.org.jkiss.dbeaver.sql.covertname = Conversions textuelles SQL
view.sql.results.title=Donn\u00E9es view.sql.results.title=Donn\u00E9es
menu.database.sql.generate = G\u00E9n\u00E9rer du SQL menu.database.sql.generate = G\u00E9n\u00E9rer du SQL
......
...@@ -3,10 +3,6 @@ ...@@ -3,10 +3,6 @@
#Bundle-Vendor = DBeaver Corp #Bundle-Vendor = DBeaver Corp
#Bundle-Name = DBeaver UI Editors - SQL #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 content-type.org.jkiss.dbeaver.sql.name = SQL \uC2A4\uD06C\uB9BD\uD2B8
view.sql.results.title=\uB370\uC774\uD130 view.sql.results.title=\uB370\uC774\uD130
......
...@@ -13,10 +13,6 @@ context.org.jkiss.dbeaver.ui.editors.sql.scriptname = SQL \u811A\u67 ...@@ -13,10 +13,6 @@ context.org.jkiss.dbeaver.ui.editors.sql.scriptname = SQL \u811A\u67
editor.sql.name = SQL \u7F16\u8F91\u5668 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.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 sql.convert.unformatted.text.name = \u65E0\u683C\u5F0F\u6587\u672C
......
...@@ -4,8 +4,7 @@ ...@@ -4,8 +4,7 @@
<plugin> <plugin>
<extension-point id="org.jkiss.dbeaver.sql.covert" name="%extension-point.org.jkiss.dbeaver.sql.covertname" schema="schema/org.jkiss.dbeaver.sql.convert.exsd"/> <extension-point id="org.jkiss.dbeaver.sql.covert" name="%extension-point.org.jkiss.dbeaver.sql.covertname" schema="schema/org.jkiss.dbeaver.sql.convert.exsd"/>
<extension-point id="org.jkiss.dbeaver.sqlCommand" name="%extension-point.org.jkiss.dbeaver.sqlCommand.name" schema="schema/org.jkiss.dbeaver.sqlCommand.exsd"/> <extension-point id="org.jkiss.dbeaver.sqlPresentation" name="%extension-point.org.jkiss.dbeaver.sqlPresentation.name" schema="schema/org.jkiss.dbeaver.sqlPresentation.exsd"/>
<extension-point id="org.jkiss.dbeaver.sqlPresentation" name="%extension-point.org.jkiss.dbeaver.sqlCommand.name" schema="schema/org.jkiss.dbeaver.sqlPresentation.exsd"/>
<extension-point id="org.jkiss.dbeaver.sql.plan.view" name="%extension-point.org.jkiss.dbeaver.sqlPlanView.name" schema="schema/org.jkiss.dbeaver.sqlPlanView.exsd"/> <extension-point id="org.jkiss.dbeaver.sql.plan.view" name="%extension-point.org.jkiss.dbeaver.sqlPlanView.name" schema="schema/org.jkiss.dbeaver.sqlPlanView.exsd"/>
<extension point="org.eclipse.core.runtime.preferences"> <extension point="org.eclipse.core.runtime.preferences">
...@@ -39,10 +38,7 @@ ...@@ -39,10 +38,7 @@
</extension> </extension>
<extension point="org.jkiss.dbeaver.sqlCommand"> <extension point="org.jkiss.dbeaver.sqlCommand">
<command id="set" class="org.jkiss.dbeaver.runtime.sql.commands.SQLCommandSet" label="Set" description="Sets variable/parameter value"/> <command id="include" class="org.jkiss.dbeaver.ui.editors.sql.commands.SQLCommandInclude" label="Include" description="Include another SQL script file"/>
<command id="echo" class="org.jkiss.dbeaver.runtime.sql.commands.SQLCommandEcho" label="Echo" description="Prints string to Output log"/>
<command id="include" class="org.jkiss.dbeaver.runtime.sql.commands.SQLCommandInclude" label="Include" description="Include another SQL script file"/>
<command id="export" class="org.jkiss.dbeaver.runtime.sql.commands.SQLCommandExport" label="Export resultset" description="Export results of the next query. Launches data transfer process."/>
</extension> </extension>
<extension point="org.jkiss.dbeaver.sql.plan.view"> <extension point="org.jkiss.dbeaver.sql.plan.view">
......
...@@ -82,7 +82,6 @@ import org.jkiss.dbeaver.model.struct.DBSInstance; ...@@ -82,7 +82,6 @@ import org.jkiss.dbeaver.model.struct.DBSInstance;
import org.jkiss.dbeaver.model.struct.DBSObject; import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.DBSObjectSelector; import org.jkiss.dbeaver.model.struct.DBSObjectSelector;
import org.jkiss.dbeaver.runtime.DBWorkbench; 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.sql.SQLResultsConsumer;
import org.jkiss.dbeaver.runtime.ui.UIServiceConnections; import org.jkiss.dbeaver.runtime.ui.UIServiceConnections;
import org.jkiss.dbeaver.tools.transfer.IDataTransferProducer; import org.jkiss.dbeaver.tools.transfer.IDataTransferProducer;
...@@ -118,8 +117,8 @@ import org.jkiss.utils.IOUtils; ...@@ -118,8 +117,8 @@ import org.jkiss.utils.IOUtils;
import java.io.*; import java.io.*;
import java.net.URI; import java.net.URI;
import java.util.List;
import java.util.*; import java.util.*;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -2500,29 +2499,19 @@ public class SQLEditor extends SQLEditorBase implements ...@@ -2500,29 +2499,19 @@ public class SQLEditor extends SQLEditorBase implements
} }
if (export) { 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<IDataTransferProducer> producers = new ArrayList<>(); List<IDataTransferProducer> producers = new ArrayList<>();
for (int i = 0; i < queries.size(); i++) { for (int i = 0; i < queries.size(); i++) {
SQLScriptElement element = queries.get(i); SQLScriptElement element = queries.get(i);
if (element instanceof SQLControlCommand) { if (element instanceof SQLControlCommand) {
try { try {
job.executeControlCommand((SQLControlCommand) element); scriptContext.executeControlCommand((SQLControlCommand) element);
} catch (DBException e) { } catch (DBException e) {
DBWorkbench.getPlatformUI().showError("Command error", "Error processing control command", e); DBWorkbench.getPlatformUI().showError("Command error", "Error processing control command", e);
} }
} else { } else {
SQLQuery query = (SQLQuery) element; SQLQuery query = (SQLQuery) element;
scriptContext.fillQueryParameters(query);
SQLQueryDataContainer dataContainer = new SQLQueryDataContainer(SQLEditor.this, query, scriptContext, log); SQLQueryDataContainer dataContainer = new SQLQueryDataContainer(SQLEditor.this, query, scriptContext, log);
producers.add(new DatabaseTransferProducer(dataContainer, null)); producers.add(new DatabaseTransferProducer(dataContainer, null));
} }
......
...@@ -55,6 +55,7 @@ import org.jkiss.dbeaver.model.sql.*; ...@@ -55,6 +55,7 @@ import org.jkiss.dbeaver.model.sql.*;
import org.jkiss.dbeaver.model.sql.completion.SQLCompletionContext; import org.jkiss.dbeaver.model.sql.completion.SQLCompletionContext;
import org.jkiss.dbeaver.model.sql.parser.SQLParserPartitions; import org.jkiss.dbeaver.model.sql.parser.SQLParserPartitions;
import org.jkiss.dbeaver.model.sql.parser.SQLWordDetector; 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.model.text.TextUtils;
import org.jkiss.dbeaver.runtime.DBWorkbench; import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.ui.*; import org.jkiss.dbeaver.ui.*;
...@@ -62,7 +63,6 @@ import org.jkiss.dbeaver.ui.editors.BaseTextEditorCommands; ...@@ -62,7 +63,6 @@ import org.jkiss.dbeaver.ui.editors.BaseTextEditorCommands;
import org.jkiss.dbeaver.ui.editors.EditorUtils; import org.jkiss.dbeaver.ui.editors.EditorUtils;
import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages; import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages;
import org.jkiss.dbeaver.ui.editors.sql.preferences.*; 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.SQLCharacterPairMatcher;
import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLEditorCompletionContext; import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLEditorCompletionContext;
import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLPartitionScanner; import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLPartitionScanner;
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * 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.IURIEditorInput;
import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.IWorkbenchWindow;
...@@ -23,13 +23,8 @@ import org.jkiss.dbeaver.DBException; ...@@ -23,13 +23,8 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBUtils; import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.exec.DBCSession; import org.jkiss.dbeaver.model.exec.DBCSession;
import org.jkiss.dbeaver.model.exec.DBCStatistics; import org.jkiss.dbeaver.model.exec.DBCStatistics;
import org.jkiss.dbeaver.model.sql.SQLControlCommand; import org.jkiss.dbeaver.model.sql.*;
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.eval.ScriptVariablesResolver; 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.UIUtils;
import org.jkiss.dbeaver.ui.editors.StringEditorInput; import org.jkiss.dbeaver.ui.editors.StringEditorInput;
import org.jkiss.dbeaver.ui.editors.sql.SQLEditor; import org.jkiss.dbeaver.ui.editors.sql.SQLEditor;
......
...@@ -35,6 +35,7 @@ import org.jkiss.dbeaver.model.sql.SQLQuery; ...@@ -35,6 +35,7 @@ import org.jkiss.dbeaver.model.sql.SQLQuery;
import org.jkiss.dbeaver.model.sql.SQLQueryParameter; import org.jkiss.dbeaver.model.sql.SQLQueryParameter;
import org.jkiss.dbeaver.model.sql.SQLScriptContext; import org.jkiss.dbeaver.model.sql.SQLScriptContext;
import org.jkiss.dbeaver.model.sql.SQLUtils; 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.DBWorkbench;
import org.jkiss.dbeaver.runtime.ui.UIServiceSQL; import org.jkiss.dbeaver.runtime.ui.UIServiceSQL;
import org.jkiss.dbeaver.ui.DBeaverIcons; import org.jkiss.dbeaver.ui.DBeaverIcons;
...@@ -42,13 +43,12 @@ import org.jkiss.dbeaver.ui.UIUtils; ...@@ -42,13 +43,12 @@ import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.CustomTableEditor; import org.jkiss.dbeaver.ui.controls.CustomTableEditor;
import org.jkiss.dbeaver.ui.controls.TableColumnSortListener; import org.jkiss.dbeaver.ui.controls.TableColumnSortListener;
import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages; 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.dbeaver.utils.GeneralUtils;
import org.jkiss.utils.CommonUtils; import org.jkiss.utils.CommonUtils;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.List;
import java.util.*; import java.util.*;
import java.util.List;
/** /**
* Parameter binding * Parameter binding
......
...@@ -50,10 +50,7 @@ import org.jkiss.dbeaver.model.sql.parser.SQLSemanticProcessor; ...@@ -50,10 +50,7 @@ import org.jkiss.dbeaver.model.sql.parser.SQLSemanticProcessor;
import org.jkiss.dbeaver.model.struct.DBSDataContainer; import org.jkiss.dbeaver.model.struct.DBSDataContainer;
import org.jkiss.dbeaver.runtime.DBWorkbench; import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.runtime.jobs.DataSourceJob; 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.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.runtime.ui.DBPPlatformUI;
import org.jkiss.dbeaver.ui.UITask; import org.jkiss.dbeaver.ui.UITask;
import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.UIUtils;
...@@ -62,8 +59,6 @@ import org.jkiss.dbeaver.ui.dialogs.ConfirmationDialog; ...@@ -62,8 +59,6 @@ import org.jkiss.dbeaver.ui.dialogs.ConfirmationDialog;
import org.jkiss.dbeaver.ui.dialogs.exec.ExecutionQueueErrorJob; import org.jkiss.dbeaver.ui.dialogs.exec.ExecutionQueueErrorJob;
import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants; import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants;
import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorActivator; 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.dbeaver.utils.RuntimeUtils;
import org.jkiss.utils.CommonUtils; import org.jkiss.utils.CommonUtils;
...@@ -313,7 +308,7 @@ public class SQLQueryJob extends DataSourceJob ...@@ -313,7 +308,7 @@ public class SQLQueryJob extends DataSourceJob
{ {
if (element instanceof SQLControlCommand) { if (element instanceof SQLControlCommand) {
try { try {
return executeControlCommand((SQLControlCommand)element); return scriptContext.executeControlCommand((SQLControlCommand)element);
} catch (Throwable e) { } catch (Throwable e) {
if (!(e instanceof DBException)) { if (!(e instanceof DBException)) {
log.error("Unexpected error while processing SQL command", e); log.error("Unexpected error while processing SQL command", e);
...@@ -556,17 +551,6 @@ public class SQLQueryJob extends DataSourceJob ...@@ -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) { private void showExecutionResult(DBCSession session) {
if (statistics.getStatementsCount() > 1 || resultSetNumber == 0) { if (statistics.getStatementsCount() > 1 || resultSetNumber == 0) {
SQLQuery query = new SQLQuery(session.getDataSource(), "", -1, -1); SQLQuery query = new SQLQuery(session.getDataSource(), "", -1, -1);
......
...@@ -19,10 +19,10 @@ package org.jkiss.dbeaver.ui.editors.sql.internal; ...@@ -19,10 +19,10 @@ package org.jkiss.dbeaver.ui.editors.sql.internal;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.ui.texteditor.AbstractTextEditor; import org.eclipse.ui.texteditor.AbstractTextEditor;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore; 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.model.sql.completion.SQLCompletionContext;
import org.jkiss.dbeaver.runtime.DBWorkbench; 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.SQLEditor;
import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants; import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants;
import org.jkiss.dbeaver.ui.editors.sql.SQLScriptBindingType; import org.jkiss.dbeaver.ui.editors.sql.SQLScriptBindingType;
......
...@@ -24,8 +24,8 @@ import org.jkiss.dbeaver.Log; ...@@ -24,8 +24,8 @@ import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ModelPreferences; import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.model.DBPDataSourceContainer; import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore; import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.runtime.sql.SQLScriptCommitType; import org.jkiss.dbeaver.model.sql.SQLScriptCommitType;
import org.jkiss.dbeaver.runtime.sql.SQLScriptErrorHandling; import org.jkiss.dbeaver.model.sql.SQLScriptErrorHandling;
import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants; import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants;
import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages; import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages;
......
...@@ -12,7 +12,7 @@ package org.jkiss.dbeaver.ui.editors.sql.syntax; ...@@ -12,7 +12,7 @@ package org.jkiss.dbeaver.ui.editors.sql.syntax;
import org.jkiss.dbeaver.model.DBPKeywordType; import org.jkiss.dbeaver.model.DBPKeywordType;
import org.jkiss.dbeaver.model.sql.completion.SQLCompletionRequest; 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;
/** /**
......
...@@ -35,11 +35,11 @@ import org.jkiss.dbeaver.model.sql.completion.SQLCompletionProposalBase; ...@@ -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.completion.SQLCompletionRequest;
import org.jkiss.dbeaver.model.sql.parser.SQLParserPartitions; import org.jkiss.dbeaver.model.sql.parser.SQLParserPartitions;
import org.jkiss.dbeaver.model.sql.parser.SQLWordPartDetector; 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.UIUtils;
import org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase; import org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase;
import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants; 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.SQLContext;
import org.jkiss.dbeaver.ui.editors.sql.templates.SQLTemplateCompletionProposal; import org.jkiss.dbeaver.ui.editors.sql.templates.SQLTemplateCompletionProposal;
import org.jkiss.dbeaver.ui.editors.sql.templates.SQLTemplatesRegistry; import org.jkiss.dbeaver.ui.editors.sql.templates.SQLTemplatesRegistry;
......
...@@ -33,12 +33,12 @@ import org.jkiss.dbeaver.model.sql.SQLConstants; ...@@ -33,12 +33,12 @@ import org.jkiss.dbeaver.model.sql.SQLConstants;
import org.jkiss.dbeaver.model.sql.SQLDialect; import org.jkiss.dbeaver.model.sql.SQLDialect;
import org.jkiss.dbeaver.model.sql.SQLSyntaxManager; import org.jkiss.dbeaver.model.sql.SQLSyntaxManager;
import org.jkiss.dbeaver.model.sql.parser.SQLWordDetector; 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.DBWorkbench;
import org.jkiss.dbeaver.runtime.sql.SQLRuleProvider; import org.jkiss.dbeaver.runtime.sql.SQLRuleProvider;
import org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase; import org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase;
import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants; 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.rules.*;
import org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.*; import org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.*;
import org.jkiss.dbeaver.ui.editors.text.TextWhiteSpaceDetector; import org.jkiss.dbeaver.ui.editors.text.TextWhiteSpaceDetector;
......
...@@ -18,7 +18,7 @@ package org.jkiss.dbeaver.ui.editors.sql.syntax.rules; ...@@ -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.EndOfLineRule;
import org.eclipse.jface.text.rules.ICharacterScanner; 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; import org.jkiss.dbeaver.ui.editors.sql.syntax.tokens.SQLControlToken;
public class SQLCommandRule extends EndOfLineRule { public class SQLCommandRule extends EndOfLineRule {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册