github.com/petermattis/pebble@v0.0.0-20190905164901-ab51a2166067/sstable/testdata/writer (about)

     1  build
     2  a.SET.1:a
     3  ----
     4  point:   [a#1,1,a#1,1]
     5  range:   [#0,0,#0,0]
     6  seqnums: [1,1]
     7  
     8  scan
     9  ----
    10  a#1,1:a
    11  
    12  scan-range-del
    13  ----
    14  
    15  build
    16  a.SET.1:a
    17  b.DEL.2:b
    18  c.MERGE.3:c
    19  d.RANGEDEL.4:e
    20  f.SET.5:f
    21  g.DEL.6:g
    22  h.MERGE.7:h
    23  i.RANGEDEL.8:j
    24  ----
    25  point:   [a#1,1,h#7,2]
    26  range:   [d#4,15,j#72057594037927935,15]
    27  seqnums: [1,8]
    28  
    29  scan
    30  ----
    31  a#1,1:a
    32  b#2,0:b
    33  c#3,2:c
    34  f#5,1:f
    35  g#6,0:g
    36  h#7,2:h
    37  
    38  scan-range-del
    39  ----
    40  d#4,15:e
    41  i#8,15:j
    42  
    43  # 3: a-----------m
    44  # 2:      f------------s
    45  # 1:          j---------------z
    46  
    47  build
    48  a.RANGEDEL.3:m
    49  f.RANGEDEL.2:s
    50  j.RANGEDEL.1:z
    51  ----
    52  point:   [#0,0,#0,0]
    53  range:   [a#3,15,z#72057594037927935,15]
    54  seqnums: [1,3]
    55  
    56  scan
    57  ----
    58  
    59  scan-range-del
    60  ----
    61  a#3,15:f
    62  f#3,15:j
    63  f#2,15:j
    64  j#3,15:m
    65  j#2,15:m
    66  j#1,15:m
    67  m#2,15:s
    68  m#1,15:s
    69  s#1,15:z
    70  
    71  # The range tombstone upper bound is exclusive, so a point operation
    72  # on that same key will be the actual boundary.
    73  
    74  build
    75  a.RANGEDEL.3:b
    76  b.SET.4:c
    77  ----
    78  point:   [b#4,1,b#4,1]
    79  range:   [a#3,15,b#72057594037927935,15]
    80  seqnums: [3,4]
    81  
    82  build
    83  a.RANGEDEL.3:b
    84  b.SET.2:c
    85  ----
    86  point:   [b#2,1,b#2,1]
    87  range:   [a#3,15,b#72057594037927935,15]
    88  seqnums: [2,3]
    89  
    90  build
    91  a.RANGEDEL.3:c
    92  b.SET.2:c
    93  ----
    94  point:   [b#2,1,b#2,1]
    95  range:   [a#3,15,c#72057594037927935,15]
    96  seqnums: [2,3]
    97  
    98  # Keys must be added in order.
    99  
   100  build
   101  a.SET.1:b
   102  a.SET.2:c
   103  ----
   104  pebble: keys must be added in order: a#1,1, a#2,1
   105  
   106  build
   107  b.SET.1:a
   108  a.SET.2:b
   109  ----
   110  pebble: keys must be added in order: b#1,1, a#2,1
   111  
   112  build
   113  b.RANGEDEL.1:c
   114  a.RANGEDEL.2:b
   115  ----
   116  pebble: keys must be added in order: b#1,15 > a#2,15
   117  
   118  build-raw
   119  .RANGEDEL.1:b
   120  ----
   121  point:   [#0,0,#0,0]
   122  range:   [#1,15,b#72057594037927935,15]
   123  seqnums: [1,1]
   124  
   125  build-raw
   126  a.RANGEDEL.1:c
   127  a.RANGEDEL.2:c
   128  ----
   129  pebble: keys must be added in order: a#1,15, a#2,15
   130  
   131  build-raw
   132  a.RANGEDEL.1:c
   133  b.RANGEDEL.2:d
   134  ----
   135  pebble: overlapping tombstones must be fragmented: a-c#1 vs b-d#2
   136  
   137  build-raw
   138  a.RANGEDEL.2:c
   139  a.RANGEDEL.1:d
   140  ----
   141  pebble: overlapping tombstones must be fragmented: a-c#2 vs a-d#1
   142  
   143  build-raw
   144  a.RANGEDEL.1:c
   145  c.RANGEDEL.2:d
   146  ----
   147  point:   [#0,0,#0,0]
   148  range:   [a#1,15,d#72057594037927935,15]
   149  seqnums: [1,2]
   150  
   151  # The range-del-v1 format supports unfragmented and unsorted range
   152  # tombstones.
   153  
   154  build-raw range-del-v1
   155  a.RANGEDEL.1:c
   156  a.RANGEDEL.2:c
   157  ----
   158  point:   [#0,0,#0,0]
   159  range:   [a#2,15,c#72057594037927935,15]
   160  seqnums: [1,2]
   161  
   162  scan-range-del
   163  ----
   164  a#2,15:c
   165  a#1,15:c
   166  
   167  build-raw range-del-v1
   168  a.RANGEDEL.1:c
   169  b.RANGEDEL.2:d
   170  ----
   171  point:   [#0,0,#0,0]
   172  range:   [a#1,15,d#72057594037927935,15]
   173  seqnums: [1,2]
   174  
   175  scan-range-del
   176  ----
   177  a#1,15:b
   178  b#2,15:c
   179  b#1,15:c
   180  c#2,15:d
   181  
   182  build-raw range-del-v1
   183  a.RANGEDEL.2:c
   184  a.RANGEDEL.1:d
   185  ----
   186  point:   [#0,0,#0,0]
   187  range:   [a#2,15,d#72057594037927935,15]
   188  seqnums: [1,2]
   189  
   190  scan-range-del
   191  ----
   192  a#2,15:c
   193  a#1,15:c
   194  c#1,15:d
   195  
   196  # This matches an early test case, except we're passing overlapping
   197  # range tombstones to the sstable writer and requiring them to be
   198  # fragmented at read time.
   199  
   200  build-raw range-del-v1
   201  j.RANGEDEL.1:z
   202  f.RANGEDEL.2:s
   203  a.RANGEDEL.3:m
   204  ----
   205  point:   [#0,0,#0,0]
   206  range:   [a#3,15,z#72057594037927935,15]
   207  seqnums: [1,3]
   208  
   209  scan-range-del
   210  ----
   211  a#3,15:f
   212  f#3,15:j
   213  f#2,15:j
   214  j#3,15:m
   215  j#2,15:m
   216  j#1,15:m
   217  m#2,15:s
   218  m#1,15:s
   219  s#1,15:z