github jtv/libpqxx 7.5.0
libpqxx 7.5.0: more modern, more efficient, more flexible

latest releases: 7.9.2, 7.9.1, 7.9.0...
3 years ago

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() using std::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)

Don't miss a new libpqxx release

NewReleases is sending notifications on new releases.