This is an automated email from the ASF dual-hosted git repository.

zhonghongsheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new e19fc663866 InventoryDumperContextSplitter supports multi-columns 
unique key first integer column splitting (#36935)
e19fc663866 is described below

commit e19fc6638662a4af8d69504cb5e5c90fdb0d6214
Author: Hongsheng Zhong <[email protected]>
AuthorDate: Fri Oct 24 17:02:30 2025 +0800

    InventoryDumperContextSplitter supports multi-columns unique key first 
integer column splitting (#36935)
    
    * InventoryDumperContextSplitter supports multi-columns unique key first 
integer column splitting
    
    * Update RELEASE-NOTES.md
---
 RELEASE-NOTES.md                                           |  1 +
 .../inventory/splitter/InventoryDumperContextSplitter.java | 14 +++++++-------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index c709e1bc3ab..86d2200e069 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -48,6 +48,7 @@
 1. Encrypt: Add quotes to encrypt rewrite derived columns - 
[#34950](https://github.com/apache/shardingsphere/pull/34950)
 1. Encrypt: Support NOT LIKE operator in encryption feature - 
[#35984](https://github.com/apache/shardingsphere/pull/35984)
 1. Readwrite-splitting: Update transactional read query strategy default type 
as PRIMARY - [#36477](https://github.com/apache/shardingsphere/pull/36477)
+1. Pipeline: InventoryDumperContextSplitter supports multi-columns unique key 
first integer column splitting - 
[#36935](https://github.com/apache/shardingsphere/pull/36935)
 
 ### Bug Fixes
 
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/inventory/splitter/InventoryDumperContextSplitter.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/inventory/splitter/InventoryDumperContextSplitter.java
index b16a9705cb8..54e1cbeb3eb 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/inventory/splitter/InventoryDumperContextSplitter.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/preparer/inventory/splitter/InventoryDumperContextSplitter.java
@@ -118,15 +118,15 @@ public final class InventoryDumperContextSplitter {
         if (!dumperContext.hasUniqueKey()) {
             return Collections.singleton(new UnsupportedKeyIngestPosition());
         }
+        DialectDataTypeOption dataTypeOption = new 
DatabaseTypeRegistry(sourceDataSource.getDatabaseType()).getDialectDatabaseMetaData().getDataTypeOption();
         List<PipelineColumnMetaData> uniqueKeyColumns = 
dumperContext.getUniqueKeyColumns();
+        int firstColumnDataType = uniqueKeyColumns.get(0).getDataType();
+        if (dataTypeOption.isIntegerDataType(firstColumnDataType)) {
+            Range<Long> uniqueKeyValuesRange = 
getUniqueKeyValuesRange(jobItemContext, dumperContext);
+            int shardingSize = 
jobItemContext.getJobProcessContext().getProcessConfiguration().getRead().getShardingSize();
+            return 
InventoryPositionCalculator.getPositionByIntegerUniqueKeyRange(tableRecordsCount,
 uniqueKeyValuesRange, shardingSize);
+        }
         if (1 == uniqueKeyColumns.size()) {
-            DialectDataTypeOption dataTypeOption = new 
DatabaseTypeRegistry(sourceDataSource.getDatabaseType()).getDialectDatabaseMetaData().getDataTypeOption();
-            int firstColumnDataType = uniqueKeyColumns.get(0).getDataType();
-            if (dataTypeOption.isIntegerDataType(firstColumnDataType)) {
-                Range<Long> uniqueKeyValuesRange = 
getUniqueKeyValuesRange(jobItemContext, dumperContext);
-                int shardingSize = 
jobItemContext.getJobProcessContext().getProcessConfiguration().getRead().getShardingSize();
-                return 
InventoryPositionCalculator.getPositionByIntegerUniqueKeyRange(tableRecordsCount,
 uniqueKeyValuesRange, shardingSize);
-            }
             if (dataTypeOption.isStringDataType(firstColumnDataType)) {
                 return Collections.singleton(new 
StringPrimaryKeyIngestPosition(null, null));
             }

Reply via email to