public UngroupedAverageProvider(string field, IRecordProvider provider) : base(provider)
 {
     this.field = field;
     if (!provider.MetaData.ColumnDescriptors.ContainsKey(field))
     {
         throw new MalformedQueryException($"Could not find field named {field}");
     }
     MetaData = new RecordMetaData();
     MetaData.AddField($"avg_of_{field}", ColumnType.Float);
 }
 public ComputedFieldProvider(string fieldName, ColumnType type,
     Func<RecordMetaData, byte[], dynamic> computation, IRecordProvider provider) : base(provider)
 {
     this.fieldName = fieldName;
     this.type = type;
     this.computation = computation;
     MetaData = new RecordMetaData();
     foreach (var columnDescriptor in provider.MetaData.ColumnDescriptors)
     {
         MetaData.ColumnDescriptors.Add(columnDescriptor.Key, columnDescriptor.Value);
     }
     MetaData.AddField(fieldName, type);
 }
 public bool IsValid(byte[] record, RecordMetaData metaData)
 {
     if (!metaData.ColumnDescriptors.ContainsKey(Property))
     {
         throw new MalformedQueryException($"No field named {Property} found.");
     }
     var offset = metaData.ColumnDescriptors[Property].Offset;
     var width = metaData.ColumnDescriptors[Property].Width;
     for (int i = 0; i < width; i++)
     {
         if (i == Value.Length) return record[offset + i] == 0;
         if (record[offset + i] != Value[i]) return false;
     }
     return true;
 }
Exemple #4
0
 public bool IsValid(byte[] record, RecordMetaData metaData)
 {
     return !constraint.IsValid(record, metaData);
 }