diff options
Diffstat (limited to 'lib/output/pq/updateDatabase.h')
-rw-r--r-- | lib/output/pq/updateDatabase.h | 16 |
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; }; } |