Skip to content

Commit c82e8a7

Browse files
committed
Reinstate result splitting for composite simple statements.
Reactor 3.4 has fixed the underlying issue so it's safe now to apply windowUntil(…). [resolves #440] Signed-off-by: Mark Paluch <[email protected]>
1 parent 3a04952 commit c82e8a7

File tree

3 files changed

+10
-12
lines changed

3 files changed

+10
-12
lines changed

src/main/java/io/r2dbc/postgresql/SimpleQueryPostgresqlStatement.java

+9-4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import io.r2dbc.postgresql.message.backend.ErrorResponse;
2626
import io.r2dbc.postgresql.util.Assert;
2727
import io.r2dbc.postgresql.util.GeneratedValuesUtils;
28+
import io.r2dbc.postgresql.util.Operators;
2829
import io.r2dbc.spi.Statement;
2930
import reactor.core.publisher.Flux;
3031
import reactor.util.annotation.Nullable;
@@ -140,12 +141,16 @@ private Flux<io.r2dbc.postgresql.api.PostgresqlResult> execute(String sql) {
140141

141142
if (this.fetchSize != NO_LIMIT) {
142143

143-
Flux<BackendMessage> messages = ExtendedFlowDelegate.runQuery(this.resources, factory, sql, Binding.EMPTY, Collections.emptyList(), this.fetchSize);
144-
return Flux.just(new PostgresqlResult(this.resources, messages, factory));
144+
return ExtendedFlowDelegate.runQuery(this.resources, factory, sql, Binding.EMPTY, Collections.emptyList(), this.fetchSize)
145+
.windowUntil(WINDOW_UNTIL)
146+
.map(messages -> PostgresqlResult.toResult(this.resources, messages, factory))
147+
.as(Operators::discardOnCancel);
145148
}
146149

147-
Flux<BackendMessage> messages = SimpleQueryMessageFlow.exchange(this.resources.getClient(), sql);
148-
return Flux.just(PostgresqlResult.toResult(this.resources, messages, factory));
150+
return SimpleQueryMessageFlow.exchange(this.resources.getClient(), sql)
151+
.windowUntil(WINDOW_UNTIL)
152+
.map(messages -> PostgresqlResult.toResult(this.resources, messages, factory))
153+
.as(Operators::discardOnCancel);
149154
}
150155

151156
}

src/test/java/io/r2dbc/postgresql/PostgresqlBatchUnitTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ void add() {
4747
.add("test-query-2")
4848
.execute()
4949
.as(StepVerifier::create)
50-
.expectNextCount(1)
50+
.expectNextCount(2)
5151
.verifyComplete();
5252
}
5353

src/test/java/io/r2dbc/postgresql/PostgresqlTestKit.java

-7
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
import io.r2dbc.spi.ConnectionFactory;
2222
import io.r2dbc.spi.ConnectionFactoryOptions;
2323
import io.r2dbc.spi.test.TestKit;
24-
import org.junit.jupiter.api.Disabled;
25-
import org.junit.jupiter.api.Test;
2624
import org.junit.jupiter.api.extension.RegisterExtension;
2725
import org.springframework.jdbc.core.JdbcOperations;
2826

@@ -97,9 +95,4 @@ public String getPlaceholder(int index) {
9795
return String.format("$%d", index + 1);
9896
}
9997

100-
@Test
101-
@Disabled("Disabled until we get a fixed windowUntil(…) or we have a better way to split result streams into multiple Result objects. https://github.com/pgjdbc/r2dbc-postgresql/issues/401")
102-
public void compoundStatement() {
103-
}
104-
10598
}

0 commit comments

Comments
 (0)