summaryrefslogtreecommitdiff
path: root/lib/output/pq/updateDatabase.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/output/pq/updateDatabase.h')
-rw-r--r--lib/output/pq/updateDatabase.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/output/pq/updateDatabase.h b/lib/output/pq/updateDatabase.h
index 4e01d9c..2e48dd6 100644
--- a/lib/output/pq/updateDatabase.h
+++ b/lib/output/pq/updateDatabase.h
@@ -7,6 +7,21 @@
#include <eventSourceBase.h>
namespace MyGrate::Output::Pq {
+ struct ColumnDef {
+ std::string name;
+ std::size_t ordinal;
+ bool is_pk;
+ };
+ using ColumnDefPtr = std::unique_ptr<ColumnDef>;
+
+ class TableDef {
+ public:
+ TableDef(const RecordSet &, std::string_view name);
+
+ std::vector<ColumnDefPtr> columns;
+ };
+ using TableDefPtr = std::unique_ptr<TableDef>;
+
class UpdateDatabase : public PqConn, public EventHandlerBase {
public:
UpdateDatabase(const char * const str, uint64_t source);
@@ -15,6 +30,7 @@ namespace MyGrate::Output::Pq {
private:
uint64_t source;
+ std::map<std::string, TableDefPtr, std::less<>> tables;
};
}