--- 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 <vector>
#include <iostream>
+#include <regex>
+#include <relpipe/common/type/typedefs.h>
#include <relpipe/reader/typedefs.h>
@@ -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<TypeCastRule> typeCastRules;
+ InsertMode insertMode = InsertMode::DEFAULT;
+ };
+
+ std::vector<RelationConfiguration> relationConfigurations;
virtual ~Configuration() {
}