gszadovszky commented on pull request #808: URL: https://github.com/apache/parquet-mr/pull/808#issuecomment-668610525
Thanks a lot for the explanation. > What we need from the Parquet Schema is a place to keep the metadata. A schema definition usually has a place to do so like Avro schema, Spark Schema(StructField), but I don't find Parquet schema has it. So it could be used for other purposes. I am fine with that. I don't understand the need of ExtType, though. If it is a multipurpose metadata to be saved for any node in the schema it shall be implemented in `Type` with the proper public access methods. (Extending a class with such new functionality should not impact the already working ones.) Please note that such extension of the parquet schema will not work like the metadata in the avro schema. This way the metadata will not be serialized anywhere (or deserialized); it will impact only the parquet-mr runtime. (Because of that it might be a bit confusing comparing to the other elements of the schema.) > If there is adding or deletion of methods in Type, there will be build error so that people know to fix it. It is true for deletion only because we annotated the methods with `Override`. But it won't work if a new method is added to `Type`. As `ExtType` inherits the implementation of the new method it'll compile just fine while it should not keep this implementation of the new method but invoke the delegate's one instead. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
