Skip to content

Commit

Permalink
simplifying validation of isolation level
Browse files Browse the repository at this point in the history
  • Loading branch information
jainsahab committed Oct 25, 2023
1 parent 45673cf commit 0bbca1c
Showing 1 changed file with 4 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,10 @@

import static com.google.cloud.spanner.r2dbc.v2.SpannerConstants.TIMESTAMP_BOUND;
import static com.google.common.base.MoreObjects.firstNonNull;
import static io.r2dbc.spi.IsolationLevel.READ_COMMITTED;
import static io.r2dbc.spi.IsolationLevel.READ_UNCOMMITTED;
import static io.r2dbc.spi.IsolationLevel.REPEATABLE_READ;
import static io.r2dbc.spi.IsolationLevel.SERIALIZABLE;
import static io.r2dbc.spi.TransactionDefinition.ISOLATION_LEVEL;
import static io.r2dbc.spi.TransactionDefinition.READ_ONLY;
import static java.lang.Boolean.TRUE;
import static java.util.Arrays.asList;

import com.google.cloud.spanner.TimestampBound;
import com.google.cloud.spanner.r2dbc.api.SpannerConnection;
Expand All @@ -38,16 +35,11 @@
import io.r2dbc.spi.TransactionDefinition;
import io.r2dbc.spi.ValidationDepth;
import java.time.Duration;
import java.util.List;
import org.reactivestreams.Publisher;
import reactor.core.publisher.Mono;

class SpannerClientLibraryConnection implements Connection, SpannerConnection {

private static final List<IsolationLevel> UNSUPPORTED_ISOLATION_LEVELS = asList(READ_COMMITTED,
READ_UNCOMMITTED,
REPEATABLE_READ);

private final DatabaseClientReactiveAdapter clientLibraryAdapter;

/**
Expand Down Expand Up @@ -190,12 +182,8 @@ public boolean isInReadonlyTransaction() {
}

private Mono<Void> validateIsolation(IsolationLevel isolationLevel) {
boolean invalid =
isolationLevel != null && UNSUPPORTED_ISOLATION_LEVELS.contains(isolationLevel);
if (invalid) {
return Mono.error(new UnsupportedOperationException(
String.format("'%s' isolation level not supported", isolationLevel.asSql())));
}
return Mono.empty();
boolean valid = isolationLevel == null || isolationLevel == SERIALIZABLE;
return valid ? Mono.empty(): Mono.error(new UnsupportedOperationException(
String.format("'%s' isolation level not supported", isolationLevel.asSql())));
}
}

0 comments on commit 0bbca1c

Please sign in to comment.