github.com/zuoyebang/bitalostable@v1.0.1-0.20240229032404-e3b99a834294/testdata/level_iter (about)

     1  define
     2  a.SET.1:1 b.SET.2:2
     3  c.SET.3:3 d.SET.4:4
     4  dd.SET.5:5
     5  ----
     6  
     7  iter
     8  seek-ge a
     9  next
    10  next
    11  next
    12  next
    13  next
    14  ----
    15  a#1,1:1
    16  b#2,1:2
    17  c#3,1:3
    18  d#4,1:4
    19  dd#5,1:5
    20  .
    21  
    22  iter
    23  seek-ge b
    24  next
    25  next
    26  next
    27  next
    28  ----
    29  b#2,1:2
    30  c#3,1:3
    31  d#4,1:4
    32  dd#5,1:5
    33  .
    34  
    35  iter
    36  seek-ge c
    37  next
    38  next
    39  next
    40  ----
    41  c#3,1:3
    42  d#4,1:4
    43  dd#5,1:5
    44  .
    45  
    46  iter
    47  seek-ge d
    48  next
    49  next
    50  ----
    51  d#4,1:4
    52  dd#5,1:5
    53  .
    54  
    55  iter
    56  seek-ge dd
    57  next
    58  ----
    59  dd#5,1:5
    60  .
    61  
    62  iter
    63  seek-ge e
    64  ----
    65  .
    66  
    67  iter
    68  seek-lt a
    69  ----
    70  .
    71  
    72  iter
    73  seek-lt b
    74  prev
    75  ----
    76  a#1,1:1
    77  .
    78  
    79  iter
    80  seek-lt c
    81  prev
    82  prev
    83  ----
    84  b#2,1:2
    85  a#1,1:1
    86  .
    87  
    88  iter
    89  seek-lt d
    90  prev
    91  prev
    92  prev
    93  ----
    94  c#3,1:3
    95  b#2,1:2
    96  a#1,1:1
    97  .
    98  
    99  iter
   100  seek-lt e
   101  prev
   102  prev
   103  prev
   104  prev
   105  prev
   106  ----
   107  dd#5,1:5
   108  d#4,1:4
   109  c#3,1:3
   110  b#2,1:2
   111  a#1,1:1
   112  .
   113  
   114  iter
   115  seek-prefix-ge a
   116  next
   117  ----
   118  a#1,1:1
   119  b#2,1:2
   120  
   121  iter
   122  seek-prefix-ge d
   123  next
   124  next
   125  ----
   126  d#4,1:4
   127  dd#5,1:5
   128  .
   129  
   130  iter
   131  seek-prefix-ge dd
   132  next
   133  ----
   134  dd#5,1:5
   135  .
   136  
   137  iter
   138  seek-prefix-ge d
   139  next
   140  prev
   141  prev
   142  ----
   143  d#4,1:4
   144  dd#5,1:5
   145  d#4,1:4
   146  c#3,1:3
   147  
   148  iter
   149  seek-prefix-ge d
   150  prev
   151  ----
   152  d#4,1:4
   153  c#3,1:3
   154  
   155  iter
   156  seek-prefix-ge dd
   157  prev
   158  ----
   159  dd#5,1:5
   160  d#4,1:4
   161  
   162  iter lower=a
   163  seek-ge a
   164  first
   165  ----
   166  a#1,1:1
   167  a#1,1:1
   168  
   169  iter
   170  set-bounds lower=a
   171  seek-ge a
   172  first
   173  ----
   174  a#1,1:1
   175  a#1,1:1
   176  
   177  iter
   178  set-bounds lower=dd upper=f
   179  seek-lt dc
   180  set-bounds lower=a upper=f
   181  seek-lt dc
   182  prev
   183  prev
   184  prev
   185  prev
   186  ----
   187  .
   188  d#4,1:4
   189  c#3,1:3
   190  b#2,1:2
   191  a#1,1:1
   192  .
   193  
   194  iter
   195  set-bounds lower=a upper=b
   196  seek-ge c
   197  set-bounds lower=a upper=f
   198  seek-ge c
   199  next
   200  next
   201  next
   202  ----
   203  .
   204  c#3,1:3
   205  d#4,1:4
   206  dd#5,1:5
   207  .
   208  
   209  # levelIter trims lower/upper bound in the options passed to sstables.
   210  load a
   211  ----
   212  [,]
   213  
   214  load b lower=aa upper=bb
   215  ----
   216  [aa,]
   217  
   218  load b lower=aa upper=c
   219  ----
   220  [aa,]
   221  
   222  load c lower=b upper=d
   223  ----
   224  [,d]
   225  
   226  load c lower=b upper=e
   227  ----
   228  [,]
   229  
   230  # levelIter only checks lower bound when loading sstables.
   231  iter lower=b
   232  seek-ge a
   233  first
   234  ----
   235  a#1,1:1
   236  a#1,1:1
   237  
   238  iter lower=c
   239  seek-ge a
   240  first
   241  ----
   242  c#3,1:3
   243  c#3,1:3
   244  
   245  iter
   246  set-bounds lower=b
   247  seek-ge a
   248  first
   249  ----
   250  a#1,1:1
   251  a#1,1:1
   252  
   253  iter
   254  set-bounds lower=c
   255  seek-ge a
   256  first
   257  ----
   258  c#3,1:3
   259  c#3,1:3
   260  
   261  # levelIter only checks lower bound when loading sstables.
   262  iter lower=d
   263  seek-ge a
   264  first
   265  ----
   266  c#3,1:3
   267  c#3,1:3
   268  
   269  iter lower=e
   270  seek-ge a
   271  first
   272  ----
   273  .
   274  .
   275  
   276  iter upper=e
   277  seek-lt e
   278  last
   279  ----
   280  dd#5,1:5
   281  dd#5,1:5
   282  
   283  iter
   284  set-bounds lower=d
   285  seek-ge a
   286  first
   287  ----
   288  c#3,1:3
   289  c#3,1:3
   290  
   291  iter
   292  set-bounds lower=e
   293  seek-ge a
   294  first
   295  ----
   296  .
   297  .
   298  
   299  iter
   300  set-bounds upper=e
   301  seek-lt e
   302  last
   303  ----
   304  dd#5,1:5
   305  dd#5,1:5
   306  
   307  # levelIter only checks upper bound when loading sstables.
   308  iter upper=d
   309  seek-lt e
   310  last
   311  ----
   312  d#4,1:4
   313  d#4,1:4
   314  
   315  iter upper=c
   316  seek-lt e
   317  last
   318  ----
   319  b#2,1:2
   320  b#2,1:2
   321  
   322  iter
   323  set-bounds upper=d
   324  seek-lt e
   325  last
   326  ----
   327  d#4,1:4
   328  d#4,1:4
   329  
   330  iter
   331  set-bounds upper=c
   332  seek-lt e
   333  last
   334  ----
   335  b#2,1:2
   336  b#2,1:2
   337  
   338  # levelIter only checks upper bound when loading sstables.
   339  iter upper=b
   340  seek-lt e
   341  last
   342  ----
   343  b#2,1:2
   344  b#2,1:2
   345  
   346  iter upper=a
   347  seek-lt e
   348  last
   349  ----
   350  .
   351  .
   352  
   353  iter upper=dd
   354  seek-prefix-ge d
   355  next
   356  ----
   357  d#4,1:4
   358  .
   359  
   360  iter
   361  set-bounds upper=b
   362  seek-lt e
   363  last
   364  ----
   365  b#2,1:2
   366  b#2,1:2
   367  
   368  iter
   369  set-bounds upper=a
   370  seek-lt e
   371  last
   372  ----
   373  .
   374  .
   375  
   376  iter
   377  set-bounds upper=dd
   378  seek-prefix-ge d
   379  next
   380  ----
   381  d#4,1:4
   382  .
   383  
   384  iter upper=e
   385  seek-prefix-ge d
   386  next
   387  next
   388  ----
   389  d#4,1:4
   390  dd#5,1:5
   391  .
   392  
   393  iter lower=dd
   394  seek-prefix-ge d
   395  next
   396  ----
   397  dd#5,1:5
   398  .
   399  
   400  iter lower=d
   401  seek-prefix-ge dd
   402  prev
   403  ----
   404  dd#5,1:5
   405  d#4,1:4
   406  
   407  iter lower=c
   408  seek-prefix-ge dd
   409  prev
   410  ----
   411  dd#5,1:5
   412  d#4,1:4
   413  
   414  iter lower=c
   415  seek-lt c
   416  ----
   417  .
   418  
   419  iter
   420  seek-lt c
   421  set-bounds lower=c
   422  seek-lt c
   423  ----
   424  b#2,1:2
   425  .
   426  
   427  iter upper=c
   428  seek-ge c
   429  ----
   430  .
   431  
   432  iter
   433  seek-ge c
   434  set-bounds upper=c
   435  seek-ge c
   436  ----
   437  c#3,1:3
   438  .
   439  
   440  # The behavior of next/prev after set-bounds is undefined. We're just
   441  # asserting the current behavior.
   442  
   443  # The lower bound is beyond the current table's bounds.
   444  
   445  iter
   446  seek-ge c
   447  set-bounds lower=e
   448  next
   449  ----
   450  c#3,1:3
   451  .
   452  
   453  # The lower bound lies within the current table's bounds.
   454  
   455  iter
   456  seek-ge c
   457  set-bounds lower=d
   458  next
   459  ----
   460  c#3,1:3
   461  d#4,1:4
   462  
   463  # The upper bound is before the current table's bounds.
   464  
   465  iter
   466  seek-ge d
   467  set-bounds upper=c
   468  prev
   469  ----
   470  d#4,1:4
   471  .
   472  
   473  # The upper bound lies within the current table's bounds.
   474  
   475  iter
   476  seek-ge d
   477  set-bounds upper=cc
   478  prev
   479  ----
   480  d#4,1:4
   481  c#3,1:3
   482  
   483  # Setting bounds should update the table bounds, allowing a subsequent
   484  # seek-ge/seek-lt to see the boundary keys.
   485  
   486  iter
   487  seek-ge d
   488  set-bounds lower=cc
   489  seek-lt d
   490  ----
   491  d#4,1:4
   492  .
   493  
   494  iter
   495  seek-ge c
   496  set-bounds upper=cc
   497  seek-ge d
   498  ----
   499  c#3,1:3
   500  .