Skip to content

Commit abbdb1f

Browse files
committed
优化是否启用顺序合并bug
1 parent 0fb4ba0 commit abbdb1f

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

src/ShardingCore/Sharding/MergeEngines/EnumeratorStreamMergeEngines/EnumeratorStreamMergeEngineFactory.cs

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,11 @@ private IEnumeratorStreamMergeEngine<TEntity> DoNoOrderAppendEnumeratorStreamMer
114114
}
115115
}
116116

117-
if (isShardingDataSource&& dataSourceSequenceOrderConfig != null)
118-
{
119-
return new AppendOrderSequenceEnumeratorAsyncStreamMergeEngine<TShardingDbContext, TEntity>(_streamMergeContext, dataSourceSequenceOrderConfig, tableSequenceOrderConfig, _shardingPageManager.Current.RouteQueryResults);
120-
}
121-
else if (isShardingTable && tableSequenceOrderConfig != null)
117+
var useSequenceEnumeratorMergeEngine = isShardingDataSource && (dataSourceSequenceOrderConfig != null ||
118+
(isShardingTable &&
119+
!_streamMergeContext.IsCrossDataSource)) || (!isShardingDataSource && isShardingTable && tableSequenceOrderConfig != null);
120+
121+
if (useSequenceEnumeratorMergeEngine)
122122
{
123123
return new AppendOrderSequenceEnumeratorAsyncStreamMergeEngine<TShardingDbContext, TEntity>(_streamMergeContext, dataSourceSequenceOrderConfig, tableSequenceOrderConfig, _shardingPageManager.Current.RouteQueryResults);
124124
}
@@ -158,22 +158,12 @@ private IEnumeratorStreamMergeEngine<TEntity> DoOrderSequencePaginationEnumerato
158158
}
159159
}
160160

161-
if (isShardingDataSource)
161+
var useSequenceEnumeratorMergeEngine = isShardingDataSource && (dataSourceSequenceOrderConfig != null ||
162+
(isShardingTable &&
163+
!_streamMergeContext.IsCrossDataSource)) || (!isShardingDataSource&&isShardingTable && tableSequenceOrderConfig != null);
164+
if (useSequenceEnumeratorMergeEngine)
162165
{
163-
if (dataSourceSequenceOrderConfig != null)
164-
{
165-
return new SequenceEnumeratorAsyncStreamMergeEngine<TShardingDbContext, TEntity>(_streamMergeContext, dataSourceSequenceOrderConfig, tableSequenceOrderConfig, _shardingPageManager.Current.RouteQueryResults, primaryOrder.IsAsc);
166-
}
167-
}
168-
else
169-
{
170-
if (isShardingTable)
171-
{
172-
if(tableSequenceOrderConfig != null)
173-
{
174-
return new SequenceEnumeratorAsyncStreamMergeEngine<TShardingDbContext, TEntity>(_streamMergeContext, dataSourceSequenceOrderConfig, tableSequenceOrderConfig, _shardingPageManager.Current.RouteQueryResults, primaryOrder.IsAsc);
175-
}
176-
}
166+
return new SequenceEnumeratorAsyncStreamMergeEngine<TShardingDbContext, TEntity>(_streamMergeContext, dataSourceSequenceOrderConfig, tableSequenceOrderConfig, _shardingPageManager.Current.RouteQueryResults, primaryOrder.IsAsc);
177167
}
178168

179169
var total = _shardingPageManager.Current.RouteQueryResults.Sum(o => o.QueryResult);

0 commit comments

Comments
 (0)