Skip to content

Commit ec74285

Browse files
committed
Strip redundant Cast operations
1 parent a984fa8 commit ec74285

5 files changed

Lines changed: 572 additions & 569 deletions

File tree

Orm/Xtensive.Orm/Orm/Providers/SqlCompiler.Apply.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,11 @@ private SqlSelect ProcessApplyViaSubqueries(ApplyProvider provider, SqlProvider
9292
if (shouldUseQueryReference) {
9393
var leftTable = left.PermanentReference;
9494
query = SqlDml.Select(leftTable);
95-
query.Columns.AddRange(leftTable.Columns.Cast<SqlColumn>());
95+
query.Columns.AddRange(leftTable.Columns);
9696
}
97-
else
97+
else {
9898
query = left.Request.Statement.ShallowClone();
99+
}
99100

100101
var isApplyExistence =
101102
provider.Right.Type==ProviderType.Existence ||

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ protected static SqlSelect ExtractSqlSelect(CompilableProvider origin, SqlProvid
8181
if (ShouldUseQueryReference(origin, compiledSource)) {
8282
var queryRef = compiledSource.PermanentReference;
8383
var query = SqlDml.Select(queryRef);
84-
query.Columns.AddRange(queryRef.Columns.Cast<SqlColumn>());
84+
query.Columns.AddRange(queryRef.Columns);
8585
return query;
8686
}
8787
return sourceSelect.ShallowClone();

Orm/Xtensive.Orm/Orm/Providers/SqlCompiler.Index.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ private SqlSelect BuildUnionQuery(IndexInfo index)
9494

9595
var unionRef = SqlDml.QueryRef(result);
9696
var query = SqlDml.Select(unionRef);
97-
query.Columns.AddRange(unionRef.Columns.Cast<SqlColumn>());
97+
query.Columns.AddRange(unionRef.Columns);
9898
return query;
9999
}
100100

Orm/Xtensive.Orm/Orm/Providers/SqlCompiler.Paging.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ private SqlProvider VisitSkipRowNumber(SkipProvider provider)
8888
var source = compiledSource.Request.Statement;
8989
var queryRef = SqlDml.QueryRef(source);
9090
var query = SqlDml.Select(queryRef);
91-
query.Columns.AddRange(queryRef.Columns.Cast<SqlColumn>());
91+
query.Columns.AddRange(queryRef.Columns);
9292
query.Where = queryRef.Columns.Last() > skipParameterBinding.ParameterReference;
9393
return CreateProvider(query, bindings, provider, compiledSource);
9494
}
@@ -101,7 +101,7 @@ private SqlProvider VisitTakeRowNumber(TakeProvider provider)
101101
var source = compiledSource.Request.Statement;
102102
var queryRef = SqlDml.QueryRef(source);
103103
var query = SqlDml.Select(queryRef);
104-
query.Columns.AddRange(queryRef.Columns.Cast<SqlColumn>());
104+
query.Columns.AddRange(queryRef.Columns);
105105
query.Where = queryRef.Columns.Last() <= takeParameterBinding.ParameterReference;
106106
return CreateProvider(query, bindings, provider, compiledSource);
107107
}
@@ -116,7 +116,7 @@ private SqlProvider VisitPagingRowNumber(PagingProvider provider)
116116
var queryRef = SqlDml.QueryRef(source);
117117
var query = SqlDml.Select(queryRef);
118118
var rowNumberColumn = queryRef.Columns.Last();
119-
query.Columns.AddRange(queryRef.Columns.Cast<SqlColumn>());
119+
query.Columns.AddRange(queryRef.Columns);
120120
query.Where = SqlDml.Between(rowNumberColumn,
121121
fromParameterBinding.ParameterReference,
122122
toParameterBinding.ParameterReference);

0 commit comments

Comments
 (0)