Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: postgresql-cfbot/postgresql
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: cf/5802~1
Choose a base ref
...
head repository: postgresql-cfbot/postgresql
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: cf/5802
Choose a head ref
  • 4 commits
  • 7 files changed
  • 2 contributors

Commits on Nov 7, 2025

  1. Moving Perl functions (Sparse Array) to a common module.

    Functions for forming the Sparse Array in case mapping are transferred to a Perl
    module. From src/common/unicode/generate-unicode_case_table.pl to
    src/tools/GenerateSparseArray.pm.
    
    This is necessary for further use of this code to build Sparse Array in Unicode
    normalization.
    lexborisov authored and Commitfest Bot committed Nov 7, 2025
    Configuration menu
    Copy the full SHA
    020d0de View commit details
    Browse the repository at this point in the history
  2. Improve the performance of Unicode Normalization Forms.

    This changes significantly speeds up the normalize() function.
    Similar to the changes in case mapping (fold, lower, upper, or title case),
    here we get rid of perfect hashing and replace it with a Sparse Array with
    a nested branch function to check specific ranges of code points.
    This allows us to achieve a performance increase of up to 40%.
    
    Author: Alexander Borisov <[email protected]>
    lexborisov authored and Commitfest Bot committed Nov 7, 2025
    Configuration menu
    Copy the full SHA
    53f68ce View commit details
    Browse the repository at this point in the history
  3. Refactoring Unicode Normalization Forms, performance up.

    Refactoring the Unicode Normalization Forms function unicode_normalize().
    
    Function performance benchmarks.
    The benchmark was performed by directly calling the function and passing
    it data generated from ICU tests.
    
    Without patch:
    Normalization from NFC to  NFD with  PG: 009.121
    Normalization from NFC to NFKD with  PG: 009.048
    Normalization from NFD to  NFC with  PG: 014.525
    Normalization from NFD to NFKC with  PG: 014.380
    
    Whith patch:
    Normalization from NFC to  NFD with  PG: 001.580
    Normalization from NFC to NFKD with  PG: 001.634
    Normalization from NFD to  NFC with  PG: 002.979
    Normalization from NFD to NFKC with  PG: 003.050
    
    pgbench:
    The files were sent via pgbench. The files contain all code points that
    need to be normalized.
    
    NFC:
    Patch: tps = 9701.568161
    Without: tps = 6820.828104
    
    NFD:
    Patch: tps = 2707.155148
    Without: tps = 1745.949174
    
    NFKC:
    Patch: tps = 9893.952804
    Without: tps = 6697.358888
    
    NFKD:
    Patch: tps = 2580.785909
    Without: tps = 1521.058417
    lexborisov authored and Commitfest Bot committed Nov 7, 2025
    Configuration menu
    Copy the full SHA
    b86cb76 View commit details
    Browse the repository at this point in the history
  4. [CF 5802] v6 - Improve the performance of Unicode Normalization Forms.

    This branch was automatically generated by a robot using patches from an
    email thread registered at:
    
    https://commitfest.postgresql.org/patch/5802
    
    The branch will be overwritten each time a new patch version is posted to
    the thread, and also periodically to check for bitrot caused by changes
    on the master branch.
    
    Patch(es): https://www.postgresql.org/message-id/[email protected]
    Author(s): Alexander Borisov
    Commitfest Bot committed Nov 7, 2025
    Configuration menu
    Copy the full SHA
    31063d0 View commit details
    Browse the repository at this point in the history
Loading