libpqxx 7.0.3: Important large objects fix
This new version fixes an important bug which could happen when reading large objects through the ilostream
class. On systems where char
is a signed type (which I believe includes most desktop systems), if the stream found any byte with value -1
at a buffer boundary, then it would mistake that byte for an end-of-file marker.
Thanks to @tomlankhorst for finding and fixing this bug. A similar update for the 6.4 series is forthcoming.
There are also some other fixes: large-object streams open in binary mode. Some compile errors have been fixed (though the tests may not pass) on non-Unicode systems, and in some scenarios, lost database connections are now properly reported as broken_connection
exceptions instead of sql_error
exceptions. Unfortunately this does not cover all scenarios, so more work will be needed.