Skip to content

Commit 698e178

Browse files
committed
No RecreateTableHint usage
1 parent 9b13eae commit 698e178

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

Orm/Xtensive.Orm/Modelling/Comparison/Comparer.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,10 +228,6 @@ protected virtual MovementInfo BuildMovementInfo(Node source, Node target)
228228
return movementInfo;
229229
}
230230

231-
var recreateHint = Hints.GetHint<RecreateTableHint>(source);
232-
if (recreateHint != null) {
233-
movementInfo |= MovementInfo.Removed | MovementInfo.Created;// recreated;
234-
}
235231
var sc = StringComparer.OrdinalIgnoreCase;
236232

237233
// both source!=null && target!=null

Orm/Xtensive.Orm/Orm/Upgrade/Internals/HintGenerator.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -218,21 +218,21 @@ private void GenerateCopyColumnHint(CopyFieldHint hint)
218218
}
219219
}
220220

221-
private void GenerateRecreateHints(ICollection<StoredTypeInfo> removedTypes)
221+
private void GenerateRecreateHints(IList<StoredTypeInfo> removedTypes)
222222
{
223223
var capacity = currentModel.Types.Length - typeMapping.Count;
224224
var newTypes = new Dictionary<string, StoredTypeInfo>(capacity, StringComparer.Ordinal);
225225
currentNonConnectorTypes
226226
.Where(t => !reverseTypeMapping.ContainsKey(t))
227227
.ForEach(t => newTypes.Add($"{t.MappingDatabase}.{t.MappingSchema}.{t.MappingName}", t));
228228

229-
foreach (var rType in removedTypes) {
229+
for (var i = removedTypes.Count - 1; i >= 0; i--) {
230+
var rType = removedTypes[i];
230231
var rTypeIdentifier = $"{rType.MappingDatabase}.{rType.MappingSchema}.{rType.MappingName}";
231-
if (!suspiciousTypes.Contains(rType)
232-
|| !newTypes.TryGetValue(rTypeIdentifier, out var conflictedNewType)) {
233-
continue;
232+
if (suspiciousTypes.Contains(rType) && newTypes.ContainsKey(rTypeIdentifier)) {
233+
schemaHints.Add(new DeleteDataHint(GetTablePath(rType), Array.Empty<IdentityPair>(), true));
234+
_ = removedTypes.Remove(rType);
234235
}
235-
schemaHints.Add(new RecreateTableHint(GetTablePath(rType)));
236236
}
237237
}
238238

0 commit comments

Comments
 (0)