From c7970d155e7fb2af4e023e2cee2ecc3f3da601ea Mon Sep 17 00:00:00 2001 From: shardingsphere Date: Fri, 24 Jan 2025 17:30:10 +0800 Subject: [PATCH] Update shardingsphere maven report at 2025-01-24 17:30:10 CST. --- shardingsphere | 2 +- statistics/staging/checkstyle-aggregate.html | 4 +- statistics/staging/pmd.html | 16 +- statistics/staging/rat-report.html | 6 +- .../shardingsphere-features/rat-report.html | 2 +- .../shardingsphere-broadcast/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-encrypt/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-mask/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-shadow/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-sharding/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-infra/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-infra-spi/rat-report.html | 2 +- .../shardingsphere-infra-util/rat-report.html | 2 +- .../shardingsphere-kernel/rat-report.html | 2 +- .../shardingsphere-authority/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-single/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-sql-parser/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-parser/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-parser-sql/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-test/rat-report.html | 2 +- .../rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-test-it/rat-report.html | 2 +- .../rat-report.html | 2 +- .../shardingsphere-test-util/rat-report.html | 2 +- statistics/staging/taglist.html | 20 +- .../engine/DriverExecuteExecutor.html | 110 +- .../DriverDatabaseConnectionManager.html | 93 +- .../condition/EncryptConditionEngine.html | 367 +++--- .../ClusterMetaDataManagerPersistService.html | 2 +- ...andaloneMetaDataManagerPersistService.html | 2 +- .../FederationMetaDataRefreshEngine.html | 27 +- .../AlterSchemaPushDownMetaDataRefresher.html | 50 +- .../MetaDataManagerPersistService.html | 4 +- .../connector/StandardDatabaseConnector.html | 2 +- .../admin/OpenGaussAdminExecutorCreator.html | 189 ++- .../complex/ShardingComplexRouteEngine.html | 34 +- .../type/complex/ComplexShardingStrategy.html | 46 +- .../type/hint/HintShardingStrategy.html | 36 +- .../standard/StandardShardingStrategy.html | 84 +- .../sharding/rule/ShardingRule.html | 1102 ++++++++--------- .../sharding/rule/ShardingTable.html | 64 +- .../single/util/SingleTableLoadUtils.html | 34 +- 140 files changed, 1272 insertions(+), 1258 deletions(-) diff --git a/shardingsphere b/shardingsphere index 35401681b04b3..fefcec5e317fb 160000 --- a/shardingsphere +++ b/shardingsphere @@ -1 +1 @@ -Subproject commit 35401681b04b32d1106a1acb2cd5075466d1d5b0 +Subproject commit fefcec5e317fbc7d88ceb313151b12a49e89dec2 diff --git a/statistics/staging/checkstyle-aggregate.html b/statistics/staging/checkstyle-aggregate.html index 6d9fbb5ade902..aff8bc211a68e 100644 --- a/statistics/staging/checkstyle-aggregate.html +++ b/statistics/staging/checkstyle-aggregate.html @@ -6534,13 +6534,13 @@

86 +85  Warning metrics ClassFanOutComplexity Class Fan-Out Complexity is 39 (max allowed is 20). -86
+85

org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java

diff --git a/statistics/staging/pmd.html b/statistics/staging/pmd.html index d08588cd1931a..0e3c31ceb447f 100644 --- a/statistics/staging/pmd.html +++ b/statistics/staging/pmd.html @@ -2308,9 +2308,9 @@

Processing Errors

at java.base/java.lang.Thread.run(Thread.java:840) - - - - - +
shardingsphere-encrypt-core - org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.javaParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java' at line 113, column 73: Method references are a feature of Java 8, you should select your language version accordingly +ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java' at line 112, column 73: Method references are a feature of Java 8, you should select your language version accordingly
-
net.sourceforge.pmd.lang.ast.ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java' at line 113, column 73: Method references are a feature of Java 8, you should select your language version accordingly
+
net.sourceforge.pmd.lang.ast.ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java' at line 112, column 73: Method references are a feature of Java 8, you should select your language version accordingly
 	at net.sourceforge.pmd.lang.java.ast.internal.ReportingStrategy$1.report(ReportingStrategy.java:55)
 	at net.sourceforge.pmd.lang.java.ast.internal.ReportingStrategy$1.report(ReportingStrategy.java:42)
 	at net.sourceforge.pmd.lang.java.ast.internal.LanguageLevelChecker.check(LanguageLevelChecker.java:105)
@@ -7600,9 +7600,9 @@ 

Processing Errors

at java.base/java.lang.Thread.run(Thread.java:840)
shardingsphere-sharding-core - org/apache/shardingsphere/sharding/rule/ShardingRule.javaParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java' at line 123, column 52: Lambda expressions are a feature of Java 8, you should select your language version accordingly +ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java' at line 122, column 52: Lambda expressions are a feature of Java 8, you should select your language version accordingly
-
net.sourceforge.pmd.lang.ast.ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java' at line 123, column 52: Lambda expressions are a feature of Java 8, you should select your language version accordingly
+
net.sourceforge.pmd.lang.ast.ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java' at line 122, column 52: Lambda expressions are a feature of Java 8, you should select your language version accordingly
 	at net.sourceforge.pmd.lang.java.ast.internal.ReportingStrategy$1.report(ReportingStrategy.java:55)
 	at net.sourceforge.pmd.lang.java.ast.internal.ReportingStrategy$1.report(ReportingStrategy.java:42)
 	at net.sourceforge.pmd.lang.java.ast.internal.LanguageLevelChecker.check(LanguageLevelChecker.java:105)
@@ -21936,9 +21936,9 @@ 

Processing Errors

at java.base/java.lang.Thread.run(Thread.java:840)
shardingsphere-mode-core - org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/FederationMetaDataRefreshEngine.javaParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/FederationMetaDataRefreshEngine.java' at line 46, column 17: Lambda expressions are a feature of Java 8, you should select your language version accordingly +ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/FederationMetaDataRefreshEngine.java' at line 57, column 17: Lambda expressions are a feature of Java 8, you should select your language version accordingly
-
net.sourceforge.pmd.lang.ast.ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/FederationMetaDataRefreshEngine.java' at line 46, column 17: Lambda expressions are a feature of Java 8, you should select your language version accordingly
+
net.sourceforge.pmd.lang.ast.ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/FederationMetaDataRefreshEngine.java' at line 57, column 17: Lambda expressions are a feature of Java 8, you should select your language version accordingly
 	at net.sourceforge.pmd.lang.java.ast.internal.ReportingStrategy$1.report(ReportingStrategy.java:55)
 	at net.sourceforge.pmd.lang.java.ast.internal.ReportingStrategy$1.report(ReportingStrategy.java:42)
 	at net.sourceforge.pmd.lang.java.ast.internal.LanguageLevelChecker.check(LanguageLevelChecker.java:105)
@@ -22104,9 +22104,9 @@ 

Processing Errors

at java.base/java.lang.Thread.run(Thread.java:840)
shardingsphere-mode-core - org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.javaParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.java' at line 41, column 80: Lambda expressions are a feature of Java 8, you should select your language version accordingly +ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.java' at line 40, column 80: Lambda expressions are a feature of Java 8, you should select your language version accordingly
-
net.sourceforge.pmd.lang.ast.ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.java' at line 41, column 80: Lambda expressions are a feature of Java 8, you should select your language version accordingly
+
net.sourceforge.pmd.lang.ast.ParseException: Parse exception in file '/home/runner/work/shardingsphere-doc/shardingsphere-doc/shardingsphere/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.java' at line 40, column 80: Lambda expressions are a feature of Java 8, you should select your language version accordingly
 	at net.sourceforge.pmd.lang.java.ast.internal.ReportingStrategy$1.report(ReportingStrategy.java:55)
 	at net.sourceforge.pmd.lang.java.ast.internal.ReportingStrategy$1.report(ReportingStrategy.java:42)
 	at net.sourceforge.pmd.lang.java.ast.internal.LanguageLevelChecker.check(LanguageLevelChecker.java:105)
diff --git a/statistics/staging/rat-report.html b/statistics/staging/rat-report.html
index c5b8b6112295a..539e8a724b61a 100644
--- a/statistics/staging/rat-report.html
+++ b/statistics/staging/rat-report.html
@@ -78,7 +78,7 @@ 

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:16:54Z +Generated at: 2025-01-24T09:15:14Z Notes: 5 Binaries: 997 @@ -3701,6 +3701,8 @@

Rat (Release Audit Tool) ### Bug Fixes +1. Alleviate connection leaks caused by Seata Client throwing exceptions - [#34463](https://github.com/apache/shardingsphere/pull/34463) + ### Change Logs 1. [MILESTONE](https://github.com/apache/shardingsphere/milestone/31) @@ -3734,8 +3736,6 @@

Rat (Release Audit Tool) 1. SQL Binder: Remove TablesContext#findTableNames method and implement select order by, group by bind logic - [#34123](https://github.com/apache/shardingsphere/pull/34123) 1. SQL Binder: Support select with statement sql bind and add bind test case - [#34141](https://github.com/apache/shardingsphere/pull/34141) 1. SQL Binder: Support sql bind for select with current select projection reference - [#34151](https://github.com/apache/shardingsphere/pull/34151) -1. SQL Binder: Support alter table, drop table sql bind and add test case - [#34154](https://github.com/apache/shardingsphere/pull/34154) -1. SQL Binder: Support rename table statement sql bind and split segment bind to ddl and dml package - [#34158](https://github.com/apache/shardingsphere/pull/34158) ===================================================== == File: MATURITY.md diff --git a/statistics/staging/shardingsphere-features/rat-report.html b/statistics/staging/shardingsphere-features/rat-report.html index 5e683637c136c..a1f8e24d4b973 100644 --- a/statistics/staging/shardingsphere-features/rat-report.html +++ b/statistics/staging/shardingsphere-features/rat-report.html @@ -72,7 +72,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:24:46Z +Generated at: 2025-01-24T09:23:10Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-broadcast/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-broadcast/rat-report.html index cbbe3a5d837fc..e7d6cbb4c5a07 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-broadcast/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-broadcast/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:14Z +Generated at: 2025-01-24T09:23:37Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/rat-report.html index 9a4f2ccbe8654..13a29a4df2b09 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:16Z +Generated at: 2025-01-24T09:23:39Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/shardingsphere-broadcast-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/shardingsphere-broadcast-distsql-parser/rat-report.html index 9d2b87ba4491b..2cd438105a093 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/shardingsphere-broadcast-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/shardingsphere-broadcast-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:32Z +Generated at: 2025-01-24T09:23:55Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/shardingsphere-broadcast-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/shardingsphere-broadcast-distsql-statement/rat-report.html index c47ed6a2602ec..0213b8b0b465b 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/shardingsphere-broadcast-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-broadcast/shardingsphere-broadcast-distsql/shardingsphere-broadcast-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:23Z +Generated at: 2025-01-24T09:23:46Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-encrypt/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-encrypt/rat-report.html index ae7838a2f515f..94e52caa70d23 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-encrypt/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-encrypt/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:57Z +Generated at: 2025-01-24T09:24:20Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/rat-report.html index 52caf4336bf25..c909b32ca687b 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:59Z +Generated at: 2025-01-24T09:24:23Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-parser/rat-report.html index 5e9f9c85b5250..b0a0a20d6f0db 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:26:17Z +Generated at: 2025-01-24T09:24:40Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/rat-report.html index c8e918266c8f2..07f19326a2800 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:26:07Z +Generated at: 2025-01-24T09:24:30Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-mask/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-mask/rat-report.html index 9e751ed0a80f0..56849ab5fcd97 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-mask/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-mask/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:26:19Z +Generated at: 2025-01-24T09:24:43Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/rat-report.html index 479dd5e29bafb..d2c522970be6b 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:26:22Z +Generated at: 2025-01-24T09:24:45Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/shardingsphere-mask-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/shardingsphere-mask-distsql-parser/rat-report.html index 34f06ccd087e7..9a43ea8434366 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/shardingsphere-mask-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/shardingsphere-mask-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:26:38Z +Generated at: 2025-01-24T09:25:02Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/shardingsphere-mask-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/shardingsphere-mask-distsql-statement/rat-report.html index 2bb68551f5235..b5dee6ea9b288 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/shardingsphere-mask-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-mask/shardingsphere-mask-distsql/shardingsphere-mask-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:26:29Z +Generated at: 2025-01-24T09:24:52Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/rat-report.html index a11b0dd7d09dc..ec51974124b95 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:35Z +Generated at: 2025-01-24T09:23:58Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/rat-report.html index 858940cd0e76f..41fc927ecab1c 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:38Z +Generated at: 2025-01-24T09:24:00Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-parser/rat-report.html index 5fdf2e35de10a..ad2e6617ee265 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:54Z +Generated at: 2025-01-24T09:24:18Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/rat-report.html index 08f339e55c64d..aa67a57d96d98 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:45Z +Generated at: 2025-01-24T09:24:08Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-shadow/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-shadow/rat-report.html index 678ec3449cf6a..ec7beb6949362 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-shadow/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-shadow/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:54Z +Generated at: 2025-01-24T09:27:17Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/rat-report.html index ee38abec2dcbb..da552aab103b6 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:56Z +Generated at: 2025-01-24T09:27:20Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-parser/rat-report.html index 334eb836220d4..01678eb722c72 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:29:14Z +Generated at: 2025-01-24T09:27:37Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/rat-report.html index bc8a30b52bbed..c9a77dee15bd6 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:29:04Z +Generated at: 2025-01-24T09:27:27Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-sharding/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-sharding/rat-report.html index 9e7389d39e071..dc21f0b9ec92a 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-sharding/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-sharding/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:24:49Z +Generated at: 2025-01-24T09:23:13Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/rat-report.html index e57f99d1607c8..c9114ad3f8afb 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:24:51Z +Generated at: 2025-01-24T09:23:15Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/rat-report.html index ea9a54fcdcedb..6757dea46ac1d 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:25:11Z +Generated at: 2025-01-24T09:23:34Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/rat-report.html index 3f02ca63c39fc..a456cf892e4dc 100644 --- a/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:24:59Z +Generated at: 2025-01-24T09:23:23Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/rat-report.html b/statistics/staging/shardingsphere-infra/rat-report.html index 94788eebfdf9f..0e5a0ed7ae38b 100644 --- a/statistics/staging/shardingsphere-infra/rat-report.html +++ b/statistics/staging/shardingsphere-infra/rat-report.html @@ -86,7 +86,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:17:34Z +Generated at: 2025-01-24T09:15:56Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-common/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-common/rat-report.html index bfc387db60f72..2e573a279b13c 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-common/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-common/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:22:32Z +Generated at: 2025-01-24T09:20:55Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/rat-report.html index ab0f06469eca0..9e5066a82c53d 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/rat-report.html @@ -68,7 +68,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:01Z +Generated at: 2025-01-24T09:18:23Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-core/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-core/rat-report.html index 5cf2a1f32b2e0..6aec48ce1f66c 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-core/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-core/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:09Z +Generated at: 2025-01-24T09:18:31Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-type/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-type/rat-report.html index 1e9003d3fcbde..a1926e1507b54 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-type/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-type/rat-report.html @@ -67,7 +67,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:11Z +Generated at: 2025-01-24T09:18:33Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-type/shardingsphere-infra-data-source-pool-hikari/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-type/shardingsphere-infra-data-source-pool-hikari/rat-report.html index 38784cab95b4b..03c66b7b1b7ea 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-type/shardingsphere-infra-data-source-pool-hikari/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-data-source-pool/shardingsphere-infra-data-source-pool-type/shardingsphere-infra-data-source-pool-hikari/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:17Z +Generated at: 2025-01-24T09:18:39Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/rat-report.html index f24433e852e4d..2a21251501549 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/rat-report.html @@ -68,7 +68,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:18:23Z +Generated at: 2025-01-24T09:16:44Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-core/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-core/rat-report.html index 77188ef8d8609..ac19622558565 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-core/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-core/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:18:32Z +Generated at: 2025-01-24T09:16:52Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/rat-report.html index 4ed96fd5dc59c..9412cadc42fce 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/rat-report.html @@ -81,7 +81,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:18:34Z +Generated at: 2025-01-24T09:16:55Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-clickhouse/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-clickhouse/rat-report.html index 25e1d9f8b6d7b..c124755262416 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-clickhouse/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-clickhouse/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:19:28Z +Generated at: 2025-01-24T09:17:50Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-doris/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-doris/rat-report.html index 7772623c3c70e..2e2fb49f4543f 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-doris/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-doris/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:23:07Z +Generated at: 2025-01-24T09:21:31Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-firebird/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-firebird/rat-report.html index 641a233974ac3..a1c336b6546a7 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-firebird/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-firebird/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:19:46Z +Generated at: 2025-01-24T09:18:08Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-h2/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-h2/rat-report.html index 8ba33df6b008d..605a5eb377da3 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-h2/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-h2/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:19:23Z +Generated at: 2025-01-24T09:17:44Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-hive/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-hive/rat-report.html index b9cba22c2b089..1108dfc66b762 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-hive/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-hive/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:23:20Z +Generated at: 2025-01-24T09:21:43Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-mariadb/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-mariadb/rat-report.html index 5e8db015de54b..d112c65235fd6 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-mariadb/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-mariadb/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:18:48Z +Generated at: 2025-01-24T09:17:08Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-mysql/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-mysql/rat-report.html index 5c27587385748..ef16c8de7d207 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-mysql/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-mysql/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:18:42Z +Generated at: 2025-01-24T09:17:02Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-opengauss/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-opengauss/rat-report.html index 0c3ad5235b317..ed25bd2762f8d 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-opengauss/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-opengauss/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:19:02Z +Generated at: 2025-01-24T09:17:23Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-oracle/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-oracle/rat-report.html index df5f917e6b2fe..3742ae3b134ba 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-oracle/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-oracle/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:19:09Z +Generated at: 2025-01-24T09:17:30Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-p6spy/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-p6spy/rat-report.html index 3fab6d6983150..aa495ce012b2c 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-p6spy/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-p6spy/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:19:40Z +Generated at: 2025-01-24T09:18:02Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-postgresql/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-postgresql/rat-report.html index a4638a06d0743..53790878ba167 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-postgresql/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-postgresql/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:18:55Z +Generated at: 2025-01-24T09:17:16Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-presto/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-presto/rat-report.html index 852f9196051ee..fb4ad990cc7fa 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-presto/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-presto/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:23:27Z +Generated at: 2025-01-24T09:21:50Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-sql92/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-sql92/rat-report.html index 4d16f21861df4..7d5f0394fbc5d 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-sql92/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-sql92/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:19:34Z +Generated at: 2025-01-24T09:17:56Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-sqlserver/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-sqlserver/rat-report.html index c1325910719ed..d50c55f00776d 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-sqlserver/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-sqlserver/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:19:16Z +Generated at: 2025-01-24T09:17:37Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-testcontainers/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-testcontainers/rat-report.html index 2b28098f46962..b51ecd7bcc70a 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-testcontainers/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-database/shardingsphere-infra-database-type/shardingsphere-infra-database-testcontainers/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:23:33Z +Generated at: 2025-01-24T09:21:56Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/rat-report.html index 3e4aa138fda4b..3f7670c7e13bd 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/rat-report.html @@ -68,7 +68,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:17:37Z +Generated at: 2025-01-24T09:15:59Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-core/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-core/rat-report.html index 99d1ea4d55c32..d89f895109c50 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-core/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-core/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:17:45Z +Generated at: 2025-01-24T09:16:06Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/rat-report.html index 2892c94243e18..2cabe20f34f02 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/rat-report.html @@ -68,7 +68,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:22:36Z +Generated at: 2025-01-24T09:20:59Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-core/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-core/rat-report.html index f1e9d4ddcbdb1..c5e606c1e3133 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-core/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-core/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:22:43Z +Generated at: 2025-01-24T09:21:07Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/rat-report.html index cec7e45a733a5..bfa524026d636 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/rat-report.html @@ -68,7 +68,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:22:46Z +Generated at: 2025-01-24T09:21:09Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/shardingsphere-mysql-dialect-exception/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/shardingsphere-mysql-dialect-exception/rat-report.html index 1ae83d1483fe6..04129a1d6891a 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/shardingsphere-mysql-dialect-exception/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/shardingsphere-mysql-dialect-exception/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:22:53Z +Generated at: 2025-01-24T09:21:17Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/shardingsphere-postgresql-dialect-exception/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/shardingsphere-postgresql-dialect-exception/rat-report.html index bc4915a99fe92..d451548a5038d 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/shardingsphere-postgresql-dialect-exception/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-exception/shardingsphere-infra-exception-dialect/shardingsphere-infra-exception-dialect-type/shardingsphere-postgresql-dialect-exception/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:23:01Z +Generated at: 2025-01-24T09:21:25Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-parser/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-parser/rat-report.html index d5795dc9894e2..5a994292c8032 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-parser/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-parser/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:24:03Z +Generated at: 2025-01-24T09:22:26Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-spi/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-spi/rat-report.html index 15312a252a3b0..c12c461301995 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-spi/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-spi/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:18:10Z +Generated at: 2025-01-24T09:16:30Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-infra/shardingsphere-infra-util/rat-report.html b/statistics/staging/shardingsphere-infra/shardingsphere-infra-util/rat-report.html index a4a6584a15bf8..0d64b1921b1f7 100644 --- a/statistics/staging/shardingsphere-infra/shardingsphere-infra-util/rat-report.html +++ b/statistics/staging/shardingsphere-infra/shardingsphere-infra-util/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:18:20Z +Generated at: 2025-01-24T09:16:41Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/rat-report.html b/statistics/staging/shardingsphere-kernel/rat-report.html index 00e0f0c1557f5..a1b095d43f931 100644 --- a/statistics/staging/shardingsphere-kernel/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/rat-report.html @@ -77,7 +77,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:24:13Z +Generated at: 2025-01-24T09:22:37Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-authority/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-authority/rat-report.html index e27b24f8a02fc..864a32b586e57 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-authority/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-authority/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:26:41Z +Generated at: 2025-01-24T09:25:04Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/rat-report.html index 5957334534723..6bdf0ae041e5c 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:26:43Z +Generated at: 2025-01-24T09:25:07Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/shardingsphere-authority-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/shardingsphere-authority-distsql-parser/rat-report.html index 910beb9a20c9c..e50518432c634 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/shardingsphere-authority-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/shardingsphere-authority-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:26:58Z +Generated at: 2025-01-24T09:25:22Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/shardingsphere-authority-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/shardingsphere-authority-distsql-statement/rat-report.html index 6d34b7a45c5d1..09678f15359ab 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/shardingsphere-authority-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-distsql/shardingsphere-authority-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:26:50Z +Generated at: 2025-01-24T09:25:14Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/rat-report.html index e50774a45e99a..face7c039f4b4 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:24:20Z +Generated at: 2025-01-24T09:22:44Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/rat-report.html index 34f3110db65bf..8403ceaa023f7 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:24:23Z +Generated at: 2025-01-24T09:22:47Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/shardingsphere-data-pipeline-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/shardingsphere-data-pipeline-distsql-parser/rat-report.html index 0e76797d3653b..3527bab05ffb7 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/shardingsphere-data-pipeline-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/shardingsphere-data-pipeline-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:24:42Z +Generated at: 2025-01-24T09:23:06Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/shardingsphere-data-pipeline-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/shardingsphere-data-pipeline-distsql-statement/rat-report.html index b3e0ac4900e1f..6c3642d3216ae 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/shardingsphere-data-pipeline-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-distsql/shardingsphere-data-pipeline-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:24:30Z +Generated at: 2025-01-24T09:22:54Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/rat-report.html index 2188417edc05b..87708d064022a 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:01Z +Generated at: 2025-01-24T09:25:25Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-api/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-api/rat-report.html index 0005c2f379704..6518abcb573da 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-api/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-api/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:08Z +Generated at: 2025-01-24T09:25:32Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/rat-report.html index 79d2b9f62f3ec..5397cd1fc4595 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:11Z +Generated at: 2025-01-24T09:25:34Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/shardingsphere-global-clock-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/shardingsphere-global-clock-distsql-parser/rat-report.html index 163edf024bb5a..525d4cf6782b0 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/shardingsphere-global-clock-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/shardingsphere-global-clock-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:27Z +Generated at: 2025-01-24T09:25:51Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/shardingsphere-global-clock-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/shardingsphere-global-clock-distsql-statement/rat-report.html index cab9ee5b27b26..03a6fc5855196 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/shardingsphere-global-clock-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-global-clock/shardingsphere-global-clock-distsql/shardingsphere-global-clock-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:18Z +Generated at: 2025-01-24T09:25:42Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-single/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-single/rat-report.html index 6ada9e3f60fc1..0e644b9d5d615 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-single/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-single/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:51Z +Generated at: 2025-01-24T09:26:15Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/rat-report.html index 0f4564f6d9a79..1018b16fe82c8 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:54Z +Generated at: 2025-01-24T09:26:17Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/shardingsphere-single-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/shardingsphere-single-distsql-parser/rat-report.html index c18a57b717524..4d75481019979 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/shardingsphere-single-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/shardingsphere-single-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:10Z +Generated at: 2025-01-24T09:26:34Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/shardingsphere-single-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/shardingsphere-single-distsql-statement/rat-report.html index 52f67266cfd8c..d82bc52ca516c 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/shardingsphere-single-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-single/shardingsphere-single-distsql/shardingsphere-single-distsql-statement/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:01Z +Generated at: 2025-01-24T09:26:24Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/rat-report.html index d0599dbae10de..29eb62a2b84dc 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:13Z +Generated at: 2025-01-24T09:26:36Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/rat-report.html index 6b69b25789dbd..3f5e12b68aeb3 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:15Z +Generated at: 2025-01-24T09:26:39Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/shardingsphere-sql-parser-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/shardingsphere-sql-parser-distsql-parser/rat-report.html index c7d18b15fdf9d..c69b4c8ed2a1a 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/shardingsphere-sql-parser-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/shardingsphere-sql-parser-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:30Z +Generated at: 2025-01-24T09:26:54Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/shardingsphere-sql-parser-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/shardingsphere-sql-parser-distsql-statement/rat-report.html index 68125cdbaf619..ea11b3dbc34ad 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/shardingsphere-sql-parser-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-parser/shardingsphere-sql-parser-distsql/shardingsphere-sql-parser-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:22Z +Generated at: 2025-01-24T09:26:46Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/rat-report.html index aa7aa18637927..7224abee6a567 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:33Z +Generated at: 2025-01-24T09:26:57Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/rat-report.html index 3f1a297ba1e14..95ae6cc625737 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:35Z +Generated at: 2025-01-24T09:26:59Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/shardingsphere-sql-translator-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/shardingsphere-sql-translator-distsql-parser/rat-report.html index 551eeed9758d6..d78fbb286ee3f 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/shardingsphere-sql-translator-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/shardingsphere-sql-translator-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:51Z +Generated at: 2025-01-24T09:27:15Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/shardingsphere-sql-translator-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/shardingsphere-sql-translator-distsql-statement/rat-report.html index 2b88834081ed0..420b3628c9ba5 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/shardingsphere-sql-translator-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-sql-translator/shardingsphere-sql-translator-distsql/shardingsphere-sql-translator-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:28:42Z +Generated at: 2025-01-24T09:27:06Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/rat-report.html index 6acf03b5153c0..d0bf72a4b07d3 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:30Z +Generated at: 2025-01-24T09:25:54Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/rat-report.html index 8020abf24ed3e..a741de2bb29c0 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/rat-report.html @@ -69,7 +69,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:33Z +Generated at: 2025-01-24T09:25:56Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-parser/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-parser/rat-report.html index 47fcf2d45d4c8..ceccb787f430a 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-parser/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-parser/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:49Z +Generated at: 2025-01-24T09:26:12Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-statement/rat-report.html index 947272e8d61bc..dfdb5f02581da 100644 --- a/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-statement/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:27:40Z +Generated at: 2025-01-24T09:26:03Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/rat-report.html b/statistics/staging/shardingsphere-parser/rat-report.html index c0e508d83095c..ae461c7b5c2fa 100644 --- a/statistics/staging/shardingsphere-parser/rat-report.html +++ b/statistics/staging/shardingsphere-parser/rat-report.html @@ -68,7 +68,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:21Z +Generated at: 2025-01-24T09:18:43Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/rat-report.html index 2dfd8dbfd8a8b..e8c6d0c22e95a 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/rat-report.html @@ -68,7 +68,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:23:36Z +Generated at: 2025-01-24T09:21:59Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/shardingsphere-parser-distsql-engine/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/shardingsphere-parser-distsql-engine/rat-report.html index c7d2a8d7712b9..461397da15ecf 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/shardingsphere-parser-distsql-engine/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/shardingsphere-parser-distsql-engine/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:23:55Z +Generated at: 2025-01-24T09:22:18Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/shardingsphere-parser-distsql-statement/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/shardingsphere-parser-distsql-statement/rat-report.html index deffa80930a85..9ed28842014e4 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/shardingsphere-parser-distsql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-distsql/shardingsphere-parser-distsql-statement/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:23:44Z +Generated at: 2025-01-24T09:22:07Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/rat-report.html index d440ae7def229..170d740f8f4fd 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:24Z +Generated at: 2025-01-24T09:18:46Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-dialect/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-dialect/rat-report.html index ca7f11efa028a..6f208d813bdcf 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-dialect/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-dialect/rat-report.html @@ -77,7 +77,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:30:01Z +Generated at: 2025-01-24T09:28:22Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-dialect/shardingsphere-parser-sql-sql92/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-dialect/shardingsphere-parser-sql-sql92/rat-report.html index 533b5e3a7734a..dfd5f19907e34 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-dialect/shardingsphere-parser-sql-sql92/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-dialect/shardingsphere-parser-sql-sql92/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:30:16Z +Generated at: 2025-01-24T09:28:37Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-engine/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-engine/rat-report.html index 8ee9b3c7e9105..2b05c55876c44 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-engine/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-engine/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:22:15Z +Generated at: 2025-01-24T09:20:39Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-spi/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-spi/rat-report.html index 3e7d1c7753d47..567e4fcd27ad1 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-spi/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-spi/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:29Z +Generated at: 2025-01-24T09:18:51Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/rat-report.html index 15a64eb665d77..243575cd6ba0f 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/rat-report.html @@ -68,7 +68,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:32Z +Generated at: 2025-01-24T09:18:54Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-core/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-core/rat-report.html index 9db1efca464a1..bfb88c750388b 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-core/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-core/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:45Z +Generated at: 2025-01-24T09:19:07Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/rat-report.html index 7a453a64e1cba..8a31515c5b751 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/rat-report.html @@ -77,7 +77,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:51Z +Generated at: 2025-01-24T09:19:14Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-clickhouse/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-clickhouse/rat-report.html index ea8485734ad12..5ea97c6995f30 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-clickhouse/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-clickhouse/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:20:57Z +Generated at: 2025-01-24T09:19:20Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-doris/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-doris/rat-report.html index 125aca23003da..1cbd1ee2f73bb 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-doris/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-doris/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:21:04Z +Generated at: 2025-01-24T09:19:28Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-firebird/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-firebird/rat-report.html index ae38a30edaafe..ea827b305d7df 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-firebird/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-firebird/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:21:11Z +Generated at: 2025-01-24T09:19:35Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-hive/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-hive/rat-report.html index 8cc478bcbab98..0c2904f8803c4 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-hive/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-hive/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:21:17Z +Generated at: 2025-01-24T09:19:42Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-mysql/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-mysql/rat-report.html index 744e3a6227403..78dfd354833d2 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-mysql/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-mysql/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:21:25Z +Generated at: 2025-01-24T09:19:49Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-opengauss/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-opengauss/rat-report.html index 21a710fc10fdd..60d4ed1473e88 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-opengauss/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-opengauss/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:21:32Z +Generated at: 2025-01-24T09:19:56Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-oracle/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-oracle/rat-report.html index 8bf08d361f5e8..fcb602796d5ba 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-oracle/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-oracle/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:21:39Z +Generated at: 2025-01-24T09:20:04Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-postgresql/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-postgresql/rat-report.html index d65f7da7b130f..1abfe91d8c8a5 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-postgresql/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-postgresql/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:21:46Z +Generated at: 2025-01-24T09:20:11Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-presto/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-presto/rat-report.html index 3eca4e5936b1b..309b7ba86085b 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-presto/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-presto/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:21:53Z +Generated at: 2025-01-24T09:20:17Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-sql92/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-sql92/rat-report.html index 7f7cfa2581b67..f2ba0a40fe136 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-sql92/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-sql92/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:21:59Z +Generated at: 2025-01-24T09:20:23Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-sqlserver/rat-report.html b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-sqlserver/rat-report.html index c7c7509f41ec8..643e821d39908 100644 --- a/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-sqlserver/rat-report.html +++ b/statistics/staging/shardingsphere-parser/shardingsphere-parser-sql/shardingsphere-parser-sql-statement/shardingsphere-parser-sql-statement-type/shardingsphere-parser-sql-statement-sqlserver/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:22:06Z +Generated at: 2025-01-24T09:20:30Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-test/rat-report.html b/statistics/staging/shardingsphere-test/rat-report.html index b842196dc7526..741551b9b166b 100644 --- a/statistics/staging/shardingsphere-test/rat-report.html +++ b/statistics/staging/shardingsphere-test/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:17:53Z +Generated at: 2025-01-24T09:16:14Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-test/shardingsphere-test-fixture/rat-report.html b/statistics/staging/shardingsphere-test/shardingsphere-test-fixture/rat-report.html index 5ba3e966eaee0..970418c935206 100644 --- a/statistics/staging/shardingsphere-test/shardingsphere-test-fixture/rat-report.html +++ b/statistics/staging/shardingsphere-test/shardingsphere-test-fixture/rat-report.html @@ -68,7 +68,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:19:51Z +Generated at: 2025-01-24T09:18:12Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-test/shardingsphere-test-fixture/shardingsphere-test-fixture-database/rat-report.html b/statistics/staging/shardingsphere-test/shardingsphere-test-fixture/shardingsphere-test-fixture-database/rat-report.html index 764d84f56e78a..54ee9447a9c26 100644 --- a/statistics/staging/shardingsphere-test/shardingsphere-test-fixture/shardingsphere-test-fixture-database/rat-report.html +++ b/statistics/staging/shardingsphere-test/shardingsphere-test-fixture/shardingsphere-test-fixture-database/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:19:59Z +Generated at: 2025-01-24T09:18:20Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-test/shardingsphere-test-it/rat-report.html b/statistics/staging/shardingsphere-test/shardingsphere-test-it/rat-report.html index 97e8447bf2e08..ec8bf90b7f61a 100644 --- a/statistics/staging/shardingsphere-test/shardingsphere-test-it/rat-report.html +++ b/statistics/staging/shardingsphere-test/shardingsphere-test-it/rat-report.html @@ -74,7 +74,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:29:19Z +Generated at: 2025-01-24T09:27:42Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-test/shardingsphere-test-it/shardingsphere-test-it-parser/rat-report.html b/statistics/staging/shardingsphere-test/shardingsphere-test-it/shardingsphere-test-it-parser/rat-report.html index 5fabc86d15cae..6161a0f0a64b0 100644 --- a/statistics/staging/shardingsphere-test/shardingsphere-test-it/shardingsphere-test-it-parser/rat-report.html +++ b/statistics/staging/shardingsphere-test/shardingsphere-test-it/shardingsphere-test-it-parser/rat-report.html @@ -71,7 +71,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:29:41Z +Generated at: 2025-01-24T09:28:03Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/shardingsphere-test/shardingsphere-test-util/rat-report.html b/statistics/staging/shardingsphere-test/shardingsphere-test-util/rat-report.html index c751e8b7a05c0..a5ee2e4ea3a75 100644 --- a/statistics/staging/shardingsphere-test/shardingsphere-test-util/rat-report.html +++ b/statistics/staging/shardingsphere-test/shardingsphere-test-util/rat-report.html @@ -70,7 +70,7 @@

Rat (Release Audit Tool) ***************************************************** Summary ------- -Generated at: 2025-01-24T06:18:03Z +Generated at: 2025-01-24T09:16:23Z Notes: 0 Binaries: 0 diff --git a/statistics/staging/taglist.html b/statistics/staging/taglist.html index 457e515d1fc67..ad99b4875a6a7 100644 --- a/statistics/staging/taglist.html +++ b/statistics/staging/taglist.html @@ -83,11 +83,11 @@

Tag List Report

@todo
TODO365366 TODO

Each tag is detailed below:

TODO

-

Number of occurrences found in the code: 365

+

Number of occurrences found in the code: 366

@@ -373,7 +373,7 @@

TODO

- + @@ -943,13 +943,13 @@

TODO

- + - + @@ -1833,11 +1833,17 @@

TODO

+ + + + + + - - + + diff --git a/statistics/staging/xref/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.html b/statistics/staging/xref/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.html index b28f40963f82c..b6796745357f9 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.html +++ b/statistics/staging/xref/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.html @@ -109,62 +109,64 @@ 101newExecuteQueryCallbackFactory(prepareEngine.getType()).newInstance(database, queryContext), newSQLFederationContext(false, queryContext, metaData, connection.getProcessId())); 102returnnull != resultSet; 103 } -104if (sqlFederationEngine.enabled()) { -105newFederationMetaDataRefreshEngine(connection.getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService(), database).refresh(queryContext.getSqlStatementContext()); -106returntrue; -107 } -108if (transactionExecutor.decide(queryContext)) { -109return transactionExecutor.execute((TCLStatement) queryContext.getSqlStatementContext().getSqlStatement()); -110 } -111ExecutionContext executionContext = newKernelProcessor().generateExecutionContext(queryContext, metaData.getGlobalRuleMetaData(), metaData.getProps()); -112return executePushDown(database, executionContext, prepareEngine, executeCallback, addCallback, replayCallback); -113 } -114 -115 @SuppressWarnings("rawtypes") -116privateboolean executePushDown(finalShardingSphereDatabase database, finalExecutionContext executionContext, final DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine, -117finalStatementExecuteCallback executeCallback, finalStatementAddCallback addCallback, finalStatementReplayCallback replayCallback) throws SQLException { -118if (database.getRuleMetaData().getAttributes(RawExecutionRuleAttribute.class).isEmpty()) { -119 executeType = ExecuteType.JDBC_PUSH_DOWN; -120return jdbcPushDownExecutor.execute(database, executionContext, prepareEngine, executeCallback, addCallback, replayCallback); -121 } -122 executeType = ExecuteType.RAW_PUSH_DOWN; -123return rawPushDownExecutor.execute(database, executionContext); -124 } -125 -126/** -127 * Get result set. -128 * -129 * @param database database -130 * @param sqlStatementContext SQL statement context -131 * @param statement statement -132 * @param statements statements -133 * @return result set -134 * @throws SQLException SQL exception -135 */ -136public Optional<ResultSet> getResultSet(finalShardingSphereDatabase database, finalSQLStatementContext sqlStatementContext, -137final Statement statement, final List<? extends Statement> statements) throws SQLException { -138if (null == executeType) { -139return Optional.empty(); -140 } -141switch (executeType) { -142case FEDERATION: -143return Optional.of(sqlFederationEngine.getResultSet()); -144case JDBC_PUSH_DOWN: -145return jdbcPushDownExecutor.getResultSet(database, sqlStatementContext, statement, statements); -146default: -147return Optional.empty(); -148 } -149 } -150 -151public enum ExecuteType { -152 -153 FEDERATION, +104FederationMetaDataRefreshEngine federationMetaDataRefreshEngine = newFederationMetaDataRefreshEngine( +105 connection.getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService(), database); +106if (sqlFederationEngine.enabled() && federationMetaDataRefreshEngine.isNeedRefresh(queryContext.getSqlStatementContext())) { +107 federationMetaDataRefreshEngine.refresh(queryContext.getSqlStatementContext()); +108returntrue; +109 } +110if (transactionExecutor.decide(queryContext)) { +111return transactionExecutor.execute((TCLStatement) queryContext.getSqlStatementContext().getSqlStatement()); +112 } +113ExecutionContext executionContext = newKernelProcessor().generateExecutionContext(queryContext, metaData.getGlobalRuleMetaData(), metaData.getProps()); +114return executePushDown(database, executionContext, prepareEngine, executeCallback, addCallback, replayCallback); +115 } +116 +117 @SuppressWarnings("rawtypes") +118privateboolean executePushDown(finalShardingSphereDatabase database, finalExecutionContext executionContext, final DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine, +119finalStatementExecuteCallback executeCallback, finalStatementAddCallback addCallback, finalStatementReplayCallback replayCallback) throws SQLException { +120if (database.getRuleMetaData().getAttributes(RawExecutionRuleAttribute.class).isEmpty()) { +121 executeType = ExecuteType.JDBC_PUSH_DOWN; +122return jdbcPushDownExecutor.execute(database, executionContext, prepareEngine, executeCallback, addCallback, replayCallback); +123 } +124 executeType = ExecuteType.RAW_PUSH_DOWN; +125return rawPushDownExecutor.execute(database, executionContext); +126 } +127 +128/** +129 * Get result set. +130 * +131 * @param database database +132 * @param sqlStatementContext SQL statement context +133 * @param statement statement +134 * @param statements statements +135 * @return result set +136 * @throws SQLException SQL exception +137 */ +138public Optional<ResultSet> getResultSet(finalShardingSphereDatabase database, finalSQLStatementContext sqlStatementContext, +139final Statement statement, final List<? extends Statement> statements) throws SQLException { +140if (null == executeType) { +141return Optional.empty(); +142 } +143switch (executeType) { +144case FEDERATION: +145return Optional.of(sqlFederationEngine.getResultSet()); +146case JDBC_PUSH_DOWN: +147return jdbcPushDownExecutor.getResultSet(database, sqlStatementContext, statement, statements); +148default: +149return Optional.empty(); +150 } +151 } +152 +153public enum ExecuteType { 154 -155 JDBC_PUSH_DOWN, +155 FEDERATION, 156 -157 RAW_PUSH_DOWN -158 } -159 } +157 JDBC_PUSH_DOWN, +158 +159 RAW_PUSH_DOWN +160 } +161 }
diff --git a/statistics/staging/xref/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManager.html b/statistics/staging/xref/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManager.html index 9f75c206e5a6c..953abcca8757d 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManager.html +++ b/statistics/staging/xref/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManager.html @@ -348,50 +348,55 @@ 340finalConnectionMode connectionMode) throws SQLException { 341if (1 == connectionSize) { 342 Connection connection = createConnection(databaseName, dataSourceName, dataSource, connectionContext.getTransactionContext()); -343 methodInvocationRecorder.replay(connection); -344return Collections.singletonList(connection); -345 } -346if (ConnectionMode.CONNECTION_STRICTLY == connectionMode) { -347return createConnections(databaseName, dataSourceName, dataSource, connectionSize, connectionContext.getTransactionContext()); -348 } -349synchronized (dataSource) { -350return createConnections(databaseName, dataSourceName, dataSource, connectionSize, connectionContext.getTransactionContext()); -351 } -352 } -353 -354private List<Connection> createConnections(final String databaseName, final String dataSourceName, final DataSource dataSource, finalint connectionSize, -355finalTransactionConnectionContext transactionConnectionContext) throws SQLException { -356 List<Connection> result = new ArrayList<>(connectionSize); -357for (int i = 0; i < connectionSize; i++) { -358try { -359 Connection connection = createConnection(databaseName, dataSourceName, dataSource, transactionConnectionContext); -360 methodInvocationRecorder.replay(connection); -361 result.add(connection); -362 } catch (final SQLException ex) { -363for (Connection each : result) { -364 each.close(); -365 } -366thrownewOverallConnectionNotEnoughException(connectionSize, result.size(), ex).toSQLException(); -367 } -368 } -369return result; -370 } -371 -372private Connection createConnection(final String databaseName, final String dataSourceName, final DataSource dataSource, -373finalTransactionConnectionContext transactionConnectionContext) throws SQLException { -374 Optional<Connection> connectionInTransaction = getConnectionTransaction().getConnection(databaseName, dataSourceName, transactionConnectionContext); -375return connectionInTransaction.isPresent() ? connectionInTransaction.get() : dataSource.getConnection(); -376 } -377 -378 @Override -379publicvoid close() throws SQLException { -380try { -381 forceExecuteTemplate.execute(cachedConnections.values(), Connection::close); -382 } finally { -383 cachedConnections.clear(); -384 } -385 } -386 } +343try { +344 methodInvocationRecorder.replay(connection); +345 } catch (final SQLException ex) { +346 connection.close(); +347throw ex; +348 } +349return Collections.singletonList(connection); +350 } +351if (ConnectionMode.CONNECTION_STRICTLY == connectionMode) { +352return createConnections(databaseName, dataSourceName, dataSource, connectionSize, connectionContext.getTransactionContext()); +353 } +354synchronized (dataSource) { +355return createConnections(databaseName, dataSourceName, dataSource, connectionSize, connectionContext.getTransactionContext()); +356 } +357 } +358 +359private List<Connection> createConnections(final String databaseName, final String dataSourceName, final DataSource dataSource, finalint connectionSize, +360finalTransactionConnectionContext transactionConnectionContext) throws SQLException { +361 List<Connection> result = new ArrayList<>(connectionSize); +362for (int i = 0; i < connectionSize; i++) { +363try { +364 Connection connection = createConnection(databaseName, dataSourceName, dataSource, transactionConnectionContext); +365 methodInvocationRecorder.replay(connection); +366 result.add(connection); +367 } catch (final SQLException ex) { +368for (Connection each : result) { +369 each.close(); +370 } +371thrownewOverallConnectionNotEnoughException(connectionSize, result.size(), ex).toSQLException(); +372 } +373 } +374return result; +375 } +376 +377private Connection createConnection(final String databaseName, final String dataSourceName, final DataSource dataSource, +378finalTransactionConnectionContext transactionConnectionContext) throws SQLException { +379 Optional<Connection> connectionInTransaction = getConnectionTransaction().getConnection(databaseName, dataSourceName, transactionConnectionContext); +380return connectionInTransaction.isPresent() ? connectionInTransaction.get() : dataSource.getConnection(); +381 } +382 +383 @Override +384publicvoid close() throws SQLException { +385try { +386 forceExecuteTemplate.execute(cachedConnections.values(), Connection::close); +387 } finally { +388 cachedConnections.clear(); +389 } +390 } +391 }
diff --git a/statistics/staging/xref/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.html b/statistics/staging/xref/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.html index 590dec6ee118d..c94ff39cee875 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.html +++ b/statistics/staging/xref/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.html @@ -25,190 +25,189 @@ 1718package org.apache.shardingsphere.encrypt.rewrite.condition; 19 -20import lombok.RequiredArgsConstructor; -21import org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException; -22import org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptBinaryCondition; -23import org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptInCondition; -24import org.apache.shardingsphere.encrypt.rule.EncryptRule; -25import org.apache.shardingsphere.encrypt.rule.table.EncryptTable; -26import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation; -27import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; -28import org.apache.shardingsphere.sql.parser.statement.core.extractor.ColumnExtractor; -29import org.apache.shardingsphere.sql.parser.statement.core.extractor.ExpressionExtractor; -30import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment; -31import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BetweenExpression; -32import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BinaryOperationExpression; -33import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment; -34import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.InExpression; -35import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ListExpression; -36import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment; -37import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.SimpleExpressionSegment; -38import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubqueryExpressionSegment; -39import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.AndPredicate; -40import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.WhereSegment; -41 -42import java.util.Collection; -43import java.util.HashSet; -44import java.util.LinkedList; -45import java.util.List; -46import java.util.Optional; -47import java.util.Set; -48import java.util.TreeSet; -49 -50/** -51 * Encrypt condition engine. -52 */ -53 @HighFrequencyInvocation -54 @RequiredArgsConstructor -55publicfinalclassEncryptConditionEngine { -56 -57privatestaticfinal Set<String> LOGICAL_OPERATOR = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); -58 -59privatestaticfinal Set<String> SUPPORTED_COMPARE_OPERATOR = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); -60 -61privatefinalEncryptRule rule; -62 -63static { -64 LOGICAL_OPERATOR.add("AND"); -65 LOGICAL_OPERATOR.add("&&"); -66 LOGICAL_OPERATOR.add("OR"); -67 LOGICAL_OPERATOR.add("||"); -68 SUPPORTED_COMPARE_OPERATOR.add("="); -69 SUPPORTED_COMPARE_OPERATOR.add("<>"); -70 SUPPORTED_COMPARE_OPERATOR.add("!="); -71 SUPPORTED_COMPARE_OPERATOR.add(">"); -72 SUPPORTED_COMPARE_OPERATOR.add("<"); -73 SUPPORTED_COMPARE_OPERATOR.add(">="); -74 SUPPORTED_COMPARE_OPERATOR.add("<="); -75 SUPPORTED_COMPARE_OPERATOR.add("IS"); -76 SUPPORTED_COMPARE_OPERATOR.add("LIKE"); -77 } -78 -79/** -80 * Create encrypt conditions. -81 * -82 * @param whereSegments where segments -83 * @return encrypt conditions -84 */ -85public Collection<EncryptCondition> createEncryptConditions(final Collection<WhereSegment> whereSegments) { -86 Collection<EncryptCondition> result = new LinkedList<>(); -87for (WhereSegment each : whereSegments) { -88 Collection<AndPredicate> andPredicates = ExpressionExtractor.extractAndPredicates(each.getExpr()); -89for (AndPredicate predicate : andPredicates) { -90 addEncryptConditions(result, predicate.getPredicates()); -91 } -92 } -93return result; -94 } -95 -96privatevoid addEncryptConditions(final Collection<EncryptCondition> encryptConditions, final Collection<ExpressionSegment> predicates) { -97 Collection<Integer> stopIndexes = new HashSet<>(predicates.size(), 1F); -98for (ExpressionSegment each : predicates) { -99if (stopIndexes.add(each.getStopIndex())) { -100 addEncryptConditions(encryptConditions, each); -101 } -102 } -103 } -104 -105privatevoid addEncryptConditions(final Collection<EncryptCondition> encryptConditions, finalExpressionSegment expression) { -106if (!findNotContainsNullLiteralsExpression(expression).isPresent()) { -107return; -108 } -109for (ColumnSegment each : ColumnExtractor.extract(expression)) { -110 String tableName = each.getColumnBoundInfo().getOriginalTable().getValue(); -111 Optional<EncryptTable> encryptTable = rule.findEncryptTable(tableName); -112if (encryptTable.isPresent() && encryptTable.get().isEncryptColumn(each.getColumnBoundInfo().getOriginalColumn().getValue())) { -113 createEncryptCondition(expression, tableName).ifPresent(encryptConditions::add); -114 } -115 } -116 } -117 -118private Optional<ExpressionSegment> findNotContainsNullLiteralsExpression(finalExpressionSegment expression) { -119if (isContainsNullLiterals(expression)) { -120return Optional.empty(); -121 } -122if (expression instanceof BinaryOperationExpression && isContainsNullLiterals(((BinaryOperationExpression) expression).getRight())) { -123return Optional.empty(); -124 } -125return Optional.ofNullable(expression); -126 } -127 -128privateboolean isContainsNullLiterals(finalExpressionSegment expression) { -129if (!(expression instanceof LiteralExpressionSegment)) { -130return false; -131 } -132 String literals = String.valueOf(((LiteralExpressionSegment) expression).getLiterals()); -133return"NULL".equalsIgnoreCase(literals) || "NOT NULL".equalsIgnoreCase(literals); -134 } -135 -136private Optional<EncryptCondition> createEncryptCondition(finalExpressionSegment expression, final String tableName) { -137if (expression instanceof BinaryOperationExpression) { -138return createBinaryEncryptCondition((BinaryOperationExpression) expression, tableName); -139 } -140if (expression instanceof InExpression) { -141return createInEncryptCondition(tableName, (InExpression) expression, ((InExpression) expression).getRight()); -142 } -143if (expression instanceof BetweenExpression) { -144thrownewUnsupportedEncryptSQLException("BETWEEN...AND..."); -145 } -146return Optional.empty(); -147 } -148 -149private Optional<EncryptCondition> createBinaryEncryptCondition(finalBinaryOperationExpression expression, final String tableName) { -150 String operator = expression.getOperator(); -151if (LOGICAL_OPERATOR.contains(operator)) { -152return Optional.empty(); -153 } -154 ShardingSpherePreconditions.checkContains(SUPPORTED_COMPARE_OPERATOR, operator, () -> newUnsupportedEncryptSQLException(operator)); -155return createCompareEncryptCondition(tableName, expression); -156 } -157 -158private Optional<EncryptCondition> createCompareEncryptCondition(final String tableName, finalBinaryOperationExpression expression) { -159if (isLeftRightAllNotColumnSegment(expression) || isLeftRightContainsSubquerySegment(expression)) { -160return Optional.empty(); -161 } -162ColumnSegment columnSegment = expression.getLeft() instanceof ColumnSegment ? (ColumnSegment) expression.getLeft() : (ColumnSegment) expression.getRight(); -163ExpressionSegment compareValueSegment = expression.getLeft() instanceof ColumnSegment ? expression.getRight() : expression.getLeft(); -164if (compareValueSegment instanceof SimpleExpressionSegment) { -165return Optional.of(createEncryptBinaryOperationCondition(tableName, expression, columnSegment, compareValueSegment)); -166 } -167if (compareValueSegment instanceof ListExpression) { -168// TODO check this logic when items contain multiple values @duanzhengqiang -169return Optional.of(createEncryptBinaryOperationCondition(tableName, expression, columnSegment, ((ListExpression) compareValueSegment).getItems().get(0))); -170 } -171return Optional.empty(); -172 } -173 -174privateboolean isLeftRightAllNotColumnSegment(finalBinaryOperationExpression expression) { -175return !(expression.getLeft() instanceof ColumnSegment) && !(expression.getRight() instanceof ColumnSegment); -176 } -177 -178privateboolean isLeftRightContainsSubquerySegment(finalBinaryOperationExpression expression) { -179return expression.getLeft() instanceof SubqueryExpressionSegment || expression.getRight() instanceof SubqueryExpressionSegment; -180 } -181 -182privateEncryptBinaryCondition createEncryptBinaryOperationCondition(final String tableName, finalBinaryOperationExpression expression, finalColumnSegment columnSegment, -183finalExpressionSegment compareValueSegment) { -184returnnewEncryptBinaryCondition(columnSegment, tableName, expression.getOperator(), compareValueSegment.getStartIndex(), compareValueSegment.getStopIndex(), compareValueSegment); -185 } -186 -187privatestatic Optional<EncryptCondition> createInEncryptCondition(final String tableName, finalInExpression inExpression, finalExpressionSegment inRightValue) { -188if (!(inExpression.getLeft() instanceof ColumnSegment)) { -189return Optional.empty(); -190 } -191 List<ExpressionSegment> expressionSegments = new LinkedList<>(); -192for (ExpressionSegment each : inExpression.getExpressionList()) { -193if (each instanceof SimpleExpressionSegment) { -194 expressionSegments.add(each); -195 } -196 } -197if (expressionSegments.isEmpty()) { -198return Optional.empty(); -199 } -200ColumnSegment columnSegment = (ColumnSegment) inExpression.getLeft(); -201return Optional.of(newEncryptInCondition(columnSegment, tableName, inRightValue.getStartIndex(), inRightValue.getStopIndex(), expressionSegments)); -202 } -203 } +20import com.cedarsoftware.util.CaseInsensitiveSet; +21import lombok.RequiredArgsConstructor; +22import org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException; +23import org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptBinaryCondition; +24import org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptInCondition; +25import org.apache.shardingsphere.encrypt.rule.EncryptRule; +26import org.apache.shardingsphere.encrypt.rule.table.EncryptTable; +27import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation; +28import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; +29import org.apache.shardingsphere.sql.parser.statement.core.extractor.ColumnExtractor; +30import org.apache.shardingsphere.sql.parser.statement.core.extractor.ExpressionExtractor; +31import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment; +32import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BetweenExpression; +33import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BinaryOperationExpression; +34import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment; +35import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.InExpression; +36import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ListExpression; +37import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment; +38import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.SimpleExpressionSegment; +39import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubqueryExpressionSegment; +40import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.AndPredicate; +41import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.WhereSegment; +42 +43import java.util.Collection; +44import java.util.HashSet; +45import java.util.LinkedList; +46import java.util.List; +47import java.util.Optional; +48 +49/** +50 * Encrypt condition engine. +51 */ +52 @HighFrequencyInvocation +53 @RequiredArgsConstructor +54publicfinalclassEncryptConditionEngine { +55 +56privatestaticfinal Collection<String> LOGICAL_OPERATORS = new CaseInsensitiveSet<>(); +57 +58privatestaticfinal Collection<String> SUPPORTED_COMPARE_OPERATORS = new CaseInsensitiveSet<>(); +59 +60privatefinalEncryptRule rule; +61 +62static { +63 LOGICAL_OPERATORS.add("AND"); +64 LOGICAL_OPERATORS.add("&&"); +65 LOGICAL_OPERATORS.add("OR"); +66 LOGICAL_OPERATORS.add("||"); +67 SUPPORTED_COMPARE_OPERATORS.add("="); +68 SUPPORTED_COMPARE_OPERATORS.add("<>"); +69 SUPPORTED_COMPARE_OPERATORS.add("!="); +70 SUPPORTED_COMPARE_OPERATORS.add(">"); +71 SUPPORTED_COMPARE_OPERATORS.add("<"); +72 SUPPORTED_COMPARE_OPERATORS.add(">="); +73 SUPPORTED_COMPARE_OPERATORS.add("<="); +74 SUPPORTED_COMPARE_OPERATORS.add("IS"); +75 SUPPORTED_COMPARE_OPERATORS.add("LIKE"); +76 } +77 +78/** +79 * Create encrypt conditions. +80 * +81 * @param whereSegments where segments +82 * @return encrypt conditions +83 */ +84public Collection<EncryptCondition> createEncryptConditions(final Collection<WhereSegment> whereSegments) { +85 Collection<EncryptCondition> result = new LinkedList<>(); +86for (WhereSegment each : whereSegments) { +87 Collection<AndPredicate> andPredicates = ExpressionExtractor.extractAndPredicates(each.getExpr()); +88for (AndPredicate predicate : andPredicates) { +89 addEncryptConditions(result, predicate.getPredicates()); +90 } +91 } +92return result; +93 } +94 +95privatevoid addEncryptConditions(final Collection<EncryptCondition> encryptConditions, final Collection<ExpressionSegment> predicates) { +96 Collection<Integer> stopIndexes = new HashSet<>(predicates.size(), 1F); +97for (ExpressionSegment each : predicates) { +98if (stopIndexes.add(each.getStopIndex())) { +99 addEncryptConditions(encryptConditions, each); +100 } +101 } +102 } +103 +104privatevoid addEncryptConditions(final Collection<EncryptCondition> encryptConditions, finalExpressionSegment expression) { +105if (!findNotContainsNullLiteralsExpression(expression).isPresent()) { +106return; +107 } +108for (ColumnSegment each : ColumnExtractor.extract(expression)) { +109 String tableName = each.getColumnBoundInfo().getOriginalTable().getValue(); +110 Optional<EncryptTable> encryptTable = rule.findEncryptTable(tableName); +111if (encryptTable.isPresent() && encryptTable.get().isEncryptColumn(each.getColumnBoundInfo().getOriginalColumn().getValue())) { +112 createEncryptCondition(expression, tableName).ifPresent(encryptConditions::add); +113 } +114 } +115 } +116 +117private Optional<ExpressionSegment> findNotContainsNullLiteralsExpression(finalExpressionSegment expression) { +118if (isContainsNullLiterals(expression)) { +119return Optional.empty(); +120 } +121if (expression instanceof BinaryOperationExpression && isContainsNullLiterals(((BinaryOperationExpression) expression).getRight())) { +122return Optional.empty(); +123 } +124return Optional.ofNullable(expression); +125 } +126 +127privateboolean isContainsNullLiterals(finalExpressionSegment expression) { +128if (!(expression instanceof LiteralExpressionSegment)) { +129return false; +130 } +131 String literals = String.valueOf(((LiteralExpressionSegment) expression).getLiterals()); +132return"NULL".equalsIgnoreCase(literals) || "NOT NULL".equalsIgnoreCase(literals); +133 } +134 +135private Optional<EncryptCondition> createEncryptCondition(finalExpressionSegment expression, final String tableName) { +136if (expression instanceof BinaryOperationExpression) { +137return createBinaryEncryptCondition((BinaryOperationExpression) expression, tableName); +138 } +139if (expression instanceof InExpression) { +140return createInEncryptCondition(tableName, (InExpression) expression, ((InExpression) expression).getRight()); +141 } +142if (expression instanceof BetweenExpression) { +143thrownewUnsupportedEncryptSQLException("BETWEEN...AND..."); +144 } +145return Optional.empty(); +146 } +147 +148private Optional<EncryptCondition> createBinaryEncryptCondition(finalBinaryOperationExpression expression, final String tableName) { +149 String operator = expression.getOperator(); +150if (LOGICAL_OPERATORS.contains(operator)) { +151return Optional.empty(); +152 } +153 ShardingSpherePreconditions.checkContains(SUPPORTED_COMPARE_OPERATORS, operator, () -> newUnsupportedEncryptSQLException(operator)); +154return createCompareEncryptCondition(tableName, expression); +155 } +156 +157private Optional<EncryptCondition> createCompareEncryptCondition(final String tableName, finalBinaryOperationExpression expression) { +158if (isLeftRightAllNotColumnSegment(expression) || isLeftRightContainsSubquerySegment(expression)) { +159return Optional.empty(); +160 } +161ColumnSegment columnSegment = expression.getLeft() instanceof ColumnSegment ? (ColumnSegment) expression.getLeft() : (ColumnSegment) expression.getRight(); +162ExpressionSegment compareValueSegment = expression.getLeft() instanceof ColumnSegment ? expression.getRight() : expression.getLeft(); +163if (compareValueSegment instanceof SimpleExpressionSegment) { +164return Optional.of(createEncryptBinaryOperationCondition(tableName, expression, columnSegment, compareValueSegment)); +165 } +166if (compareValueSegment instanceof ListExpression) { +167// TODO check this logic when items contain multiple values @duanzhengqiang +168return Optional.of(createEncryptBinaryOperationCondition(tableName, expression, columnSegment, ((ListExpression) compareValueSegment).getItems().get(0))); +169 } +170return Optional.empty(); +171 } +172 +173privateboolean isLeftRightAllNotColumnSegment(finalBinaryOperationExpression expression) { +174return !(expression.getLeft() instanceof ColumnSegment) && !(expression.getRight() instanceof ColumnSegment); +175 } +176 +177privateboolean isLeftRightContainsSubquerySegment(finalBinaryOperationExpression expression) { +178return expression.getLeft() instanceof SubqueryExpressionSegment || expression.getRight() instanceof SubqueryExpressionSegment; +179 } +180 +181privateEncryptBinaryCondition createEncryptBinaryOperationCondition(final String tableName, finalBinaryOperationExpression expression, finalColumnSegment columnSegment, +182finalExpressionSegment compareValueSegment) { +183returnnewEncryptBinaryCondition(columnSegment, tableName, expression.getOperator(), compareValueSegment.getStartIndex(), compareValueSegment.getStopIndex(), compareValueSegment); +184 } +185 +186privatestatic Optional<EncryptCondition> createInEncryptCondition(final String tableName, finalInExpression inExpression, finalExpressionSegment inRightValue) { +187if (!(inExpression.getLeft() instanceof ColumnSegment)) { +188return Optional.empty(); +189 } +190 List<ExpressionSegment> expressionSegments = new LinkedList<>(); +191for (ExpressionSegment each : inExpression.getExpressionList()) { +192if (each instanceof SimpleExpressionSegment) { +193 expressionSegments.add(each); +194 } +195 } +196if (expressionSegments.isEmpty()) { +197return Optional.empty(); +198 } +199ColumnSegment columnSegment = (ColumnSegment) inExpression.getLeft(); +200return Optional.of(newEncryptInCondition(columnSegment, tableName, inRightValue.getStartIndex(), inRightValue.getStopIndex(), expressionSegments)); +201 } +202 }
diff --git a/statistics/staging/xref/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.html b/statistics/staging/xref/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.html index 6d454b08d3e79..75f396124c441 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.html +++ b/statistics/staging/xref/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.html @@ -96,7 +96,7 @@ 88 } 8990 @Override -91publicvoid alterSchema(finalAlterSchemaPOJO alterSchemaPOJO) { +91publicvoid alterSchemaName(finalAlterSchemaPOJO alterSchemaPOJO) { 92 String databaseName = alterSchemaPOJO.getDatabaseName(); 93 String schemaName = alterSchemaPOJO.getSchemaName(); 94ShardingSphereSchema schema = metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getSchema(schemaName); diff --git a/statistics/staging/xref/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.html b/statistics/staging/xref/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.html index 6c19d6960885b..4f0dd01296519 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.html +++ b/statistics/staging/xref/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.html @@ -106,7 +106,7 @@ 98 } 99100 @Override -101publicvoid alterSchema(finalAlterSchemaPOJO alterSchemaPOJO) { +101publicvoid alterSchemaName(finalAlterSchemaPOJO alterSchemaPOJO) { 102ShardingSphereMetaData metaData = metaDataContextManager.getMetaDataContexts().getMetaData(); 103ShardingSphereDatabase database = metaData.getDatabase(alterSchemaPOJO.getDatabaseName()); 104 putSchemaMetaData(database, alterSchemaPOJO.getSchemaName(), alterSchemaPOJO.getRenameSchemaName(), alterSchemaPOJO.getLogicDataSourceName()); diff --git a/statistics/staging/xref/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/FederationMetaDataRefreshEngine.html b/statistics/staging/xref/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/FederationMetaDataRefreshEngine.html index 940ae7d96bb7b..fbaff2e57eef2 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/FederationMetaDataRefreshEngine.html +++ b/statistics/staging/xref/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/FederationMetaDataRefreshEngine.html @@ -43,17 +43,28 @@ 35privatefinalShardingSphereDatabase database; 3637/** -38 * Refresh federation meta data. +38 * Whether to need refresh meta data.39 *40 * @param sqlStatementContext SQL statement context -41 */ -42 @SuppressWarnings("unchecked") -43publicvoid refresh(finalSQLStatementContext sqlStatementContext) { +41 * @return is need refresh meta data or not +42 */ +43publicboolean isNeedRefresh(finalSQLStatementContext sqlStatementContext) { 44 Class<?> sqlStatementClass = sqlStatementContext.getSqlStatement().getClass().getSuperclass(); -45 TypedSPILoader.findService(FederationMetaDataRefresher.class, sqlStatementClass).ifPresent( -46 optional -> optional.refresh(metaDataManagerPersistService, database, SchemaRefreshUtils.getSchemaName(database, sqlStatementContext), sqlStatementContext.getSqlStatement())); -47 } -48 } +45return TypedSPILoader.findService(FederationMetaDataRefresher.class, sqlStatementClass).isPresent(); +46 } +47 +48/** +49 * Refresh federation meta data. +50 * +51 * @param sqlStatementContext SQL statement context +52 */ +53 @SuppressWarnings("unchecked") +54publicvoid refresh(finalSQLStatementContext sqlStatementContext) { +55 Class<?> sqlStatementClass = sqlStatementContext.getSqlStatement().getClass().getSuperclass(); +56 TypedSPILoader.findService(FederationMetaDataRefresher.class, sqlStatementClass).ifPresent( +57 optional -> optional.refresh(metaDataManagerPersistService, database, SchemaRefreshUtils.getSchemaName(database, sqlStatementContext), sqlStatementContext.getSqlStatement())); +58 } +59 }
diff --git a/statistics/staging/xref/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.html b/statistics/staging/xref/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.html index 4f712996ed603..f39662954f608 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.html +++ b/statistics/staging/xref/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.html @@ -25,31 +25,31 @@ 1718package org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.schema; 19 -20import com.google.common.base.Preconditions; -21import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; -22import org.apache.shardingsphere.infra.database.core.type.DatabaseType; -23import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; -24import org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO; -25import org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher; -26import org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService; -27import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSchemaStatement; -28 -29import java.sql.SQLException; -30import java.util.Collection; -31import java.util.Optional; -32 -33/** -34 * Alter schema push down meta data refresher. -35 */ -36publicfinalclassAlterSchemaPushDownMetaDataRefresherimplements PushDownMetaDataRefresher<AlterSchemaStatement> { -37 -38 @Override -39publicvoid refresh(finalMetaDataManagerPersistService metaDataManagerPersistService, finalShardingSphereDatabase database, final Collection<String> logicDataSourceNames, -40final String schemaName, finalDatabaseType databaseType, finalAlterSchemaStatement sqlStatement, finalConfigurationProperties props) throws SQLException { -41 Optional<String> renameSchemaName = sqlStatement.getRenameSchema().map(optional -> optional.getValue().toLowerCase()); -42 Preconditions.checkArgument(renameSchemaName.isPresent(), "The renamed schema is not exist of schema '%s'.", schemaName); -43 metaDataManagerPersistService.alterSchema(newAlterSchemaPOJO(database.getName(), sqlStatement.getSchemaName().getValue().toLowerCase(), -44 renameSchemaName.get(), logicDataSourceNames)); +20import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; +21import org.apache.shardingsphere.infra.database.core.type.DatabaseType; +22import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; +23import org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO; +24import org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher; +25import org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService; +26import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSchemaStatement; +27 +28import java.sql.SQLException; +29import java.util.Collection; +30import java.util.Optional; +31 +32/** +33 * Alter schema push down meta data refresher. +34 */ +35publicfinalclassAlterSchemaPushDownMetaDataRefresherimplements PushDownMetaDataRefresher<AlterSchemaStatement> { +36 +37 @Override +38publicvoid refresh(finalMetaDataManagerPersistService metaDataManagerPersistService, finalShardingSphereDatabase database, final Collection<String> logicDataSourceNames, +39final String schemaName, finalDatabaseType databaseType, finalAlterSchemaStatement sqlStatement, finalConfigurationProperties props) throws SQLException { +40 Optional<String> renameSchemaName = sqlStatement.getRenameSchema().map(optional -> optional.getValue().toLowerCase()); +41if (!renameSchemaName.isPresent()) { +42return; +43 } +44 metaDataManagerPersistService.alterSchemaName(newAlterSchemaPOJO(database.getName(), sqlStatement.getSchemaName().getValue().toLowerCase(), renameSchemaName.get(), logicDataSourceNames)); 45 } 4647 @Override diff --git a/statistics/staging/xref/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.html b/statistics/staging/xref/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.html index 22daf54b8b820..e31e4468517fe 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.html +++ b/statistics/staging/xref/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.html @@ -66,12 +66,12 @@ 58void createSchema(String databaseName, String schemaName); 5960/** -61 * Alter schema. +61 * Alter schema name.62 *63 * @param alterSchemaPOJO alter schema pojo64 * @throws SQLException SQL exception65 */ -66void alterSchema(AlterSchemaPOJO alterSchemaPOJO) throws SQLException; +66void alterSchemaName(AlterSchemaPOJO alterSchemaPOJO) throws SQLException; 6768/**69 * Drop schema. diff --git a/statistics/staging/xref/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.html b/statistics/staging/xref/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.html index d31f53f248da4..a78f644f081b9 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.html +++ b/statistics/staging/xref/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.html @@ -195,7 +195,7 @@ 187if (proxySQLExecutor.getSqlFederationEngine().decide(queryContext, contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData())) { 188return processExecuteFederation(doExecuteFederation()); 189 } -190if (proxySQLExecutor.getSqlFederationEngine().enabled()) { +190if (proxySQLExecutor.getSqlFederationEngine().enabled() && federationMetaDataRefreshEngine.isNeedRefresh(queryContext.getSqlStatementContext())) { 191 federationMetaDataRefreshEngine.refresh(queryContext.getSqlStatementContext()); 192returnnewUpdateResponseHeader(queryContext.getSqlStatementContext().getSqlStatement()); 193 } diff --git a/statistics/staging/xref/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.html b/statistics/staging/xref/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.html index 8cf0e8daed7e8..529ca9770108c 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.html +++ b/statistics/staging/xref/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.html @@ -25,101 +25,100 @@ 1718package org.apache.shardingsphere.proxy.backend.opengauss.handler.admin; 19 -20import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext; -21import org.apache.shardingsphere.infra.binder.context.type.TableAvailable; -22import org.apache.shardingsphere.infra.metadata.database.schema.manager.SystemSchemaManager; -23import org.apache.shardingsphere.proxy.backend.handler.admin.executor.AbstractDatabaseMetaDataExecutor.DefaultDatabaseMetaDataExecutor; -24import org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutor; -25import org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutorCreator; -26import org.apache.shardingsphere.proxy.backend.postgresql.handler.admin.PostgreSQLAdminExecutorCreator; -27import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ExpressionProjectionSegment; -28import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionSegment; -29import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement; -30import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowStatement; -31import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement; -32 -33import java.util.Collection; -34import java.util.Collections; -35import java.util.List; -36import java.util.Optional; -37import java.util.Set; -38import java.util.TreeSet; -39 -40/** -41 * Database admin executor creator for openGauss. -42 */ -43publicfinalclassOpenGaussAdminExecutorCreatorimplementsDatabaseAdminExecutorCreator { -44 -45privatestaticfinal Set<String> SYSTEM_CATALOG_QUERY_EXPRESSIONS = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); -46 -47privatestaticfinal Set<String> SYSTEM_CATALOG_TABLES = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); -48 -49static { -50 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("VERSION()"); -51 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("opengauss_version()"); -52 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("gs_password_deadline()"); -53 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("intervaltonum()"); -54 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("intervaltonum(gs_password_deadline())"); -55 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("gs_password_notifytime()"); -56 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("pg_catalog.gs_password_deadline()"); -57 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("pg_catalog.intervaltonum()"); -58 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("pg_catalog.intervaltonum(pg_catalog.gs_password_deadline())"); -59 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("pg_catalog.gs_password_notifytime()"); -60 SYSTEM_CATALOG_TABLES.add("pg_class"); -61 SYSTEM_CATALOG_TABLES.add("pg_namespace"); -62 SYSTEM_CATALOG_TABLES.add("pg_database"); -63 SYSTEM_CATALOG_TABLES.add("pg_tables"); -64 SYSTEM_CATALOG_TABLES.add("pg_roles"); -65 } -66 -67privatefinalPostgreSQLAdminExecutorCreator delegated = newPostgreSQLAdminExecutorCreator(); -68 -69 @Override -70public Optional<DatabaseAdminExecutor> create(finalSQLStatementContext sqlStatementContext) { -71SQLStatement sqlStatement = sqlStatementContext.getSqlStatement(); -72if (sqlStatement instanceof ShowStatement) { -73return Optional.of(newOpenGaussShowVariableExecutor((ShowStatement) sqlStatement)); -74 } -75return Optional.empty(); -76 } -77 -78 @Override -79public Optional<DatabaseAdminExecutor> create(finalSQLStatementContext sqlStatementContext, final String sql, final String databaseName, final List<Object> parameters) { -80if (isSQLFederationSystemCatalogQuery(sqlStatementContext) || isSQLFederationSystemCatalogQueryExpressions(sqlStatementContext)) { -81return Optional.of(newOpenGaussSystemCatalogAdminQueryExecutor(sqlStatementContext, sql, databaseName, parameters)); -82 } -83if (isPassThroughSystemCatalogQuery(sqlStatementContext)) { -84return Optional.of(new DefaultDatabaseMetaDataExecutor(sql, parameters)); -85 } -86return delegated.create(sqlStatementContext, sql, databaseName, parameters); -87 } -88 -89privateboolean isSQLFederationSystemCatalogQuery(finalSQLStatementContext sqlStatementContext) { -90 Collection<String> tableNames = sqlStatementContext instanceof TableAvailable ? ((TableAvailable) sqlStatementContext).getTablesContext().getTableNames() : Collections.emptyList(); -91return !tableNames.isEmpty() && SYSTEM_CATALOG_TABLES.containsAll(tableNames); -92 } -93 -94privateboolean isSQLFederationSystemCatalogQueryExpressions(finalSQLStatementContext sqlStatementContext) { -95if (!(sqlStatementContext.getSqlStatement() instanceof SelectStatement)) { -96return false; -97 } -98SelectStatement selectStatement = (SelectStatement) sqlStatementContext.getSqlStatement(); -99 Collection<ProjectionSegment> projections = selectStatement.getProjections().getProjections(); -100return 1 == projections.size() && projections.iterator().next() instanceof ExpressionProjectionSegment -101 && SYSTEM_CATALOG_QUERY_EXPRESSIONS.contains(((ExpressionProjectionSegment) projections.iterator().next()).getText()); -102 } -103 -104privateboolean isPassThroughSystemCatalogQuery(finalSQLStatementContext sqlStatementContext) { -105 Collection<String> tableNames = sqlStatementContext instanceof TableAvailable ? ((TableAvailable) sqlStatementContext).getTablesContext().getTableNames() : Collections.emptyList(); -106return !tableNames.isEmpty() && (SystemSchemaManager.isSystemTable("opengauss", "information_schema", tableNames) -107 || SystemSchemaManager.isSystemTable("opengauss", "pg_catalog", tableNames)); -108 } -109 -110 @Override -111public String getDatabaseType() { -112return"openGauss"; -113 } -114 } +20import com.cedarsoftware.util.CaseInsensitiveSet; +21import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext; +22import org.apache.shardingsphere.infra.binder.context.type.TableAvailable; +23import org.apache.shardingsphere.infra.metadata.database.schema.manager.SystemSchemaManager; +24import org.apache.shardingsphere.proxy.backend.handler.admin.executor.AbstractDatabaseMetaDataExecutor.DefaultDatabaseMetaDataExecutor; +25import org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutor; +26import org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutorCreator; +27import org.apache.shardingsphere.proxy.backend.postgresql.handler.admin.PostgreSQLAdminExecutorCreator; +28import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ExpressionProjectionSegment; +29import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionSegment; +30import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement; +31import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowStatement; +32import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement; +33 +34import java.util.Collection; +35import java.util.Collections; +36import java.util.List; +37import java.util.Optional; +38 +39/** +40 * Database admin executor creator for openGauss. +41 */ +42publicfinalclassOpenGaussAdminExecutorCreatorimplementsDatabaseAdminExecutorCreator { +43 +44privatestaticfinal Collection<String> SYSTEM_CATALOG_QUERY_EXPRESSIONS = new CaseInsensitiveSet<>(); +45 +46privatestaticfinal Collection<String> SYSTEM_CATALOG_TABLES = new CaseInsensitiveSet<>(); +47 +48static { +49 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("VERSION()"); +50 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("opengauss_version()"); +51 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("gs_password_deadline()"); +52 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("intervaltonum()"); +53 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("intervaltonum(gs_password_deadline())"); +54 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("gs_password_notifytime()"); +55 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("pg_catalog.gs_password_deadline()"); +56 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("pg_catalog.intervaltonum()"); +57 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("pg_catalog.intervaltonum(pg_catalog.gs_password_deadline())"); +58 SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("pg_catalog.gs_password_notifytime()"); +59 SYSTEM_CATALOG_TABLES.add("pg_class"); +60 SYSTEM_CATALOG_TABLES.add("pg_namespace"); +61 SYSTEM_CATALOG_TABLES.add("pg_database"); +62 SYSTEM_CATALOG_TABLES.add("pg_tables"); +63 SYSTEM_CATALOG_TABLES.add("pg_roles"); +64 } +65 +66privatefinalPostgreSQLAdminExecutorCreator delegated = newPostgreSQLAdminExecutorCreator(); +67 +68 @Override +69public Optional<DatabaseAdminExecutor> create(finalSQLStatementContext sqlStatementContext) { +70SQLStatement sqlStatement = sqlStatementContext.getSqlStatement(); +71if (sqlStatement instanceof ShowStatement) { +72return Optional.of(newOpenGaussShowVariableExecutor((ShowStatement) sqlStatement)); +73 } +74return Optional.empty(); +75 } +76 +77 @Override +78public Optional<DatabaseAdminExecutor> create(finalSQLStatementContext sqlStatementContext, final String sql, final String databaseName, final List<Object> parameters) { +79if (isSQLFederationSystemCatalogQuery(sqlStatementContext) || isSQLFederationSystemCatalogQueryExpressions(sqlStatementContext)) { +80return Optional.of(newOpenGaussSystemCatalogAdminQueryExecutor(sqlStatementContext, sql, databaseName, parameters)); +81 } +82if (isPassThroughSystemCatalogQuery(sqlStatementContext)) { +83return Optional.of(new DefaultDatabaseMetaDataExecutor(sql, parameters)); +84 } +85return delegated.create(sqlStatementContext, sql, databaseName, parameters); +86 } +87 +88privateboolean isSQLFederationSystemCatalogQuery(finalSQLStatementContext sqlStatementContext) { +89 Collection<String> tableNames = sqlStatementContext instanceof TableAvailable ? ((TableAvailable) sqlStatementContext).getTablesContext().getTableNames() : Collections.emptyList(); +90return !tableNames.isEmpty() && SYSTEM_CATALOG_TABLES.containsAll(tableNames); +91 } +92 +93privateboolean isSQLFederationSystemCatalogQueryExpressions(finalSQLStatementContext sqlStatementContext) { +94if (!(sqlStatementContext.getSqlStatement() instanceof SelectStatement)) { +95return false; +96 } +97SelectStatement selectStatement = (SelectStatement) sqlStatementContext.getSqlStatement(); +98 Collection<ProjectionSegment> projections = selectStatement.getProjections().getProjections(); +99return 1 == projections.size() && projections.iterator().next() instanceof ExpressionProjectionSegment +100 && SYSTEM_CATALOG_QUERY_EXPRESSIONS.contains(((ExpressionProjectionSegment) projections.iterator().next()).getText()); +101 } +102 +103privateboolean isPassThroughSystemCatalogQuery(finalSQLStatementContext sqlStatementContext) { +104 Collection<String> tableNames = sqlStatementContext instanceof TableAvailable ? ((TableAvailable) sqlStatementContext).getTablesContext().getTableNames() : Collections.emptyList(); +105return !tableNames.isEmpty() && (SystemSchemaManager.isSystemTable("opengauss", "information_schema", tableNames) +106 || SystemSchemaManager.isSystemTable("opengauss", "pg_catalog", tableNames)); +107 } +108 +109 @Override +110public String getDatabaseType() { +111return"openGauss"; +112 } +113 }
diff --git a/statistics/staging/xref/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRouteEngine.html b/statistics/staging/xref/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRouteEngine.html index cb619c6d210ee..fa498d7aefd4e 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRouteEngine.html +++ b/statistics/staging/xref/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRouteEngine.html @@ -25,22 +25,22 @@ 1718package org.apache.shardingsphere.sharding.route.engine.type.complex; 19 -20import lombok.RequiredArgsConstructor; -21import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext; -22import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; -23import org.apache.shardingsphere.infra.hint.HintValueContext; -24import org.apache.shardingsphere.infra.route.context.RouteContext; -25import org.apache.shardingsphere.sharding.exception.metadata.ShardingTableRuleNotFoundException; -26import org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditions; -27import org.apache.shardingsphere.sharding.route.engine.type.ShardingRouteEngine; -28import org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRouteEngine; -29import org.apache.shardingsphere.sharding.rule.ShardingRule; -30import org.apache.shardingsphere.sharding.rule.ShardingTable; -31 -32import java.util.Collection; -33import java.util.LinkedList; -34import java.util.Optional; -35import java.util.TreeSet; +20import com.cedarsoftware.util.CaseInsensitiveSet; +21import lombok.RequiredArgsConstructor; +22import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext; +23import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; +24import org.apache.shardingsphere.infra.hint.HintValueContext; +25import org.apache.shardingsphere.infra.route.context.RouteContext; +26import org.apache.shardingsphere.sharding.exception.metadata.ShardingTableRuleNotFoundException; +27import org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditions; +28import org.apache.shardingsphere.sharding.route.engine.type.ShardingRouteEngine; +29import org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRouteEngine; +30import org.apache.shardingsphere.sharding.rule.ShardingRule; +31import org.apache.shardingsphere.sharding.rule.ShardingTable; +32 +33import java.util.Collection; +34import java.util.LinkedList; +35import java.util.Optional; 3637/**38 * Sharding complex route engine. @@ -60,7 +60,7 @@ 5253 @Override 54publicRouteContext route(finalShardingRule shardingRule) { -55 Collection<String> bindingTableNames = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); +55 Collection<String> bindingTableNames = new CaseInsensitiveSet<>(); 56 Collection<RouteContext> routeContexts = new LinkedList<>(); 57for (String each : logicTables) { 58 Optional<ShardingTable> shardingTable = shardingRule.findShardingTable(each); diff --git a/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/complex/ComplexShardingStrategy.html b/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/complex/ComplexShardingStrategy.html index 6b507c701cb79..8f318254b8e16 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/complex/ComplexShardingStrategy.html +++ b/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/complex/ComplexShardingStrategy.html @@ -25,24 +25,24 @@ 1718package org.apache.shardingsphere.sharding.route.strategy.type.complex; 19 -20import com.google.common.base.Splitter; -21import com.google.common.collect.Range; -22import lombok.Getter; -23import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; -24import org.apache.shardingsphere.infra.datanode.DataNodeInfo; -25import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; -26import org.apache.shardingsphere.sharding.api.sharding.complex.ComplexKeysShardingAlgorithm; -27import org.apache.shardingsphere.sharding.api.sharding.complex.ComplexKeysShardingValue; -28import org.apache.shardingsphere.sharding.exception.metadata.MissingRequiredShardingConfigurationException; -29import org.apache.shardingsphere.sharding.route.engine.condition.value.ListShardingConditionValue; -30import org.apache.shardingsphere.sharding.route.engine.condition.value.RangeShardingConditionValue; -31import org.apache.shardingsphere.sharding.route.engine.condition.value.ShardingConditionValue; -32import org.apache.shardingsphere.sharding.route.strategy.ShardingStrategy; -33 -34import java.util.Collection; -35import java.util.HashMap; -36import java.util.Map; -37import java.util.TreeSet; +20import com.cedarsoftware.util.CaseInsensitiveSet; +21import com.google.common.base.Splitter; +22import com.google.common.collect.Range; +23import lombok.Getter; +24import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; +25import org.apache.shardingsphere.infra.datanode.DataNodeInfo; +26import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; +27import org.apache.shardingsphere.sharding.api.sharding.complex.ComplexKeysShardingAlgorithm; +28import org.apache.shardingsphere.sharding.api.sharding.complex.ComplexKeysShardingValue; +29import org.apache.shardingsphere.sharding.exception.metadata.MissingRequiredShardingConfigurationException; +30import org.apache.shardingsphere.sharding.route.engine.condition.value.ListShardingConditionValue; +31import org.apache.shardingsphere.sharding.route.engine.condition.value.RangeShardingConditionValue; +32import org.apache.shardingsphere.sharding.route.engine.condition.value.ShardingConditionValue; +33import org.apache.shardingsphere.sharding.route.strategy.ShardingStrategy; +34 +35import java.util.Collection; +36import java.util.HashMap; +37import java.util.Map; 3839/**40 * Complex sharding strategy. @@ -57,7 +57,7 @@ 49publicComplexShardingStrategy(final String shardingColumns, final ComplexKeysShardingAlgorithm<?> shardingAlgorithm) { 50 ShardingSpherePreconditions.checkNotNull(shardingColumns, () -> newMissingRequiredShardingConfigurationException("Complex sharding columns")); 51 ShardingSpherePreconditions.checkNotNull(shardingAlgorithm, () -> newMissingRequiredShardingConfigurationException("Complex sharding algorithm")); -52this.shardingColumns = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); +52this.shardingColumns = new CaseInsensitiveSet<>(); 53this.shardingColumns.addAll(Splitter.on(",").trimResults().splitToList(shardingColumns)); 54this.shardingAlgorithm = shardingAlgorithm; 55 } @@ -78,11 +78,9 @@ 70 logicTableName = each.getTableName(); 71 } 72 Collection<String> shardingResult = shardingAlgorithm.doSharding(availableTargetNames, newComplexKeysShardingValue(logicTableName, columnShardingValues, columnRangeValues)); -73 Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); -74 result.addAll(shardingResult); -75return result; -76 } -77 } +73returnnew CaseInsensitiveSet<>(shardingResult); +74 } +75 }
diff --git a/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/hint/HintShardingStrategy.html b/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/hint/HintShardingStrategy.html index ee42de97428ac..57b1bfa14a9e4 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/hint/HintShardingStrategy.html +++ b/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/hint/HintShardingStrategy.html @@ -25,19 +25,19 @@ 1718package org.apache.shardingsphere.sharding.route.strategy.type.hint; 19 -20import lombok.Getter; -21import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; -22import org.apache.shardingsphere.infra.datanode.DataNodeInfo; -23import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; -24import org.apache.shardingsphere.sharding.api.sharding.hint.HintShardingAlgorithm; -25import org.apache.shardingsphere.sharding.api.sharding.hint.HintShardingValue; -26import org.apache.shardingsphere.sharding.exception.metadata.MissingRequiredShardingConfigurationException; -27import org.apache.shardingsphere.sharding.route.engine.condition.value.ListShardingConditionValue; -28import org.apache.shardingsphere.sharding.route.engine.condition.value.ShardingConditionValue; -29import org.apache.shardingsphere.sharding.route.strategy.ShardingStrategy; -30 -31import java.util.Collection; -32import java.util.TreeSet; +20import com.cedarsoftware.util.CaseInsensitiveSet; +21import lombok.Getter; +22import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; +23import org.apache.shardingsphere.infra.datanode.DataNodeInfo; +24import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; +25import org.apache.shardingsphere.sharding.api.sharding.hint.HintShardingAlgorithm; +26import org.apache.shardingsphere.sharding.api.sharding.hint.HintShardingValue; +27import org.apache.shardingsphere.sharding.exception.metadata.MissingRequiredShardingConfigurationException; +28import org.apache.shardingsphere.sharding.route.engine.condition.value.ListShardingConditionValue; +29import org.apache.shardingsphere.sharding.route.engine.condition.value.ShardingConditionValue; +30import org.apache.shardingsphere.sharding.route.strategy.ShardingStrategy; +31 +32import java.util.Collection; 3334/**35 * Hint sharding strategy. @@ -51,7 +51,7 @@ 4344publicHintShardingStrategy(final HintShardingAlgorithm<?> shardingAlgorithm) { 45 ShardingSpherePreconditions.checkNotNull(shardingAlgorithm, () -> newMissingRequiredShardingConfigurationException("Hint sharding algorithm")); -46 shardingColumns = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); +46 shardingColumns = new CaseInsensitiveSet<>(); 47this.shardingAlgorithm = shardingAlgorithm; 48 } 49 @@ -62,11 +62,9 @@ 54 ListShardingConditionValue<?> shardingValue = (ListShardingConditionValue) shardingConditionValues.iterator().next(); 55 Collection<String> shardingResult = shardingAlgorithm.doSharding(availableTargetNames, 56newHintShardingValue(shardingValue.getTableName(), shardingValue.getColumnName(), shardingValue.getValues())); -57 Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); -58 result.addAll(shardingResult); -59return result; -60 } -61 } +57returnnew CaseInsensitiveSet<>(shardingResult); +58 } +59 }
diff --git a/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/standard/StandardShardingStrategy.html b/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/standard/StandardShardingStrategy.html index 8984a8637bc98..fe6df59f85b8d 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/standard/StandardShardingStrategy.html +++ b/statistics/staging/xref/org/apache/shardingsphere/sharding/route/strategy/type/standard/StandardShardingStrategy.html @@ -25,23 +25,23 @@ 1718package org.apache.shardingsphere.sharding.route.strategy.type.standard; 19 -20import lombok.Getter; -21import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; -22import org.apache.shardingsphere.infra.datanode.DataNodeInfo; -23import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; -24import org.apache.shardingsphere.sharding.api.sharding.standard.PreciseShardingValue; -25import org.apache.shardingsphere.sharding.api.sharding.standard.RangeShardingValue; -26import org.apache.shardingsphere.sharding.api.sharding.standard.StandardShardingAlgorithm; -27import org.apache.shardingsphere.sharding.exception.metadata.MissingRequiredShardingConfigurationException; -28import org.apache.shardingsphere.sharding.route.engine.condition.value.ListShardingConditionValue; -29import org.apache.shardingsphere.sharding.route.engine.condition.value.RangeShardingConditionValue; -30import org.apache.shardingsphere.sharding.route.engine.condition.value.ShardingConditionValue; -31import org.apache.shardingsphere.sharding.route.strategy.ShardingStrategy; -32 -33import java.util.Collection; -34import java.util.Collections; -35import java.util.LinkedList; -36import java.util.TreeSet; +20import com.cedarsoftware.util.CaseInsensitiveSet; +21import lombok.Getter; +22import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; +23import org.apache.shardingsphere.infra.datanode.DataNodeInfo; +24import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; +25import org.apache.shardingsphere.sharding.api.sharding.standard.PreciseShardingValue; +26import org.apache.shardingsphere.sharding.api.sharding.standard.RangeShardingValue; +27import org.apache.shardingsphere.sharding.api.sharding.standard.StandardShardingAlgorithm; +28import org.apache.shardingsphere.sharding.exception.metadata.MissingRequiredShardingConfigurationException; +29import org.apache.shardingsphere.sharding.route.engine.condition.value.ListShardingConditionValue; +30import org.apache.shardingsphere.sharding.route.engine.condition.value.RangeShardingConditionValue; +31import org.apache.shardingsphere.sharding.route.engine.condition.value.ShardingConditionValue; +32import org.apache.shardingsphere.sharding.route.strategy.ShardingStrategy; +33 +34import java.util.Collection; +35import java.util.Collections; +36import java.util.LinkedList; 3738/**39 * Standard sharding strategy. @@ -56,7 +56,7 @@ 48publicStandardShardingStrategy(final String shardingColumn, final StandardShardingAlgorithm<?> shardingAlgorithm) { 49 ShardingSpherePreconditions.checkNotNull(shardingColumn, () -> newMissingRequiredShardingConfigurationException("Standard sharding column")); 50 ShardingSpherePreconditions.checkNotNull(shardingAlgorithm, () -> newMissingRequiredShardingConfigurationException("Standard sharding algorithm")); -51 Collection<String> shardingColumns = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); +51 Collection<String> shardingColumns = new CaseInsensitiveSet<>(); 52 shardingColumns.add(shardingColumn); 53this.shardingColumns = Collections.unmodifiableCollection(shardingColumns); 54this.shardingAlgorithm = shardingAlgorithm; @@ -70,31 +70,29 @@ 62 Collection<String> shardingResult = shardingConditionValue instanceof ListShardingConditionValue63 ? doSharding(availableTargetNames, (ListShardingConditionValue) shardingConditionValue, dataNodeInfo) 64 : doSharding(availableTargetNames, (RangeShardingConditionValue) shardingConditionValue, dataNodeInfo); -65 Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); -66 result.addAll(shardingResult); -67return result; -68 } -69 -70 @SuppressWarnings({"unchecked", "rawtypes"}) -71private Collection<String> doSharding(final Collection<String> availableTargetNames, final ListShardingConditionValue<?> shardingValue, finalDataNodeInfo dataNodeInfo) { -72 Collection<String> result = new LinkedList<>(); -73for (Object each : shardingValue.getValues()) { -74 String target = shardingAlgorithm.doSharding(availableTargetNames, -75newPreciseShardingValue(shardingValue.getTableName(), shardingValue.getColumnName(), dataNodeInfo, each)); -76if (null != target && availableTargetNames.contains(target)) { -77 result.add(target); -78 } -79// TODO add ShardingRouteAlgorithmException check when autoTables support config actualDataNodes in #33364 -80 } -81return result; -82 } -83 -84 @SuppressWarnings({"unchecked", "rawtypes"}) -85private Collection<String> doSharding(final Collection<String> availableTargetNames, final RangeShardingConditionValue<?> shardingValue, finalDataNodeInfo dataNodeInfo) { -86return shardingAlgorithm.doSharding(availableTargetNames, -87newRangeShardingValue(shardingValue.getTableName(), shardingValue.getColumnName(), dataNodeInfo, shardingValue.getValueRange())); -88 } -89 } +65returnnew CaseInsensitiveSet<>(shardingResult); +66 } +67 +68 @SuppressWarnings({"unchecked", "rawtypes"}) +69private Collection<String> doSharding(final Collection<String> availableTargetNames, final ListShardingConditionValue<?> shardingValue, finalDataNodeInfo dataNodeInfo) { +70 Collection<String> result = new LinkedList<>(); +71for (Object each : shardingValue.getValues()) { +72 String target = shardingAlgorithm.doSharding(availableTargetNames, +73newPreciseShardingValue(shardingValue.getTableName(), shardingValue.getColumnName(), dataNodeInfo, each)); +74if (null != target && availableTargetNames.contains(target)) { +75 result.add(target); +76 } +77// TODO add ShardingRouteAlgorithmException check when autoTables support config actualDataNodes in #33364 +78 } +79return result; +80 } +81 +82 @SuppressWarnings({"unchecked", "rawtypes"}) +83private Collection<String> doSharding(final Collection<String> availableTargetNames, final RangeShardingConditionValue<?> shardingValue, finalDataNodeInfo dataNodeInfo) { +84return shardingAlgorithm.doSharding(availableTargetNames, +85newRangeShardingValue(shardingValue.getTableName(), shardingValue.getColumnName(), dataNodeInfo, shardingValue.getValueRange())); +86 } +87 }
diff --git a/statistics/staging/xref/org/apache/shardingsphere/sharding/rule/ShardingRule.html b/statistics/staging/xref/org/apache/shardingsphere/sharding/rule/ShardingRule.html index 4bbcb7e1a07be..3964f48df18ce 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/sharding/rule/ShardingRule.html +++ b/statistics/staging/xref/org/apache/shardingsphere/sharding/rule/ShardingRule.html @@ -84,558 +84,556 @@ 76import java.util.Map; 77import java.util.Objects; 78import java.util.Optional; -79import java.util.TreeSet; -80import java.util.function.Function; -81import java.util.stream.Collectors; -82 -83/** -84 * Sharding rule. -85 */ -86 @Getter -87publicfinalclassShardingRuleimplementsDatabaseRule { -88 -89privatefinalShardingRuleConfiguration configuration; -90 -91privatefinal Collection<String> dataSourceNames; -92 -93privatefinal Map<String, ShardingAlgorithm> shardingAlgorithms = new CaseInsensitiveMap<>(); -94 -95privatefinal Map<String, KeyGenerateAlgorithm> keyGenerators = new CaseInsensitiveMap<>(); -96 -97privatefinal Map<String, ShardingAuditAlgorithm> auditors = new CaseInsensitiveMap<>(); -98 -99privatefinal Map<String, ShardingTable> shardingTables = new CaseInsensitiveMap<>(); -100 -101privatefinal Map<String, BindingTableRule> bindingTableRules = new CaseInsensitiveMap<>(); -102 -103privatefinalShardingStrategyConfiguration defaultDatabaseShardingStrategyConfig; -104 -105privatefinalShardingStrategyConfiguration defaultTableShardingStrategyConfig; -106 -107privatefinalShardingAuditStrategyConfiguration defaultAuditStrategy; -108 -109privatefinalKeyGenerateAlgorithm defaultKeyGenerateAlgorithm; -110 -111privatefinal String defaultShardingColumn; -112 -113privatefinalShardingCache shardingCache; -114 -115privatefinalRuleAttributes attributes; -116 -117privatefinalShardingRuleChecker shardingRuleChecker = newShardingRuleChecker(this); -118 -119publicShardingRule(finalShardingRuleConfiguration ruleConfig, final Map<String, DataSource> dataSources, finalComputeNodeInstanceContext computeNodeInstanceContext, -120final Collection<ShardingSphereRule> builtRules) { -121 configuration = ruleConfig; -122 dataSourceNames = getDataSourceNames(ruleConfig.getTables(), ruleConfig.getAutoTables(), dataSources.keySet()); -123 ruleConfig.getShardingAlgorithms().forEach((key, value) -> shardingAlgorithms.put(key, TypedSPILoader.getService(ShardingAlgorithm.class, value.getType(), value.getProps()))); -124 ruleConfig.getKeyGenerators().forEach((key, value) -> keyGenerators.put(key, TypedSPILoader.getService(KeyGenerateAlgorithm.class, value.getType(), value.getProps()))); -125 ruleConfig.getAuditors().forEach((key, value) -> auditors.put(key, TypedSPILoader.getService(ShardingAuditAlgorithm.class, value.getType(), value.getProps()))); -126 shardingTables.putAll(createShardingTables(ruleConfig.getTables(), ruleConfig.getDefaultKeyGenerateStrategy())); -127 shardingTables.putAll(createShardingAutoTables(ruleConfig.getAutoTables(), ruleConfig.getDefaultKeyGenerateStrategy())); -128 bindingTableRules.putAll(createBindingTableRules(ruleConfig.getBindingTableGroups())); -129 defaultDatabaseShardingStrategyConfig = createDefaultDatabaseShardingStrategyConfiguration(ruleConfig); -130 defaultTableShardingStrategyConfig = createDefaultTableShardingStrategyConfiguration(ruleConfig); -131 defaultAuditStrategy = null == ruleConfig.getDefaultAuditStrategy() ? newShardingAuditStrategyConfiguration(Collections.emptyList(), true) : ruleConfig.getDefaultAuditStrategy(); -132 defaultKeyGenerateAlgorithm = null == ruleConfig.getDefaultKeyGenerateStrategy() -133 ? TypedSPILoader.getService(KeyGenerateAlgorithm.class, null) -134 : keyGenerators.get(ruleConfig.getDefaultKeyGenerateStrategy().getKeyGeneratorName()); -135 defaultShardingColumn = ruleConfig.getDefaultShardingColumn(); -136 keyGenerators.values().stream().filter(ComputeNodeInstanceContextAware.class::isInstance) -137 .forEach(each -> ((ComputeNodeInstanceContextAware) each).setComputeNodeInstanceContext(computeNodeInstanceContext)); -138if (defaultKeyGenerateAlgorithm instanceof ComputeNodeInstanceContextAware && -1 == computeNodeInstanceContext.getWorkerId()) { -139 ((ComputeNodeInstanceContextAware) defaultKeyGenerateAlgorithm).setComputeNodeInstanceContext(computeNodeInstanceContext); -140 } -141 shardingCache = null == ruleConfig.getShardingCache() ? null : newShardingCache(ruleConfig.getShardingCache(), this); -142// TODO check sharding rule configuration according to aggregated data sources -143 Map<String, DataSource> aggregatedDataSources = newRuleMetaData(builtRules).findAttribute(AggregatedDataSourceRuleAttribute.class) -144 .map(AggregatedDataSourceRuleAttribute::getAggregatedDataSources).orElseGet(() -> PhysicalDataSourceAggregator.getAggregatedDataSources(dataSources, builtRules)); -145 attributes = newRuleAttributes(newShardingDataNodeRuleAttribute(shardingTables), newShardingTableNamesRuleAttribute(shardingTables.values()), -146newAggregatedDataSourceRuleAttribute(aggregatedDataSources)); -147 shardingRuleChecker.check(ruleConfig); -148 } -149 -150privateShardingStrategyConfiguration createDefaultDatabaseShardingStrategyConfiguration(finalShardingRuleConfiguration ruleConfig) { -151 Optional.ofNullable(ruleConfig.getDefaultDatabaseShardingStrategy()).ifPresent(optional -> checkManualShardingAlgorithm(optional.getShardingAlgorithmName(), "default")); -152returnnull == ruleConfig.getDefaultDatabaseShardingStrategy() ? newNoneShardingStrategyConfiguration() : ruleConfig.getDefaultDatabaseShardingStrategy(); -153 } -154 -155privateShardingStrategyConfiguration createDefaultTableShardingStrategyConfiguration(finalShardingRuleConfiguration ruleConfig) { -156 Optional.ofNullable(ruleConfig.getDefaultTableShardingStrategy()).ifPresent(optional -> checkManualShardingAlgorithm(optional.getShardingAlgorithmName(), "default")); -157returnnull == ruleConfig.getDefaultTableShardingStrategy() ? newNoneShardingStrategyConfiguration() : ruleConfig.getDefaultTableShardingStrategy(); -158 } -159 -160private Collection<String> getDataSourceNames(final Collection<ShardingTableRuleConfiguration> tableRuleConfigs, -161final Collection<ShardingAutoTableRuleConfiguration> autoTableRuleConfigs, final Collection<String> dataSourceNames) { -162if (tableRuleConfigs.isEmpty() && autoTableRuleConfigs.isEmpty()) { -163return dataSourceNames; -164 } -165if (tableRuleConfigs.stream().map(ShardingTableRuleConfiguration::getActualDataNodes).anyMatch(each -> null == each || each.isEmpty())) { -166return dataSourceNames; -167 } -168 Collection<String> result = new LinkedHashSet<>(); -169 tableRuleConfigs.forEach(each -> result.addAll(getDataSourceNames(each))); -170 autoTableRuleConfigs.forEach(each -> result.addAll(getDataSourceNames(each))); -171return result; -172 } -173 -174private Collection<String> getDataSourceNames(finalShardingAutoTableRuleConfiguration shardingAutoTableRuleConfig) { -175 List<String> actualDataSources = InlineExpressionParserFactory.newInstance(shardingAutoTableRuleConfig.getActualDataSources()).splitAndEvaluate(); -176returnnew HashSet<>(actualDataSources); -177 } -178 -179private Collection<String> getDataSourceNames(finalShardingTableRuleConfiguration shardingTableRuleConfig) { -180 List<String> actualDataNodes = InlineExpressionParserFactory.newInstance(shardingTableRuleConfig.getActualDataNodes()).splitAndEvaluate(); -181return actualDataNodes.stream().map(each -> newDataNode(each).getDataSourceName()).collect(Collectors.toList()); -182 } -183 -184private Map<String, ShardingTable> createShardingTables(final Collection<ShardingTableRuleConfiguration> tableRuleConfigs, -185finalKeyGenerateStrategyConfiguration defaultKeyGenerateStrategyConfig) { -186return tableRuleConfigs.stream().map(each -> createShardingTable(each, defaultKeyGenerateStrategyConfig)) -187 .collect(Collectors.toMap(ShardingTable::getLogicTable, Function.identity(), (oldValue, currentValue) -> oldValue, CaseInsensitiveMap::new)); -188 } -189 -190private ShardingTable createShardingTable(finalShardingTableRuleConfiguration tableRuleConfig, finalKeyGenerateStrategyConfiguration defaultKeyGenerateStrategyConfig) { -191 Optional.ofNullable(tableRuleConfig.getDatabaseShardingStrategy()).ifPresent(optional -> checkManualShardingAlgorithm(optional.getShardingAlgorithmName(), tableRuleConfig.getLogicTable())); -192 Optional.ofNullable(tableRuleConfig.getTableShardingStrategy()).ifPresent(optional -> checkManualShardingAlgorithm(optional.getShardingAlgorithmName(), tableRuleConfig.getLogicTable())); -193returnnew ShardingTable(tableRuleConfig, dataSourceNames, getDefaultGenerateKeyColumn(defaultKeyGenerateStrategyConfig)); -194 } -195 -196privatevoid checkManualShardingAlgorithm(final String shardingAlgorithmName, final String logicTable) { -197ShardingAlgorithm shardingAlgorithm = shardingAlgorithms.get(shardingAlgorithmName); -198 ShardingSpherePreconditions.checkState(!(shardingAlgorithm instanceof ShardingAutoTableAlgorithm), -199 () -> newAlgorithmInitializationException(shardingAlgorithm, "`%s` tables sharding configuration can not use auto sharding algorithm.", logicTable)); -200 } -201 -202private Map<String, ShardingTable> createShardingAutoTables(final Collection<ShardingAutoTableRuleConfiguration> autoTableRuleConfigs, -203finalKeyGenerateStrategyConfiguration defaultKeyGenerateStrategyConfig) { -204return autoTableRuleConfigs.stream().map(each -> createShardingAutoTable(defaultKeyGenerateStrategyConfig, each)) -205 .collect(Collectors.toMap(ShardingTable::getLogicTable, Function.identity(), (oldValue, currentValue) -> oldValue, CaseInsensitiveMap::new)); -206 } -207 -208private ShardingTable createShardingAutoTable(finalKeyGenerateStrategyConfiguration defaultKeyGenerateStrategyConfig, finalShardingAutoTableRuleConfiguration autoTableRuleConfig) { -209 checkAutoShardingAlgorithm(autoTableRuleConfig.getShardingStrategy().getShardingAlgorithmName(), autoTableRuleConfig.getLogicTable()); -210ShardingAlgorithm shardingAlgorithm = shardingAlgorithms.get(autoTableRuleConfig.getShardingStrategy().getShardingAlgorithmName()); -211returnnew ShardingTable(autoTableRuleConfig, dataSourceNames, (ShardingAutoTableAlgorithm) shardingAlgorithm, getDefaultGenerateKeyColumn(defaultKeyGenerateStrategyConfig)); -212 } -213 -214privatevoid checkAutoShardingAlgorithm(final String shardingAlgorithmName, final String logicTable) { -215ShardingAlgorithm shardingAlgorithm = shardingAlgorithms.get(shardingAlgorithmName); -216 ShardingSpherePreconditions.checkState(shardingAlgorithm instanceof ShardingAutoTableAlgorithm, -217 () -> newAlgorithmInitializationException(shardingAlgorithm, "`%s` autoTables sharding configuration must use auto sharding algorithm.", logicTable)); -218 } -219 -220private String getDefaultGenerateKeyColumn(finalKeyGenerateStrategyConfiguration defaultKeyGenerateStrategyConfig) { -221return Optional.ofNullable(defaultKeyGenerateStrategyConfig).map(KeyGenerateStrategyConfiguration::getColumn).orElse(null); -222 } -223 -224private Map<String, BindingTableRule> createBindingTableRules(final Collection<ShardingTableReferenceRuleConfiguration> bindingTableGroups) { -225 Map<String, BindingTableRule> result = new LinkedHashMap<>(); -226for (ShardingTableReferenceRuleConfiguration each : bindingTableGroups) { -227BindingTableRule bindingTableRule = createBindingTableRule(each.getReference()); -228for (String logicTable : bindingTableRule.getAllLogicTables()) { -229 result.put(logicTable, bindingTableRule); -230 } -231 } -232return result; -233 } -234 -235privateBindingTableRule createBindingTableRule(final String bindingTableGroup) { -236 Map<String, ShardingTable> shardingTables = Splitter.on(",").trimResults().splitToList(bindingTableGroup).stream() -237 .map(this::getShardingTable).collect(Collectors.toMap(ShardingTable::getLogicTable, Function.identity(), (oldValue, currentValue) -> oldValue, LinkedHashMap::new)); -238BindingTableRule result = newBindingTableRule(); -239 result.getShardingTables().putAll(shardingTables); -240return result; -241 } -242 -243/** -244 * Get database sharding strategy configuration. -245 * -246 * @param shardingTable sharding table -247 * @return database sharding strategy configuration -248 */ -249publicShardingStrategyConfiguration getDatabaseShardingStrategyConfiguration(final ShardingTable shardingTable) { -250return getDatabaseShardingStrategyConfiguration(shardingTable, defaultDatabaseShardingStrategyConfig); -251 } -252 -253privateShardingStrategyConfiguration getDatabaseShardingStrategyConfiguration(final ShardingTable shardingTable, finalShardingStrategyConfiguration defaultDatabaseShardingStrategyConfig) { -254returnnull == shardingTable.getDatabaseShardingStrategyConfig() ? defaultDatabaseShardingStrategyConfig : shardingTable.getDatabaseShardingStrategyConfig(); -255 } -256 -257/** -258 * Get table sharding strategy configuration. -259 * -260 * @param shardingTable sharding table -261 * @return table sharding strategy configuration -262 */ -263publicShardingStrategyConfiguration getTableShardingStrategyConfiguration(final ShardingTable shardingTable) { -264return getTableShardingStrategyConfiguration(shardingTable, defaultTableShardingStrategyConfig); -265 } -266 -267privateShardingStrategyConfiguration getTableShardingStrategyConfiguration(final ShardingTable shardingTable, finalShardingStrategyConfiguration defaultTableShardingStrategyConfig) { -268returnnull == shardingTable.getTableShardingStrategyConfig() ? defaultTableShardingStrategyConfig : shardingTable.getTableShardingStrategyConfig(); -269 } -270 -271/** -272 * Get audit strategy configuration. -273 * -274 * @param shardingTable sharding table -275 * @return audit strategy configuration -276 */ -277publicShardingAuditStrategyConfiguration getAuditStrategyConfiguration(final ShardingTable shardingTable) { -278returnnull == shardingTable.getAuditStrategyConfig() ? defaultAuditStrategy : shardingTable.getAuditStrategyConfig(); -279 } -280 -281/** -282 * Find sharding table. -283 * -284 * @param logicTableName logic table name -285 * @return sharding table -286 */ -287public Optional<ShardingTable> findShardingTable(final String logicTableName) { -288if (Strings.isNullOrEmpty(logicTableName) || !shardingTables.containsKey(logicTableName)) { -289return Optional.empty(); -290 } -291return Optional.of(shardingTables.get(logicTableName)); -292 } -293 -294/** -295 * Find sharding table via actual table name. -296 * -297 * @param actualTableName actual table name -298 * @return sharding table -299 */ -300public Optional<ShardingTable> findShardingTableByActualTable(final String actualTableName) { -301for (ShardingTable each : shardingTables.values()) { -302if (each.isExisted(actualTableName)) { -303return Optional.of(each); -304 } -305 } -306return Optional.empty(); -307 } -308 -309/** -310 * Get sharding table. -311 * -312 * @param logicTableName logic table name -313 * @return sharding table -314 * @throws ShardingTableRuleNotFoundException sharding table rule not found exception -315 */ -316public ShardingTable getShardingTable(final String logicTableName) { -317return findShardingTable(logicTableName).orElseThrow(() -> newShardingTableRuleNotFoundException(Collections.singleton(logicTableName))); -318 } -319 -320/** -321 * Judge whether logic table is all config binding tables or not. -322 * -323 * @param logicTableNames logic table names -324 * @return whether logic table is all config binding tables or not -325 */ -326publicboolean isAllConfigBindingTables(final Collection<String> logicTableNames) { -327if (logicTableNames.isEmpty()) { -328return false; -329 } -330 Optional<BindingTableRule> bindingTableRule = findBindingTableRule(logicTableNames); -331if (!bindingTableRule.isPresent()) { -332return false; -333 } -334 Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); -335 result.addAll(bindingTableRule.get().getAllLogicTables()); -336return !result.isEmpty() && result.containsAll(logicTableNames); -337 } -338 -339/** -340 * Judge whether logic table is all config binding tables and use sharding columns join. -341 * -342 * @param sqlStatementContext sqlStatementContext -343 * @param logicTableNames logic table names -344 * @return whether logic table is all config binding tables and use sharding columns join -345 */ -346publicboolean isBindingTablesUseShardingColumnsJoin(finalSQLStatementContext sqlStatementContext, final Collection<String> logicTableNames) { -347if (!(sqlStatementContext instanceof SelectStatementContext && ((SelectStatementContext) sqlStatementContext).isContainsJoinQuery())) { -348return isAllConfigBindingTables(logicTableNames); -349 } -350if (!isAllConfigBindingTables(logicTableNames)) { -351return false; -352 } -353SelectStatementContext select = (SelectStatementContext) sqlStatementContext; -354return isJoinConditionContainsShardingColumns(logicTableNames, select.getWhereSegments()); -355 } -356 -357private Optional<BindingTableRule> findBindingTableRule(final Collection<String> logicTableNames) { -358for (String each : logicTableNames) { -359 Optional<BindingTableRule> result = findBindingTableRule(each); -360if (result.isPresent()) { -361return result; -362 } -363 } -364return Optional.empty(); -365 } -366 -367/** -368 * Find binding table rule via logic table name. -369 * -370 * @param logicTableName logic table name -371 * @return binding table rule -372 */ -373public Optional<BindingTableRule> findBindingTableRule(final String logicTableName) { -374return Optional.ofNullable(bindingTableRules.get(logicTableName)); -375 } -376 -377/** -378 * Judge whether logic table is all sharding table or not. -379 * -380 * @param logicTableNames logic table names -381 * @return whether logic table is all sharding table or not -382 */ -383publicboolean isAllShardingTables(final Collection<String> logicTableNames) { -384if (logicTableNames.isEmpty()) { -385return false; -386 } -387for (String each : logicTableNames) { -388if (!isShardingTable(each)) { -389return false; -390 } -391 } -392returntrue; -393 } -394 -395/** -396 * Judge whether logic table is sharding table or not. -397 * -398 * @param logicTableName logic table name -399 * @return whether logic table is sharding table or not -400 */ -401publicboolean isShardingTable(final String logicTableName) { -402return shardingTables.containsKey(logicTableName); -403 } -404 -405/** -406 * Judge whether all tables are in same data source or not. -407 * -408 * @param logicTableNames logic table names -409 * @return whether all tables are in same data source or not -410 */ -411publicboolean isAllTablesInSameDataSource(final Collection<String> logicTableNames) { -412 Collection<String> dataSourceNames = logicTableNames.stream().map(shardingTables::get) -413 .filter(Objects::nonNull).flatMap(each -> each.getActualDataSourceNames().stream()).collect(Collectors.toSet()); -414return 1 == dataSourceNames.size(); -415 } -416 -417/** -418 * Judge whether contains sharding table or not. -419 * -420 * @param logicTableNames logic table names -421 * @return whether contains sharding table or not -422 */ -423publicboolean containsShardingTable(final Collection<String> logicTableNames) { -424for (String each : logicTableNames) { -425if (isShardingTable(each)) { -426returntrue; -427 } -428 } -429return false; -430 } -431 -432/** -433 * Find sharding column. -434 * -435 * @param columnName column name -436 * @param tableName table name -437 * @return sharding column -438 */ -439public Optional<String> findShardingColumn(final String columnName, final String tableName) { -440return Optional.ofNullable(shardingTables.get(tableName)).flatMap(optional -> findShardingColumn(optional, columnName)); -441 } -442 -443private Optional<String> findShardingColumn(final ShardingTable shardingTable, final String columnName) { -444 Optional<String> databaseShardingColumn = findShardingColumn(getDatabaseShardingStrategyConfiguration(shardingTable), columnName); -445if (databaseShardingColumn.isPresent()) { -446return databaseShardingColumn; -447 } -448return findShardingColumn(getTableShardingStrategyConfiguration(shardingTable), columnName); -449 } -450 -451private Optional<String> findShardingColumn(finalShardingStrategyConfiguration shardingStrategyConfig, final String columnName) { -452if (shardingStrategyConfig instanceof StandardShardingStrategyConfiguration) { -453 String shardingColumn = null == ((StandardShardingStrategyConfiguration) shardingStrategyConfig).getShardingColumn() -454 ? defaultShardingColumn -455 : ((StandardShardingStrategyConfiguration) shardingStrategyConfig).getShardingColumn(); -456return shardingColumn.equalsIgnoreCase(columnName) ? Optional.of(shardingColumn) : Optional.empty(); -457 } -458if (shardingStrategyConfig instanceof ComplexShardingStrategyConfiguration) { -459 List<String> shardingColumns = Splitter.on(",").trimResults().splitToList(((ComplexShardingStrategyConfiguration) shardingStrategyConfig).getShardingColumns()); -460for (String each : shardingColumns) { -461if (each.equalsIgnoreCase(columnName)) { -462return Optional.of(each); -463 } -464 } -465 } -466return Optional.empty(); -467 } -468 -469/** -470 * Judge whether given logic table column is key generated column or not. -471 * -472 * @param columnName column name -473 * @param tableName table name -474 * @return whether given logic table column is key generated column or not -475 */ -476publicboolean isGenerateKeyColumn(final String columnName, final String tableName) { -477return Optional.ofNullable(shardingTables.get(tableName)).filter(each -> isGenerateKeyColumn(each, columnName)).isPresent(); -478 } -479 -480privateboolean isGenerateKeyColumn(final ShardingTable shardingTable, final String columnName) { -481 Optional<String> generateKeyColumn = shardingTable.getGenerateKeyColumn(); -482return generateKeyColumn.isPresent() && generateKeyColumn.get().equalsIgnoreCase(columnName); -483 } -484 -485/** -486 * Find column name of generated key. -487 * -488 * @param logicTableName logic table name -489 * @return column name of generated key -490 */ -491public Optional<String> findGenerateKeyColumnName(final String logicTableName) { -492return Optional.ofNullable(shardingTables.get(logicTableName)).filter(each -> each.getGenerateKeyColumn().isPresent()).flatMap(ShardingTable::getGenerateKeyColumn); -493 } -494 -495/** -496 * Find the generated keys of logic table. -497 * -498 * @param algorithmSQLContext key generate context -499 * @param keyGenerateCount key generate count -500 * @return generated keys -501 */ -502public Collection<? extends Comparable<?>> generateKeys(finalAlgorithmSQLContext algorithmSQLContext, finalint keyGenerateCount) { -503return getKeyGenerateAlgorithm(algorithmSQLContext.getTableName()).generateKeys(algorithmSQLContext, keyGenerateCount); -504 } -505 -506/** -507 * Judge whether support auto increment or not. -508 * -509 * @param logicTableName logic table name -510 * @return whether support auto increment or not -511 */ -512publicboolean isSupportAutoIncrement(final String logicTableName) { -513return getKeyGenerateAlgorithm(logicTableName).isSupportAutoIncrement(); -514 } -515 -516privateKeyGenerateAlgorithm getKeyGenerateAlgorithm(final String logicTableName) { -517 ShardingTable shardingTable = getShardingTable(logicTableName); -518returnnull == shardingTable.getKeyGeneratorName() ? defaultKeyGenerateAlgorithm : keyGenerators.get(shardingTable.getKeyGeneratorName()); -519 } -520 -521/** -522 * Find data node by logic table name. -523 * -524 * @param logicTableName logic table name -525 * @return data node -526 */ -527publicDataNode getDataNode(final String logicTableName) { -528 ShardingTable shardingTable = getShardingTable(logicTableName); -529return shardingTable.getActualDataNodes().get(0); -530 } -531 -532/** -533 * Get sharding logic table names. -534 * -535 * @param logicTableNames logic table names -536 * @return sharding logic table names -537 */ -538public Collection<String> getShardingLogicTableNames(final Collection<String> logicTableNames) { -539 Collection<String> result = new LinkedList<>(); -540for (String each : logicTableNames) { -541if (isShardingTable(each)) { -542 result.add(each); -543 } -544 } -545return result; -546 } -547 -548/** -549 * Get logic and actual binding tables. -550 * -551 * @param dataSourceName data source name -552 * @param logicTable logic table name -553 * @param actualTable actual table name -554 * @param availableLogicBindingTables available logic binding table names -555 * @return logic and actual binding tables -556 */ -557public Map<String, String> getLogicAndActualTablesFromBindingTable(final String dataSourceName, -558final String logicTable, final String actualTable, final Collection<String> availableLogicBindingTables) { -559return findBindingTableRule(logicTable).map(optional -> optional.getLogicAndActualTables(dataSourceName, logicTable, actualTable, availableLogicBindingTables)) -560 .orElseGet(Collections::emptyMap); -561 } -562 -563/** -564 * Is sharding cache enabled. -565 * -566 * @return is sharding cache enabled -567 */ -568publicboolean isShardingCacheEnabled() { -569returnnull != shardingCache; -570 } -571 -572privateboolean isJoinConditionContainsShardingColumns(final Collection<String> tableNames, final Collection<WhereSegment> whereSegments) { -573 Collection<String> databaseJoinConditionTables = new CaseInsensitiveSet<>(tableNames.size(), 1F); -574 Collection<String> tableJoinConditionTables = new CaseInsensitiveSet<>(tableNames.size(), 1F); -575for (WhereSegment each : whereSegments) { -576 Collection<AndPredicate> andPredicates = ExpressionExtractor.extractAndPredicates(each.getExpr()); -577if (andPredicates.size() > 1) { -578return false; -579 } -580for (AndPredicate andPredicate : andPredicates) { -581 databaseJoinConditionTables.addAll(getJoinConditionTables(andPredicate.getPredicates(), true)); -582 tableJoinConditionTables.addAll(getJoinConditionTables(andPredicate.getPredicates(), false)); -583 } -584 } -585 ShardingTable shardingTable = getShardingTable(tableNames.iterator().next()); -586boolean containsDatabaseShardingColumns = !(getDatabaseShardingStrategyConfiguration(shardingTable) instanceof StandardShardingStrategyConfiguration) -587 || databaseJoinConditionTables.containsAll(tableNames); -588boolean containsTableShardingColumns = -589 !(getTableShardingStrategyConfiguration(shardingTable) instanceof StandardShardingStrategyConfiguration) || tableJoinConditionTables.containsAll(tableNames); -590return containsDatabaseShardingColumns && containsTableShardingColumns; -591 } -592 -593private Collection<String> getJoinConditionTables(final Collection<ExpressionSegment> predicates, finalboolean isDatabaseJoinCondition) { -594 Collection<String> result = new LinkedList<>(); -595for (ExpressionSegment each : predicates) { -596if (!isJoinConditionExpression(each)) { -597continue; -598 } -599ColumnSegment leftColumn = (ColumnSegment) ((BinaryOperationExpression) each).getLeft(); -600ColumnSegment rightColumn = (ColumnSegment) ((BinaryOperationExpression) each).getRight(); -601 Optional<ShardingTable> leftShardingTable = findShardingTable(leftColumn.getColumnBoundInfo().getOriginalTable().getValue()); -602 Optional<ShardingTable> rightShardingTable = findShardingTable(rightColumn.getColumnBoundInfo().getOriginalTable().getValue()); -603if (!leftShardingTable.isPresent() || !rightShardingTable.isPresent()) { -604continue; -605 } -606ShardingStrategyConfiguration leftConfig = -607 isDatabaseJoinCondition ? getDatabaseShardingStrategyConfiguration(leftShardingTable.get()) : getTableShardingStrategyConfiguration(leftShardingTable.get()); -608ShardingStrategyConfiguration rightConfig = -609 isDatabaseJoinCondition ? getDatabaseShardingStrategyConfiguration(rightShardingTable.get()) : getTableShardingStrategyConfiguration(rightShardingTable.get()); -610if (findShardingColumn(leftConfig, leftColumn.getIdentifier().getValue()).isPresent() && findShardingColumn(rightConfig, rightColumn.getIdentifier().getValue()).isPresent()) { -611 result.add(leftColumn.getColumnBoundInfo().getOriginalTable().getValue()); -612 result.add(rightColumn.getColumnBoundInfo().getOriginalTable().getValue()); -613 } -614 } -615return result; -616 } -617 -618privateboolean isJoinConditionExpression(finalExpressionSegment expression) { -619if (!(expression instanceof BinaryOperationExpression)) { -620return false; -621 } -622BinaryOperationExpression binaryExpression = (BinaryOperationExpression) expression; -623return binaryExpression.getLeft() instanceof ColumnSegment && binaryExpression.getRight() instanceof ColumnSegment && "=".equals(binaryExpression.getOperator()); -624 } -625 -626 @Override -627publicint getOrder() { -628return ShardingOrder.ORDER; -629 } -630 } +79import java.util.function.Function; +80import java.util.stream.Collectors; +81 +82/** +83 * Sharding rule. +84 */ +85 @Getter +86publicfinalclassShardingRuleimplementsDatabaseRule { +87 +88privatefinalShardingRuleConfiguration configuration; +89 +90privatefinal Collection<String> dataSourceNames; +91 +92privatefinal Map<String, ShardingAlgorithm> shardingAlgorithms = new CaseInsensitiveMap<>(); +93 +94privatefinal Map<String, KeyGenerateAlgorithm> keyGenerators = new CaseInsensitiveMap<>(); +95 +96privatefinal Map<String, ShardingAuditAlgorithm> auditors = new CaseInsensitiveMap<>(); +97 +98privatefinal Map<String, ShardingTable> shardingTables = new CaseInsensitiveMap<>(); +99 +100privatefinal Map<String, BindingTableRule> bindingTableRules = new CaseInsensitiveMap<>(); +101 +102privatefinalShardingStrategyConfiguration defaultDatabaseShardingStrategyConfig; +103 +104privatefinalShardingStrategyConfiguration defaultTableShardingStrategyConfig; +105 +106privatefinalShardingAuditStrategyConfiguration defaultAuditStrategy; +107 +108privatefinalKeyGenerateAlgorithm defaultKeyGenerateAlgorithm; +109 +110privatefinal String defaultShardingColumn; +111 +112privatefinalShardingCache shardingCache; +113 +114privatefinalRuleAttributes attributes; +115 +116privatefinalShardingRuleChecker shardingRuleChecker = newShardingRuleChecker(this); +117 +118publicShardingRule(finalShardingRuleConfiguration ruleConfig, final Map<String, DataSource> dataSources, finalComputeNodeInstanceContext computeNodeInstanceContext, +119final Collection<ShardingSphereRule> builtRules) { +120 configuration = ruleConfig; +121 dataSourceNames = getDataSourceNames(ruleConfig.getTables(), ruleConfig.getAutoTables(), dataSources.keySet()); +122 ruleConfig.getShardingAlgorithms().forEach((key, value) -> shardingAlgorithms.put(key, TypedSPILoader.getService(ShardingAlgorithm.class, value.getType(), value.getProps()))); +123 ruleConfig.getKeyGenerators().forEach((key, value) -> keyGenerators.put(key, TypedSPILoader.getService(KeyGenerateAlgorithm.class, value.getType(), value.getProps()))); +124 ruleConfig.getAuditors().forEach((key, value) -> auditors.put(key, TypedSPILoader.getService(ShardingAuditAlgorithm.class, value.getType(), value.getProps()))); +125 shardingTables.putAll(createShardingTables(ruleConfig.getTables(), ruleConfig.getDefaultKeyGenerateStrategy())); +126 shardingTables.putAll(createShardingAutoTables(ruleConfig.getAutoTables(), ruleConfig.getDefaultKeyGenerateStrategy())); +127 bindingTableRules.putAll(createBindingTableRules(ruleConfig.getBindingTableGroups())); +128 defaultDatabaseShardingStrategyConfig = createDefaultDatabaseShardingStrategyConfiguration(ruleConfig); +129 defaultTableShardingStrategyConfig = createDefaultTableShardingStrategyConfiguration(ruleConfig); +130 defaultAuditStrategy = null == ruleConfig.getDefaultAuditStrategy() ? newShardingAuditStrategyConfiguration(Collections.emptyList(), true) : ruleConfig.getDefaultAuditStrategy(); +131 defaultKeyGenerateAlgorithm = null == ruleConfig.getDefaultKeyGenerateStrategy() +132 ? TypedSPILoader.getService(KeyGenerateAlgorithm.class, null) +133 : keyGenerators.get(ruleConfig.getDefaultKeyGenerateStrategy().getKeyGeneratorName()); +134 defaultShardingColumn = ruleConfig.getDefaultShardingColumn(); +135 keyGenerators.values().stream().filter(ComputeNodeInstanceContextAware.class::isInstance) +136 .forEach(each -> ((ComputeNodeInstanceContextAware) each).setComputeNodeInstanceContext(computeNodeInstanceContext)); +137if (defaultKeyGenerateAlgorithm instanceof ComputeNodeInstanceContextAware && -1 == computeNodeInstanceContext.getWorkerId()) { +138 ((ComputeNodeInstanceContextAware) defaultKeyGenerateAlgorithm).setComputeNodeInstanceContext(computeNodeInstanceContext); +139 } +140 shardingCache = null == ruleConfig.getShardingCache() ? null : newShardingCache(ruleConfig.getShardingCache(), this); +141// TODO check sharding rule configuration according to aggregated data sources +142 Map<String, DataSource> aggregatedDataSources = newRuleMetaData(builtRules).findAttribute(AggregatedDataSourceRuleAttribute.class) +143 .map(AggregatedDataSourceRuleAttribute::getAggregatedDataSources).orElseGet(() -> PhysicalDataSourceAggregator.getAggregatedDataSources(dataSources, builtRules)); +144 attributes = newRuleAttributes(newShardingDataNodeRuleAttribute(shardingTables), newShardingTableNamesRuleAttribute(shardingTables.values()), +145newAggregatedDataSourceRuleAttribute(aggregatedDataSources)); +146 shardingRuleChecker.check(ruleConfig); +147 } +148 +149privateShardingStrategyConfiguration createDefaultDatabaseShardingStrategyConfiguration(finalShardingRuleConfiguration ruleConfig) { +150 Optional.ofNullable(ruleConfig.getDefaultDatabaseShardingStrategy()).ifPresent(optional -> checkManualShardingAlgorithm(optional.getShardingAlgorithmName(), "default")); +151returnnull == ruleConfig.getDefaultDatabaseShardingStrategy() ? newNoneShardingStrategyConfiguration() : ruleConfig.getDefaultDatabaseShardingStrategy(); +152 } +153 +154privateShardingStrategyConfiguration createDefaultTableShardingStrategyConfiguration(finalShardingRuleConfiguration ruleConfig) { +155 Optional.ofNullable(ruleConfig.getDefaultTableShardingStrategy()).ifPresent(optional -> checkManualShardingAlgorithm(optional.getShardingAlgorithmName(), "default")); +156returnnull == ruleConfig.getDefaultTableShardingStrategy() ? newNoneShardingStrategyConfiguration() : ruleConfig.getDefaultTableShardingStrategy(); +157 } +158 +159private Collection<String> getDataSourceNames(final Collection<ShardingTableRuleConfiguration> tableRuleConfigs, +160final Collection<ShardingAutoTableRuleConfiguration> autoTableRuleConfigs, final Collection<String> dataSourceNames) { +161if (tableRuleConfigs.isEmpty() && autoTableRuleConfigs.isEmpty()) { +162return dataSourceNames; +163 } +164if (tableRuleConfigs.stream().map(ShardingTableRuleConfiguration::getActualDataNodes).anyMatch(each -> null == each || each.isEmpty())) { +165return dataSourceNames; +166 } +167 Collection<String> result = new LinkedHashSet<>(); +168 tableRuleConfigs.forEach(each -> result.addAll(getDataSourceNames(each))); +169 autoTableRuleConfigs.forEach(each -> result.addAll(getDataSourceNames(each))); +170return result; +171 } +172 +173private Collection<String> getDataSourceNames(finalShardingAutoTableRuleConfiguration shardingAutoTableRuleConfig) { +174 List<String> actualDataSources = InlineExpressionParserFactory.newInstance(shardingAutoTableRuleConfig.getActualDataSources()).splitAndEvaluate(); +175returnnew HashSet<>(actualDataSources); +176 } +177 +178private Collection<String> getDataSourceNames(finalShardingTableRuleConfiguration shardingTableRuleConfig) { +179 List<String> actualDataNodes = InlineExpressionParserFactory.newInstance(shardingTableRuleConfig.getActualDataNodes()).splitAndEvaluate(); +180return actualDataNodes.stream().map(each -> newDataNode(each).getDataSourceName()).collect(Collectors.toList()); +181 } +182 +183private Map<String, ShardingTable> createShardingTables(final Collection<ShardingTableRuleConfiguration> tableRuleConfigs, +184finalKeyGenerateStrategyConfiguration defaultKeyGenerateStrategyConfig) { +185return tableRuleConfigs.stream().map(each -> createShardingTable(each, defaultKeyGenerateStrategyConfig)) +186 .collect(Collectors.toMap(ShardingTable::getLogicTable, Function.identity(), (oldValue, currentValue) -> oldValue, CaseInsensitiveMap::new)); +187 } +188 +189private ShardingTable createShardingTable(finalShardingTableRuleConfiguration tableRuleConfig, finalKeyGenerateStrategyConfiguration defaultKeyGenerateStrategyConfig) { +190 Optional.ofNullable(tableRuleConfig.getDatabaseShardingStrategy()).ifPresent(optional -> checkManualShardingAlgorithm(optional.getShardingAlgorithmName(), tableRuleConfig.getLogicTable())); +191 Optional.ofNullable(tableRuleConfig.getTableShardingStrategy()).ifPresent(optional -> checkManualShardingAlgorithm(optional.getShardingAlgorithmName(), tableRuleConfig.getLogicTable())); +192returnnew ShardingTable(tableRuleConfig, dataSourceNames, getDefaultGenerateKeyColumn(defaultKeyGenerateStrategyConfig)); +193 } +194 +195privatevoid checkManualShardingAlgorithm(final String shardingAlgorithmName, final String logicTable) { +196ShardingAlgorithm shardingAlgorithm = shardingAlgorithms.get(shardingAlgorithmName); +197 ShardingSpherePreconditions.checkState(!(shardingAlgorithm instanceof ShardingAutoTableAlgorithm), +198 () -> newAlgorithmInitializationException(shardingAlgorithm, "`%s` tables sharding configuration can not use auto sharding algorithm.", logicTable)); +199 } +200 +201private Map<String, ShardingTable> createShardingAutoTables(final Collection<ShardingAutoTableRuleConfiguration> autoTableRuleConfigs, +202finalKeyGenerateStrategyConfiguration defaultKeyGenerateStrategyConfig) { +203return autoTableRuleConfigs.stream().map(each -> createShardingAutoTable(defaultKeyGenerateStrategyConfig, each)) +204 .collect(Collectors.toMap(ShardingTable::getLogicTable, Function.identity(), (oldValue, currentValue) -> oldValue, CaseInsensitiveMap::new)); +205 } +206 +207private ShardingTable createShardingAutoTable(finalKeyGenerateStrategyConfiguration defaultKeyGenerateStrategyConfig, finalShardingAutoTableRuleConfiguration autoTableRuleConfig) { +208 checkAutoShardingAlgorithm(autoTableRuleConfig.getShardingStrategy().getShardingAlgorithmName(), autoTableRuleConfig.getLogicTable()); +209ShardingAlgorithm shardingAlgorithm = shardingAlgorithms.get(autoTableRuleConfig.getShardingStrategy().getShardingAlgorithmName()); +210returnnew ShardingTable(autoTableRuleConfig, dataSourceNames, (ShardingAutoTableAlgorithm) shardingAlgorithm, getDefaultGenerateKeyColumn(defaultKeyGenerateStrategyConfig)); +211 } +212 +213privatevoid checkAutoShardingAlgorithm(final String shardingAlgorithmName, final String logicTable) { +214ShardingAlgorithm shardingAlgorithm = shardingAlgorithms.get(shardingAlgorithmName); +215 ShardingSpherePreconditions.checkState(shardingAlgorithm instanceof ShardingAutoTableAlgorithm, +216 () -> newAlgorithmInitializationException(shardingAlgorithm, "`%s` autoTables sharding configuration must use auto sharding algorithm.", logicTable)); +217 } +218 +219private String getDefaultGenerateKeyColumn(finalKeyGenerateStrategyConfiguration defaultKeyGenerateStrategyConfig) { +220return Optional.ofNullable(defaultKeyGenerateStrategyConfig).map(KeyGenerateStrategyConfiguration::getColumn).orElse(null); +221 } +222 +223private Map<String, BindingTableRule> createBindingTableRules(final Collection<ShardingTableReferenceRuleConfiguration> bindingTableGroups) { +224 Map<String, BindingTableRule> result = new LinkedHashMap<>(); +225for (ShardingTableReferenceRuleConfiguration each : bindingTableGroups) { +226BindingTableRule bindingTableRule = createBindingTableRule(each.getReference()); +227for (String logicTable : bindingTableRule.getAllLogicTables()) { +228 result.put(logicTable, bindingTableRule); +229 } +230 } +231return result; +232 } +233 +234privateBindingTableRule createBindingTableRule(final String bindingTableGroup) { +235 Map<String, ShardingTable> shardingTables = Splitter.on(",").trimResults().splitToList(bindingTableGroup).stream() +236 .map(this::getShardingTable).collect(Collectors.toMap(ShardingTable::getLogicTable, Function.identity(), (oldValue, currentValue) -> oldValue, LinkedHashMap::new)); +237BindingTableRule result = newBindingTableRule(); +238 result.getShardingTables().putAll(shardingTables); +239return result; +240 } +241 +242/** +243 * Get database sharding strategy configuration. +244 * +245 * @param shardingTable sharding table +246 * @return database sharding strategy configuration +247 */ +248publicShardingStrategyConfiguration getDatabaseShardingStrategyConfiguration(final ShardingTable shardingTable) { +249return getDatabaseShardingStrategyConfiguration(shardingTable, defaultDatabaseShardingStrategyConfig); +250 } +251 +252privateShardingStrategyConfiguration getDatabaseShardingStrategyConfiguration(final ShardingTable shardingTable, finalShardingStrategyConfiguration defaultDatabaseShardingStrategyConfig) { +253returnnull == shardingTable.getDatabaseShardingStrategyConfig() ? defaultDatabaseShardingStrategyConfig : shardingTable.getDatabaseShardingStrategyConfig(); +254 } +255 +256/** +257 * Get table sharding strategy configuration. +258 * +259 * @param shardingTable sharding table +260 * @return table sharding strategy configuration +261 */ +262publicShardingStrategyConfiguration getTableShardingStrategyConfiguration(final ShardingTable shardingTable) { +263return getTableShardingStrategyConfiguration(shardingTable, defaultTableShardingStrategyConfig); +264 } +265 +266privateShardingStrategyConfiguration getTableShardingStrategyConfiguration(final ShardingTable shardingTable, finalShardingStrategyConfiguration defaultTableShardingStrategyConfig) { +267returnnull == shardingTable.getTableShardingStrategyConfig() ? defaultTableShardingStrategyConfig : shardingTable.getTableShardingStrategyConfig(); +268 } +269 +270/** +271 * Get audit strategy configuration. +272 * +273 * @param shardingTable sharding table +274 * @return audit strategy configuration +275 */ +276publicShardingAuditStrategyConfiguration getAuditStrategyConfiguration(final ShardingTable shardingTable) { +277returnnull == shardingTable.getAuditStrategyConfig() ? defaultAuditStrategy : shardingTable.getAuditStrategyConfig(); +278 } +279 +280/** +281 * Find sharding table. +282 * +283 * @param logicTableName logic table name +284 * @return sharding table +285 */ +286public Optional<ShardingTable> findShardingTable(final String logicTableName) { +287if (Strings.isNullOrEmpty(logicTableName) || !shardingTables.containsKey(logicTableName)) { +288return Optional.empty(); +289 } +290return Optional.of(shardingTables.get(logicTableName)); +291 } +292 +293/** +294 * Find sharding table via actual table name. +295 * +296 * @param actualTableName actual table name +297 * @return sharding table +298 */ +299public Optional<ShardingTable> findShardingTableByActualTable(final String actualTableName) { +300for (ShardingTable each : shardingTables.values()) { +301if (each.isExisted(actualTableName)) { +302return Optional.of(each); +303 } +304 } +305return Optional.empty(); +306 } +307 +308/** +309 * Get sharding table. +310 * +311 * @param logicTableName logic table name +312 * @return sharding table +313 * @throws ShardingTableRuleNotFoundException sharding table rule not found exception +314 */ +315public ShardingTable getShardingTable(final String logicTableName) { +316return findShardingTable(logicTableName).orElseThrow(() -> newShardingTableRuleNotFoundException(Collections.singleton(logicTableName))); +317 } +318 +319/** +320 * Judge whether logic table is all config binding tables or not. +321 * +322 * @param logicTableNames logic table names +323 * @return whether logic table is all config binding tables or not +324 */ +325publicboolean isAllConfigBindingTables(final Collection<String> logicTableNames) { +326if (logicTableNames.isEmpty()) { +327return false; +328 } +329 Optional<BindingTableRule> bindingTableRule = findBindingTableRule(logicTableNames); +330if (!bindingTableRule.isPresent()) { +331return false; +332 } +333 Collection<String> result = new CaseInsensitiveSet<>(bindingTableRule.get().getAllLogicTables()); +334return !result.isEmpty() && result.containsAll(logicTableNames); +335 } +336 +337/** +338 * Judge whether logic table is all config binding tables and use sharding columns join. +339 * +340 * @param sqlStatementContext sqlStatementContext +341 * @param logicTableNames logic table names +342 * @return whether logic table is all config binding tables and use sharding columns join +343 */ +344publicboolean isBindingTablesUseShardingColumnsJoin(finalSQLStatementContext sqlStatementContext, final Collection<String> logicTableNames) { +345if (!(sqlStatementContext instanceof SelectStatementContext && ((SelectStatementContext) sqlStatementContext).isContainsJoinQuery())) { +346return isAllConfigBindingTables(logicTableNames); +347 } +348if (!isAllConfigBindingTables(logicTableNames)) { +349return false; +350 } +351SelectStatementContext select = (SelectStatementContext) sqlStatementContext; +352return isJoinConditionContainsShardingColumns(logicTableNames, select.getWhereSegments()); +353 } +354 +355private Optional<BindingTableRule> findBindingTableRule(final Collection<String> logicTableNames) { +356for (String each : logicTableNames) { +357 Optional<BindingTableRule> result = findBindingTableRule(each); +358if (result.isPresent()) { +359return result; +360 } +361 } +362return Optional.empty(); +363 } +364 +365/** +366 * Find binding table rule via logic table name. +367 * +368 * @param logicTableName logic table name +369 * @return binding table rule +370 */ +371public Optional<BindingTableRule> findBindingTableRule(final String logicTableName) { +372return Optional.ofNullable(bindingTableRules.get(logicTableName)); +373 } +374 +375/** +376 * Judge whether logic table is all sharding table or not. +377 * +378 * @param logicTableNames logic table names +379 * @return whether logic table is all sharding table or not +380 */ +381publicboolean isAllShardingTables(final Collection<String> logicTableNames) { +382if (logicTableNames.isEmpty()) { +383return false; +384 } +385for (String each : logicTableNames) { +386if (!isShardingTable(each)) { +387return false; +388 } +389 } +390returntrue; +391 } +392 +393/** +394 * Judge whether logic table is sharding table or not. +395 * +396 * @param logicTableName logic table name +397 * @return whether logic table is sharding table or not +398 */ +399publicboolean isShardingTable(final String logicTableName) { +400return shardingTables.containsKey(logicTableName); +401 } +402 +403/** +404 * Judge whether all tables are in same data source or not. +405 * +406 * @param logicTableNames logic table names +407 * @return whether all tables are in same data source or not +408 */ +409publicboolean isAllTablesInSameDataSource(final Collection<String> logicTableNames) { +410 Collection<String> dataSourceNames = logicTableNames.stream().map(shardingTables::get) +411 .filter(Objects::nonNull).flatMap(each -> each.getActualDataSourceNames().stream()).collect(Collectors.toSet()); +412return 1 == dataSourceNames.size(); +413 } +414 +415/** +416 * Judge whether contains sharding table or not. +417 * +418 * @param logicTableNames logic table names +419 * @return whether contains sharding table or not +420 */ +421publicboolean containsShardingTable(final Collection<String> logicTableNames) { +422for (String each : logicTableNames) { +423if (isShardingTable(each)) { +424returntrue; +425 } +426 } +427return false; +428 } +429 +430/** +431 * Find sharding column. +432 * +433 * @param columnName column name +434 * @param tableName table name +435 * @return sharding column +436 */ +437public Optional<String> findShardingColumn(final String columnName, final String tableName) { +438return Optional.ofNullable(shardingTables.get(tableName)).flatMap(optional -> findShardingColumn(optional, columnName)); +439 } +440 +441private Optional<String> findShardingColumn(final ShardingTable shardingTable, final String columnName) { +442 Optional<String> databaseShardingColumn = findShardingColumn(getDatabaseShardingStrategyConfiguration(shardingTable), columnName); +443if (databaseShardingColumn.isPresent()) { +444return databaseShardingColumn; +445 } +446return findShardingColumn(getTableShardingStrategyConfiguration(shardingTable), columnName); +447 } +448 +449private Optional<String> findShardingColumn(finalShardingStrategyConfiguration shardingStrategyConfig, final String columnName) { +450if (shardingStrategyConfig instanceof StandardShardingStrategyConfiguration) { +451 String shardingColumn = null == ((StandardShardingStrategyConfiguration) shardingStrategyConfig).getShardingColumn() +452 ? defaultShardingColumn +453 : ((StandardShardingStrategyConfiguration) shardingStrategyConfig).getShardingColumn(); +454return shardingColumn.equalsIgnoreCase(columnName) ? Optional.of(shardingColumn) : Optional.empty(); +455 } +456if (shardingStrategyConfig instanceof ComplexShardingStrategyConfiguration) { +457 List<String> shardingColumns = Splitter.on(",").trimResults().splitToList(((ComplexShardingStrategyConfiguration) shardingStrategyConfig).getShardingColumns()); +458for (String each : shardingColumns) { +459if (each.equalsIgnoreCase(columnName)) { +460return Optional.of(each); +461 } +462 } +463 } +464return Optional.empty(); +465 } +466 +467/** +468 * Judge whether given logic table column is key generated column or not. +469 * +470 * @param columnName column name +471 * @param tableName table name +472 * @return whether given logic table column is key generated column or not +473 */ +474publicboolean isGenerateKeyColumn(final String columnName, final String tableName) { +475return Optional.ofNullable(shardingTables.get(tableName)).filter(each -> isGenerateKeyColumn(each, columnName)).isPresent(); +476 } +477 +478privateboolean isGenerateKeyColumn(final ShardingTable shardingTable, final String columnName) { +479 Optional<String> generateKeyColumn = shardingTable.getGenerateKeyColumn(); +480return generateKeyColumn.isPresent() && generateKeyColumn.get().equalsIgnoreCase(columnName); +481 } +482 +483/** +484 * Find column name of generated key. +485 * +486 * @param logicTableName logic table name +487 * @return column name of generated key +488 */ +489public Optional<String> findGenerateKeyColumnName(final String logicTableName) { +490return Optional.ofNullable(shardingTables.get(logicTableName)).filter(each -> each.getGenerateKeyColumn().isPresent()).flatMap(ShardingTable::getGenerateKeyColumn); +491 } +492 +493/** +494 * Find the generated keys of logic table. +495 * +496 * @param algorithmSQLContext key generate context +497 * @param keyGenerateCount key generate count +498 * @return generated keys +499 */ +500public Collection<? extends Comparable<?>> generateKeys(finalAlgorithmSQLContext algorithmSQLContext, finalint keyGenerateCount) { +501return getKeyGenerateAlgorithm(algorithmSQLContext.getTableName()).generateKeys(algorithmSQLContext, keyGenerateCount); +502 } +503 +504/** +505 * Judge whether support auto increment or not. +506 * +507 * @param logicTableName logic table name +508 * @return whether support auto increment or not +509 */ +510publicboolean isSupportAutoIncrement(final String logicTableName) { +511return getKeyGenerateAlgorithm(logicTableName).isSupportAutoIncrement(); +512 } +513 +514privateKeyGenerateAlgorithm getKeyGenerateAlgorithm(final String logicTableName) { +515 ShardingTable shardingTable = getShardingTable(logicTableName); +516returnnull == shardingTable.getKeyGeneratorName() ? defaultKeyGenerateAlgorithm : keyGenerators.get(shardingTable.getKeyGeneratorName()); +517 } +518 +519/** +520 * Find data node by logic table name. +521 * +522 * @param logicTableName logic table name +523 * @return data node +524 */ +525publicDataNode getDataNode(final String logicTableName) { +526 ShardingTable shardingTable = getShardingTable(logicTableName); +527return shardingTable.getActualDataNodes().get(0); +528 } +529 +530/** +531 * Get sharding logic table names. +532 * +533 * @param logicTableNames logic table names +534 * @return sharding logic table names +535 */ +536public Collection<String> getShardingLogicTableNames(final Collection<String> logicTableNames) { +537 Collection<String> result = new LinkedList<>(); +538for (String each : logicTableNames) { +539if (isShardingTable(each)) { +540 result.add(each); +541 } +542 } +543return result; +544 } +545 +546/** +547 * Get logic and actual binding tables. +548 * +549 * @param dataSourceName data source name +550 * @param logicTable logic table name +551 * @param actualTable actual table name +552 * @param availableLogicBindingTables available logic binding table names +553 * @return logic and actual binding tables +554 */ +555public Map<String, String> getLogicAndActualTablesFromBindingTable(final String dataSourceName, +556final String logicTable, final String actualTable, final Collection<String> availableLogicBindingTables) { +557return findBindingTableRule(logicTable).map(optional -> optional.getLogicAndActualTables(dataSourceName, logicTable, actualTable, availableLogicBindingTables)) +558 .orElseGet(Collections::emptyMap); +559 } +560 +561/** +562 * Is sharding cache enabled. +563 * +564 * @return is sharding cache enabled +565 */ +566publicboolean isShardingCacheEnabled() { +567returnnull != shardingCache; +568 } +569 +570privateboolean isJoinConditionContainsShardingColumns(final Collection<String> tableNames, final Collection<WhereSegment> whereSegments) { +571 Collection<String> databaseJoinConditionTables = new CaseInsensitiveSet<>(tableNames.size(), 1F); +572 Collection<String> tableJoinConditionTables = new CaseInsensitiveSet<>(tableNames.size(), 1F); +573for (WhereSegment each : whereSegments) { +574 Collection<AndPredicate> andPredicates = ExpressionExtractor.extractAndPredicates(each.getExpr()); +575if (andPredicates.size() > 1) { +576return false; +577 } +578for (AndPredicate andPredicate : andPredicates) { +579 databaseJoinConditionTables.addAll(getJoinConditionTables(andPredicate.getPredicates(), true)); +580 tableJoinConditionTables.addAll(getJoinConditionTables(andPredicate.getPredicates(), false)); +581 } +582 } +583 ShardingTable shardingTable = getShardingTable(tableNames.iterator().next()); +584boolean containsDatabaseShardingColumns = !(getDatabaseShardingStrategyConfiguration(shardingTable) instanceof StandardShardingStrategyConfiguration) +585 || databaseJoinConditionTables.containsAll(tableNames); +586boolean containsTableShardingColumns = +587 !(getTableShardingStrategyConfiguration(shardingTable) instanceof StandardShardingStrategyConfiguration) || tableJoinConditionTables.containsAll(tableNames); +588return containsDatabaseShardingColumns && containsTableShardingColumns; +589 } +590 +591private Collection<String> getJoinConditionTables(final Collection<ExpressionSegment> predicates, finalboolean isDatabaseJoinCondition) { +592 Collection<String> result = new LinkedList<>(); +593for (ExpressionSegment each : predicates) { +594if (!isJoinConditionExpression(each)) { +595continue; +596 } +597ColumnSegment leftColumn = (ColumnSegment) ((BinaryOperationExpression) each).getLeft(); +598ColumnSegment rightColumn = (ColumnSegment) ((BinaryOperationExpression) each).getRight(); +599 Optional<ShardingTable> leftShardingTable = findShardingTable(leftColumn.getColumnBoundInfo().getOriginalTable().getValue()); +600 Optional<ShardingTable> rightShardingTable = findShardingTable(rightColumn.getColumnBoundInfo().getOriginalTable().getValue()); +601if (!leftShardingTable.isPresent() || !rightShardingTable.isPresent()) { +602continue; +603 } +604ShardingStrategyConfiguration leftConfig = +605 isDatabaseJoinCondition ? getDatabaseShardingStrategyConfiguration(leftShardingTable.get()) : getTableShardingStrategyConfiguration(leftShardingTable.get()); +606ShardingStrategyConfiguration rightConfig = +607 isDatabaseJoinCondition ? getDatabaseShardingStrategyConfiguration(rightShardingTable.get()) : getTableShardingStrategyConfiguration(rightShardingTable.get()); +608if (findShardingColumn(leftConfig, leftColumn.getIdentifier().getValue()).isPresent() && findShardingColumn(rightConfig, rightColumn.getIdentifier().getValue()).isPresent()) { +609 result.add(leftColumn.getColumnBoundInfo().getOriginalTable().getValue()); +610 result.add(rightColumn.getColumnBoundInfo().getOriginalTable().getValue()); +611 } +612 } +613return result; +614 } +615 +616privateboolean isJoinConditionExpression(finalExpressionSegment expression) { +617if (!(expression instanceof BinaryOperationExpression)) { +618return false; +619 } +620BinaryOperationExpression binaryExpression = (BinaryOperationExpression) expression; +621return binaryExpression.getLeft() instanceof ColumnSegment && binaryExpression.getRight() instanceof ColumnSegment && "=".equals(binaryExpression.getOperator()); +622 } +623 +624 @Override +625publicint getOrder() { +626return ShardingOrder.ORDER; +627 } +628 }
diff --git a/statistics/staging/xref/org/apache/shardingsphere/sharding/rule/ShardingTable.html b/statistics/staging/xref/org/apache/shardingsphere/sharding/rule/ShardingTable.html index 566b3319a2614..300972a9204c9 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/sharding/rule/ShardingTable.html +++ b/statistics/staging/xref/org/apache/shardingsphere/sharding/rule/ShardingTable.html @@ -25,37 +25,37 @@ 1718package org.apache.shardingsphere.sharding.rule; 19 -20import com.google.common.base.Strings; -21import lombok.AccessLevel; -22import lombok.Getter; -23import lombok.ToString; -24import org.apache.shardingsphere.infra.datanode.DataNode; -25import org.apache.shardingsphere.infra.datanode.DataNodeInfo; -26import org.apache.shardingsphere.infra.datanode.DataNodeUtils; -27import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; -28import org.apache.shardingsphere.infra.expr.core.InlineExpressionParserFactory; -29import org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration; -30import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration; -31import org.apache.shardingsphere.sharding.api.config.strategy.audit.ShardingAuditStrategyConfiguration; -32import org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration; -33import org.apache.shardingsphere.sharding.api.config.strategy.sharding.NoneShardingStrategyConfiguration; -34import org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration; -35import org.apache.shardingsphere.sharding.api.sharding.ShardingAutoTableAlgorithm; -36import org.apache.shardingsphere.sharding.constant.ShardingTableConstants; -37import org.apache.shardingsphere.sharding.exception.metadata.DataNodeGenerateException; -38import org.apache.shardingsphere.sharding.exception.metadata.MissingRequiredDataNodesException; -39 -40import java.util.Collection; -41import java.util.Collections; -42import java.util.Comparator; -43import java.util.HashMap; -44import java.util.LinkedHashSet; -45import java.util.LinkedList; -46import java.util.List; -47import java.util.Map; -48import java.util.Optional; -49import java.util.Set; -50import java.util.TreeSet; +20import com.cedarsoftware.util.CaseInsensitiveSet; +21import com.google.common.base.Strings; +22import lombok.AccessLevel; +23import lombok.Getter; +24import lombok.ToString; +25import org.apache.shardingsphere.infra.datanode.DataNode; +26import org.apache.shardingsphere.infra.datanode.DataNodeInfo; +27import org.apache.shardingsphere.infra.datanode.DataNodeUtils; +28import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; +29import org.apache.shardingsphere.infra.expr.core.InlineExpressionParserFactory; +30import org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration; +31import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration; +32import org.apache.shardingsphere.sharding.api.config.strategy.audit.ShardingAuditStrategyConfiguration; +33import org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration; +34import org.apache.shardingsphere.sharding.api.config.strategy.sharding.NoneShardingStrategyConfiguration; +35import org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration; +36import org.apache.shardingsphere.sharding.api.sharding.ShardingAutoTableAlgorithm; +37import org.apache.shardingsphere.sharding.constant.ShardingTableConstants; +38import org.apache.shardingsphere.sharding.exception.metadata.DataNodeGenerateException; +39import org.apache.shardingsphere.sharding.exception.metadata.MissingRequiredDataNodesException; +40 +41import java.util.Collection; +42import java.util.Collections; +43import java.util.Comparator; +44import java.util.HashMap; +45import java.util.LinkedHashSet; +46import java.util.LinkedList; +47import java.util.List; +48import java.util.Map; +49import java.util.Optional; +50import java.util.Set; 51import java.util.stream.Collectors; 5253/** @@ -167,7 +167,7 @@ 159 } 160161private Set<String> getActualTables() { -162return actualDataNodes.stream().map(DataNode::getTableName).collect(Collectors.toCollection(() -> new TreeSet<>(String.CASE_INSENSITIVE_ORDER))); +162return actualDataNodes.stream().map(DataNode::getTableName).collect(Collectors.toCollection(CaseInsensitiveSet::new)); 163 } 164165privatevoid addActualTable(final String datasourceName, final String tableName) { diff --git a/statistics/staging/xref/org/apache/shardingsphere/single/util/SingleTableLoadUtils.html b/statistics/staging/xref/org/apache/shardingsphere/single/util/SingleTableLoadUtils.html index 6b67591391445..bbc3d1355b9c0 100644 --- a/statistics/staging/xref/org/apache/shardingsphere/single/util/SingleTableLoadUtils.html +++ b/statistics/staging/xref/org/apache/shardingsphere/single/util/SingleTableLoadUtils.html @@ -25,21 +25,21 @@ 1718package org.apache.shardingsphere.single.util; 19 -20import com.google.common.base.Splitter; -21import lombok.AccessLevel; -22import lombok.NoArgsConstructor; -23import org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData; -24import org.apache.shardingsphere.infra.database.core.type.DatabaseType; -25import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry; -26import org.apache.shardingsphere.infra.datanode.DataNode; -27import org.apache.shardingsphere.infra.rule.ShardingSphereRule; -28import org.apache.shardingsphere.infra.rule.attribute.table.TableMapperRuleAttribute; -29import org.apache.shardingsphere.single.constant.SingleTableConstants; -30 -31import java.util.Collection; -32import java.util.LinkedHashSet; -33import java.util.Optional; -34import java.util.TreeSet; +20import com.cedarsoftware.util.CaseInsensitiveSet; +21import com.google.common.base.Splitter; +22import lombok.AccessLevel; +23import lombok.NoArgsConstructor; +24import org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData; +25import org.apache.shardingsphere.infra.database.core.type.DatabaseType; +26import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry; +27import org.apache.shardingsphere.infra.datanode.DataNode; +28import org.apache.shardingsphere.infra.rule.ShardingSphereRule; +29import org.apache.shardingsphere.infra.rule.attribute.table.TableMapperRuleAttribute; +30import org.apache.shardingsphere.single.constant.SingleTableConstants; +31 +32import java.util.Collection; +33import java.util.LinkedHashSet; +34import java.util.Optional; 35import java.util.stream.Collectors; 3637/** @@ -57,7 +57,7 @@ 49 * @return excluded tables50 */51publicstatic Collection<String> getExcludedTables(final Collection<ShardingSphereRule> builtRules) { -52 Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); +52 Collection<String> result = new CaseInsensitiveSet<>(); 53for (ShardingSphereRule each : builtRules) { 54 Optional<TableMapperRuleAttribute> ruleAttribute = each.getAttributes().findAttribute(TableMapperRuleAttribute.class); 55if (ruleAttribute.isPresent()) { @@ -75,7 +75,7 @@ 67 * @return feature required single tables68 */69publicstatic Collection<String> getFeatureRequiredSingleTables(final Collection<ShardingSphereRule> builtRules) { -70 Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); +70 Collection<String> result = new CaseInsensitiveSet<>(); 71for (ShardingSphereRule each : builtRules) { 72 Optional<TableMapperRuleAttribute> ruleAttribute = each.getAttributes().findAttribute(TableMapperRuleAttribute.class); 73if (!ruleAttribute.isPresent()) {
org.apache.shardingsphere.data.pipeline.cdc.client.util.ProtobufAnyValueConverter Line
check this logic when items contain multiple values @duanzhengqiang168
167
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptAlterTableToken Line
Line
add ShardingRouteAlgorithmException check when autoTables support config actualDataNodes in #3336479
77
org.apache.shardingsphere.sharding.rule.ShardingRule Line
check sharding rule configuration according to aggregated data sources142
141
org.apache.shardingsphere.sharding.yaml.swapper.ShardingRuleConfigurationConverter Line
On low-performance devices in Github Actions, `TRUNCATE TABLE` related SQLs may throw a `java.sql.SQLException: Table or view 't_address' does not exist.` error under nativeTest. So that we need to wait for a period of time after executing `CREATE TABLE` related SQLs before executing `TRUNCATE TABLE` related SQLs. This may mean that the implementation of {@link org.apache.shardingsphere.mode.repository.cluster.zookeeper.ZookeeperRepository} needs optimization. 86
org.apache.shardingsphere.test.natived.jdbc.transactions.base.SeataTestLine
Apparently there is a real connection leak on Seata Client 2.2.0. Waiting for <a href="https://github.com/apache/incubator-seata/pull/7044">apache/incubator-seata#7044</a>.73
org.apache.shardingsphere.test.natived.proxy.transactions.base.SeataTest Line
Executing this unit test in the GraalVM Native Image of the Github Actions device results in a connection leak in {@code org.apache.shardingsphere.test.natived.jdbc.databases.FirebirdTest}. This requires further investigation.54
Apparently there is a real connection leak on Seata Client 2.2.0. Waiting for <a href="https://github.com/apache/incubator-seata/pull/7044">apache/incubator-seata#7044</a>.94
org.apache.shardingsphere.transaction.rule.TransactionRule Line