This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 29d74633fc3 Add readwrite-splitting error code doc (#23489)
29d74633fc3 is described below
commit 29d74633fc334528db62027b0015a64c8ee51e62
Author: zhaojinchao <[email protected]>
AuthorDate: Wed Jan 11 12:44:36 2023 +0800
Add readwrite-splitting error code doc (#23489)
---
.../content/user-manual/error-code/sql-error-code.cn.md | 11 +++++++++++
.../content/user-manual/error-code/sql-error-code.en.md | 10 ++++++++++
.../ReadwriteSplittingRuleConfigurationChecker.java | 16 ++++++++--------
.../readwritesplitting/rule/ReadwriteSplittingRule.java | 6 +++---
4 files changed, 32 insertions(+), 11 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 0c2a472fe6d..6144a704b9e 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
@@ -200,7 +200,18 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
| SQL State | Vendor Code | 错误信息 |
| --------- | ----------- | ------ |
+| 44000 | 20270 | Inline expression %s names size error. |
| HY004 | 20280 | Invalid read database weight \`%s\`. |
+| 44000 | 20281 | Load balancer algorithm \`%s\` initialization
failed, reason is: \`%s\.` |
+| 44000 | 20290 | Data source name is required in database \`%s\.` |
+| 44000 | 20291 | Write data source name is required in database
`\`%s\.` |
+| 44000 | 20292 | Read data source names is required in database
`\`%s\.` |
+| 44000 | 20293 | Can not config duplicate %s data source \`%s\` in
database \`%s\.` |
+| 42S02 | 20294 | %s data source name \`%s\` not in database \`%s\.`
|
+| 44000 | 20295 | Auto aware data source name is required in
database \`%s\.` |
+| 42S02 | 20296 | Not found load balance type in database \`%s\.` |
+| 44000 | 20297 | Weight load balancer datasource name config does
not match data sources in database \`%s\.` |
+
### 数据库高可用
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 58b1101957d..81f89abef65 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
@@ -200,7 +200,17 @@ SQL error codes provide by standard `SQL State`, `Vendor
Code` and `Reason`, whi
| SQL State | Vendor Code | Reason |
| --------- | ----------- | ------ |
+| 44000 | 20270 | Inline expression %s names size error. |
| HY004 | 20280 | Invalid read database weight \`%s\`. |
+| 44000 | 20281 | Load balancer algorithm \`%s\` initialization
failed, reason is: \`%s\.` |
+| 44000 | 20290 | Data source name is required in database \`%s\.` |
+| 44000 | 20291 | Write data source name is required in database
`\`%s\.` |
+| 44000 | 20292 | Read data source names is required in database
`\`%s\.` |
+| 44000 | 20293 | Can not config duplicate %s data source \`%s\` in
database \`%s\.` |
+| 42S02 | 20294 | %s data source name \`%s\` not in database \`%s\.`
|
+| 44000 | 20295 | Auto aware data source name is required in
database \`%s\.` |
+| 42S02 | 20296 | Not found load balance type in database \`%s\.` |
+| 44000 | 20297 | Weight load balancer datasource name config does
not match data sources in database \`%s\.` |
### Database HA
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
index 77df65ef2a2..8e0933ff8ee 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
@@ -92,10 +92,10 @@ public final class
ReadwriteSplittingRuleConfigurationChecker implements RuleCon
private void checkWriteDataSourceNames(final String databaseName, final
Map<String, DataSource> dataSourceMap, final Collection<String>
addedWriteDataSourceNames,
final
StaticReadwriteSplittingStrategyConfiguration strategyConfig, final
Collection<ShardingSphereRule> rules) {
for (String each : new
InlineExpressionParser(strategyConfig.getWriteDataSourceName()).splitAndEvaluate())
{
-
ShardingSpherePreconditions.checkState(dataSourceMap.containsKey(each) ||
containsInOtherRules(each, rules), () ->
- new DataSourceNameExistedException(String.format("Write
data source name `%s` not in database `%s`.", each, databaseName)));
-
ShardingSpherePreconditions.checkState(addedWriteDataSourceNames.add(each), ()
->
- new DuplicateDataSourceException(String.format("Can not
config duplicate write data source `%s` in database `%s`.", each,
databaseName)));
+
ShardingSpherePreconditions.checkState(dataSourceMap.containsKey(each) ||
containsInOtherRules(each, rules),
+ () -> new
DataSourceNameExistedException(String.format("Write data source name `%s` not
in database `%s`.", each, databaseName)));
+
ShardingSpherePreconditions.checkState(addedWriteDataSourceNames.add(each),
+ () -> new DuplicateDataSourceException(String.format("Can
not config duplicate write data source `%s` in database `%s`.", each,
databaseName)));
}
}
@@ -111,10 +111,10 @@ public final class
ReadwriteSplittingRuleConfigurationChecker implements RuleCon
private void checkReadeDataSourceNames(final String databaseName,
final Map<String, DataSource>
dataSourceMap, final Collection<String> addedReadDataSourceNames, final String
readDataSourceName) {
for (String each : new
InlineExpressionParser(readDataSourceName).splitAndEvaluate()) {
-
ShardingSpherePreconditions.checkState(dataSourceMap.containsKey(each), () ->
- new DataSourceNameExistedException(String.format("Read
data source name `%s` not in database `%s`.", each, databaseName)));
-
ShardingSpherePreconditions.checkState(addedReadDataSourceNames.add(each), () ->
- new DuplicateDataSourceException(String.format("Can not
config duplicate read data source `%s` in database `%s`.", each,
databaseName)));
+
ShardingSpherePreconditions.checkState(dataSourceMap.containsKey(each),
+ () -> new
DataSourceNameExistedException(String.format("Read data source name `%s` not in
database `%s`.", each, databaseName)));
+
ShardingSpherePreconditions.checkState(addedReadDataSourceNames.add(each),
+ () -> new DuplicateDataSourceException(String.format("Can
not config duplicate read data source `%s` in database `%s`.", each,
databaseName)));
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
index 256dee05cfd..fabe0d99fe1 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
@@ -95,9 +95,9 @@ public final class ReadwriteSplittingRule implements
DatabaseRule, DataSourceCon
List<List<String>> inlineReadDatasourceNames =
config.getStaticStrategy().getReadDataSourceNames().stream()
.map(each -> new
InlineExpressionParser(each).splitAndEvaluate()).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(inlineWriteDatasourceNames.size() ==
inlineReadwriteDataSourceNames.size(),
- () -> new
InvalidInlineExpressionDataSourceNameException("Inline expression write data
source names size error"));
+ () -> new
InvalidInlineExpressionDataSourceNameException("Inline expression write data
source names size error."));
inlineReadDatasourceNames.forEach(each ->
ShardingSpherePreconditions.checkState(each.size() ==
inlineReadwriteDataSourceNames.size(),
- () -> new
InvalidInlineExpressionDataSourceNameException("Inline expression read data
source names size error")));
+ () -> new
InvalidInlineExpressionDataSourceNameException("Inline expression read data
source names size error.")));
for (int i = 0; i < inlineReadwriteDataSourceNames.size(); i++) {
ReadwriteSplittingDataSourceRuleConfiguration staticConfig =
createStaticDataSourceRuleConfiguration(
config, i, inlineReadwriteDataSourceNames,
inlineWriteDatasourceNames, inlineReadDatasourceNames);
@@ -121,7 +121,7 @@ public final class ReadwriteSplittingRule implements
DatabaseRule, DataSourceCon
List<String> inlineReadwriteDataSourceNames = new
InlineExpressionParser(config.getName()).splitAndEvaluate();
List<String> inlineAutoAwareDataSourceNames = new
InlineExpressionParser(config.getDynamicStrategy().getAutoAwareDataSourceName()).splitAndEvaluate();
ShardingSpherePreconditions.checkState(inlineAutoAwareDataSourceNames.size() ==
inlineReadwriteDataSourceNames.size(),
- () -> new
InvalidInlineExpressionDataSourceNameException("Inline expression auto aware
data source names size error"));
+ () -> new
InvalidInlineExpressionDataSourceNameException("Inline expression auto aware
data source names size error."));
for (int i = 0; i < inlineReadwriteDataSourceNames.size(); i++) {
ReadwriteSplittingDataSourceRuleConfiguration dynamicConfig =
createDynamicDataSourceRuleConfiguration(config, i,
inlineReadwriteDataSourceNames, inlineAutoAwareDataSourceNames);
result.put(inlineReadwriteDataSourceNames.get(i), new
ReadwriteSplittingDataSourceRule(dynamicConfig, loadBalanceAlgorithm,
builtRules));