Speed up lexing of long JSON strings

John Naylor <john.naylor@postgresql.org>

Commit: 0a8de93a48ce1e7479fb75fe10a8859559ec0c09
Author: John Naylor <john.naylor@postgresql.org>
Date: 2022-09-02T02:36:22Z
Releases: 16.0
Speed up lexing of long JSON strings

Use optimized linear search when looking ahead for end quotes,
backslashes, and non-printable characters. This results in nearly 40%
faster JSON parsing on x86-64 when most values are long strings, and
all platforms should see some improvement.

Reviewed by Andres Freund and Nathan Bossart
Discussion: https://www.postgresql.org/message-id/CAFBsxsGhaR2KQ5eisaK%3D6Vm60t%3DaxhD8Ckj1qFoCH1pktZi%2B2w%40mail.gmail.com
Discussion: https://www.postgresql.org/message-id/CAFBsxsESLUyJ5spfOSyPrOvKUEYYNqsBosue9SV1j8ecgNXSKA%40mail.gmail.com

Files

PathChange+/−
src/common/jsonapi.c modified +10 −3
src/test/regress/expected/json.out modified +13 −0
src/test/regress/sql/json.sql modified +5 −0

Discussion