1056 CHECK(!result_sets.empty());
1057 auto result_rs = result_sets.front();
1058 CHECK(result_rs->storage_);
1059 auto& first_result = *result_rs->storage_;
1060 auto result = &first_result;
1061 const auto row_set_mem_owner = result_rs->row_set_mem_owner_;
1062 for (
const auto result_set : result_sets) {
1063 CHECK_EQ(row_set_mem_owner, result_set->row_set_mem_owner_);
1065 if (first_result.query_mem_desc_.getQueryDescriptionType() ==
1067 const auto total_entry_count =
1071 [](
const size_t init,
const ResultSet* rs) {
1072 return init + rs->query_mem_desc_.getEntryCount();
1074 CHECK(total_entry_count);
1077 rs_.reset(
new ResultSet(first_result.targets_,
1083 auto result_storage =
rs_->allocateStorage(first_result.target_init_vals_);
1084 rs_->initializeStorage();
1087 first_result.moveEntriesToBuffer<int32_t>(result_storage->getUnderlyingBuffer(),
1091 first_result.moveEntriesToBuffer<int64_t>(result_storage->getUnderlyingBuffer(),
1098 result_rs =
rs_.get();
1101 auto& serialized_varlen_buffer = result_sets.front()->serialized_varlen_buffer_;
1102 if (!serialized_varlen_buffer.empty()) {
1103 result->rewriteAggregateBufferOffsets(serialized_varlen_buffer.front());
1104 for (
auto result_it = result_sets.begin() + 1; result_it != result_sets.end();
1106 auto& result_serialized_varlen_buffer = (*result_it)->serialized_varlen_buffer_;
1107 CHECK_EQ(result_serialized_varlen_buffer.size(), size_t(1));
1108 serialized_varlen_buffer.emplace_back(
1109 std::move(result_serialized_varlen_buffer.front()));
1114 result_rs->getTargetInfos(),
1115 result_rs->getTargetInitVals(),
1117 auto reduction_code = reduction_jit.
codegen();
1119 for (
auto result_it = result_sets.begin() + 1; result_it != result_sets.end();
1121 if (!serialized_varlen_buffer.empty()) {
1122 result->reduce(*((*result_it)->storage_),
1123 serialized_varlen_buffer[ctr++],
1127 result->reduce(*((*result_it)->storage_), {}, reduction_code, executor_id);
std::shared_ptr< ResultSet > rs_
void init(LogOptions const &log_opts)
DEVICE auto accumulate(ARGS &&...args)
virtual ReductionCode codegen() const