Github user xuchuanyin commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2829#discussion_r226546096 --- Diff: format/src/main/thrift/carbondata.thrift --- @@ -206,6 +206,7 @@ struct FileFooter3{ 4: optional list<BlockletInfo3> blocklet_info_list3; // Information about blocklets of all columns in this file for V3 format 5: optional dictionary.ColumnDictionaryChunk dictionary; // Blocklet local dictionary 6: optional bool is_sort; // True if the data is sorted in this file, it is used for compaction to decide whether to use merge sort or not + 7: optional map<string, string> extra_info; // written by is used to write who wrote the file, it can be Aplication name, or SDK etc and version in which this carbondata file is written etc --- End diff -- Since this is optional and we will set many extra information in the footer, I think we can provide a general interface to set and get this info, which means that we do not need to provide 'writtenBy' and 'setVersion' interface. Because following this pattern, the interfaces will become more and more. In my opinion, we can only provide one interface setExtraInfo/getExtraInfo and it accepts/returns a map. Moreover, this extraInfo is optional, which means you do not need to set it in all the tes tcases, you just need to focus your test case to avoid too many changes.
---