This is an automated email from the ASF dual-hosted git repository.
wuweijie 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 7bd85f41718 Add ReadwriteSplittingDataSourceRuleNotFoundException
(#30920)
7bd85f41718 is described below
commit 7bd85f417185f49f02f83b10021d67e416f919e5
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Apr 16 23:08:49 2024 +0800
Add ReadwriteSplittingDataSourceRuleNotFoundException (#30920)
* Refactor ReadwriteSplittingRule
* Refactor ReadwriteSplittingRule
* Add ReadwriteSplittingDataSourceRuleNameNotFoundException
* Add ReadwriteSplittingDataSourceRuleNotFoundException
---
.../content/user-manual/error-code/sql-error-code.cn.md | 9 +++++----
.../content/user-manual/error-code/sql-error-code.en.md | 9 +++++----
...plicateReadwriteSplittingActualDataSourceException.java | 2 +-
...SplittingActualDataSourceInlineExpressionException.java | 2 +-
...equiredReadwriteSplittingActualDataSourceException.java | 2 +-
...eadwriteSplittingActualDataSourceNotFoundException.java | 2 +-
...ReadwriteSplittingDataSourceRuleNotFoundException.java} | 14 ++++++--------
.../ReadwriteSplittingStaticDataSourceRuleAttribute.java | 10 ++++++----
8 files changed, 26 insertions(+), 24 deletions(-)
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
index 6b8f41aa115..0af74654c8d 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
@@ -195,10 +195,11 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
| Vendor Code | SQL State | 错误信息
|
|-------------|-----------|-----------------------------------------------------------------------------|
| 20200 | 42S02 | Readwrite-splitting data source rule name is
required in database '%s'. |
-| 20201 | 42S02 | Readwrite-splitting [READ/WRITE] data source is
required in %s. |
-| 20202 | 42S02 | Can not find readwrite-splitting [READ/WRITE] data
source '%s' in %s. |
-| 20203 | 42S01 | Readwrite-splitting [READ/WRITE] data source '%s'
is duplicated in %s. |
-| 20204 | 44000 | Readwrite-splitting [READ/WRITE] data source
inline expression error in %s. |
+| 20201 | 42S02 | Can not find readwrite-splitting data source rule
'%s' in database '%s'. |
+| 20202 | 42S02 | Readwrite-splitting [READ/WRITE] data source is
required in %s. |
+| 20203 | 42S02 | Can not find readwrite-splitting [READ/WRITE] data
source '%s' in %s. |
+| 20204 | 42S01 | Readwrite-splitting [READ/WRITE] data source '%s'
is duplicated in %s. |
+| 20205 | 44000 | Readwrite-splitting [READ/WRITE] data source
inline expression error in %s. |
### SQL 方言转换
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.en.md
b/docs/document/content/user-manual/error-code/sql-error-code.en.md
index ce9e6580c08..20d85a7fbb9 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.en.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.en.md
@@ -195,10 +195,11 @@ SQL error codes provide by standard `SQL State`, `Vendor
Code` and `Reason`, whi
| Vendor Code | SQL State | Reason
|
|-------------|-----------|-----------------------------------------------------------------------------|
| 20200 | 42S02 | Readwrite-splitting data source rule name is
required in database '%s'. |
-| 20201 | 42S02 | Readwrite-splitting [READ/WRITE] data source is
required in %s. |
-| 20202 | 42S02 | Can not find readwrite-splitting [READ/WRITE] data
source '%s' in %s. |
-| 20203 | 42S01 | Readwrite-splitting [READ/WRITE] data source '%s'
is duplicated in %s. |
-| 20204 | 44000 | Readwrite-splitting [READ/WRITE] data source
inline expression error in %s. |
+| 20201 | 42S02 | Can not find readwrite-splitting data source rule
'%s' in database '%s'. |
+| 20202 | 42S02 | Readwrite-splitting [READ/WRITE] data source is
required in %s. |
+| 20203 | 42S02 | Can not find readwrite-splitting [READ/WRITE] data
source '%s' in %s. |
+| 20204 | 42S01 | Readwrite-splitting [READ/WRITE] data source '%s'
is duplicated in %s. |
+| 20205 | 44000 | Readwrite-splitting [READ/WRITE] data source
inline expression error in %s. |
### SQL Dialect Translator
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/DuplicateReadwriteSplittingActualDataSourceException.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/DuplicateReadwriteSplittingActualDataSourceException.java
index dc9fafd6e53..5e78035f967 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/DuplicateReadwriteSplittingActualDataSourceException.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/DuplicateReadwriteSplittingActualDataSourceException.java
@@ -31,6 +31,6 @@ public final class
DuplicateReadwriteSplittingActualDataSourceException extends
public DuplicateReadwriteSplittingActualDataSourceException(final
ReadwriteSplittingDataSourceType dataSourceType,
final String
dataSourceName, final ReadwriteSplittingRuleExceptionIdentifier
exceptionIdentifier) {
- super(XOpenSQLState.DUPLICATE, 3, "Readwrite-splitting %s data source
'%s' is duplicated in %s.", dataSourceName, dataSourceType,
exceptionIdentifier);
+ super(XOpenSQLState.DUPLICATE, 4, "Readwrite-splitting %s data source
'%s' is duplicated in %s.", dataSourceName, dataSourceType,
exceptionIdentifier);
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/InvalidReadwriteSplittingActualDataSourceInlineExpressionException.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/InvalidReadwriteSplittingActualDataSourceInlineExpressionException.java
index a1b562e078a..ad7b6147741 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/InvalidReadwriteSplittingActualDataSourceInlineExpressionException.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/InvalidReadwriteSplittingActualDataSourceInlineExpressionException.java
@@ -31,6 +31,6 @@ public final class
InvalidReadwriteSplittingActualDataSourceInlineExpressionExce
public
InvalidReadwriteSplittingActualDataSourceInlineExpressionException(final
ReadwriteSplittingDataSourceType dataSourceType,
final ReadwriteSplittingRuleExceptionIdentifier exceptionIdentifier) {
- super(XOpenSQLState.CHECK_OPTION_VIOLATION, 4, "Readwrite-splitting %s
data source inline expression error in %s.", dataSourceType,
exceptionIdentifier);
+ super(XOpenSQLState.CHECK_OPTION_VIOLATION, 5, "Readwrite-splitting %s
data source inline expression error in %s.", dataSourceType,
exceptionIdentifier);
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
index 9fe7545e9a3..b0b5f8c94d8 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
@@ -30,6 +30,6 @@ public final class
MissingRequiredReadwriteSplittingActualDataSourceException ex
private static final long serialVersionUID = 3795576963060485964L;
public MissingRequiredReadwriteSplittingActualDataSourceException(final
ReadwriteSplittingDataSourceType dataSourceType, final
ReadwriteSplittingRuleExceptionIdentifier exceptionIdentifier) {
- super(XOpenSQLState.NOT_FOUND, 1, "Readwrite-splitting %s data source
is required in %s.", dataSourceType, exceptionIdentifier);
+ super(XOpenSQLState.NOT_FOUND, 2, "Readwrite-splitting %s data source
is required in %s.", dataSourceType, exceptionIdentifier);
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/ReadwriteSplittingActualDataSourceNotFoundException.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/ReadwriteSplittingActualDataSourceNotFoundException.java
index f1a85d60305..c0a080612ac 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/ReadwriteSplittingActualDataSourceNotFoundException.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/ReadwriteSplittingActualDataSourceNotFoundException.java
@@ -31,6 +31,6 @@ public final class
ReadwriteSplittingActualDataSourceNotFoundException extends R
public ReadwriteSplittingActualDataSourceNotFoundException(final
ReadwriteSplittingDataSourceType dataSourceType,
final String
dataSourceName, final ReadwriteSplittingRuleExceptionIdentifier
exceptionIdentifier) {
- super(XOpenSQLState.NOT_FOUND, 2, "Can not find readwrite-splitting %s
data source '%s' in %s.", dataSourceType, dataSourceName, exceptionIdentifier);
+ super(XOpenSQLState.NOT_FOUND, 3, "Can not find readwrite-splitting %s
data source '%s' in %s.", dataSourceType, dataSourceName, exceptionIdentifier);
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/logic/ReadwriteSplittingDataSourceRuleNotFoundException.java
similarity index 54%
copy from
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
copy to
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/logic/ReadwriteSplittingDataSourceRuleNotFoundException.java
index 9fe7545e9a3..c7e148382de 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/actual/MissingRequiredReadwriteSplittingActualDataSourceException.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/exception/logic/ReadwriteSplittingDataSourceRuleNotFoundException.java
@@ -15,21 +15,19 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.readwritesplitting.exception.actual;
+package org.apache.shardingsphere.readwritesplitting.exception.logic;
import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-import
org.apache.shardingsphere.readwritesplitting.constant.ReadwriteSplittingDataSourceType;
-import
org.apache.shardingsphere.readwritesplitting.exception.ReadwriteSplittingRuleExceptionIdentifier;
import
org.apache.shardingsphere.readwritesplitting.exception.ReadwriteSplittingSQLException;
/**
- * Missing readwrite-splitting required actual data source exception.
+ * Readwrite-splitting data source rule not found exception.
*/
-public final class MissingRequiredReadwriteSplittingActualDataSourceException
extends ReadwriteSplittingSQLException {
+public final class ReadwriteSplittingDataSourceRuleNotFoundException extends
ReadwriteSplittingSQLException {
- private static final long serialVersionUID = 3795576963060485964L;
+ private static final long serialVersionUID = -6293739163056594102L;
- public MissingRequiredReadwriteSplittingActualDataSourceException(final
ReadwriteSplittingDataSourceType dataSourceType, final
ReadwriteSplittingRuleExceptionIdentifier exceptionIdentifier) {
- super(XOpenSQLState.NOT_FOUND, 1, "Readwrite-splitting %s data source
is required in %s.", dataSourceType, exceptionIdentifier);
+ public ReadwriteSplittingDataSourceRuleNotFoundException(final String
dataSourceRuleName, final String databaseName) {
+ super(XOpenSQLState.NOT_FOUND, 1, "Can not find readwrite-splitting
data source rule '%s' in database '%s'.", dataSourceRuleName, databaseName);
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
index a68e3fd65bc..c49b99d50bd 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/attribute/ReadwriteSplittingStaticDataSourceRuleAttribute.java
@@ -17,15 +17,16 @@
package org.apache.shardingsphere.readwritesplitting.rule.attribute;
-import com.google.common.base.Preconditions;
import lombok.RequiredArgsConstructor;
+import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.instance.InstanceContext;
import
org.apache.shardingsphere.infra.metadata.database.schema.QualifiedDatabase;
-import org.apache.shardingsphere.infra.rule.event.DataSourceStatusChangedEvent;
import
org.apache.shardingsphere.infra.rule.attribute.datasource.StaticDataSourceRuleAttribute;
+import org.apache.shardingsphere.infra.rule.event.DataSourceStatusChangedEvent;
import org.apache.shardingsphere.infra.state.datasource.DataSourceState;
import
org.apache.shardingsphere.mode.event.storage.StorageNodeDataSourceChangedEvent;
import
org.apache.shardingsphere.mode.event.storage.StorageNodeDataSourceDeletedEvent;
+import
org.apache.shardingsphere.readwritesplitting.exception.logic.ReadwriteSplittingDataSourceRuleNotFoundException;
import
org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingDataSourceRule;
import java.util.Collection;
@@ -59,7 +60,8 @@ public final class
ReadwriteSplittingStaticDataSourceRuleAttribute implements St
StorageNodeDataSourceChangedEvent dataSourceEvent =
(StorageNodeDataSourceChangedEvent) event;
QualifiedDatabase qualifiedDatabase =
dataSourceEvent.getQualifiedDatabase();
ReadwriteSplittingDataSourceRule dataSourceRule =
dataSourceRules.get(qualifiedDatabase.getGroupName());
- Preconditions.checkNotNull(dataSourceRule, "Can not find
readwrite-splitting data source rule in database `%s`",
qualifiedDatabase.getDatabaseName());
+ ShardingSpherePreconditions.checkNotNull(dataSourceRule,
+ () -> new
ReadwriteSplittingDataSourceRuleNotFoundException(qualifiedDatabase.getGroupName(),
qualifiedDatabase.getDatabaseName()));
if (DataSourceState.DISABLED ==
dataSourceEvent.getDataSource().getStatus()) {
dataSourceRule.disableDataSource(dataSourceEvent.getQualifiedDatabase().getDataSourceName());
} else {
@@ -69,7 +71,7 @@ public final class
ReadwriteSplittingStaticDataSourceRuleAttribute implements St
@Override
public void cleanStorageNodeDataSource(final String groupName) {
- Preconditions.checkNotNull(dataSourceRules.get(groupName),
String.format("`%s` group name not exist in database `%s`", groupName,
databaseName));
+
ShardingSpherePreconditions.checkState(dataSourceRules.containsKey(groupName),
() -> new ReadwriteSplittingDataSourceRuleNotFoundException(groupName,
databaseName));
deleteStorageNodeDataSources(dataSourceRules.get(groupName));
}