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; }
public bool IsValid(byte[] record, RecordMetaData metaData) { return !constraint.IsValid(record, metaData); }