diff options
Diffstat (limited to 'lib/output/pq/pqConn.h')
-rw-r--r-- | lib/output/pq/pqConn.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/output/pq/pqConn.h b/lib/output/pq/pqConn.h index 613af6f..856683d 100644 --- a/lib/output/pq/pqConn.h +++ b/lib/output/pq/pqConn.h @@ -1,25 +1,35 @@ #ifndef MYGRATE_OUTPUT_PQ_PQCONN_H #define MYGRATE_OUTPUT_PQ_PQCONN_H +#include <cstddef> #include <dbConn.h> #include <dbTypes.h> +#include <functional> #include <initializer_list> #include <libpq-fe.h> +#include <map> +#include <memory> +#include <string> namespace MyGrate::Output::Pq { class PqConn : public DbConn { public: explicit PqConn(const char * const str); - virtual ~PqConn(); + virtual ~PqConn() = default; void query(const char * const) override; void query(const char * const, const std::initializer_list<DbValue> &) override; + DbPrepStmtPtr prepare(const char * const, std::size_t nParams) override; + private: static void notice_processor(void *, const char *); virtual void notice_processor(const char *) const; - PGconn * const conn; + std::unique_ptr<PGconn, decltype(&PQfinish)> const conn; + + friend class PqPrepStmt; + std::map<std::string, std::string, std::less<>> stmts; }; } |