@@ -107,6 +107,11 @@ struct ObjectMetadata
107107 ObjectAttributes attributes;
108108};
109109
110+
111+ struct DataFileInfo ;
112+ class DataFileMetaInfo ;
113+ using DataFileMetaInfoPtr = std::shared_ptr<DataFileMetaInfo>;
114+
110115struct DataLakeObjectMetadata ;
111116
112117struct RelativePathWithMetadata
@@ -134,19 +139,24 @@ struct RelativePathWithMetadata
134139 std::optional<ObjectMetadata> metadata;
135140 // / Delta lake related object metadata.
136141 std::optional<DataLakeObjectMetadata> data_lake_metadata;
142+ // / Information about columns
143+ std::optional<DataFileMetaInfoPtr> file_meta_info;
137144 // / Retry request after short pause
138145 CommandInTaskResponse command;
139146
140147 RelativePathWithMetadata () = default ;
141148
142- explicit RelativePathWithMetadata (const String & task_string, std::optional<ObjectMetadata> metadata_ = std::nullopt )
143- : metadata(std::move(metadata_))
144- , command(task_string)
149+ explicit RelativePathWithMetadata (String command_or_path, std::optional<ObjectMetadata> metadata_ = std::nullopt )
150+ : relative_path(std::move(command_or_path))
151+ , metadata(std::move(metadata_))
152+ , command(relative_path)
145153 {
146- if (! command.is_parsed ())
147- relative_path = task_string ;
154+ if (command.is_parsed ())
155+ relative_path = " " ;
148156 }
149157
158+ explicit RelativePathWithMetadata (const DataFileInfo & info, std::optional<ObjectMetadata> metadata_ = std::nullopt );
159+
150160 RelativePathWithMetadata (const RelativePathWithMetadata & other) = default ;
151161
152162 virtual ~RelativePathWithMetadata () = default ;
@@ -158,6 +168,9 @@ struct RelativePathWithMetadata
158168 virtual size_t fileSizeInArchive () const { throw Exception (ErrorCodes::LOGICAL_ERROR, " Not an archive" ); }
159169 virtual std::string getPathOrPathToArchiveIfArchive () const ;
160170
171+ void setFileMetaInfo (std::optional<DataFileMetaInfoPtr> file_meta_info_ ) { file_meta_info = file_meta_info_; }
172+ std::optional<DataFileMetaInfoPtr> getFileMetaInfo () const { return file_meta_info; }
173+
161174 const CommandInTaskResponse & getCommand () const { return command; }
162175};
163176
0 commit comments