本文整理汇总了C++中ProjectionScan::execute方法的典型用法代码示例。如果您正苦于以下问题:C++ ProjectionScan::execute方法的具体用法?C++ ProjectionScan::execute怎么用?C++ ProjectionScan::execute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProjectionScan
的用法示例。
在下文中一共展示了ProjectionScan::execute方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
TEST_F(TransactionTests, read_your_own_deletes) {
auto writeCtx = tx::TransactionManager::getInstance().buildContext();
size_t before = linxxxs->size();
// Add One read all
auto pc = storage::PointerCalculator::create(linxxxs, new pos_list_t({0}));
ASSERT_EQ(1u, pc->size());
DeleteOp del;
del.setTXContext(writeCtx);
del.addInput(pc);
del.execute();
auto& mod = tx::TransactionManager::getInstance()[writeCtx.tid];
ASSERT_EQ(1u, mod.deleted.size());
ProjectionScan ps;
ps.addInput(linxxxs);
ps.setTXContext(writeCtx);
ps.addField(0);
ps.addField(1);
ps.execute();
ValidatePositions vp;
vp.setTXContext(writeCtx);
vp.addInput(ps.getResultTable());
vp.execute();
auto res = vp.getResultTable();
ASSERT_EQ(before - 1, res->size()) << "We expect not to see the row we deleted earlier";
}
示例2:
TEST_F(SelectTests, simple_projection_with_position) {
auto t = Loader::shortcuts::load("test/lin_xxs.tbl");
ProjectionScan gs;
gs.setProducesPositions(true);
gs.addInput(t);
gs.addField(0);
const auto& result = gs.execute()->getResultTable();
const auto& reference = Loader::shortcuts::load("test/reference/simple_projection.tbl");
ASSERT_TRUE(result->contentEquals(reference));
}
示例3:
TEST_F(ProjectionScanTests, basic_projection_scan_test) {
auto t = Loader::shortcuts::load("test/lin_xxs.tbl");
auto reference = Loader::shortcuts::load("test/reference/simple_projection.tbl");
ProjectionScan ps;
ps.addInput(t);
ps.addField(0);
ps.execute();
const auto &result = ps.getResultTable();
ASSERT_TRUE(result->contentEquals(reference));
}
示例4: ms
TEST_F(SelectTests, simple_projection_with_position_all_mat) {
auto t = Loader::shortcuts::load("test/lin_xxxs.tbl");
ProjectionScan gs;
gs.setProducesPositions(true);
gs.addInput(t);
gs.addField(0);
gs.addField(1);
auto result = gs.execute()->getResultTable();
MaterializingScan ms(false);
ms.addInput(result);
const auto& result2 = ms.execute()->getResultTable();
const auto& reference = Loader::shortcuts::load("test/lin_xxxs.tbl");
ASSERT_TRUE(result2->contentEquals(reference));
}
示例5:
TEST_F(PerformanceDataTests, single_op_data) {
storage::atable_ptr_t w = io::Loader::shortcuts::loadWithHeader("test/regression/projection_fail.data", "test/regression/projection_fail.tbl");
ProjectionScan ps;
ps.addInput(w);
ps.addField(w->numberOfColumn("w_tax"));
performance_attributes_t perf;
perf.startTime = 0;
perf.endTime = 0;
ps.setPerformanceData(&perf);
ps.execute();
ASSERT_GT(perf.startTime, 0u) << "start time should be set";
ASSERT_GT(perf.endTime, 0u) << "end time should be set";
}
示例6: getNumberOfCoresOnSystem
TEST_F(TransactionTests, parallel_writer) {
// first insert a lot in parallel
const size_t thread_count = getNumberOfCoresOnSystem();
const size_t inserts_per_thread = 1000;
std::vector<std::thread> threads;
for (size_t i = 0; i < thread_count; ++i) {
threads.push_back(std::thread(parallel_writer_thread_function, linxxxs, one_row, inserts_per_thread));
}
for (auto& thread : threads) {
thread.join();
}
// read all inserted rows and check if correct
auto readCtx = tx::TransactionManager::getInstance().buildContext();
// std::cout << "read context. cid: " << readCtx.cid << ". lastCid: " << readCtx.lastCid << ". tid: " << readCtx.tid
// << std::endl;
ProjectionScan ps;
ps.addInput(linxxxs);
ps.setTXContext(readCtx);
ps.addField(0);
ps.addField(1);
ps.execute();
ValidatePositions vp;
vp.setTXContext(readCtx);
vp.addInput(ps.getResultTable());
vp.execute();
auto res = vp.getResultTable();
auto size = res->size();
long sum = 0;
for (size_t i = 0; i < size; ++i) {
sum += res->getValue<hyrise_int_t>(0, i);
}
ASSERT_EQ(sum, (thread_count * inserts_per_thread * 99) + 8 + 6 + 400 + 200);
}
示例7:
TEST_F(MaterializingScanTests, basic_materializing_scan_test) {
auto t = io::Loader::shortcuts::load("test/lin_xxs.tbl");
auto no_p = (storage::PointerCalculator*) nullptr;
ProjectionScan ps;
ps.addInput(t);
ps.addField(0);
ps.setProducesPositions(true);
ps.execute();
const auto &t2 = ps.getResultTable();
ASSERT_NE(no_p, dynamic_cast<const storage::PointerCalculator*>(t2.get()));
MaterializingScan ms;
ms.addInput(t2);
ms.addField(0);
ms.execute();
const auto &result = ms.getResultTable();
ASSERT_EQ(no_p, dynamic_cast<const storage::PointerCalculator*>(result.get()));
ASSERT_EQ(100u, result->size());
ASSERT_EQ(1u, result->columnCount());
}