Skip to content

Commit e84ee1c

Browse files
committed
Use relative paths in serialization
1 parent 4c46f59 commit e84ee1c

File tree

4 files changed

+25
-8
lines changed

4 files changed

+25
-8
lines changed

test/support/src/serialization_wrappers.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ void tiledb_subarray_serialize(
225225
void tiledb_array_consolidation_request_wrapper(
226226
tiledb_ctx_t* ctx,
227227
tiledb_serialization_type_t serialize_type,
228+
const std::string& array_uri,
228229
const std::vector<std::string>* fragment_uris_in,
229230
std::vector<std::string>* fragment_uris_out) {
230231
// Serialize and Deserialize
@@ -237,6 +238,7 @@ void tiledb_array_consolidation_request_wrapper(
237238

238239
auto [config, fragment_uris_deser] =
239240
serialization::array_consolidation_request_deserialize(
241+
array_uri,
240242
static_cast<tiledb::sm::SerializationType>(serialize_type),
241243
buffer->buffer());
242244

test/support/src/serialization_wrappers.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ void tiledb_subarray_serialize(
146146
void tiledb_array_consolidation_request_wrapper(
147147
tiledb_ctx_t* ctx,
148148
tiledb_serialization_type_t serialize_type,
149+
const std::string& array_uri,
149150
const std::vector<std::string>* fragment_uris_in,
150151
std::vector<std::string>* fragment_uris_out);
151152

tiledb/sm/serialization/consolidation.cc

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,19 @@ void array_consolidation_request_to_capnp(
9494
auto fragment_list_builder =
9595
array_consolidation_request_builder->initFragments(
9696
fragment_uris->size());
97-
for (size_t i = 0; i < fragment_uris->size(); i++) {
98-
fragment_list_builder.set(i, (*fragment_uris)[i]);
97+
size_t i = 0;
98+
for (auto& fragment_uri : *fragment_uris) {
99+
const auto& relative_fragment_uri =
100+
serialize_array_uri_to_relative(URI(fragment_uri));
101+
fragment_list_builder.set(i, relative_fragment_uri);
102+
i++;
99103
}
100104
}
101105
}
102106

103107
std::pair<Config, std::optional<std::vector<std::string>>>
104108
array_consolidation_request_from_capnp(
109+
const std::string& array_uri,
105110
const capnp::ArrayConsolidationRequest::Reader&
106111
array_consolidation_request_reader) {
107112
auto config_reader = array_consolidation_request_reader.getConfig();
@@ -113,7 +118,8 @@ array_consolidation_request_from_capnp(
113118
auto fragment_reader = array_consolidation_request_reader.getFragments();
114119
fragment_uris.reserve(fragment_reader.size());
115120
for (const auto& fragment_uri : fragment_reader) {
116-
fragment_uris.emplace_back(fragment_uri);
121+
fragment_uris.emplace_back(deserialize_array_uri_to_absolute(
122+
fragment_uri.cStr(), URI(array_uri)));
117123
}
118124

119125
return {*decoded_config, fragment_uris};
@@ -180,7 +186,9 @@ void array_consolidation_request_serialize(
180186

181187
std::pair<Config, std::optional<std::vector<std::string>>>
182188
array_consolidation_request_deserialize(
183-
SerializationType serialize_type, const Buffer& serialized_buffer) {
189+
const std::string& array_uri,
190+
SerializationType serialize_type,
191+
const Buffer& serialized_buffer) {
184192
try {
185193
switch (serialize_type) {
186194
case SerializationType::JSON: {
@@ -196,7 +204,7 @@ array_consolidation_request_deserialize(
196204
array_consolidation_request_reader =
197205
array_consolidation_request_builder.asReader();
198206
return array_consolidation_request_from_capnp(
199-
array_consolidation_request_reader);
207+
array_uri, array_consolidation_request_reader);
200208
break;
201209
}
202210
case SerializationType::CAPNP: {
@@ -209,7 +217,7 @@ array_consolidation_request_deserialize(
209217
array_consolidation_request_reader =
210218
reader.getRoot<capnp::ArrayConsolidationRequest>();
211219
return array_consolidation_request_from_capnp(
212-
array_consolidation_request_reader);
220+
array_uri, array_consolidation_request_reader);
213221
break;
214222
}
215223
default: {
@@ -472,7 +480,8 @@ void array_consolidation_request_serialize(
472480
}
473481

474482
std::pair<Config, std::optional<std::vector<std::string>>>
475-
array_consolidation_request_deserialize(SerializationType, const Buffer&) {
483+
array_consolidation_request_deserialize(
484+
const std::string&, SerializationType, const Buffer&) {
476485
throw ConsolidationSerializationDisabledException();
477486
}
478487

tiledb/sm/serialization/consolidation.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,14 @@ namespace serialization {
5757
/**
5858
* Convert Cap'n Proto message to Consolidation request
5959
*
60+
* @param array_uri URI of the array
6061
* @param consolidation_req_reader cap'n proto class.
6162
* @return {config, fragment_uris} config object to deserialize into, and the
6263
* uris of the fragments to be consolidated if any
6364
*/
6465
std::pair<Config, std::optional<std::vector<std::string>>>
6566
array_consolidation_request_from_capnp(
67+
const std::string& array_uri,
6668
const capnp::ArrayConsolidationRequest::Reader& consolidation_req_reader);
6769

6870
/**
@@ -97,14 +99,17 @@ void array_consolidation_request_serialize(
9799
/**
98100
* Deserialize consolidation request via Cap'n Proto
99101
*
102+
* @param array_uri URI of the array
100103
* @param serialize_type format the data is serialized in: Cap'n Proto of JSON.
101104
* @param serialized_buffer buffer to read serialized bytes from.
102105
* @return {config, fragment_uris} config object to deserialize into, and the
103106
* uris of the fragments to be consolidated if any
104107
*/
105108
std::pair<Config, std::optional<std::vector<std::string>>>
106109
array_consolidation_request_deserialize(
107-
SerializationType serialize_type, const Buffer& serialized_buffer);
110+
const std::string& array_uri,
111+
SerializationType serialize_type,
112+
const Buffer& serialized_buffer);
108113

109114
/**
110115
* Serialize a consolidation plan request via Cap'n Proto.

0 commit comments

Comments
 (0)