diff -r 8a30971d285f -r 202ce847990c src/Configuration.h --- a/src/Configuration.h Sat Dec 10 20:41:40 2022 +0100 +++ b/src/Configuration.h Tue Dec 13 02:07:00 2022 +0100 @@ -18,7 +18,9 @@ #include #include +#include +#include #include @@ -30,13 +32,31 @@ public: enum class InsertMode { + DEFAULT, SINGLE, MULTI, }; - relpipe::reader::boolean_t writeHeader = true; - relpipe::reader::boolean_t writeTypes = false; - InsertMode insertMode = InsertMode::MULTI; // TODO: per-relation mode + class TypeCastRule { + public: + + std::wregex attribute = std::wregex(L".*"); + std::wregex type = std::wregex(L".*"); + relpipe::common::type::StringX sqlType; + }; + + class RelationConfiguration { + public: + relpipe::common::type::StringX relation; + std::wregex relationPattern; + relpipe::common::type::Boolean writeDDL = true; + relpipe::common::type::Boolean writeDML = true; + relpipe::common::type::Boolean writeColumnNames = true; + std::vector typeCastRules; + InsertMode insertMode = InsertMode::DEFAULT; + }; + + std::vector relationConfigurations; virtual ~Configuration() { }