Skip to content

Commit bbb8ac3

Browse files
committed
Update Stats deserialization
1 parent 40a9e1c commit bbb8ac3

File tree

4 files changed

+13
-25
lines changed

4 files changed

+13
-25
lines changed

test/support/src/serialization_wrappers.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
*/
3333

3434
#include "test/support/src/helpers.h"
35+
#include "tiledb/api/c_api/context/context_api_internal.h"
3536
#include "tiledb/sm/c_api/tiledb.h"
3637
#include "tiledb/sm/c_api/tiledb_serialization.h"
3738
#include "tiledb/sm/c_api/tiledb_struct_def.h"
@@ -205,7 +206,7 @@ void tiledb_subarray_serialize(
205206
// Deserialize
206207
tiledb_subarray_t* deserialized_subarray;
207208
auto layout = (*subarray)->subarray_->layout();
208-
auto stats = (*subarray)->subarray_->stats();
209+
auto stats = ctx->storage_manager()->stats()->create_child("Subarray");
209210
shared_ptr<Logger> dummy_logger = make_shared<Logger>(HERE(), "");
210211

211212
tiledb::test::require_tiledb_ok(

tiledb/sm/serialization/query.cc

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -335,12 +335,7 @@ Subarray subarray_from_capnp(
335335
}
336336
}
337337

338-
// If cap'n proto object has stats set it on c++ object
339-
Subarray s(array, layout, parent_stats, logger, true);
340-
if (reader.hasStats()) {
341-
auto stats_data = stats_from_capnp(reader.getStats());
342-
subarray->set_stats(stats_data);
343-
}
338+
const auto& stats_data = stats_from_capnp(reader.getStats());
344339

345340
std::vector<unsigned> relevant_fragments;
346341
if (reader.hasRelevantFragments()) {
@@ -356,7 +351,8 @@ Subarray subarray_from_capnp(
356351
return {
357352
array->opened_array(),
358353
layout,
359-
reader.hasStats() ? s.stats() : parent_stats,
354+
parent_stats,
355+
stats_data,
360356
logger,
361357
range_subset,
362358
is_default,

tiledb/sm/subarray/subarray.cc

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -153,15 +153,16 @@ Subarray::Subarray(
153153
Subarray::Subarray(
154154
const shared_ptr<OpenedArray> opened_array,
155155
Layout layout,
156-
stats::Stats* stats,
156+
stats::Stats* parent_stats,
157+
const stats::StatsData& stats_data,
157158
shared_ptr<Logger> logger,
158159
std::vector<RangeSetAndSuperset> range_subset,
159160
std::vector<bool> is_default,
160161
std::vector<optional<Subarray::LabelRangeSubset>> label_range_subset,
161162
std::unordered_map<std::string, std::vector<Range>> attr_range_subset,
162163
RelevantFragments relevant_fragments,
163164
bool coalesce_ranges)
164-
: stats_(stats)
165+
: stats_(parent_stats->create_child("Subarray", stats_data))
165166
, logger_(std::move(logger))
166167
, array_(opened_array)
167168
, layout_(layout)
@@ -3103,10 +3104,6 @@ const stats::Stats& Subarray::stats() const {
31033104
return *stats_;
31043105
}
31053106

3106-
void Subarray::set_stats(const stats::StatsData& data) {
3107-
stats_->populate_with_data(data);
3108-
}
3109-
31103107
tuple<Status, optional<bool>> Subarray::non_overlapping_ranges_for_dim(
31113108
const uint64_t dim_idx) {
31123109
const auto& ranges = range_subset_[dim_idx].ranges();

tiledb/sm/subarray/subarray.h

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,8 @@ class Subarray {
330330
* if the subarray is used for reads, or of the values provided
331331
* by the user for writes).
332332
* @param parent_stats The parent stats to inherit from.
333-
* @param logger The parent logger to clone and use for logging
333+
* @param stats_data The stats data to use for the subarray.
334+
* @param logger The parent logger to clone and use for logging.
334335
* @param range_subset Vector of RangeSetAndSuperset for each dimension.
335336
* @param is_default Vector of boolean indicating if the range is default.
336337
* @param label_range_subset Vector of optional<LabelRangeSubset> for each
@@ -339,12 +340,13 @@ class Subarray {
339340
* each attribute.
340341
* @param relevant_fragments RelevantFragments object for the subarray.
341342
* @param coalesce_ranges When enabled, ranges will attempt to coalesce
342-
* with existing ranges as they are added
343+
* with existing ranges as they are added.
343344
*/
344345
Subarray(
345346
const shared_ptr<OpenedArray> opened_array,
346347
Layout layout,
347-
stats::Stats* stats,
348+
stats::Stats* parent_stats,
349+
const stats::StatsData& stats_data,
348350
shared_ptr<tiledb::common::Logger> logger,
349351
std::vector<RangeSetAndSuperset> range_subset,
350352
std::vector<bool> is_default,
@@ -1336,14 +1338,6 @@ class Subarray {
13361338
/** Returns `stats_`. */
13371339
const stats::Stats& stats() const;
13381340

1339-
/**
1340-
* Populate the owned stats instance with data.
1341-
* To be removed when the class will get a C41 constructor.
1342-
*
1343-
* @param data Data to populate the stats with.
1344-
*/
1345-
void set_stats(const stats::StatsData& data);
1346-
13471341
/** Stores a vector of 1D ranges per dimension. */
13481342
std::vector<std::vector<uint64_t>> original_range_idx_;
13491343

0 commit comments

Comments
 (0)