github.com/cockroachdb/pebble@v1.1.1-0.20240513155919-3622ade60459/testdata/iter_histories/skip_point (about)

     1  reset
     2  ----
     3  
     4  populate keylen=1 timestamps=(1, 10, 100)
     5  ----
     6  wrote 78 keys
     7  
     8  # With a filter [20,30) all keys should be hidden, in both forward and reverse
     9  # iteration directions.
    10  
    11  combined-iter point-key-filter=(20,30)
    12  first
    13  last
    14  seek-ge d
    15  seek-lt m
    16  ----
    17  .
    18  .
    19  .
    20  .
    21  
    22  # With a filter [1,2) only the keys @1 should be visible.
    23  # Test forward direction.
    24  
    25  combined-iter point-key-filter=(1,2)
    26  first
    27  next
    28  next
    29  next
    30  next
    31  next
    32  next
    33  next
    34  next
    35  next
    36  ----
    37  a@1: (a@1, .)
    38  b@1: (b@1, .)
    39  c@1: (c@1, .)
    40  d@1: (d@1, .)
    41  e@1: (e@1, .)
    42  f@1: (f@1, .)
    43  g@1: (g@1, .)
    44  h@1: (h@1, .)
    45  i@1: (i@1, .)
    46  j@1: (j@1, .)
    47  
    48  
    49  # With a filter [1,2) only the keys @1 should be visible.
    50  # And reverse direction.
    51  
    52  combined-iter point-key-filter=(1,2)
    53  last
    54  prev
    55  prev
    56  prev
    57  prev
    58  prev
    59  prev
    60  prev
    61  prev
    62  prev
    63  ----
    64  z@1: (z@1, .)
    65  y@1: (y@1, .)
    66  x@1: (x@1, .)
    67  w@1: (w@1, .)
    68  v@1: (v@1, .)
    69  u@1: (u@1, .)
    70  t@1: (t@1, .)
    71  s@1: (s@1, .)
    72  r@1: (r@1, .)
    73  q@1: (q@1, .)
    74  
    75  # With an expansive filter, all keys should be visible.
    76  
    77  combined-iter point-key-filter=(0,1000)
    78  first
    79  next
    80  seek-ge m
    81  prev
    82  seek-lt m
    83  next
    84  last
    85  ----
    86  a@100: (a@100, .)
    87  a@10: (a@10, .)
    88  m@100: (m@100, .)
    89  l@1: (l@1, .)
    90  l@1: (l@1, .)
    91  m@100: (m@100, .)
    92  z@1: (z@1, .)
    93  
    94  # Test the case where a range key [a,z) is truncated to a seek key
    95  # at which there exists a point key, but the point key should be skipped.
    96  # The seek should stop at the seek key, but show no visible point key.
    97  
    98  batch commit
    99  range-key-set a z @5 boop
   100  ----
   101  committed 1 keys
   102  
   103  combined-iter point-key-filter=(9,12)
   104  seek-ge c@1
   105  ----
   106  c@1: (., [a-z) @5=boop UPDATED)
   107  
   108  
   109  # Try the same scenario, but this time with a filter that should NOT skip the
   110  # point key.
   111  
   112  combined-iter point-key-filter=(1,12)
   113  seek-ge c@1
   114  ----
   115  c@1: (c@1, [a-z) @5=boop UPDATED)