Exemple #1
0
        public void Invalid_hash_calculation_on_null()
        {
            using (var bufferPool = new UnmanagedBuffersPoolWithLowMemoryHandling("RavenDB_9535"))
                using (var bsc = new ByteStringContext(SharedMultipleUseFlag.None))
                {
                    var sut = new ReduceKeyProcessor(1, bufferPool);

                    try
                    {
                        sut.Reset();
                        sut.Process(bsc, null);
                        Assert.Equal((ulong)0, sut.Hash);

                        sut.Reset();
                        sut.Process(bsc, 1);
                        Assert.NotEqual((ulong)0, sut.Hash);

                        sut.Reset();
                        sut.Process(bsc, null);
                        Assert.Equal((ulong)0, sut.Hash);
                    }
                    finally
                    {
                        sut.ReleaseBuffer();
                    }
                }
        }
Exemple #2
0
 public Enumerator(IEnumerator enumerator, AnonymousObjectToBlittableMapResultsEnumerableWrapper parent, IndexingStatsScope createBlittableResult)
 {
     _enumerator            = enumerator;
     _parent                = parent;
     _createBlittableResult = createBlittableResult;
     _groupByFields         = _parent._groupByFields;
     _reduceKeyProcessor    = _parent._reduceKeyProcessor;
 }
Exemple #3
0
 public AnonymousObjectToBlittableMapResultsEnumerableWrapper(MapReduceIndex index, TransactionOperationContext indexContext)
 {
     _indexContext       = indexContext;
     _groupByFields      = index.Definition.GroupByFields;
     _isMultiMap         = index.IsMultiMap;
     _reduceKeyProcessor = new ReduceKeyProcessor(index.Definition.GroupByFields.Count, index._unmanagedBuffersPool);
     _compiledIndex      = index._compiled;
 }
 public GroupBykeyComparer(JavaScriptReduceOperation parent, UnmanagedBuffersPoolWithLowMemoryHandling buffersPool, ByteStringContext allocator)
 {
     _parent    = parent;
     _allocator = allocator;
     _xKey      = new ReduceKeyProcessor(_parent._groupByFields.Count(), buffersPool);
     _yKey      = new ReduceKeyProcessor(_parent._groupByFields.Count(), buffersPool);
     _xKey.SetMode(ReduceKeyProcessor.Mode.MultipleValues);
     _yKey.SetMode(ReduceKeyProcessor.Mode.MultipleValues);
     _lastUsedBlittable = null;
     _lastUsedBucket    = null;
 }
Exemple #5
0
        public void Can_handle_values_of_different_types()
        {
            using (var bufferPool = new UnmanagedBuffersPoolWithLowMemoryHandling("ReduceKeyProcessorTests"))
                using (var context = JsonOperationContext.ShortTermSingleUse())
                    using (var bsc = new ByteStringContext(SharedMultipleUseFlag.None))
                    {
                        var sut = new ReduceKeyProcessor(9, bufferPool);

                        sut.Reset();

                        sut.Process(bsc, 1);
                        sut.Process(bsc, (long)1);
                        sut.Process(bsc, 1.0);
                        sut.Process(bsc, (decimal)1.0);
                        sut.Process(bsc, "abc");
                        using (var lazyStringValue = context.GetLazyString("abc"))
                        {
                            sut.Process(bsc, lazyStringValue);
                        }
                        sut.Process(bsc, context.ReadObject(new DynamicJsonValue()
                        {
                            ["Name"] = "Arek",
                            ["Age"]  = null
                        }, "foo"));

                        sut.Process(bsc, new DynamicJsonArray()
                        {
                            1,
                            2,
                            null,
                            3
                        });

                        sut.Process(bsc, SystemTime.UtcNow);

                        Assert.NotEqual((ulong)0, sut.Hash);
                        sut.ReleaseBuffer();
                    }
        }
        protected override void OnInitialization()
        {
            base.OnInitialization();

            _reduceKeyProcessor = new ReduceKeyProcessor(Definition.GroupByFields.Count, _unmanagedBuffersPool);
        }