github.com/cockroachdb/pebble@v1.1.1-0.20240513155919-3622ade60459/internal/keyspan/testdata/seek (about)

     1  build
     2  1:  b-d
     3  ----
     4  b-d:{(#1,RANGEDEL)}
     5  
     6  seek-ge
     7  a 2
     8  b 2
     9  b 1
    10  d 2
    11  ----
    12  b-d:{(#1,RANGEDEL)}
    13  b-d:{(#1,RANGEDEL)}
    14  b-d:{}
    15  <nil>
    16  
    17  seek-le
    18  a 2
    19  b 2
    20  b 1
    21  d 2
    22  ----
    23  <nil>
    24  b-d:{(#1,RANGEDEL)}
    25  b-d:{}
    26  b-d:{(#1,RANGEDEL)}
    27  
    28  build
    29  3:  b-d
    30  2:  b-d
    31  1:  b-d
    32  ----
    33  b-d:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
    34  
    35  seek-ge
    36  a 4
    37  b 4
    38  b 3
    39  b 2
    40  b 1
    41  d 4
    42  ----
    43  b-d:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
    44  b-d:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
    45  b-d:{(#2,RANGEDEL) (#1,RANGEDEL)}
    46  b-d:{(#1,RANGEDEL)}
    47  b-d:{}
    48  <nil>
    49  
    50  seek-le
    51  a 4
    52  b 4
    53  b 3
    54  b 2
    55  b 1
    56  d 4
    57  ----
    58  <nil>
    59  b-d:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
    60  b-d:{(#2,RANGEDEL) (#1,RANGEDEL)}
    61  b-d:{(#1,RANGEDEL)}
    62  b-d:{}
    63  b-d:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
    64  
    65  build
    66  1:  b-d
    67  2:    d-f
    68  ----
    69  b-d:{(#1,RANGEDEL)}
    70  d-f:{(#2,RANGEDEL)}
    71  
    72  seek-ge
    73  b 2
    74  d 2
    75  d 3
    76  e 3
    77  ----
    78  b-d:{(#1,RANGEDEL)}
    79  d-f:{}
    80  d-f:{(#2,RANGEDEL)}
    81  d-f:{(#2,RANGEDEL)}
    82  
    83  seek-le
    84  a 3
    85  b 2
    86  d 2
    87  d 3
    88  e 3
    89  f 3
    90  ----
    91  <nil>
    92  b-d:{(#1,RANGEDEL)}
    93  d-f:{}
    94  d-f:{(#2,RANGEDEL)}
    95  d-f:{(#2,RANGEDEL)}
    96  d-f:{(#2,RANGEDEL)}
    97  
    98  build
    99  3: a-----------m
   100  2:      f------------s
   101  1:          j---------------z
   102  ----
   103  a-f:{(#3,RANGEDEL)}
   104  f-j:{(#3,RANGEDEL) (#2,RANGEDEL)}
   105  j-m:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
   106  m-s:{(#2,RANGEDEL) (#1,RANGEDEL)}
   107  s-z:{(#1,RANGEDEL)}
   108  
   109  seek-ge
   110  a 4
   111  a 3
   112  a 2
   113  a 1
   114  f 4
   115  f 3
   116  f 2
   117  f 1
   118  j 4
   119  j 3
   120  j 2
   121  j 1
   122  m 3
   123  m 2
   124  m 1
   125  s 2
   126  s 1
   127  z 2
   128  ----
   129  a-f:{(#3,RANGEDEL)}
   130  a-f:{}
   131  a-f:{}
   132  a-f:{}
   133  f-j:{(#3,RANGEDEL) (#2,RANGEDEL)}
   134  f-j:{(#2,RANGEDEL)}
   135  f-j:{}
   136  f-j:{}
   137  j-m:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
   138  j-m:{(#2,RANGEDEL) (#1,RANGEDEL)}
   139  j-m:{(#1,RANGEDEL)}
   140  j-m:{}
   141  m-s:{(#2,RANGEDEL) (#1,RANGEDEL)}
   142  m-s:{(#1,RANGEDEL)}
   143  m-s:{}
   144  s-z:{(#1,RANGEDEL)}
   145  s-z:{}
   146  <nil>
   147  
   148  seek-le
   149  a 4
   150  a 3
   151  a 2
   152  a 1
   153  f 4
   154  f 3
   155  f 2
   156  f 1
   157  j 4
   158  j 3
   159  j 2
   160  j 1
   161  m 3
   162  m 2
   163  m 1
   164  s 2
   165  s 1
   166  z 2
   167  ----
   168  a-f:{(#3,RANGEDEL)}
   169  a-f:{}
   170  a-f:{}
   171  a-f:{}
   172  f-j:{(#3,RANGEDEL) (#2,RANGEDEL)}
   173  f-j:{(#2,RANGEDEL)}
   174  f-j:{}
   175  f-j:{}
   176  j-m:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
   177  j-m:{(#2,RANGEDEL) (#1,RANGEDEL)}
   178  j-m:{(#1,RANGEDEL)}
   179  j-m:{}
   180  m-s:{(#2,RANGEDEL) (#1,RANGEDEL)}
   181  m-s:{(#1,RANGEDEL)}
   182  m-s:{}
   183  s-z:{(#1,RANGEDEL)}
   184  s-z:{}
   185  s-z:{(#1,RANGEDEL)}
   186  
   187  build
   188  1: a-----------m
   189  2:      f------------s
   190  3:          j---------------z
   191  ----
   192  a-f:{(#1,RANGEDEL)}
   193  f-j:{(#2,RANGEDEL) (#1,RANGEDEL)}
   194  j-m:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
   195  m-s:{(#3,RANGEDEL) (#2,RANGEDEL)}
   196  s-z:{(#3,RANGEDEL)}
   197  
   198  seek-ge
   199  a 2
   200  a 1
   201  f 3
   202  f 2
   203  f 1
   204  j 4
   205  j 3
   206  j 2
   207  j 1
   208  m 4
   209  m 3
   210  m 2
   211  m 1
   212  s 4
   213  s 3
   214  s 2
   215  s 1
   216  z 4
   217  ----
   218  a-f:{(#1,RANGEDEL)}
   219  a-f:{}
   220  f-j:{(#2,RANGEDEL) (#1,RANGEDEL)}
   221  f-j:{(#1,RANGEDEL)}
   222  f-j:{}
   223  j-m:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
   224  j-m:{(#2,RANGEDEL) (#1,RANGEDEL)}
   225  j-m:{(#1,RANGEDEL)}
   226  j-m:{}
   227  m-s:{(#3,RANGEDEL) (#2,RANGEDEL)}
   228  m-s:{(#2,RANGEDEL)}
   229  m-s:{}
   230  m-s:{}
   231  s-z:{(#3,RANGEDEL)}
   232  s-z:{}
   233  s-z:{}
   234  s-z:{}
   235  <nil>
   236  
   237  seek-le
   238  a 2
   239  a 1
   240  f 3
   241  f 2
   242  f 1
   243  j 4
   244  j 3
   245  j 2
   246  j 1
   247  m 4
   248  m 3
   249  m 2
   250  m 1
   251  s 4
   252  s 3
   253  s 2
   254  s 1
   255  z 4
   256  z 3
   257  z 2
   258  ----
   259  a-f:{(#1,RANGEDEL)}
   260  a-f:{}
   261  f-j:{(#2,RANGEDEL) (#1,RANGEDEL)}
   262  f-j:{(#1,RANGEDEL)}
   263  f-j:{}
   264  j-m:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
   265  j-m:{(#2,RANGEDEL) (#1,RANGEDEL)}
   266  j-m:{(#1,RANGEDEL)}
   267  j-m:{}
   268  m-s:{(#3,RANGEDEL) (#2,RANGEDEL)}
   269  m-s:{(#2,RANGEDEL)}
   270  m-s:{}
   271  m-s:{}
   272  s-z:{(#3,RANGEDEL)}
   273  s-z:{}
   274  s-z:{}
   275  s-z:{}
   276  s-z:{(#3,RANGEDEL)}
   277  s-z:{}
   278  s-z:{}
   279  
   280  build
   281  1: a-c
   282  3: a-c
   283  5: a-c
   284  5: c-e
   285  ----
   286  a-c:{(#5,RANGEDEL) (#3,RANGEDEL) (#1,RANGEDEL)}
   287  c-e:{(#5,RANGEDEL)}
   288  
   289  # Regression test for a bug where seek-le was failing to find the most recent
   290  # version of a tombstone. The bug existed when seek-{ge,le} performed snapshot
   291  # filtering, and the problematic case was "seek-le c 4". The seeking code was
   292  # finding the tombstone c-e#5, determining it wasn't visible and then return the
   293  # immediately preceding tombstone a-c#1. Now we return c-e:{} immediately,
   294  # because the span c-e covers c and contains no visible keys.
   295  
   296  seek-le
   297  c 1
   298  c 2
   299  c 3
   300  c 4
   301  c 5
   302  c 6
   303  ----
   304  c-e:{}
   305  c-e:{}
   306  c-e:{}
   307  c-e:{}
   308  c-e:{}
   309  c-e:{(#5,RANGEDEL)}