1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

Feature/mcol 4882 cpimport skip rows (#3594)

* feat(cpimport): MCOL-4882 add a parameter to skip header rows

* chore(cpimport): MCOL-4882 Use boost::program_options to arguments parsing

* feat(cpimport.bin): MCOL-4882 Add missing changes

* add test

* fix clang

* add missing cmdline argument

* fix bug

* Fix double lines skipping

* Fix incorrect --silent (-N) parsing

* fix default --max-errors processing

* fix overwriting default username

* move initialization to members declaration
This commit is contained in:
Alexey Antipovsky
2025-07-11 21:35:43 +02:00
committed by GitHub
parent 1c8d5ec04e
commit 78c1b5034d
30 changed files with 1379 additions and 1469 deletions

View File

@ -35,18 +35,19 @@ namespace WriteEngine
{
/* static */ const std::string XMLGenData::DELIMITER("-d");
/* static */ const std::string XMLGenData::DESCRIPTION("-s");
/* static */ const std::string XMLGenData::ENCLOSED_BY_CHAR("-E");
/* static */ const std::string XMLGenData::ESCAPE_CHAR("-C");
/* static */ const std::string XMLGenData::JOBID("-j");
/* static */ const std::string XMLGenData::ENCLOSED_BY_CHAR("-E");
/* static */ const std::string XMLGenData::ESCAPE_CHAR("-C");
/* static */ const std::string XMLGenData::JOBID("-j");
/* static */ const std::string XMLGenData::MAXERROR("-e");
/* static */ const std::string XMLGenData::NAME("-n");
/* static */ const std::string XMLGenData::PATH("-p");
/* static */ const std::string XMLGenData::RPT_DEBUG("-b");
/* static */ const std::string XMLGenData::RPT_DEBUG("-b");
/* static */ const std::string XMLGenData::USER("-u");
/* static */ const std::string XMLGenData::NO_OF_READ_BUFFER("-r");
/* static */ const std::string XMLGenData::READ_BUFFER_CAPACITY("-c");
/* static */ const std::string XMLGenData::WRITE_BUFFER_SIZE("-w");
/* static */ const std::string XMLGenData::EXT("-x");
/* static */ const std::string XMLGenData::SKIP_ROWS("-O");
//------------------------------------------------------------------------------
// XMLGenData constructor
@ -54,39 +55,38 @@ namespace WriteEngine
//------------------------------------------------------------------------------
XMLGenData::XMLGenData()
{
fParms.insert(ParmList::value_type(DELIMITER, std::string("|")));
fParms.insert(ParmList::value_type(DESCRIPTION, std::string()));
fParms.insert(ParmList::value_type(ENCLOSED_BY_CHAR, std::string("")));
fParms.insert(ParmList::value_type(ESCAPE_CHAR, std::string("\\")));
fParms.insert(ParmList::value_type(JOBID, std::string("299")));
fParms.insert(ParmList::value_type(MAXERROR, std::string("10")));
fParms.insert(ParmList::value_type(NAME, std::string()));
fParms.emplace(DELIMITER, "|");
fParms.emplace(DESCRIPTION, "");
fParms.emplace(ENCLOSED_BY_CHAR, "");
fParms.emplace(ESCAPE_CHAR, "\\");
fParms.emplace(JOBID, "299");
fParms.emplace(MAXERROR, "10");
fParms.emplace(NAME, "");
boost::filesystem::path p{std::string(Config::getBulkRoot())};
p /= JOBDIR;
fParms.insert(ParmList::value_type(PATH, p.string()));
fParms.emplace(PATH, p.string());
fParms.insert(ParmList::value_type(RPT_DEBUG, std::string("0")));
fParms.insert(ParmList::value_type(USER, std::string()));
fParms.insert(ParmList::value_type(NO_OF_READ_BUFFER, std::string("5")));
fParms.insert(ParmList::value_type(READ_BUFFER_CAPACITY, std::string("1048576")));
fParms.insert(ParmList::value_type(WRITE_BUFFER_SIZE, std::string("10485760")));
fParms.insert(ParmList::value_type(EXT, std::string("tbl")));
fParms.emplace(RPT_DEBUG, "0");
fParms.emplace(USER, "");
fParms.emplace(NO_OF_READ_BUFFER, "5");
fParms.emplace(READ_BUFFER_CAPACITY, "1048576");
fParms.emplace(WRITE_BUFFER_SIZE, "10485760");
fParms.emplace(EXT, "tbl");
fParms.emplace(SKIP_ROWS, "0");
}
//------------------------------------------------------------------------------
// XMLGenData destructor
//------------------------------------------------------------------------------
/* virtual */
XMLGenData::~XMLGenData()
{
}
XMLGenData::~XMLGenData() = default;
//------------------------------------------------------------------------------
// Return value for the specified parm.
//------------------------------------------------------------------------------
std::string XMLGenData::getParm(const std::string& key) const
{
ParmList::const_iterator p = fParms.find(key);
auto p = fParms.find(key);
if (fParms.end() != p)
return p->second;