Skip to content

Commit 7c1aa3d

Browse files
author
nullccxsy
committed
fix review
1 parent 6948a29 commit 7c1aa3d

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

src/iceberg/avro/avro_reader.cc

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,17 +175,20 @@ class AvroReader::Impl {
175175

176176
Result<std::unordered_map<std::string, std::string>> Metadata() {
177177
if (reader_ == nullptr) {
178-
return InvalidArgument("Reader is not opened");
178+
return Invalid("Reader is not opened");
179179
}
180180

181-
auto metadata = reader_->metadata();
181+
const auto& metadata = reader_->metadata();
182182

183183
std::unordered_map<std::string, std::string> metadata_map;
184184
metadata_map.reserve(metadata.size());
185185

186186
for (const auto& pair : metadata) {
187-
metadata_map.try_emplace(pair.first,
188-
std::string(pair.second.begin(), pair.second.end()));
187+
auto [it, inserted] = metadata_map.try_emplace(
188+
pair.first, std::string(pair.second.begin(), pair.second.end()));
189+
if (!inserted) {
190+
return Invalid("Duplicate metadata key found: {}", pair.first);
191+
}
189192
}
190193

191194
return metadata_map;

src/iceberg/parquet/parquet_reader.cc

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,15 +188,15 @@ class ParquetReader::Impl {
188188

189189
Result<std::unordered_map<std::string, std::string>> Metadata() {
190190
if (reader_ == nullptr) {
191-
return InvalidArgument("Reader is not opened");
191+
return Invalid("Reader is not opened");
192192
}
193193

194194
auto metadata = reader_->parquet_reader()->metadata();
195195
if (!metadata) {
196-
return InvalidArgument("Failed to get Parquet file metadata");
196+
return Invalid("Failed to get Parquet file metadata");
197197
}
198198

199-
auto kv_metadata = metadata->key_value_metadata();
199+
const auto& kv_metadata = metadata->key_value_metadata();
200200
if (!kv_metadata) {
201201
return std::unordered_map<std::string, std::string>{};
202202
}
@@ -205,7 +205,11 @@ class ParquetReader::Impl {
205205
metadata_map.reserve(kv_metadata->size());
206206

207207
for (int i = 0; i < kv_metadata->size(); ++i) {
208-
metadata_map.try_emplace(kv_metadata->key(i), kv_metadata->value(i));
208+
auto [it, inserted] =
209+
metadata_map.try_emplace(kv_metadata->key(i), kv_metadata->value(i));
210+
if (!inserted) {
211+
return Invalid("Duplicate metadata key found: {}", kv_metadata->key(i));
212+
}
209213
}
210214

211215
return metadata_map;

0 commit comments

Comments
 (0)