Repository navigation
Commit 5c6bf72
committed
[improvement](be) Batch consecutive ASCII rows in case conversion
### What problem does this PR solve?
Related PR: #69223
Problem Summary: Mixed ASCII/Unicode batches convert each ASCII row separately,
which leaves short rows below SIMD width and repeats output resizing and length
checks. Group consecutive ASCII rows into one contiguous conversion, then rebase
their individual offsets on the current result position. Keep full ICU mapping
for Unicode rows, including expansions and context-sensitive casing. A run of
32 two-byte rows now needs one 64-byte conversion instead of 32 conversions;
runtime speedup has not been measured. Add coverage for runs around Unicode
expansions/contractions, empty rows, NULLs and embedded zero bytes.
### Release note
Reduce per-row overhead for lower and upper on mixed ASCII/Unicode batches.
### Check List (For Author)
- Test: Unit Test added; focused ASAN run attempted but CMake could not find
OpenMP_C, so tests did not execute. Formatting, diff and build hygiene checks
passed. Clang-tidy was blocked by the missing compilation database.
- Behavior changed: No (SQL results and Unicode semantics are unchanged)
- Does this need documentation: No1 parent 2824ba6 commit 5c6bf72
2 files changed
Lines changed: 85 additions & 24 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
589 | 589 | | |
590 | 590 | | |
591 | 591 | | |
592 | | - | |
| 592 | + | |
593 | 593 | | |
594 | 594 | | |
595 | 595 | | |
| |||
599 | 599 | | |
600 | 600 | | |
601 | 601 | | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
602 | 625 | | |
603 | 626 | | |
604 | 627 | | |
605 | 628 | | |
606 | | - | |
607 | | - | |
608 | | - | |
| 629 | + | |
| 630 | + | |
609 | 631 | | |
610 | 632 | | |
611 | | - | |
612 | | - | |
613 | | - | |
614 | | - | |
615 | | - | |
616 | | - | |
617 | | - | |
618 | | - | |
619 | | - | |
620 | | - | |
621 | | - | |
622 | | - | |
623 | | - | |
624 | | - | |
625 | | - | |
626 | | - | |
627 | | - | |
628 | | - | |
629 | | - | |
630 | | - | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
631 | 643 | | |
| 644 | + | |
632 | 645 | | |
| 646 | + | |
633 | 647 | | |
634 | 648 | | |
635 | 649 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
747 | 747 | | |
748 | 748 | | |
749 | 749 | | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
750 | 797 | | |
751 | 798 | | |
752 | 799 | | |
| |||
0 commit comments