diff --git a/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/SqlService.java b/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/SqlService.java index f5f6e024..811a903b 100644 --- a/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/SqlService.java +++ b/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/SqlService.java @@ -103,10 +103,10 @@ default FutureResponse send( * which may raise error if the request was failed. * @throws IOException if I/O error was occurred while sending the request */ - default FutureResponse send(@Nonnull SqlRequest.ExecuteStatement request) throws IOException { + default FutureResponse send(@Nonnull SqlRequest.ExecuteStatement request) throws IOException { throw new UnsupportedOperationException(); } - default FutureResponse send(@Nonnull SqlRequest.ExecutePreparedStatement request) throws IOException { + default FutureResponse send(@Nonnull SqlRequest.ExecutePreparedStatement request) throws IOException { throw new UnsupportedOperationException(); } diff --git a/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/Transaction.java b/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/Transaction.java index 2bbee24e..25f4d508 100644 --- a/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/Transaction.java +++ b/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/Transaction.java @@ -26,7 +26,7 @@ public interface Transaction extends ServerResourceNeedingDisposal { * @return a future response of the action * @throws IOException if I/O error was occurred while sending request */ - default FutureResponse executeStatement(@Nonnull String source) throws IOException { + default FutureResponse executeStatement(@Nonnull String source) throws IOException { throw new UnsupportedOperationException(); } @@ -39,7 +39,7 @@ default FutureResponse executeStatement(@Nonnull String source) t * @return a future response of the action * @throws IOException if I/O error was occurred while sending request */ - default FutureResponse executeStatement( + default FutureResponse executeStatement( @Nonnull PreparedStatement statement, @Nonnull SqlRequest.Parameter... parameters) throws IOException { Objects.requireNonNull(statement); @@ -56,7 +56,7 @@ default FutureResponse executeStatement( * @return a future response of the action * @throws IOException if I/O error was occurred while sending request */ - default FutureResponse executeStatement( + default FutureResponse executeStatement( @Nonnull PreparedStatement statement, @Nonnull Collection parameters) throws IOException { throw new UnsupportedOperationException(); diff --git a/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/impl/SqlServiceStub.java b/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/impl/SqlServiceStub.java index 98561026..a62926d3 100644 --- a/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/impl/SqlServiceStub.java +++ b/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/impl/SqlServiceStub.java @@ -38,7 +38,6 @@ import com.tsurugidb.tsubakuro.sql.TableList; import com.tsurugidb.tsubakuro.sql.TableMetadata; import com.tsurugidb.tsubakuro.sql.Transaction; -import com.tsurugidb.tsubakuro.sql.ExecuteResult; import com.tsurugidb.tsubakuro.sql.io.StreamBackedValueInput; import com.tsurugidb.tsubakuro.util.ByteBufferInputStream; import com.tsurugidb.tsubakuro.util.FutureResponse; @@ -424,11 +423,11 @@ public FutureResponse send( new DescribeTableProcessor().asResponseProcessor()); } - static class ExecuteProcessor implements MainResponseProcessor { + static class ExecuteProcessor implements MainResponseProcessor { private final AtomicReference responseCache = new AtomicReference<>(); @Override - public ExecuteResult process(ByteBuffer payload) throws IOException, ServerException, InterruptedException { + public Void process(ByteBuffer payload) throws IOException, ServerException, InterruptedException { if (responseCache.get() == null) { responseCache.set(SqlResponse.Response.parseDelimitedFrom(new ByteBufferInputStream(payload))); } @@ -441,7 +440,7 @@ public ExecuteResult process(ByteBuffer payload) throws IOException, ServerExcep var errorResponse = detailResponse.getError(); throw SqlServiceException.of(SqlServiceCode.valueOf(errorResponse.getCode()), errorResponse.getDetail()); } - return new ExecuteResultAdapter(detailResponse.getSuccess()); + return null; case RESULT_ONLY: var resultOnlyResponse = response.getResultOnly(); LOG.trace("receive (ResultOnly): {}", resultOnlyResponse); //$NON-NLS-1$ @@ -456,7 +455,7 @@ public ExecuteResult process(ByteBuffer payload) throws IOException, ServerExcep } @Override - public FutureResponse send( + public FutureResponse send( @Nonnull SqlRequest.ExecuteStatement request) throws IOException { Objects.requireNonNull(request); LOG.trace("send (execute statement): {}", request); //$NON-NLS-1$ @@ -469,7 +468,7 @@ public FutureResponse send( } @Override - public FutureResponse send( + public FutureResponse send( @Nonnull SqlRequest.ExecutePreparedStatement request) throws IOException { Objects.requireNonNull(request); LOG.trace("send (execute prepared statement): {}", request); //$NON-NLS-1$ diff --git a/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/impl/TransactionImpl.java b/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/impl/TransactionImpl.java index 95fe0bc6..d8f3a426 100644 --- a/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/impl/TransactionImpl.java +++ b/modules/session/src/main/java/com/tsurugidb/tsubakuro/sql/impl/TransactionImpl.java @@ -25,7 +25,6 @@ import com.tsurugidb.tsubakuro.sql.SqlService; import com.tsurugidb.tsubakuro.sql.SqlServiceException; import com.tsurugidb.tsubakuro.sql.Transaction; -import com.tsurugidb.tsubakuro.sql.ExecuteResult; import com.tsurugidb.tsubakuro.util.FutureResponse; import com.tsurugidb.tsubakuro.util.Lang; import com.tsurugidb.tsubakuro.util.ServerResource; @@ -65,7 +64,7 @@ public TransactionImpl( } @Override - public FutureResponse executeStatement(@Nonnull String source) throws IOException { + public FutureResponse executeStatement(@Nonnull String source) throws IOException { Objects.requireNonNull(source); if (cleanuped.get()) { throw new IOException("transaction already closed"); @@ -89,7 +88,7 @@ public FutureResponse executeQuery(@Nonnull String source) throws IOE } @Override - public FutureResponse executeStatement( + public FutureResponse executeStatement( @Nonnull PreparedStatement statement, @Nonnull Collection parameters) throws IOException { Objects.requireNonNull(statement); diff --git a/modules/session/src/test/java/com/tsurugidb/tsubakuro/sql/impl/SqlServiceStubTest.java b/modules/session/src/test/java/com/tsurugidb/tsubakuro/sql/impl/SqlServiceStubTest.java index 130f0f5a..97e04bca 100644 --- a/modules/session/src/test/java/com/tsurugidb/tsubakuro/sql/impl/SqlServiceStubTest.java +++ b/modules/session/src/test/java/com/tsurugidb/tsubakuro/sql/impl/SqlServiceStubTest.java @@ -23,7 +23,6 @@ import com.tsurugidb.sql.proto.SqlCommon; import com.tsurugidb.sql.proto.SqlRequest; -import com.tsurugidb.sql.proto.SqlRequest.ExecuteStatement; import com.tsurugidb.sql.proto.SqlResponse; import com.tsurugidb.sql.proto.SqlStatus; import com.tsurugidb.tsubakuro.channel.common.connection.wire.Response; @@ -31,7 +30,6 @@ import com.tsurugidb.tsubakuro.common.impl.SessionImpl; import com.tsurugidb.tsubakuro.exception.BrokenResponseException; import com.tsurugidb.tsubakuro.exception.ServerException; -import com.tsurugidb.tsubakuro.sql.CounterType; import com.tsurugidb.tsubakuro.sql.SearchPath; import com.tsurugidb.tsubakuro.sql.SqlService; import com.tsurugidb.tsubakuro.sql.SqlServiceCode; @@ -637,7 +635,7 @@ void sendDescribeTableEngineError() throws Exception { } @Test - void sendExecuteSuccess_deprecated() throws Exception { + void sendExecuteSuccess() throws Exception { wire.next(accepts(SqlRequest.Request.RequestCase.EXECUTE_STATEMENT, RequestHandler.returns(SqlResponse.ResultOnly.newBuilder() .setSuccess(newVoid()) @@ -655,60 +653,10 @@ void sendExecuteSuccess_deprecated() throws Exception { assertFalse(wire.hasRemaining()); } - @Test - void sendExecuteEngineError_deprecated() throws Exception { - wire.next(accepts(SqlRequest.Request.RequestCase.EXECUTE_STATEMENT, - RequestHandler.returns(SqlResponse.ResultOnly.newBuilder() - .setError(newEngineError()) - .build()))); - - var message = SqlRequest.ExecuteStatement.newBuilder() - .setSql("SELECT 1") - .build(); - try ( - var service = new SqlServiceStub(session); - var future = service.send(message); - ) { - var error = assertThrows(SqlServiceException.class, () -> future.await()); - assertEquals(SqlServiceCode.SQL_SERVICE_EXCEPTION, error.getDiagnosticCode()); - } - assertFalse(wire.hasRemaining()); - } - - @Test - void sendExecuteSuccess() throws Exception { - wire.next(accepts(SqlRequest.Request.RequestCase.EXECUTE_STATEMENT, - RequestHandler.returns(SqlResponse.ExecuteResult.newBuilder() - .setSuccess(SqlResponse.ExecuteResult.Success.newBuilder() - .addCounters(SqlResponse.ExecuteResult.CounterEntry.newBuilder().setType(SqlResponse.ExecuteResult.CounterType.INSERTED_ROWS).setValue(1)) - .addCounters(SqlResponse.ExecuteResult.CounterEntry.newBuilder().setType(SqlResponse.ExecuteResult.CounterType.UPDATED_ROWS).setValue(2)) - .addCounters(SqlResponse.ExecuteResult.CounterEntry.newBuilder().setType(SqlResponse.ExecuteResult.CounterType.MERGED_ROWS).setValue(3)) - .addCounters(SqlResponse.ExecuteResult.CounterEntry.newBuilder().setType(SqlResponse.ExecuteResult.CounterType.DELETED_ROWS).setValue(4))) - .build()))); - - var message = SqlRequest.ExecuteStatement.newBuilder() - .setSql("SELECT 1") - .build(); - try ( - var service = new SqlServiceStub(session); - var future = service.send(message); - ) { - var executeResult = future.get(); - var counterTypes = executeResult.getCounterTypes(); - assertTrue(counterTypes.containsAll(List.of(CounterType.INSERTED_ROWS, CounterType.UPDATED_ROWS, CounterType.MERGED_ROWS, CounterType.DELETED_ROWS))); - var counters = executeResult.getCounters(); - assertEquals(counters.get(CounterType.INSERTED_ROWS), 1); - assertEquals(counters.get(CounterType.UPDATED_ROWS), 2); - assertEquals(counters.get(CounterType.MERGED_ROWS), 3); - assertEquals(counters.get(CounterType.DELETED_ROWS), 4); - } - assertFalse(wire.hasRemaining()); - } - @Test void sendExecuteEngineError() throws Exception { wire.next(accepts(SqlRequest.Request.RequestCase.EXECUTE_STATEMENT, - RequestHandler.returns(SqlResponse.ExecuteResult.newBuilder() + RequestHandler.returns(SqlResponse.ResultOnly.newBuilder() .setError(newEngineError()) .build()))); @@ -725,8 +673,6 @@ void sendExecuteEngineError() throws Exception { assertFalse(wire.hasRemaining()); } - - @Test void sendQuerySuccess() throws Exception { wire.next(accepts(SqlRequest.Request.RequestCase.EXECUTE_QUERY, diff --git a/modules/session/src/test/java/com/tsurugidb/tsubakuro/sql/impl/TransactionImplTest.java b/modules/session/src/test/java/com/tsurugidb/tsubakuro/sql/impl/TransactionImplTest.java index af86fa32..8aca068f 100644 --- a/modules/session/src/test/java/com/tsurugidb/tsubakuro/sql/impl/TransactionImplTest.java +++ b/modules/session/src/test/java/com/tsurugidb/tsubakuro/sql/impl/TransactionImplTest.java @@ -88,7 +88,7 @@ void executeText() throws Exception { .build(), new SqlService() { @Override - public FutureResponse send(SqlRequest.ExecuteStatement request) throws IOException { + public FutureResponse send(SqlRequest.ExecuteStatement request) throws IOException { count.incrementAndGet(); assertEquals(100, request.getTransactionHandle().getHandle()); assertEquals("SELECT 100", request.getSql()); @@ -118,7 +118,7 @@ void executeStatement() throws Exception { .build(), new SqlService() { @Override - public FutureResponse send(SqlRequest.ExecutePreparedStatement request) throws IOException { + public FutureResponse send(SqlRequest.ExecutePreparedStatement request) throws IOException { count.incrementAndGet(); assertEquals(100, request.getTransactionHandle().getHandle()); assertEquals(100, request.getPreparedStatementHandle().getHandle());