From 42ba6f003f26e032eb338a9481d95d5634020541 Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Tue, 23 Jun 2020 10:42:29 +0300 Subject: [PATCH] CB-153 Batch update API --- .../schema/service.sql.graphqls | 15 +++++++++++++++ .../io/cloudbeaver/service/sql/DBWServiceSQL.java | 9 +++++++-- .../service/sql/impl/WebServiceSQL.java | 5 +++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/server/bundles/io.cloudbeaver.server/schema/service.sql.graphqls b/server/bundles/io.cloudbeaver.server/schema/service.sql.graphqls index 2140aa96eb..3204dd65f4 100644 --- a/server/bundles/io.cloudbeaver.server/schema/service.sql.graphqls +++ b/server/bundles/io.cloudbeaver.server/schema/service.sql.graphqls @@ -103,6 +103,11 @@ type SQLExecuteInfo { results: [ SQLQueryResults! ]! } +input SQLResultRow { + data: [ Object ]! + updateValues: [ Object ] +} + extend type Query { sqlDialectInfo( connectionId: ID! ): SQLDialectInfo @@ -152,6 +157,16 @@ extend type Mutation { updateValues: Object ): SQLExecuteInfo + updateResultsDataBatch( + connectionId: ID!, + contextId: ID!, + resultsId: ID!, + + updatedRows: [ SQLResultRow ], + deletedRows: [ SQLResultRow ], + addedRows: [ SQLResultRow ], + ): SQLExecuteInfo + ### Async API # Returns SQLExecuteInfo diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/DBWServiceSQL.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/DBWServiceSQL.java index 4510f57159..c8e5248d8e 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/DBWServiceSQL.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/DBWServiceSQL.java @@ -23,8 +23,6 @@ import io.cloudbeaver.model.WebAsyncTaskInfo; import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; import org.jkiss.dbeaver.DBException; -import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; -import org.jkiss.dbeaver.model.struct.DBSDataContainer; import java.util.List; import java.util.Map; @@ -66,6 +64,13 @@ public interface DBWServiceSQL extends DBWService { @NotNull List updateRow, @NotNull Map updateValues) throws DBWebException; + @WebAction + WebSQLExecuteInfo updateResultsDataBatch( + @NotNull WebSQLContextInfo contextInfo, + @NotNull String resultsId, + @NotNull List updateRow, + @NotNull Map updateValues) throws DBWebException; + @WebAction WebAsyncTaskInfo asyncExecuteQuery(@NotNull WebSQLContextInfo contextInfo, @NotNull String sql, @Nullable WebSQLDataFilter filter) throws DBException; } diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/impl/WebServiceSQL.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/impl/WebServiceSQL.java index e1fc1e64ae..1e2bbb3f2b 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/impl/WebServiceSQL.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/impl/WebServiceSQL.java @@ -143,6 +143,11 @@ public class WebServiceSQL implements DBWServiceSQL { return contextInfo.getProcessor().updateResultsData(contextInfo, resultsId, updateRow, updateValues); } + @Override + public WebSQLExecuteInfo updateResultsDataBatch(@NotNull WebSQLContextInfo contextInfo, @NotNull String resultsId, @NotNull List updateRow, @NotNull Map updateValues) throws DBWebException { + throw new DBWebException("Not supported"); + } + @NotNull public WebAsyncTaskInfo asyncExecuteQuery(@NotNull WebSQLContextInfo contextInfo, @NotNull String sql, @Nullable WebSQLDataFilter filter) throws DBException { DBRRunnableWithResult runnable = new DBRRunnableWithResult() {