• Michael Paquier's avatar
    Revert refactoring of hex code to src/common/ · 1900c140
    Michael Paquier authored
    This is a combined revert of the following commits:
    - c3826f83, a refactoring piece that moved the hex decoding code to
    src/common/.  This code was cleaned up by aef8948f, as it originally
    included no overflow checks in the same way as the base64 routines in
    src/common/ used by SCRAM, making it unsafe for its purpose.
    - aef8948f, a more advanced refactoring of the hex encoding/decoding code
    to src/common/ that added sanity checks on the result buffer for hex
    decoding and encoding.  As reported by Hans Buschmann, those overflow
    checks are expensive, and it is possible to see a performance drop in
    the decoding/encoding of bytea or LOs the longer they are.  Simple SQLs
    working on large bytea values show a clear difference in perf profile.
    - ccf4e277, a cleanup made possible by aef8948f.
    
    The reverts of all those commits bring back the performance of hex
    decoding and encoding back to what it was in ~13.  Fow now and
    post-beta3, this is the simplest option.
    
    Reported-by: Hans Buschmann
    Discussion: https://postgr.es/m/1629039545467.80333@nidsa.net
    Backpatch-through: 14
    1900c140
Mkvcbuild.pm 34.6 KB