Skip to content

Commit 8152203

Browse files
committed
fix empty datacube calculation
1 parent 8331adc commit 8152203

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

src/dataframe/old/datatable.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ SeriesIndex::SeriesIndex(std::string const &str,
120120

121121
DataCube::iterator_t DataCube::begin() const
122122
{
123-
if (df->get_record_count() == 0) return {};
123+
if (!has_element) return {};
124124
iterator_t res{this,
125125
{},
126126
{{}, std::vector<std::size_t>(dim_reindex.size())}};
@@ -201,13 +201,14 @@ DataCube::DataCube(const DataTable &table,
201201
}
202202

203203
df->finalize();
204+
has_element = true;
204205
for (std::size_t ix{}; const auto &dim : dimensions) {
205206
auto &&dimName = dim.getColIndex();
206207
auto &&cats = table.getDf().get_categories(dimName);
207-
dim_reindex.push_back(DimensionInfo{dimName,
208-
cats,
209-
cats.size() + df->has_na(dimName),
210-
ix++});
208+
auto &&size = cats.size() + df->has_na(dimName);
209+
dim_reindex.push_back(
210+
DimensionInfo{dimName, cats, size, ix++});
211+
has_element &= size > 0;
211212
}
212213

213214
auto stackInhibitingShape =

src/dataframe/old/datatable.h

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ class DataCube
8484
}
8585
};
8686
Type::UniqueList<DimensionInfo> dim_reindex;
87+
bool has_element{};
8788

8889
std::map<Gen::ChannelId,
8990
std::shared_ptr<dataframe::dataframe_interface>>

0 commit comments

Comments
 (0)