Beispiel #1
0
 private ColumnMetadata(IColumnSerializerMetadata serializerMetadata,
                        VarLenColumnElement configElement, int columnID, int nullIndex)
     : this(serializerMetadata, columnID, nullIndex)
 {
     MaxSize = configElement.MaxSize ?? (configElement.AvgSize ?? MetadataConstants.DEFAULT_STRING_MAX_SIZE);
     AvgSize = GetStringAvgSize(configElement.AvgSize ?? (configElement.MaxSize ?? MetadataConstants.DEFAULT_SYMBOL_AVG_SIZE));
 }
Beispiel #2
0
 private ColumnMetadata(IColumnSerializerMetadata serializerMetadata,
                        int avgSize, int maxSize, int columnID, int nullIndex)
     : this(serializerMetadata, columnID, nullIndex)
 {
     AvgSize = avgSize;
     MaxSize = maxSize;
 }
 public Func <T, TRes> ColumnReader <T, TRes>(IColumnSerializerMetadata column)
 {
     if (typeof(T) != typeof(Record))
     {
         throw new NFSdbInvalidReadException("Record serializer is used on object of type " + typeof(T));
     }
     return((Func <T, TRes>)((object)(new Func <Record, TRes>(RecordColumnReader <TRes>(column)))));
 }
Beispiel #4
0
 public static ColumnMetadata FromFixedField(IColumnSerializerMetadata serializerMetadata,
                                             int fieldID, int nullIndex)
 {
     return(new ColumnMetadata(serializerMetadata,
                               serializerMetadata.ColumnType.GetSize(),
                               serializerMetadata.ColumnType.GetSize(),
                               fieldID, nullIndex));
 }
Beispiel #5
0
 private ColumnMetadata(IColumnSerializerMetadata serializerMetadata,
                        SymbolElement symbolConfig, int columnID, int nullIndex)
     : this(serializerMetadata, (VarLenColumnElement)symbolConfig, columnID, nullIndex)
 {
     HintDistinctCount = symbolConfig.HintDistinctCount;
     Indexed           = symbolConfig.Indexed;
     SameAs            = symbolConfig.SameAs;
 }
Beispiel #6
0
 private ColumnMetadata(IColumnSerializerMetadata serializerMetadata,
                        int columnID, int nullIndex)
 {
     SerializerMetadata = serializerMetadata;
     ColumnID           = columnID;
     Nullable           = serializerMetadata.Nullable;
     NullIndex          = nullIndex;
     DataType           = JournalColumnRegistry.Instance.GetSerializer(serializerMetadata.ColumnType);
 }
Beispiel #7
0
        public void Should_Calculate_Nullable_Count()
        {
            var ojbType = new
            {
                Str   = "string",
                Bl    = (bool?)true,
                Bt    = (byte?)3,
                Bt2   = (byte)3,
                Int   = (int?)33,
                Lng   = (long?)430L,
                Dbl   = (double?)34.56,
                Dbl2  = 34.56,
                Int16 = (Int16?)987
            };

            PocoSerializerFactory     fact   = CreatePocoSerializerFactory();
            IColumnSerializerMetadata bitset = fact.Initialize(ojbType.GetType()).Single(c => c.ColumnType == EFieldType.BitSet);

            Assert.That(bitset.Size, Is.EqualTo(7));
        }
Beispiel #8
0
        public static ColumnMetadata FromColumnElement(IColumnSerializerMetadata metadata,
                                                       VarLenColumnElement colElement, int fieldID, int nullIndex)
        {
            switch (colElement.ColumnType)
            {
            case EFieldType.String:
                return(new ColumnMetadata(metadata, colElement, fieldID, nullIndex));

            case EFieldType.Symbol:
                metadata.ColumnType = EFieldType.Symbol;
                return(new ColumnMetadata(metadata, (SymbolElement)colElement, fieldID, nullIndex));

            case EFieldType.Binary:
                return(new ColumnMetadata(metadata, colElement, fieldID, nullIndex));

            default:
                throw new ArgumentOutOfRangeException("colElement",
                                                      "ColumnType.ColumnType expected to be Symbol or String but was " +
                                                      colElement.ColumnType);
            }
        }
Beispiel #9
0
        public Func <T, TRes> ColumnReader <T, TRes>(IColumnSerializerMetadata column)
        {
            var classCol = (IClassColumnSerializerMetadata)column;

            return(ReflectionHelper.CreateFieldsAccessDelegate <T, TRes>(classCol.FieldName));
        }
        public Func <Record, TRes> RecordColumnReader <TRes>(IColumnSerializerMetadata column)
        {
            var columnId = ((RecordSerializerMetadata)column).ColumnId;

            return(rec => rec.RecordSet.Get <TRes>(rec.RowId, columnId));
        }
Beispiel #11
0
 public static ColumnMetadata FromBitsetField(IColumnSerializerMetadata serializerMetadata,
                                              int fieldCount, int fieldID)
 {
     return(new ColumnMetadata(serializerMetadata, fieldCount, fieldCount, fieldID, -1));
 }
Beispiel #12
0
 public static ColumnMetadata FromBinaryField(IColumnSerializerMetadata serializerMetadata,
                                              int avgSize, int maxSize, int fieldID, int nullIndex)
 {
     return(new ColumnMetadata(serializerMetadata, GetBinaryAvgSize(avgSize), maxSize, fieldID, nullIndex));
 }
 private static FieldInfo GetIssetFieldInfo(Type issetType, IColumnSerializerMetadata field)
 {
     return(issetType.GetField(field.GetFileName(), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic));
 }