diff options
author | Peter Bex <peter@more-magic.net> | 2024-09-12 18:53:44 +0200 |
---|---|---|
committer | Peter Bex <peter@more-magic.net> | 2024-09-12 19:12:52 +0200 |
commit | 1088b3244e9dd89404e6eea457727805b2fb2d89 (patch) | |
tree | a19232496aa8f5170cbd9000a355b765ee3c340d /feature-tests/escape-identifier.c | |
parent | c1a36cc2c67de45c4f6db6ecd2cc9102c5170ba2 (diff) | |
download | chicken-postgresql-1088b3244e9dd89404e6eea457727805b2fb2d89.tar.gz |
Port Postgres egg to CHICKEN 65.0.0
This has quite a few changes due to the low-level nature of this code:
when the contents of a string get copied by C functions, we can't pass
it to arguments of the scheme-pointer type directly anymore.
Instead, strings are now wrapper objects which point to an internal
(NUL-terminated!) bytevector. So not only do we have to extract this
bytevector and pass it to these C functions, but we also need to
calculate the string length excluding the NUL terminator. This
creates a bit more branching in the code to get the thing to copy and
length.
The nice thing is that we no longer need to append NUL bytes to
strings in a few places. Instead, we can just pass the raw bytevector
to the C functions, which means this should be rather faster now.
Diffstat (limited to 'feature-tests/escape-identifier.c')
0 files changed, 0 insertions, 0 deletions