LCOV - code coverage report
Current view: top level - pebble/sstable - reader_common.go (source / functions) Hit Total Coverage
Test: 2025-01-07 08:17Z 28edac9f - tests + meta.lcov Lines: 3 3 100.0 %
Date: 2025-01-07 08:18:18 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright 2024 The LevelDB-Go and Pebble Authors. All rights reserved. Use
       2             : // of this source code is governed by a BSD-style license that can be found in
       3             : // the LICENSE file.
       4             : 
       5             : package sstable
       6             : 
       7             : import (
       8             :         "context"
       9             :         "math"
      10             : 
      11             :         "github.com/cockroachdb/pebble/internal/base"
      12             :         "github.com/cockroachdb/pebble/internal/keyspan"
      13             :         "github.com/cockroachdb/pebble/sstable/block"
      14             :         "github.com/cockroachdb/pebble/sstable/valblk"
      15             : )
      16             : 
      17             : // CommonReader abstracts functionality over a Reader or a VirtualReader. This
      18             : // can be used by code which doesn't care to distinguish between a reader and a
      19             : // virtual reader.
      20             : type CommonReader interface {
      21             :         NewRawRangeKeyIter(
      22             :                 ctx context.Context, transforms FragmentIterTransforms,
      23             :         ) (keyspan.FragmentIterator, error)
      24             : 
      25             :         NewRawRangeDelIter(
      26             :                 ctx context.Context, transforms FragmentIterTransforms,
      27             :         ) (keyspan.FragmentIterator, error)
      28             : 
      29             :         NewPointIter(
      30             :                 ctx context.Context,
      31             :                 transforms IterTransforms,
      32             :                 lower, upper []byte,
      33             :                 filterer *BlockPropertiesFilterer,
      34             :                 filterBlockSizeLimit FilterBlockSizeLimit,
      35             :                 stats *base.InternalIteratorStats,
      36             :                 statsAccum IterStatsAccumulator,
      37             :                 rp valblk.ReaderProvider,
      38             :         ) (Iterator, error)
      39             : 
      40             :         NewCompactionIter(
      41             :                 transforms IterTransforms,
      42             :                 statsAccum IterStatsAccumulator,
      43             :                 rp valblk.ReaderProvider,
      44             :                 bufferPool *block.BufferPool,
      45             :         ) (Iterator, error)
      46             : 
      47             :         EstimateDiskUsage(start, end []byte) (uint64, error)
      48             : 
      49             :         CommonProperties() *CommonProperties
      50             : }
      51             : 
      52             : // FilterBlockSizeLimit is a size limit for bloom filter blocks - if a bloom
      53             : // filter is present, it is used only when it is at most this size.
      54             : type FilterBlockSizeLimit uint32
      55             : 
      56             : const (
      57             :         // NeverUseFilterBlock indicates that bloom filter blocks should never be used.
      58             :         NeverUseFilterBlock FilterBlockSizeLimit = 0
      59             :         // AlwaysUseFilterBlock indicates that bloom filter blocks should always be
      60             :         // used, regardless of size.
      61             :         AlwaysUseFilterBlock FilterBlockSizeLimit = math.MaxUint32
      62             : )
      63             : 
      64             : type (
      65             :         // BufferPool re-exports block.BufferPool.
      66             :         BufferPool = block.BufferPool
      67             :         // IterTransforms re-exports block.IterTransforms.
      68             :         IterTransforms = block.IterTransforms
      69             :         // FragmentIterTransforms re-exports block.FragmentIterTransforms.
      70             :         FragmentIterTransforms = block.FragmentIterTransforms
      71             :         // SyntheticSeqNum re-exports block.SyntheticSeqNum.
      72             :         SyntheticSeqNum = block.SyntheticSeqNum
      73             :         // SyntheticSuffix re-exports block.SyntheticSuffix.
      74             :         SyntheticSuffix = block.SyntheticSuffix
      75             :         // SyntheticPrefix re-exports block.SyntheticPrefix.
      76             :         SyntheticPrefix = block.SyntheticPrefix
      77             :         // SyntheticPrefixAndSuffix re-exports block.SyntheticPrefixAndSuffix.
      78             :         SyntheticPrefixAndSuffix = block.SyntheticPrefixAndSuffix
      79             : )
      80             : 
      81             : // NoTransforms is the default value for IterTransforms.
      82             : var NoTransforms = block.NoTransforms
      83             : 
      84             : // NoFragmentTransforms is the default value for FragmentIterTransforms.
      85             : var NoFragmentTransforms = block.NoFragmentTransforms
      86             : 
      87             : // MakeSyntheticPrefixAndSuffix returns a SyntheticPrefixAndSuffix with the
      88             : // given prefix and suffix.
      89             : func MakeSyntheticPrefixAndSuffix(
      90             :         prefix SyntheticPrefix, suffix SyntheticSuffix,
      91           2 : ) SyntheticPrefixAndSuffix {
      92           2 :         return block.MakeSyntheticPrefixAndSuffix(prefix, suffix)
      93           2 : }
      94             : 
      95             : // NoSyntheticSeqNum is the default zero value for SyntheticSeqNum, which
      96             : // disables overriding the sequence number.
      97             : const NoSyntheticSeqNum = block.NoSyntheticSeqNum

Generated by: LCOV version 1.14