Skip to content

Commit 2e08c59

Browse files
authored
Optimization: replace .ToChainedBuffer() by .ToList() (#240)
1 parent e894263 commit 2e08c59

File tree

10 files changed

+28
-28
lines changed

10 files changed

+28
-28
lines changed

Extensions/Xtensive.Orm.BulkOperations/Internals/QueryOperation.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ private void JoinViaIn(SqlStatement statement, SqlSelect select)
145145
var ex = SqlDml.Equals(s.From.Columns[column.Name], table.Columns[column.Name]);
146146
s.Where = s.Where is null ? ex : SqlDml.And(s.Where, ex);
147147
}
148-
var existingColumns = s.Columns.ToChainedBuffer();
148+
var existingColumns = s.Columns.ToList();
149149
s.Columns.Clear();
150150
var columnToAdd = existingColumns.First(c => c.Name.Equals(columnInfo.Name, StringComparison.Ordinal));
151151
s.Columns.Add(columnToAdd);

Orm/Xtensive.Orm/Orm/Building/Builders/IndexBuilder.ClassTable.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ private void BuildClassTableIndexes(TypeInfo type)
5454

5555
// Building inherited from interfaces indexes
5656
foreach (var @interface in interfaces) {
57-
foreach (var interfaceIndex in @interface.Indexes.Find(IndexAttributes.Primary, MatchType.None).ToChainedBuffer()) {
57+
foreach (var interfaceIndex in @interface.Indexes.Find(IndexAttributes.Primary, MatchType.None).ToList()) {
5858
if (interfaceIndex.DeclaringIndex != interfaceIndex &&
5959
parent != null &&
6060
parent.Indexes.Any(i => i.DeclaringIndex == interfaceIndex)) {
@@ -78,7 +78,7 @@ private void BuildClassTableIndexes(TypeInfo type)
7878

7979
// Build typed indexes
8080
if (type == root) {
81-
foreach (var realIndex in type.Indexes.Find(IndexAttributes.Real).ToChainedBuffer()) {
81+
foreach (var realIndex in type.Indexes.Find(IndexAttributes.Real).ToList()) {
8282
if (!untypedIndexes.Contains(realIndex)) {
8383
continue;
8484
}
@@ -130,7 +130,7 @@ private void BuildClassTableIndexes(TypeInfo type)
130130
// Build virtual secondary index
131131
var primaryOrVirtualIndexes = ancestors
132132
.SelectMany(
133-
ancestor => ancestor.Indexes.Find(IndexAttributes.Primary | IndexAttributes.Virtual, MatchType.None).ToChainedBuffer());
133+
ancestor => ancestor.Indexes.Find(IndexAttributes.Primary | IndexAttributes.Virtual, MatchType.None).ToList());
134134

135135
foreach (var ancestorIndex in primaryOrVirtualIndexes) {
136136
if (ancestorIndex.DeclaringIndex != ancestorIndex) {

Orm/Xtensive.Orm/Orm/Building/Builders/IndexBuilder.ConcreteTable.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private void BuildConcreteTableIndexes(TypeInfo type)
5656

5757
// Building inherited from interfaces indexes
5858
foreach (var @interface in type.AllInterfaces) {
59-
foreach (var parentIndex in @interface.Indexes.Find(IndexAttributes.Primary, MatchType.None).ToChainedBuffer()) {
59+
foreach (var parentIndex in @interface.Indexes.Find(IndexAttributes.Primary, MatchType.None).ToList()) {
6060
if (parentIndex.DeclaringIndex != parentIndex) {
6161
continue;
6262
}
@@ -75,7 +75,7 @@ private void BuildConcreteTableIndexes(TypeInfo type)
7575
}
7676

7777
// Build typed indexes
78-
foreach (var realIndex in type.Indexes.Find(IndexAttributes.Real).ToChainedBuffer()) {
78+
foreach (var realIndex in type.Indexes.Find(IndexAttributes.Real).ToList()) {
7979
if (!untypedIndexes.Contains(realIndex)) {
8080
continue;
8181
}
@@ -104,7 +104,7 @@ private void BuildConcreteTableIndexes(TypeInfo type)
104104
// Build inherited secondary indexes
105105
var primaryOrVirtualIndexes = ancestors
106106
.SelectMany(
107-
ancestor => ancestor.Indexes.Find(IndexAttributes.Primary | IndexAttributes.Virtual, MatchType.None).ToChainedBuffer());
107+
ancestor => ancestor.Indexes.Find(IndexAttributes.Primary | IndexAttributes.Virtual, MatchType.None).ToList());
108108

109109
foreach (var ancestorIndex in primaryOrVirtualIndexes) {
110110
if (ancestorIndex.DeclaringIndex != ancestorIndex) {
@@ -127,7 +127,7 @@ private void BuildConcreteTableIndexes(TypeInfo type)
127127

128128
// Build virtual secondary indexes
129129
if (descendants.Count > 0) {
130-
foreach (var index in type.Indexes.Where(static i => !i.IsPrimary && !i.IsVirtual).ToChainedBuffer()) {
130+
foreach (var index in type.Indexes.Where(static i => !i.IsPrimary && !i.IsVirtual).ToList()) {
131131
var isUntyped = untypedIndexes.Contains(index);
132132
var indexToUnion = isUntyped
133133
? type.Indexes.Single(i => i.DeclaringIndex == index.DeclaringIndex && i.IsTyped)

Orm/Xtensive.Orm/Orm/Building/Builders/IndexBuilder.SingleTable.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ private void BuildSingleTableIndexes(TypeInfo type)
4444
var parent = type.Ancestor;
4545
// Building inherited from interfaces indexes
4646
foreach (var @interface in type.DirectInterfaces) {
47-
foreach (var interfaceIndex in @interface.Indexes.Find(IndexAttributes.Primary, MatchType.None).ToChainedBuffer()) {
47+
foreach (var interfaceIndex in @interface.Indexes.Find(IndexAttributes.Primary, MatchType.None).ToList()) {
4848
if (root.Indexes.Any(i => i.DeclaringIndex == interfaceIndex.DeclaringIndex && i.ReflectedType == type)) {
4949
continue;
5050
}
@@ -59,7 +59,7 @@ private void BuildSingleTableIndexes(TypeInfo type)
5959
_ = types.Add(type);
6060

6161
// Build typed indexes
62-
foreach (var realIndex in root.Indexes.Find(IndexAttributes.Real).ToChainedBuffer()) {
62+
foreach (var realIndex in root.Indexes.Find(IndexAttributes.Real).ToList()) {
6363
if (!types.Contains(realIndex.ReflectedType)) {
6464
continue;
6565
}
@@ -95,7 +95,7 @@ private void BuildSingleTableIndexes(TypeInfo type)
9595
.Select(i => untypedIndexes.Contains(i)
9696
? root.Indexes.Single(index => index.DeclaringIndex == i.DeclaringIndex && index.ReflectedType == type && index.IsTyped)
9797
: i)
98-
.ToChainedBuffer();
98+
.ToList();
9999
foreach (var ancestorIndex in ancestorIndexes) {
100100
if (type.Indexes.Any(i =>
101101
i.DeclaringIndex == ancestorIndex.DeclaringIndex &&

Orm/Xtensive.Orm/Orm/Building/Builders/IndexBuilder.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ private void CreateInterfaceIndexes(TypeInfo @interface, ICollection<TypeInfo> p
8989

9090
// Build virtual inherited interface index
9191
foreach (var parent in interfaces) {
92-
foreach (var parentIndex in parent.Indexes.Find(IndexAttributes.Primary, MatchType.None).ToChainedBuffer()) {
92+
foreach (var parentIndex in parent.Indexes.Find(IndexAttributes.Primary, MatchType.None).ToList()) {
9393
var index = BuildInheritedIndex(@interface, parentIndex, false);
9494
if (@interface.Indexes.Contains(index.Name)) {
9595
index.Dispose();
@@ -747,7 +747,7 @@ private IndexInfo BuildViewIndex(TypeInfo reflectedType, IndexInfo indexToApplyV
747747
var actualColumnMapping = valueColumns
748748
.Zip(columnMap, static (column, sourceIndex) => (column, sourceIndex))
749749
.OrderBy(p => reflectedType.Columns.IndexOf(p.column))
750-
.ToChainedBuffer();
750+
.ToList();
751751
valueColumns.Clear();
752752
columnMap.Clear();
753753
columnMap.AddRange(CollectionUtils.ColNumRange(keyLength));
@@ -893,7 +893,7 @@ private static void BuildAffectedIndexesForMaterializedInterface(TypeInfo typeIn
893893
var primaryIndex = typeInfo.Indexes.PrimaryIndex;
894894
foreach (var descendant in typeInfo.AllDescendants.Where(static t => t.IsEntity)) {
895895
descendant.AffectedIndexes.Add(primaryIndex);
896-
foreach (var indexInfo in typeInfo.Indexes.Find(IndexAttributes.Primary, MatchType.None).ToChainedBuffer()) {
896+
foreach (var indexInfo in typeInfo.Indexes.Find(IndexAttributes.Primary, MatchType.None).ToList()) {
897897
var descendantIndex = descendant.Indexes.Where(i => i.DeclaringIndex == indexInfo.DeclaringIndex).FirstOrDefault();
898898
if (descendantIndex != null) {
899899
foreach (var pair in descendantIndex.KeyColumns) {

Orm/Xtensive.Orm/Orm/Providers/CommandProcessing/BatchingCommandProcessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ void ISqlTaskProcessor.ProcessTask(SqlPersistTask task, CommandProcessorContext
3535
context.CurrentTask = null;
3636
return;
3737
}
38-
var sequence = Factory.CreatePersistParts(task, GetParameterPrefix(context)).ToChainedBuffer();
38+
var sequence = Factory.CreatePersistParts(task, GetParameterPrefix(context)).ToList();
3939
if (PendCommandParts(context.ActiveCommand, sequence)) {
4040
// higly recommended to no tear apart persist actions if they are batchable
4141
return;
@@ -348,4 +348,4 @@ public BatchingCommandProcessor(CommandFactory factory, int batchSize, int maxQu
348348
this.tasks = new Queue<SqlTask>(batchSize);
349349
}
350350
}
351-
}
351+
}

Orm/Xtensive.Orm/Orm/StorageNodeManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public bool RemoveNode([NotNull] string nodeId, bool clearQueryCache = false)
6969
}
7070

7171
var queryCache = (Caching.FastConcurrentLruCache<object, Pair<object, Linq.ParameterizedQuery>>) handlers.Domain.QueryCache;
72-
foreach (var key in queryCache.Keys.Where(k => k is Pair<object, string> pair && pair.Second == nodeId).ToChainedBuffer()) {
72+
foreach (var key in queryCache.Keys.Where(k => k is Pair<object, string> pair && pair.Second == nodeId).ToList()) {
7373
queryCache.RemoveKey(key);
7474
}
7575
}
@@ -96,4 +96,4 @@ internal StorageNodeManager(HandlerAccessor handlers)
9696
this.handlers = handlers;
9797
}
9898
}
99-
}
99+
}

Orm/Xtensive.Orm/Orm/Upgrade/Internals/SqlWorker.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ private static void DropSchema(UpgradeServiceAccessor services, ISqlExecutor exe
104104
{
105105
var driver = services.StorageDriver;
106106
var extractionResult = ExtractSchema(services, executor);
107-
var schemas = extractionResult.Catalogs.SelectMany(c => c.Schemas).ToChainedBuffer();
108-
var tables = schemas.SelectMany(s => s.Tables).ToChainedBuffer();
107+
var schemas = extractionResult.Catalogs.SelectMany(c => c.Schemas).ToList();
108+
var tables = schemas.SelectMany(s => s.Tables).ToList();
109109
var sequences = schemas.SelectMany(s => s.Sequences);
110110

111111
DropForeignKeys(driver, tables, executor);
@@ -116,7 +116,7 @@ private static void DropSchema(UpgradeServiceAccessor services, ISqlExecutor exe
116116
private static void DropSequences(StorageDriver driver, IEnumerable<Sequence> sequences, ISqlExecutor executor)
117117
{
118118
var statements = BreakEvery(sequences
119-
.Select(s => driver.Compile(SqlDdl.Drop(s)).GetCommandText()), 25).ToChainedBuffer();
119+
.Select(s => driver.Compile(SqlDdl.Drop(s)).GetCommandText()), 25).ToList();
120120
executor.ExecuteMany(statements);
121121
}
122122

Orm/Xtensive.Orm/Orm/Upgrade/Internals/UpgradeHintsProcessor.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ private void ProcessTypeChanges()
7777

7878
private void ProcessFieldChanges()
7979
{
80-
var renameFieldHints = hints.GetItems<RenameFieldHint>().ToChainedBuffer();
81-
var changeFieldTypeHints = hints.GetItems<ChangeFieldTypeHint>().ToChainedBuffer();
80+
var renameFieldHints = hints.GetItems<RenameFieldHint>().ToList();
81+
var changeFieldTypeHints = hints.GetItems<ChangeFieldTypeHint>().ToList();
8282
BuildFieldMapping(renameFieldHints, changeFieldTypeHints);
8383
}
8484

@@ -89,7 +89,7 @@ private void ProcessConnectorTypes()
8989

9090
private void ProcessFieldMovements()
9191
{
92-
var moveFieldHints = hints.GetItems<MoveFieldHint>().ToChainedBuffer();
92+
var moveFieldHints = hints.GetItems<MoveFieldHint>().ToList();
9393
hints.AddRange(RewriteMoveFieldHints(moveFieldHints));
9494
hints.AddRange(GenerateTypeIdFieldRemoveHintsForConcreteTable());
9595
}
@@ -269,7 +269,7 @@ private void BuildFieldMapping(ICollection<RenameFieldHint> renameFieldHints, IC
269269
}
270270

271271
// Will be modified, so we need to copy sequence into independant collection
272-
foreach (var pair in fieldMapping.ToChainedBuffer()) {
272+
foreach (var pair in fieldMapping.ToList()) {
273273
MapNestedFields(pair.Key, pair.Value);
274274
}
275275
}
@@ -643,4 +643,4 @@ public UpgradeHintsProcessor(
643643
suspiciousTypes = new HashSet<StoredTypeInfo>();
644644
}
645645
}
646-
}
646+
}

global.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"sdk": {
3-
"allowPrerelease": true,
4-
"version": "7.0.302",
3+
"allowPrerelease": false,
4+
"version": "8.0.302",
55
"rollForward": "latestMajor"
66
}
77
}

0 commit comments

Comments
 (0)