Exemplo n.º 1
0
 protected override void Process(FieldMetadata field)
 {
     if (!field.IsVirtual() && field.HasIndex())
     {
         this._enclosing.ProcessBTree(context, field.GetIndex(context.SystemTrans()));
     }
 }
Exemplo n.º 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);
            }
        }
Exemplo n.º 3
0
        private static bool CanFollowParent(QCon con)
        {
            QCon          parent      = con.Parent();
            FieldMetadata parentField = GetYapField(parent);

            if (null == parentField)
            {
                return(false);
            }
            FieldMetadata conField = GetYapField(con);

            if (null == conField)
            {
                return(false);
            }
            return(parentField.HasIndex() && parentField.FieldType().IsAssignableFrom(conField
                                                                                      .ContainingClass()));
        }