This is mostly a bug-fix release. But also, it continues reorganising how libpqxx headers include each other. It's clearer and simpler now, it's easier to get right, and also, it seems to compile faster. Oh, and there's a new way to iterate over rows in a result or a streamed query.
Here's what else has changed:
- Fix up more damage done by auto-formatting.
- New
result::for_each()
: simple iteration and conversion of rows. (#528) - Similarly,
transaction_base::for_each()
— stream a query and run a callback on each row. - Add some missing headers in
<pqxx/pqxx>
. (#551) - More strictness in
header-pre.hxx
/header-post.hxx
checking. - Disallow nesting of
ignore-deprecated
blocks. - Deprecate
exec
functions'desc
parameter. - Fix
placeholders
documentation. (#557) - Strip
const
and references fromvalue_type
. (#558) - Get tests running on appveyor. (#560)
- Fix broken nonblocking connection on Windows. (#560)
This release may break some things for you:
- If you included the wrong libpqxx headers directly into your own code, you will get an error message about it. Include only the
<pqxx/something>
headers yourself, not any of the.hxx
ones. - The
exec()
query execution functions no longer accept adesc
(description) argument. In C++20, we'll replace that withstd::source_location
so that we can automatically show the location in the source code where the failing query was issued. Or optionally, some different location that you pass explicitly.