summaryrefslogtreecommitdiff
path: root/lib/output/pq/pqConn.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/output/pq/pqConn.h')
-rw-r--r--lib/output/pq/pqConn.h14
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;
};
}