You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
the begginning
This commit is contained in:
78
tools/dmldriver/tpchrf2.cpp
Normal file
78
tools/dmldriver/tpchrf2.cpp
Normal file
@ -0,0 +1,78 @@
|
||||
/* Copyright (C) 2014 InfiniDB, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; version 2 of
|
||||
the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
// $Id: tpchrf2.cpp 2101 2013-01-21 14:12:52Z rdempsey $
|
||||
|
||||
#include <istream>
|
||||
using namespace std;
|
||||
|
||||
#include <boost/scoped_array.hpp>
|
||||
#include <boost/tokenizer.hpp>
|
||||
using namespace boost;
|
||||
|
||||
#include "tpchrf2.h"
|
||||
#include "dmlif.h"
|
||||
|
||||
namespace tpch
|
||||
{
|
||||
|
||||
RF2::RF2(const string& sn, uint32_t sid, uint32_t tflg, int c, int p, bool d, bool v) :
|
||||
fSchema(sn), fSessionID(sid), fTflg(tflg), fIntvl(c), fPack(p), fDflg(d), fVflg(v)
|
||||
{
|
||||
}
|
||||
|
||||
RF2::~RF2()
|
||||
{
|
||||
}
|
||||
|
||||
int RF2::run(istream& in)
|
||||
{
|
||||
const streamsize ilinelen = 1024;
|
||||
scoped_array<char> iline(new char[ilinelen]);
|
||||
int cnt = 0;
|
||||
dmlif::DMLIF dmlif(fSessionID, fTflg, fDflg, fVflg);
|
||||
for (;;)
|
||||
{
|
||||
dmlif.rf2Start(fSchema);
|
||||
for (int i = 0; i < fPack; i++)
|
||||
{
|
||||
in.getline(iline.get(), ilinelen);
|
||||
if (in.eof())
|
||||
break;
|
||||
typedef char_separator<char> cs;
|
||||
typedef tokenizer<cs> tk;
|
||||
cs sep("|");
|
||||
tk tok(string(iline.get()), sep);
|
||||
tk::iterator iter = tok.begin();
|
||||
idbassert(iter != tok.end());
|
||||
string keystr = *iter; ++iter;
|
||||
//idbassert(iter == tok.end());
|
||||
int64_t okey = strtol(keystr.c_str(), 0, 0);
|
||||
dmlif.rf2Add(okey);
|
||||
}
|
||||
dmlif.rf2Send();
|
||||
cnt++;
|
||||
if ((cnt % fIntvl) == 0)
|
||||
dmlif.sendOne("COMMIT;");
|
||||
if (in.eof())
|
||||
break;
|
||||
}
|
||||
dmlif.sendOne("COMMIT;");
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user