From abbdb1f64fb8f8224743cc72b6c2612134e61f3b Mon Sep 17 00:00:00 2001 From: xuejiaming <326308290@qq.com> Date: Mon, 22 Nov 2021 15:22:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=98=AF=E5=90=A6=E5=90=AF?= =?UTF-8?q?=E7=94=A8=E9=A1=BA=E5=BA=8F=E5=90=88=E5=B9=B6bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EnumeratorStreamMergeEngineFactory.cs | 30 +++++++------------ 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/src/ShardingCore/Sharding/MergeEngines/EnumeratorStreamMergeEngines/EnumeratorStreamMergeEngineFactory.cs b/src/ShardingCore/Sharding/MergeEngines/EnumeratorStreamMergeEngines/EnumeratorStreamMergeEngineFactory.cs index 5268e908..d86deff9 100644 --- a/src/ShardingCore/Sharding/MergeEngines/EnumeratorStreamMergeEngines/EnumeratorStreamMergeEngineFactory.cs +++ b/src/ShardingCore/Sharding/MergeEngines/EnumeratorStreamMergeEngines/EnumeratorStreamMergeEngineFactory.cs @@ -114,11 +114,11 @@ namespace ShardingCore.Sharding.MergeEngines.EnumeratorStreamMergeEngines } } - if (isShardingDataSource&& dataSourceSequenceOrderConfig != null) - { - return new AppendOrderSequenceEnumeratorAsyncStreamMergeEngine(_streamMergeContext, dataSourceSequenceOrderConfig, tableSequenceOrderConfig, _shardingPageManager.Current.RouteQueryResults); - } - else if (isShardingTable && tableSequenceOrderConfig != null) + var useSequenceEnumeratorMergeEngine = isShardingDataSource && (dataSourceSequenceOrderConfig != null || + (isShardingTable && + !_streamMergeContext.IsCrossDataSource)) || (!isShardingDataSource && isShardingTable && tableSequenceOrderConfig != null); + + if (useSequenceEnumeratorMergeEngine) { return new AppendOrderSequenceEnumeratorAsyncStreamMergeEngine(_streamMergeContext, dataSourceSequenceOrderConfig, tableSequenceOrderConfig, _shardingPageManager.Current.RouteQueryResults); } @@ -158,22 +158,12 @@ namespace ShardingCore.Sharding.MergeEngines.EnumeratorStreamMergeEngines } } - if (isShardingDataSource) + var useSequenceEnumeratorMergeEngine = isShardingDataSource && (dataSourceSequenceOrderConfig != null || + (isShardingTable && + !_streamMergeContext.IsCrossDataSource)) || (!isShardingDataSource&&isShardingTable && tableSequenceOrderConfig != null); + if (useSequenceEnumeratorMergeEngine) { - if (dataSourceSequenceOrderConfig != null) - { - return new SequenceEnumeratorAsyncStreamMergeEngine(_streamMergeContext, dataSourceSequenceOrderConfig, tableSequenceOrderConfig, _shardingPageManager.Current.RouteQueryResults, primaryOrder.IsAsc); - } - } - else - { - if (isShardingTable) - { - if(tableSequenceOrderConfig != null) - { - return new SequenceEnumeratorAsyncStreamMergeEngine(_streamMergeContext, dataSourceSequenceOrderConfig, tableSequenceOrderConfig, _shardingPageManager.Current.RouteQueryResults, primaryOrder.IsAsc); - } - } + return new SequenceEnumeratorAsyncStreamMergeEngine(_streamMergeContext, dataSourceSequenceOrderConfig, tableSequenceOrderConfig, _shardingPageManager.Current.RouteQueryResults, primaryOrder.IsAsc); } var total = _shardingPageManager.Current.RouteQueryResults.Sum(o => o.QueryResult);