There are now more ways to pass a BYTEA parameter to a query, and more of them get passed as binary data without intervening encode/decode pass. This last part makes it more efficient, but should not be visible to you otherwise.
When it comes to passing parameters to queries, some people wanted a way to build parameter lists on the fly. This was possible with the old parameter-passing API, but never actually supported. There is now a class for doing this, params
, with some optimisation built in to prevent unnecessary copying of string_view
and similar values.
"Blobs" (the new BYTEA API) have a new read()
method on compilers which support C++20 "spans." It's based on std::span
, and you can expect more use of spans soon.
Here's the more complete list:
- Now requires
std::variant
support! No longer works with gcc7. - When implementing a string conversion, consider specialising
param_format
. - Stop "aborting" nontransaction on closing. (#419)
- Silence an overzealous Visual C++ warning. (#418)
- Starting support for C++20
std::span
. - New
blob::read()
usingstd::span
. (#429) - New
params
class lets you build parameter lists incrementally. (#387) - Pass
std::vector<std::byte>
params in binary format. - Dropped legacy tests 31 and 49 to work around clang C++20 bug.
- Fixed
stream_to
test failure in non-English locales. (#440) - Clarify
transaction_base::stream
documentation. (#423) - Avoid
<thread>
on MinGW; it's broken there. (#336, #398, #424, #441)