public QueryPlanIndexItem( string[] hashProps, Type[] hashPropTypes, EventPropertyValueGetter hashGetter, MultiKeyFromObjectArray transformFireAndForget, DataInputOutputSerde hashKeySerde, string[] rangeProps, Type[] rangePropTypes, EventPropertyValueGetter[] rangeGetters, DataInputOutputSerde[] rangeKeySerdes, bool unique, EventAdvancedIndexProvisionRuntime advancedIndexProvisionDesc) { HashProps = hashProps; HashPropTypes = hashPropTypes; HashGetter = hashGetter; HashKeySerde = hashKeySerde; RangeProps = rangeProps == null || rangeProps.Length == 0 ? null : rangeProps; RangePropTypes = rangePropTypes; RangeGetters = rangeGetters; RangeKeySerdes = rangeKeySerdes; TransformFireAndForget = transformFireAndForget; IsUnique = unique; AdvancedIndexProvisionDesc = advancedIndexProvisionDesc; }
public EventTableFactory CreateComposite( int indexedStreamNum, EventType eventType, string[] indexProps, Type[] indexCoercionTypes, EventPropertyValueGetter indexGetter, MultiKeyFromObjectArray transformFireAndForget, DataInputOutputSerde keySerde, string[] rangeProps, Type[] rangeCoercionTypes, EventPropertyValueGetter[] rangeGetters, DataInputOutputSerde[] rangeSerdes, DataInputOutputSerde optionalValueSerde, bool isFireAndForget) { return new PropertyCompositeEventTableFactory( indexedStreamNum, indexProps, indexCoercionTypes, indexGetter, transformFireAndForget, rangeProps, rangeCoercionTypes, rangeGetters); }
public static CompositeIndexLookup Make( object[] keyValues, MultiKeyFromObjectArray multiKeyTransform, RangeIndexLookupValue[] rangeValues, Type[] rangeCoercion) { // construct chain IList<CompositeIndexLookup> queries = new List<CompositeIndexLookup>(); if (keyValues != null && keyValues.Length > 0) { queries.Add(new CompositeIndexLookupKeyed(keyValues, multiKeyTransform)); } for (int i = 0; i < rangeValues.Length; i++) { queries.Add(new CompositeIndexLookupRange(rangeValues[i], rangeCoercion[i])); } // Hook up as chain for remove CompositeIndexLookup last = null; foreach (CompositeIndexLookup action in queries) { if (last != null) { last.Next = action; } last = action; } return queries[0]; }
public PropertyHashedEventTableFactory( int streamNum, string[] propertyNames, bool unique, string optionalIndexName, EventPropertyValueGetter propertyGetter, MultiKeyFromObjectArray multiKeyTransform) { StreamNum = streamNum; PropertyNames = propertyNames; Unique = unique; OptionalIndexName = optionalIndexName; PropertyGetter = propertyGetter; MultiKeyTransform = multiKeyTransform; if (propertyGetter == null) { throw new ArgumentException("Property-getter is null"); } }
public PropertyHashedFactoryFactory( int indexedStreamNum, int? subqueryNum, bool isFireAndForget, String[] indexProps, Type[] indexTypes, bool unique, EventPropertyValueGetter valueGetter, MultiKeyFromObjectArray transformFireAndForget, DataInputOutputSerde keySerde) : base(indexedStreamNum, subqueryNum, isFireAndForget) { this.indexProps = indexProps; this.indexTypes = indexTypes; this.unique = unique; this.valueGetter = valueGetter; this.transformFireAndForget = transformFireAndForget; this.keySerde = keySerde; }
public PropertyCompositeEventTableFactory( int streamNum, string[] optionalKeyedProps, Type[] optKeyCoercedTypes, EventPropertyValueGetter hashGetter, MultiKeyFromObjectArray transformFireAndForget, string[] rangeProps, Type[] optRangeCoercedTypes, EventPropertyValueGetter[] rangeGetters) { this.StreamNum = streamNum; this.OptionalKeyedProps = optionalKeyedProps; this.OptKeyCoercedTypes = optKeyCoercedTypes; this.HashGetter = hashGetter; this.TransformFireAndForget = transformFireAndForget; this.RangeProps = rangeProps; this.OptRangeCoercedTypes = optRangeCoercedTypes; this.RangeGetters = rangeGetters; // construct chain IList<CompositeIndexEnterRemove> enterRemoves = new List<CompositeIndexEnterRemove>(); if (optionalKeyedProps != null && optionalKeyedProps.Length > 0) { enterRemoves.Add(new CompositeIndexEnterRemoveKeyed(hashGetter)); } foreach (var rangeGetter in rangeGetters) { enterRemoves.Add(new CompositeIndexEnterRemoveRange(rangeGetter)); } // Hook up as chain for remove CompositeIndexEnterRemove last = null; foreach (var action in enterRemoves) { if (last != null) { last.Next = action; } last = action; } Chain = enterRemoves[0]; }
public EventTableFactory CreateHashedOnly( int indexedStreamNum, EventType eventType, string[] indexProps, Type[] indexTypes, MultiKeyFromObjectArray transformFireAndForget, DataInputOutputSerde keySerde, bool unique, string optionalIndexName, EventPropertyValueGetter getter, DataInputOutputSerde optionalValueSerde, bool isFireAndForget, EventTableFactoryFactoryContext eventTableFactoryContext) { return new PropertyHashedEventTableFactory( indexedStreamNum, indexProps, unique, optionalIndexName, getter, transformFireAndForget); }
public CompositeIndexLookupKeyed(object[] keys, MultiKeyFromObjectArray multiKeyTransform) { this._keys = keys; this._multiKeyTransform = multiKeyTransform; }