Skip to content

Commit dd25545

Browse files
committed
Moves variables initialization closer to places of usage
1 parent c9ea2c9 commit dd25545

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

Orm/Xtensive.Orm/Orm/Providers/SqlCompiler.Helpers.cs

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -213,17 +213,14 @@ private static SqlUserColumn ExtractUserColumn(SqlColumn column)
213213
private static bool ShouldUseQueryReference(CompilableProvider origin, SqlProvider compiledSource)
214214
{
215215
var sourceSelect = compiledSource.Request.Statement;
216-
if (sourceSelect.From==null)
216+
if (sourceSelect.From == null) {
217217
return false;
218+
}
218219

219220
var calculatedColumnIndexes = sourceSelect.Columns
220221
.Select((c, i) => IsCalculatedColumn(c) ? i : -1)
221222
.Where(i => i >= 0)
222223
.ToList();
223-
var containsCalculatedColumns = calculatedColumnIndexes.Count > 0;
224-
var typeIdIsOnlyCalculatedColumn = (calculatedColumnIndexes.Count == 1)
225-
? IsTypeIdColumn(sourceSelect.Columns[calculatedColumnIndexes[0]])
226-
: false;
227224

228225
var rowNumberIsUsed = calculatedColumnIndexes.Count > 0 && sourceSelect.Columns
229226
.Select((c, i) => new { c, i })
@@ -233,21 +230,22 @@ private static bool ShouldUseQueryReference(CompilableProvider origin, SqlProvid
233230
var distinctIsUsed = sourceSelect.Distinct;
234231
var filterIsUsed = !sourceSelect.Where.IsNullReference();
235232

236-
if (origin.Type==ProviderType.Filter) {
233+
if (origin.Type == ProviderType.Filter) {
237234
var filterProvider = (FilterProvider) origin;
238235
var usedColumnIndexes = new TupleAccessGatherer().Gather(filterProvider.Predicate.Body);
239236
return pagingIsUsed || usedColumnIndexes.Any(calculatedColumnIndexes.Contains);
240237
}
241238

242-
if (origin.Type==ProviderType.Select)
239+
if (origin.Type == ProviderType.Select) {
243240
return distinctIsUsed;
241+
}
244242

245-
if (origin.Type==ProviderType.RowNumber) {
243+
if (origin.Type == ProviderType.RowNumber) {
246244
var usedColumnIndexes = origin.Header.Order.Select(o => o.Key);
247245
return pagingIsUsed || groupByIsUsed || distinctIsUsed || usedColumnIndexes.Any(calculatedColumnIndexes.Contains);
248246
}
249247

250-
if (origin.Type==ProviderType.Calculate) {
248+
if (origin.Type == ProviderType.Calculate) {
251249
var calculateProvider = (CalculateProvider) origin;
252250
var columnGatherer = new TupleAccessGatherer();
253251
var usedColumnIndexes = new List<int>();
@@ -278,13 +276,17 @@ private static bool ShouldUseQueryReference(CompilableProvider origin, SqlProvid
278276
return distinctIsUsed || pagingIsUsed || groupByIsUsed || orderingOverCalculatedColumn;
279277
}
280278

281-
if (origin.Type == ProviderType.Apply)
279+
var containsCalculatedColumns = calculatedColumnIndexes.Count > 0;
280+
281+
if (origin.Type == ProviderType.Apply) {
282282
return containsCalculatedColumns || distinctIsUsed || pagingIsUsed || groupByIsUsed;
283+
}
283284

284285
if (origin.Type == ProviderType.Join) {
285286
var shouldUseQueryReference = distinctIsUsed || pagingIsUsed || groupByIsUsed;
286-
if (shouldUseQueryReference)
287+
if (shouldUseQueryReference) {
287288
return true;
289+
}
288290
var joinProvider = (JoinProvider) origin;
289291
var isRight = joinProvider.Right == compiledSource.Origin;
290292
var indexes = joinProvider.EqualIndexes.Select(p => isRight ? p.Second : p.First);
@@ -294,8 +296,9 @@ private static bool ShouldUseQueryReference(CompilableProvider origin, SqlProvid
294296

295297
if (origin.Type == ProviderType.PredicateJoin) {
296298
var shouldUseQueryReference = distinctIsUsed || pagingIsUsed || groupByIsUsed;
297-
if (shouldUseQueryReference)
299+
if (shouldUseQueryReference) {
298300
return true;
301+
}
299302
var joinProvider = (PredicateJoinProvider) origin;
300303
var isRight = joinProvider.Right == compiledSource.Origin;
301304
var indexes = new TupleAccessGatherer().Gather(joinProvider.Predicate.Body, joinProvider.Predicate.Parameters[isRight ? 1 : 0]);
@@ -304,14 +307,18 @@ private static bool ShouldUseQueryReference(CompilableProvider origin, SqlProvid
304307
}
305308

306309
if (origin.Type == ProviderType.Sort) {
307-
if (distinctIsUsed)
310+
if (distinctIsUsed) {
308311
return true;
312+
}
309313
var orderingOverCalculatedColumn = origin.Header.Order
310314
.Select(order => order.Key)
311315
.Any(calculatedColumnIndexes.Contains);
312316
return orderingOverCalculatedColumn;
313317
}
314318

319+
var typeIdIsOnlyCalculatedColumn = (calculatedColumnIndexes.Count == 1)
320+
&& IsTypeIdColumn(sourceSelect.Columns[calculatedColumnIndexes[0]]);
321+
315322
return (containsCalculatedColumns && !typeIdIsOnlyCalculatedColumn) || distinctIsUsed || pagingIsUsed || groupByIsUsed;
316323
}
317324

0 commit comments

Comments
 (0)