Repository navigation
Commit 6363e04
committed
[improvement](be) Prune always-true logical commit TSO predicates
### What problem does this PR solve?
Issue Number: N/A
Related PR: #68097
Problem Summary: On a single-version rowset whose logical commit TSO is 42,
TSO > 41 survives segment filtering even though every row satisfies it.
Always-true predicate elimination only visits cached physical readers, so
it misses an uncached logical TSO reader. Its reader helper also accesses
physical zone-map metadata directly, bypassing constant readers.
Retain the first-stage TSO reader within new_iterator and reuse it during
predicate elimination, independently of physical cache state. Obtain the
zone map through the existing reader interface and reuse is_always_true.
Keep per-segment predicate copies and existing column-read dependency
checks, so projected TSO values are still read. Report null constants as
nullable zone maps to keep comparisons conservative. Add comments and
unit tests for cache state, predicate removal, data output and physical
reader fallback. No performance benchmark was run.
### Release note
Avoid redundant row-level commit TSO filters when the segment's logical
TSO proves them always true.
### Check List (For Author)
- Test: Unit Test
- ASAN: 43 tests passed across ConstantColumnIteratorTest,
SegmentIteratorExprZonemapTest and ColumnReaderCacheTest
- clang-format 16, build hygiene and git diff --check passed
- clang-tidy attempted: blocked by the pre-existing unmatched
NOLINTEND in core/types.h:576; no diagnostics on changed lines
- Behavior changed: Yes (remove redundant filters; query results unchanged)
- Does this need documentation: No1 parent 865b431 commit 6363e04
4 files changed
Lines changed: 197 additions & 8 deletions
File tree
- be
- src/storage/segment
- test/storage/segment
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
756 | 756 | | |
757 | 757 | | |
758 | 758 | | |
759 | | - | |
| 759 | + | |
760 | 760 | | |
761 | 761 | | |
762 | 762 | | |
| 763 | + | |
| 764 | + | |
763 | 765 | | |
764 | | - | |
| 766 | + | |
765 | 767 | | |
766 | 768 | | |
767 | 769 | | |
| |||
901 | 903 | | |
902 | 904 | | |
903 | 905 | | |
| 906 | + | |
904 | 907 | | |
905 | 908 | | |
906 | 909 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
410 | 410 | | |
411 | 411 | | |
412 | 412 | | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
413 | 418 | | |
414 | 419 | | |
415 | 420 | | |
| |||
424 | 429 | | |
425 | 430 | | |
426 | 431 | | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
427 | 435 | | |
428 | 436 | | |
429 | 437 | | |
| |||
514 | 522 | | |
515 | 523 | | |
516 | 524 | | |
517 | | - | |
518 | | - | |
519 | | - | |
| 525 | + | |
| 526 | + | |
520 | 527 | | |
521 | | - | |
| 528 | + | |
522 | 529 | | |
523 | 530 | | |
524 | | - | |
525 | | - | |
| 531 | + | |
| 532 | + | |
526 | 533 | | |
527 | 534 | | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
528 | 541 | | |
529 | 542 | | |
530 | 543 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| |||
92 | 93 | | |
93 | 94 | | |
94 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
95 | 141 | | |
96 | 142 | | |
97 | 143 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
134 | 143 | | |
135 | 144 | | |
136 | 145 | | |
| |||
266 | 275 | | |
267 | 276 | | |
268 | 277 | | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
269 | 326 | | |
270 | 327 | | |
271 | 328 | | |
| |||
411 | 468 | | |
412 | 469 | | |
413 | 470 | | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
414 | 541 | | |
415 | 542 | | |
416 | 543 | | |
| |||
0 commit comments