github.com/zuoyebang/bitalostable@v1.0.1-0.20240229032404-e3b99a834294/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)}