You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by na...@apache.org on 2016/09/02 23:36:09 UTC
[4/7] incubator-quickstep git commit: WIP: Add partial bulk insert
function in StorageBlock
WIP: Add partial bulk insert function in StorageBlock
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/769325cb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/769325cb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/769325cb
Branch: refs/heads/col_vec_opt
Commit: 769325cb3fe053bd8c90deea7224544720a0136b
Parents: 826990e
Author: Navneet Potti <na...@gmail.com>
Authored: Wed Aug 10 16:52:01 2016 -0500
Committer: Navneet Potti <na...@gmail.com>
Committed: Wed Aug 10 16:52:01 2016 -0500
----------------------------------------------------------------------
storage/StorageBlock.cpp | 24 ++++++++++++++++++++++++
storage/StorageBlock.hpp | 5 +++--
storage/TupleStorageSubBlock.hpp | 5 +++--
3 files changed, 30 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/769325cb/storage/StorageBlock.cpp
----------------------------------------------------------------------
diff --git a/storage/StorageBlock.cpp b/storage/StorageBlock.cpp
index 21aa12c..e618438 100644
--- a/storage/StorageBlock.cpp
+++ b/storage/StorageBlock.cpp
@@ -284,6 +284,30 @@ tuple_id StorageBlock::bulkInsertTuplesWithRemappedAttributes(
return num_inserted;
}
+tuple_id StorageBlock::bulkInsertPartialTuples(
+ const std::vector<attribute_id> &attribute_map,
+ ValueAccessor *accessor,
+ const tuple_id max_num_tuples_to_insert) {
+ const tuple_id num_inserted
+ = tuple_store_->bulkInsertPartialTuples(attribute_map,
+ accessor,
+ max_num_tuples_to_insert);
+ if (num_inserted != 0) {
+ invalidateAllIndexes();
+ dirty_ = true;
+ } else if (tuple_store_->isEmpty()) {
+ if (!accessor->iterationFinishedVirtual()) {
+ throw TupleTooLargeForBlock(0);
+ }
+ }
+ return num_inserted;
+}
+
+void StorageBlock::bulkInsertPartialTuplesFinalize(
+ const tuple_id num_tuples_inserted) {
+ tuple_store_->bulkInsertPartialTuplesFinalize(num_tuples_inserted);
+}
+
void StorageBlock::sample(const bool is_block_sample,
const int percentage,
InsertDestinationInterface *destination) const {
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/769325cb/storage/StorageBlock.hpp
----------------------------------------------------------------------
diff --git a/storage/StorageBlock.hpp b/storage/StorageBlock.hpp
index 1562f9d..f69ef78 100644
--- a/storage/StorageBlock.hpp
+++ b/storage/StorageBlock.hpp
@@ -345,7 +345,7 @@ class StorageBlock : public StorageBlockBase {
virtual tuple_id bulkInsertPartialTuples(
const std::vector<attribute_id> &attribute_map,
ValueAccessor *accessor,
- tuple_id max_num_tuples_to_insert) = 0;
+ const tuple_id max_num_tuples_to_insert);
/**
* @brief Update header after a bulkInsertPartialTuples.
@@ -357,7 +357,8 @@ class StorageBlock : public StorageBlockBase {
* advance the header.num_tuples by). Should be equal to the return
* value of bulkInsertPartialTuples.
**/
- virtual void bulkInsertPartialTuplesFinalize(tuple_id num_tuples_inserted) = 0;
+ virtual void bulkInsertPartialTuplesFinalize(
+ const tuple_id num_tuples_inserted);
/**
* @brief Perform a random sampling of data on the StorageBlock. The number
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/769325cb/storage/TupleStorageSubBlock.hpp
----------------------------------------------------------------------
diff --git a/storage/TupleStorageSubBlock.hpp b/storage/TupleStorageSubBlock.hpp
index f937080..08c76a2 100644
--- a/storage/TupleStorageSubBlock.hpp
+++ b/storage/TupleStorageSubBlock.hpp
@@ -303,7 +303,7 @@ class TupleStorageSubBlock {
virtual tuple_id bulkInsertPartialTuples(
const std::vector<attribute_id> &attribute_map,
ValueAccessor *accessor,
- tuple_id max_num_tuples_to_insert) = 0;
+ const tuple_id max_num_tuples_to_insert) = 0;
/**
* @brief Update header after a bulkInsertPartialTuples.
@@ -315,7 +315,8 @@ class TupleStorageSubBlock {
* advance the header.num_tuples by). Should be equal to the return
* value of bulkInsertPartialTuples.
**/
- virtual void bulkInsertPartialTuplesFinalize(tuple_id num_tuples_inserted) = 0;
+ virtual void bulkInsertPartialTuplesFinalize(
+ const tuple_id num_tuples_inserted) = 0;
/**
* @brief Get the (untyped) value of an attribute in a tuple in this buffer.