Skip to content

Commit 80a8041

Browse files
committed
track bug 跨库也支持track
1 parent 341ecc5 commit 80a8041

File tree

3 files changed

+11
-9
lines changed

3 files changed

+11
-9
lines changed

src/ShardingCore/Sharding/ShardingExecutors/DefaultShardingTrackQueryExecutor.cs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,7 @@ public TResult Execute<TResult>(IQueryCompilerContext queryCompilerContext)
6262
{
6363
if (queryCompilerContext is IMergeQueryCompilerContext mergeQueryCompilerContext)
6464
{
65-
var mergeResult = _shardingQueryExecutor.Execute<TResult>(mergeQueryCompilerContext);
66-
return ResultTrackExecute(mergeResult, queryCompilerContext, TrackEnumerable, Track);
65+
return _shardingQueryExecutor.Execute<TResult>(mergeQueryCompilerContext);
6766
}
6867
throw new ShardingCoreNotFoundException(queryCompilerContext.GetQueryExpression().ShardingPrint());
6968
}
@@ -120,8 +119,7 @@ public TResult ExecuteAsync<TResult>(IQueryCompilerContext queryCompilerContext,
120119
{
121120
if (queryCompilerContext is IMergeQueryCompilerContext mergeQueryCompilerContext)
122121
{
123-
var mergeResult = _shardingQueryExecutor.ExecuteAsync<TResult>(mergeQueryCompilerContext);
124-
return ResultTrackExecute(mergeResult, queryCompilerContext, TrackAsyncEnumerable, TrackAsync);
122+
return _shardingQueryExecutor.ExecuteAsync<TResult>(mergeQueryCompilerContext);
125123
}
126124
throw new ShardingCoreNotFoundException(queryCompilerContext.GetQueryExpression().ShardingPrint());
127125
}
@@ -143,8 +141,7 @@ public IAsyncEnumerable<TResult> ExecuteAsync<TResult>(IQueryCompilerContext que
143141
{
144142
if (queryCompilerContext is IMergeQueryCompilerContext mergeQueryCompilerContext)
145143
{
146-
var mergeResult= _shardingQueryExecutor.ExecuteAsync<IAsyncEnumerable<TResult>>(mergeQueryCompilerContext);
147-
return ResultTrackExecute(mergeResult, queryCompilerContext, TrackEnumerable, Track);
144+
return _shardingQueryExecutor.ExecuteAsync<IAsyncEnumerable<TResult>>(mergeQueryCompilerContext);
148145
}
149146
throw new ShardingCoreNotFoundException(queryCompilerContext.GetQueryExpression().ShardingPrint());
150147
}
@@ -162,8 +159,7 @@ public Task<TResult> ExecuteAsync<TResult>(IQueryCompilerContext queryCompilerCo
162159
{
163160
if (queryCompilerContext is IMergeQueryCompilerContext mergeQueryCompilerContext)
164161
{
165-
var mergeResult= _shardingQueryExecutor.ExecuteAsync<Task<TResult>>(mergeQueryCompilerContext);
166-
return ResultTrackExecute(mergeResult, queryCompilerContext, TrackEnumerable, TrackAsync);
162+
return _shardingQueryExecutor.ExecuteAsync<Task<TResult>>(mergeQueryCompilerContext);
167163
}
168164
throw new ShardingCoreNotFoundException(queryCompilerContext.GetQueryExpression().ShardingPrint());
169165
}

src/ShardingCore/Sharding/ShardingExecutors/MergeQueryCompilerContext.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ public string GetQueryMethodName()
246246
/// <returns></returns>
247247
public bool IsParallelQuery()
248248
{
249-
return _isCrossTable || _existCrossTableTails|| _queryCompilerContext.IsParallelQuery();
249+
return _isCrossTable || _existCrossTableTails || _queryCompilerContext.IsParallelQuery();
250250
}
251251

252252
public int? GetFixedTake()

src/ShardingCore/Sharding/StreamMergeContext.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,13 @@ public bool IsParallelQuery()
278278
public bool IsUseShardingTrack(Type entityType)
279279
{
280280
if (!IsParallelQuery())
281+
{
282+
if (IsCrossDataSource)
283+
{
284+
return true;
285+
}
281286
return false;
287+
}
282288
return QueryTrack() && _trackerManager.EntityUseTrack(entityType);
283289
}
284290

0 commit comments

Comments
 (0)