src/Configuration.h
branchv_0
changeset 3 202ce847990c
parent 2 8a30971d285f
equal deleted inserted replaced
2:8a30971d285f 3:202ce847990c
    16  */
    16  */
    17 #pragma once
    17 #pragma once
    18 
    18 
    19 #include <vector>
    19 #include <vector>
    20 #include <iostream>
    20 #include <iostream>
       
    21 #include <regex>
    21 
    22 
       
    23 #include <relpipe/common/type/typedefs.h>
    22 #include <relpipe/reader/typedefs.h>
    24 #include <relpipe/reader/typedefs.h>
    23 
    25 
    24 
    26 
    25 namespace relpipe {
    27 namespace relpipe {
    26 namespace out {
    28 namespace out {
    28 
    30 
    29 class Configuration {
    31 class Configuration {
    30 public:
    32 public:
    31 
    33 
    32 	enum class InsertMode {
    34 	enum class InsertMode {
       
    35 		DEFAULT,
    33 		SINGLE,
    36 		SINGLE,
    34 		MULTI,
    37 		MULTI,
    35 	};
    38 	};
    36 
    39 
    37 	relpipe::reader::boolean_t writeHeader = true;
    40 	class TypeCastRule {
    38 	relpipe::reader::boolean_t writeTypes = false;
    41 	public:
    39 	InsertMode insertMode = InsertMode::MULTI; // TODO: per-relation mode
    42 
       
    43 		std::wregex attribute = std::wregex(L".*");
       
    44 		std::wregex type = std::wregex(L".*");
       
    45 		relpipe::common::type::StringX sqlType;
       
    46 	};
       
    47 
       
    48 	class RelationConfiguration {
       
    49 	public:
       
    50 		relpipe::common::type::StringX relation;
       
    51 		std::wregex relationPattern;
       
    52 		relpipe::common::type::Boolean writeDDL = true;
       
    53 		relpipe::common::type::Boolean writeDML = true;
       
    54 		relpipe::common::type::Boolean writeColumnNames = true;
       
    55 		std::vector<TypeCastRule> typeCastRules;
       
    56 		InsertMode insertMode = InsertMode::DEFAULT;
       
    57 	};
       
    58 
       
    59 	std::vector<RelationConfiguration> relationConfigurations;
    40 
    60 
    41 	virtual ~Configuration() {
    61 	virtual ~Configuration() {
    42 	}
    62 	}
    43 };
    63 };
    44 
    64