@@ -58,13 +58,20 @@ ManifestContent ManifestWriter::content() const { return adapter_->content(); }
5858Result<std::unique_ptr<Writer>> OpenFileWriter (
5959 std::string_view location, std::shared_ptr<Schema> schema,
6060 std::shared_ptr<FileIO> file_io,
61- std::unordered_map<std::string, std::string> properties) {
62- ICEBERG_ASSIGN_OR_RAISE (
63- auto writer, WriterFactoryRegistry::Open (FileFormatType::kAvro ,
64- {.path = std::string (location),
65- .schema = std::move (schema),
66- .io = std::move (file_io),
67- .properties = std::move (properties)}));
61+ std::unordered_map<std::string, std::string> metadata, std::string_view schema_name) {
62+ auto writer_properties = WriterProperties::default_properties ();
63+ if (!schema_name.empty ()) {
64+ writer_properties->Set (WriterProperties::kAvroSchemaName , std::string (schema_name));
65+ }
66+ ICEBERG_ASSIGN_OR_RAISE (auto writer, WriterFactoryRegistry::Open (
67+ FileFormatType::kAvro ,
68+ {
69+ .path = std::string (location),
70+ .schema = std::move (schema),
71+ .io = std::move (file_io),
72+ .metadata = std::move (metadata),
73+ .properties = std::move (writer_properties),
74+ }));
6875 return writer;
6976}
7077
@@ -91,9 +98,10 @@ Result<std::unique_ptr<ManifestWriter>> ManifestWriter::MakeV1Writer(
9198 ICEBERG_RETURN_UNEXPECTED (adapter->StartAppending ());
9299
93100 auto schema = adapter->schema ();
94- ICEBERG_ASSIGN_OR_RAISE (auto writer,
95- OpenFileWriter (manifest_location, std::move (schema),
96- std::move (file_io), adapter->metadata ()));
101+ ICEBERG_ASSIGN_OR_RAISE (
102+ auto writer,
103+ OpenFileWriter (manifest_location, std::move (schema), std::move (file_io),
104+ adapter->metadata (), " manifest_entry" ));
97105 return std::make_unique<ManifestWriter>(std::move (writer), std::move (adapter));
98106}
99107
@@ -119,9 +127,10 @@ Result<std::unique_ptr<ManifestWriter>> ManifestWriter::MakeV2Writer(
119127 ICEBERG_RETURN_UNEXPECTED (adapter->StartAppending ());
120128
121129 auto schema = adapter->schema ();
122- ICEBERG_ASSIGN_OR_RAISE (auto writer,
123- OpenFileWriter (manifest_location, std::move (schema),
124- std::move (file_io), adapter->metadata ()));
130+ ICEBERG_ASSIGN_OR_RAISE (
131+ auto writer,
132+ OpenFileWriter (manifest_location, std::move (schema), std::move (file_io),
133+ adapter->metadata (), " manifest_entry" ));
125134 return std::make_unique<ManifestWriter>(std::move (writer), std::move (adapter));
126135}
127136
@@ -149,9 +158,10 @@ Result<std::unique_ptr<ManifestWriter>> ManifestWriter::MakeV3Writer(
149158 ICEBERG_RETURN_UNEXPECTED (adapter->StartAppending ());
150159
151160 auto schema = adapter->schema ();
152- ICEBERG_ASSIGN_OR_RAISE (auto writer,
153- OpenFileWriter (manifest_location, std::move (schema),
154- std::move (file_io), adapter->metadata ()));
161+ ICEBERG_ASSIGN_OR_RAISE (
162+ auto writer,
163+ OpenFileWriter (manifest_location, std::move (schema), std::move (file_io),
164+ adapter->metadata (), " manifest_entry" ));
155165 return std::make_unique<ManifestWriter>(std::move (writer), std::move (adapter));
156166}
157167
@@ -191,9 +201,10 @@ Result<std::unique_ptr<ManifestListWriter>> ManifestListWriter::MakeV1Writer(
191201 ICEBERG_RETURN_UNEXPECTED (adapter->StartAppending ());
192202
193203 auto schema = adapter->schema ();
194- ICEBERG_ASSIGN_OR_RAISE (auto writer,
195- OpenFileWriter (manifest_list_location, std::move (schema),
196- std::move (file_io), adapter->metadata ()));
204+ ICEBERG_ASSIGN_OR_RAISE (
205+ auto writer,
206+ OpenFileWriter (manifest_list_location, std::move (schema), std::move (file_io),
207+ adapter->metadata (), " manifest_file" ));
197208 return std::make_unique<ManifestListWriter>(std::move (writer), std::move (adapter));
198209}
199210
@@ -207,9 +218,10 @@ Result<std::unique_ptr<ManifestListWriter>> ManifestListWriter::MakeV2Writer(
207218 ICEBERG_RETURN_UNEXPECTED (adapter->StartAppending ());
208219
209220 auto schema = adapter->schema ();
210- ICEBERG_ASSIGN_OR_RAISE (auto writer,
211- OpenFileWriter (manifest_list_location, std::move (schema),
212- std::move (file_io), adapter->metadata ()));
221+ ICEBERG_ASSIGN_OR_RAISE (
222+ auto writer,
223+ OpenFileWriter (manifest_list_location, std::move (schema), std::move (file_io),
224+ adapter->metadata (), " manifest_file" ));
213225
214226 return std::make_unique<ManifestListWriter>(std::move (writer), std::move (adapter));
215227}
@@ -224,9 +236,10 @@ Result<std::unique_ptr<ManifestListWriter>> ManifestListWriter::MakeV3Writer(
224236 ICEBERG_RETURN_UNEXPECTED (adapter->StartAppending ());
225237
226238 auto schema = adapter->schema ();
227- ICEBERG_ASSIGN_OR_RAISE (auto writer,
228- OpenFileWriter (manifest_list_location, std::move (schema),
229- std::move (file_io), adapter->metadata ()));
239+ ICEBERG_ASSIGN_OR_RAISE (
240+ auto writer,
241+ OpenFileWriter (manifest_list_location, std::move (schema), std::move (file_io),
242+ adapter->metadata (), " manifest_file" ));
230243 return std::make_unique<ManifestListWriter>(std::move (writer), std::move (adapter));
231244}
232245
0 commit comments