Exemple #1
0
 protected override void Process(FieldMetadata field)
 {
     if (!field.IsVirtual() && field.HasIndex())
     {
         this._enclosing.ProcessBTree(context, field.GetIndex(context.SystemTrans()));
     }
 }
Exemple #2
0
        public override void Defrag(ClassMetadata classMetadata, ClassAspect aspect, LatinStringIO
                                    sio, DefragmentContextImpl context)
        {
            base.Defrag(classMetadata, aspect, sio, context);
            if (!(aspect is FieldMetadata))
            {
                return;
            }
            FieldMetadata field = (FieldMetadata)aspect;

            if (field.IsVirtual())
            {
                return;
            }
            if (field.HasIndex())
            {
                BTree index         = field.GetIndex(context.SystemTrans());
                int   targetIndexID = context.CopyID();
                if (targetIndexID != 0)
                {
                    index.DefragBTree(context.Services());
                }
            }
            else
            {
                context.WriteInt(0);
            }
        }
        public void TestIndexingLowLevel()
        {
            LocalObjectContainer container     = Fixture().FileSession();
            ClassMetadata        classMetadata = container.ClassMetadataForReflectClass(container.Reflector().ForClass(typeof(Item)));
            FieldMetadata        fieldMetadata = classMetadata.FieldMetadataForName("_asByte");

            Assert.IsTrue(fieldMetadata.CanLoadByIndex(), "EnumTypeHandler should be indexable.");
            BTree index = fieldMetadata.GetIndex(container.SystemTransaction());

            Assert.IsNotNull(index, "No btree index found for enum field.");
        }
        public void TestIndexingLowLevel()
        {
            LocalObjectContainer container     = Fixture().FileSession();
            ClassMetadata        classMetadata = container.ClassMetadataForReflectClass(container.Reflector().ForClass(typeof(ValueTypeHolder)));
            FieldMetadata        fieldMetadata = classMetadata.FieldMetadataForName("Value");

            Assert.IsTrue(fieldMetadata.CanLoadByIndex(), WithTypeName("Typehandler for type {0} should be indexable."));
            BTree index = fieldMetadata.GetIndex(container.SystemTransaction());

            Assert.IsNotNull(index, WithTypeName("No btree index found for field of type {0} ."));
        }
Exemple #5
0
        public override void Write(Transaction trans, ClassMetadata clazz, ClassAspect aspect
                                   , ByteArrayBuffer writer)
        {
            base.Write(trans, clazz, aspect, writer);
            if (!(aspect is FieldMetadata))
            {
                return;
            }
            FieldMetadata field = (FieldMetadata)aspect;

            if (!HasBTreeIndex(field))
            {
                return;
            }
            writer.WriteIDOf(trans, field.GetIndex(trans));
        }