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]


Reply via email to