This is an automated email from the ASF dual-hosted git repository.
chengzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 7b62e9bb40d Add getReadWriteSplitReplicaRoute and return optional in
TransactionConnectionContext (#31020)
7b62e9bb40d is described below
commit 7b62e9bb40d679fbd7e1fc1c1cf782574c3c77eb
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Fri Apr 26 11:03:48 2024 +0800
Add getReadWriteSplitReplicaRoute and return optional in
TransactionConnectionContext (#31020)
---
...QualifiedReadwriteSplittingTransactionalDataSourceRouter.java | 4 ++--
.../connection/transaction/TransactionConnectionContext.java | 9 +++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/qualified/type/QualifiedReadwriteSplittingTransactionalDataSourceRouter.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/qualified/type/QualifiedReadwriteSplittingTransactionalDataSourceRouter.java
index 6f6e820242d..aba0644ed1a 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/qualified/type/QualifiedReadwriteSplittingTransactionalDataSourceRouter.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/qualified/type/QualifiedReadwriteSplittingTransactionalDataSourceRouter.java
@@ -44,10 +44,10 @@ public final class
QualifiedReadwriteSplittingTransactionalDataSourceRouter impl
public String route(final ReadwriteSplittingDataSourceGroupRule rule) {
switch (rule.getTransactionalReadQueryStrategy()) {
case FIXED:
- if (null ==
connectionContext.getTransactionContext().getReadWriteSplitReplicaRoute()) {
+ if
(!connectionContext.getTransactionContext().getReadWriteSplitReplicaRoute().isPresent())
{
connectionContext.getTransactionContext().setReadWriteSplitReplicaRoute(standardRouter.route(rule));
}
- return
connectionContext.getTransactionContext().getReadWriteSplitReplicaRoute();
+ return
connectionContext.getTransactionContext().getReadWriteSplitReplicaRoute().get();
case DYNAMIC:
return standardRouter.route(rule);
case PRIMARY:
diff --git
a/infra/session/src/main/java/org/apache/shardingsphere/infra/session/connection/transaction/TransactionConnectionContext.java
b/infra/session/src/main/java/org/apache/shardingsphere/infra/session/connection/transaction/TransactionConnectionContext.java
index fff981a289b..1b62261baf7 100644
---
a/infra/session/src/main/java/org/apache/shardingsphere/infra/session/connection/transaction/TransactionConnectionContext.java
+++
b/infra/session/src/main/java/org/apache/shardingsphere/infra/session/connection/transaction/TransactionConnectionContext.java
@@ -69,6 +69,15 @@ public final class TransactionConnectionContext implements
AutoCloseable {
return Optional.ofNullable(transactionType);
}
+ /**
+ * Get read write split replica route.
+ *
+ * @return read write split replica route
+ */
+ public Optional<String> getReadWriteSplitReplicaRoute() {
+ return Optional.ofNullable(readWriteSplitReplicaRoute);
+ }
+
@Override
public void close() {
transactionType = null;