diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-10-08 16:02:30 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-10-08 16:02:30 +0100 |
commit | e93aba2bae8e76d1b1d2d9493742aa93c2b1b27b (patch) | |
tree | cd193a7d25128f8d7a6c8258991282081cabf087 /libpqpp/pq-column.h | |
parent | Anonymous namespace over static (diff) | |
download | libdbpp-postgresql-e93aba2bae8e76d1b1d2d9493742aa93c2b1b27b.tar.bz2 libdbpp-postgresql-e93aba2bae8e76d1b1d2d9493742aa93c2b1b27b.tar.xz libdbpp-postgresql-e93aba2bae8e76d1b1d2d9493742aa93c2b1b27b.zip |
Use unique_ptr for handling unescaped bytea column buffer
Diffstat (limited to 'libpqpp/pq-column.h')
-rw-r--r-- | libpqpp/pq-column.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libpqpp/pq-column.h b/libpqpp/pq-column.h index f86958e..d3400bf 100644 --- a/libpqpp/pq-column.h +++ b/libpqpp/pq-column.h @@ -11,7 +11,6 @@ namespace PQ { class Column : public DB::Column { public: Column(const SelectBase *, unsigned int field); - ~Column() override; [[nodiscard]] bool isNull() const override; void apply(DB::HandleField &) const override; @@ -31,8 +30,18 @@ namespace PQ { const SelectBase * sc; const Oid oid; + // Buffer for PQunescapeBytea - mutable unsigned char * buf; + struct pq_deleter { + void + operator()(unsigned char * p) + { + PQfreemem(p); + } + }; + + using BufPtr = std::unique_ptr<unsigned char, pq_deleter>; + mutable BufPtr buf; }; } |