public override void Defrag(ClassMetadata classMetadata, ClassAspect aspect, LatinStringIO sio, DefragmentContextImpl context) { base.Defrag(classMetadata, aspect, sio, context); if (!(aspect is FieldMetadata)) { return; } var field = (FieldMetadata)aspect; if (field.IsVirtual()) { return; } if (field.HasIndex()) { var index = field.GetIndex(context.SystemTrans()); var targetIndexID = context.CopyID(); if (targetIndexID != 0) { index.DefragBTree(context.Services()); } } else { context.WriteInt(0); } }
public static ObjectHeader Defrag(DefragmentContextImpl context) { var source = context.SourceBuffer(); var target = context.TargetBuffer(); var header = new ObjectHeader (context.Services().SystemTrans().Container(), null, source); var newID = context.Mapping().StrictMappedID(header.ClassMetadata().GetID()); var slotFormat = header.SlotFormat(); slotFormat.WriteObjectClassID(target, newID); slotFormat.SkipMarshallerInfo(target); slotFormat.ReadHeaderAttributes(target); return header; }
public static ObjectHeader Defrag(DefragmentContextImpl context) { var source = context.SourceBuffer(); var target = context.TargetBuffer(); var header = new ObjectHeader (context.Services().SystemTrans().Container(), null, source); var newID = context.Mapping().StrictMappedID(header.ClassMetadata().GetID()); var slotFormat = header.SlotFormat(); slotFormat.WriteObjectClassID(target, newID); slotFormat.SkipMarshallerInfo(target); slotFormat.ReadHeaderAttributes(target); return(header); }
public override void Defrag(ClassMetadata classMetadata, ClassAspect aspect, LatinStringIO sio, DefragmentContextImpl context) { base.Defrag(classMetadata, aspect, sio, context); if (!(aspect is FieldMetadata)) { return; } var field = (FieldMetadata) aspect; if (field.IsVirtual()) { return; } if (field.HasIndex()) { var index = field.GetIndex(context.SystemTrans()); var targetIndexID = context.CopyID(); if (targetIndexID != 0) { index.DefragBTree(context.Services()); } } else { context.WriteInt(0); } }