Exemplo n.º 1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldRemoveIndexStatisticsAfterIndexIsDeleted() throws org.neo4j.internal.kernel.api.exceptions.KernelException
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldRemoveIndexStatisticsAfterIndexIsDeleted()
        {
            // given
            _indexOnlineMonitor.initialize(0);
            CreateSomePersons();
            IndexReference index = CreatePersonNameIndex();

            AwaitIndexesOnline();

            SchemaStorage storage = new SchemaStorage(NeoStores().SchemaStore);
            long          indexId = storage.IndexGetForSchema(( IndexDescriptor )index).Id;

            // when
            DropIndex(index);

            // then
            try
            {
                IndexSelectivity(index);
                fail("Expected IndexNotFoundKernelException to be thrown");
            }
            catch (IndexNotFoundKernelException)
            {
                Register_DoubleLongRegister actual = Tracker.indexSample(indexId, Registers.newDoubleLongRegister());
                AssertDoubleLongEquals(0L, 0L, actual);
            }

            // and then index size and index updates are zero on disk
            Register_DoubleLongRegister actual = Tracker.indexUpdatesAndSize(indexId, Registers.newDoubleLongRegister());

            AssertDoubleLongEquals(0L, 0L, actual);
        }
Exemplo n.º 2
0
 public override void Accept(CountsVisitor visitor)
 {
     foreach (KeyValuePair <CountsKey, Register_DoubleLongRegister> entry in _counts.SetOfKeyValuePairs())
     {
         Register_DoubleLongRegister register = entry.Value;
         entry.Key.accept(visitor, register.ReadFirst(), register.ReadSecond());
     }
 }
Exemplo n.º 3
0
 public virtual IList <Difference> Differences()
 {
     foreach (KeyValuePair <CountsKey, Register_DoubleLongRegister> entry in Counts.SetOfKeyValuePairs())
     {
         Register_DoubleLongRegister value = entry.Value;
         DifferencesConflict.Add(new Difference(entry.Key, value.ReadFirst(), value.ReadSecond(), 0, 0));
     }
     Counts.Clear();
     return(DifferencesConflict);
 }
Exemplo n.º 4
0
            internal virtual void Verify(CountsKey key, long actualFirst, long actualSecond)
            {
                Register_DoubleLongRegister expected = Counts.Remove(key);

                if (expected == null)
                {
                    if (actualFirst != 0 || actualSecond != 0)
                    {
                        DifferencesConflict.Add(new Difference(key, 0, 0, actualFirst, actualSecond));
                    }
                }
                else
                {
                    long expectedFirst  = expected.ReadFirst();
                    long expectedSecond = expected.ReadSecond();
                    if (expectedFirst != actualFirst || expectedSecond != actualSecond)
                    {
                        DifferencesConflict.Add(new Difference(key, expectedFirst, expectedSecond, actualFirst, actualSecond));
                    }
                }
            }
Exemplo n.º 5
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: private static void checkIndexCounts(Store store, org.neo4j.kernel.internal.GraphDatabaseAPI db) throws org.neo4j.internal.kernel.api.exceptions.KernelException
        private static void CheckIndexCounts(Store store, GraphDatabaseAPI db)
        {
            InwardKernel kernel = Db.DependencyResolver.resolveDependency(typeof(InwardKernel));

            using (KernelTransaction tx = kernel.BeginTransaction(@implicit, AnonymousContext.read()), Statement ignore = tx.AcquireStatement())
            {
                SchemaRead schemaRead = tx.SchemaRead();
                IEnumerator <IndexReference> indexes  = IndexReference.sortByType(GetAllIndexes(schemaRead));
                Register_DoubleLongRegister  register = Registers.newDoubleLongRegister();
                for (int i = 0; indexes.MoveNext(); i++)
                {
                    IndexReference reference = indexes.Current;

                    // wait index to be online since sometimes we need to rebuild the indexes on migration
                    AwaitOnline(schemaRead, reference);

                    AssertDoubleLongEquals(store.IndexCounts[i][0], store.IndexCounts[i][1], schemaRead.IndexUpdatesAndSize(reference, register));
                    AssertDoubleLongEquals(store.IndexCounts[i][2], store.IndexCounts[i][3], schemaRead.IndexSample(reference, register));
                    double selectivity = schemaRead.IndexUniqueValuesSelectivity(reference);
                    assertEquals(store.IndexSelectivity[i], selectivity, 0.0000001d);
                }
            }
        }
Exemplo n.º 6
0
        private static void AssertDoubleLongEquals(long expectedFirst, long expectedSecond, Register_DoubleLongRegister register)
        {
            long   first  = register.ReadFirst();
            long   second = register.ReadSecond();
            string msg    = string.Format("Expected ({0:D},{1:D}), got ({2:D},{3:D})", expectedFirst, expectedSecond, first, second);

            assertEquals(msg, expectedFirst, first);
            assertEquals(msg, expectedSecond, second);
        }
Exemplo n.º 7
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public org.neo4j.register.Register_DoubleLongRegister indexSample(org.neo4j.internal.kernel.api.schema.SchemaDescriptor descriptor, org.neo4j.register.Register_DoubleLongRegister target) throws org.neo4j.internal.kernel.api.exceptions.schema.IndexNotFoundKernelException
        public override Register_DoubleLongRegister IndexSample(SchemaDescriptor descriptor, Register_DoubleLongRegister target)
        {
            return(_counts.indexSample(TryGetIndexId(descriptor), target));
        }
Exemplo n.º 8
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public long indexSize(org.neo4j.internal.kernel.api.schema.SchemaDescriptor descriptor) throws org.neo4j.internal.kernel.api.exceptions.schema.IndexNotFoundKernelException
        public override long IndexSize(SchemaDescriptor descriptor)
        {
            Register_DoubleLongRegister result = _indexService.indexUpdatesAndSize(descriptor);

            return(result.ReadSecond());
        }
Exemplo n.º 9
0
 public override Register_DoubleLongRegister IndexSample(long indexId, Register_DoubleLongRegister output)
 {
     return(_counts.indexSample(indexId, output));
 }
Exemplo n.º 10
0
 public override Register_DoubleLongRegister IndexUpdatesAndSize(long indexId, Register_DoubleLongRegister output)
 {
     return(_counts.indexUpdatesAndSize(indexId, output));
 }
Exemplo n.º 11
0
 private void AssertDoubleLongEquals(long expectedUniqueValue, long expectedSampledSize, Register_DoubleLongRegister register)
 {
     assertEquals(expectedUniqueValue, register.ReadFirst());
     assertEquals(expectedSampledSize, register.ReadSecond());
 }
Exemplo n.º 12
0
 public override Register_DoubleLongRegister IndexUpdatesAndSize(long indexId, Register_DoubleLongRegister target)
 {
     Counts(indexStatisticsKey(indexId)).copyTo(target);
     return(target);
 }
Exemplo n.º 13
0
 public override Register_DoubleLongRegister IndexSample(long indexId, Register_DoubleLongRegister target)
 {
     Counts(indexSampleKey(indexId)).copyTo(target);
     return(target);
 }
Exemplo n.º 14
0
 public override Register_DoubleLongRegister RelationshipCount(int startLabelId, int typeId, int endLabelId, Register_DoubleLongRegister target)
 {
     Counts(relationshipKey(startLabelId, typeId, endLabelId)).copyTo(target);
     return(target);
 }
Exemplo n.º 15
0
 public override Register_DoubleLongRegister NodeCount(int labelId, Register_DoubleLongRegister target)
 {
     Counts(nodeKey(labelId)).copyTo(target);
     return(target);
 }
Exemplo n.º 16
0
 public override Register_DoubleLongRegister IndexSample(long indexId, Register_DoubleLongRegister output)
 {
     return(output);
 }