libdbpp (20260707+1) unstable; urgency=medium

  * SQL::escaped() now returns std::string instead of a raw pointer into its
    scratch buffer: chaining "sql << escaped(...)" used to hit
    operator<<(const char*), which measures length with strlen() and
    silently truncates at the first embedded NUL byte in the escaped value
  * DBResult2::operator[] now returns std::string instead of a raw
    const char* for the same reason: callers converting the result to
    std::string/passing it through strlen()-based APIs previously lost
    everything after an embedded NUL on read as well as on write
  * Both changes are behavior-preserving for well-formed text; only content
    containing a raw NUL byte is affected, and it is now round-tripped
    correctly instead of being cut short

 -- Jan Koester <jan.koester@tuxist.de>  Tue, 07 Jul 2026 15:45:00 +0200

libdbpp (20260520+2) unstable; urgency=medium

  * Add std::string support to SQL operator<<

 -- Jan Koester <jan.koester@tuxist.de>  Tue, 20 May 2026 00:00:00 +0200

libdbpp (20260520+1) unstable; urgency=medium

  * Add ReplicatedDatabase class for write-all/read-primary replication
  * Writes (INSERT/UPDATE/DELETE/CREATE/ALTER/DROP) replicate to all backends
  * Reads (SELECT) only go to the primary database
  * Replica failures are logged but do not block the primary operation

 -- Jan Koester <jan.koester@tuxist.de>  Tue, 20 May 2026 00:00:00 +0200

libdbpp (20260411+2) unstable; urgency=medium

  * Use GNUInstallDirs for multiarch plugin and library paths

 -- Jan Koester <jan.koester@tuxist.de>  Sat, 11 Apr 2026 00:00:00 +0200

libdbpp (20260411+1) unstable; urgency=medium

  * Initial Debian packaging with libdbpp-dev, libdbpp-pgsql, libdbpp-sqlite

 -- Jan Koester <jan.koester@tuxist.de>  Sat, 11 Apr 2026 00:00:00 +0200
