aboutsummaryrefslogtreecommitdiff
path: root/contrib/postgres_fdw/sql/postgres_fdw.sql
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2024-08-05 23:16:44 +1200
committerDavid Rowley <drowley@postgresql.org>2024-08-05 23:16:44 +1200
commitca6fde92258a328a98c1d9e41da5462b73da8529 (patch)
tree4bafe191c7ccf2cac91ac6bd2c062148e189518d /contrib/postgres_fdw/sql/postgres_fdw.sql
parentb5df24e52044abfa6fe20a568ed8bfcb9761a090 (diff)
downloadpostgresql-ca6fde92258a328a98c1d9e41da5462b73da8529.tar.gz
postgresql-ca6fde92258a328a98c1d9e41da5462b73da8529.zip
Optimize JSON escaping using SIMD
Here we adjust escape_json_with_len() to make use of SIMD to allow processing of up to 16-bytes at a time rather than processing a single byte at a time. This has been shown to speed up escaping of JSON strings significantly. Escaping is required for both JSON string properties and also the property names themselves, so this should also help improve the speed of the conversion from JSON into text for JSON objects that have property names 16 or more bytes long. Escaping JSON strings was often a significant bottleneck for longer strings. With these changes, some benchmarking has shown a query performing nearly 4 times faster when escaping a JSON object with a 1MB text property. Tests with shorter text properties saw smaller but still significant performance improvements. For example, a test outputting 1024 JSON strings with a text property length ranging from 1 char to 1024 chars became around 2 times faster. Author: David Rowley Reviewed-by: Melih Mutlu Discussion: https://postgr.es/m/CAApHDvpLXwMZvbCKcdGfU9XQjGCDm7tFpRdTXuB9PVgpNUYfEQ@mail.gmail.com
Diffstat (limited to 'contrib/postgres_fdw/sql/postgres_fdw.sql')
0 files changed, 0 insertions, 0 deletions