Hi Iceberg Community,

Currently there is no relation between TableMetadata
<https://github.com/apache/iceberg/blob/b3273276fa4bac384b2429b7218fd18b242beefe/core/src/main/java/org/apache/iceberg/TableMetadata.java>
and ViewMetadata
<https://github.com/apache/iceberg/blob/b3273276fa4bac384b2429b7218fd18b242beefe/core/src/main/java/org/apache/iceberg/view/ViewMetadata.java>.
Which causes many duplicate codes just to use commonTable/View definitions
like Schema/MetadataLocation/Properties.

At many places we have similar methods with overloaded parameters like
TableMetadata
<https://github.com/apache/iceberg/blob/b3273276fa4bac384b2429b7218fd18b242beefe/core/src/main/java/org/apache/iceberg/TableMetadata.java>
and ViewMetadata
<https://github.com/apache/iceberg/blob/b3273276fa4bac384b2429b7218fd18b242beefe/core/src/main/java/org/apache/iceberg/view/ViewMetadata.java>.


To support purge <https://github.com/apache/iceberg/issues/9433> on view it
is difficult to traverse to the historical metadata files.

I would like to start a discussion on potential enhancement of ViewMetadata
<https://github.com/apache/iceberg/blob/b3273276fa4bac384b2429b7218fd18b242beefe/core/src/main/java/org/apache/iceberg/view/ViewMetadata.java>.


   1. An abstract class such as *IcebergMetadata* with common definition
   from TableMetadata
   
<https://github.com/apache/iceberg/blob/b3273276fa4bac384b2429b7218fd18b242beefe/core/src/main/java/org/apache/iceberg/TableMetadata.java>
   and ViewMetadata
   
<https://github.com/apache/iceberg/blob/b3273276fa4bac384b2429b7218fd18b242beefe/core/src/main/java/org/apache/iceberg/view/ViewMetadata.java>.

   2. Add something similar of MetadataLogEntry
   
<https://github.com/apache/iceberg/blob/b3273276fa4bac384b2429b7218fd18b242beefe/core/src/main/java/org/apache/iceberg/TableMetadata.java#L195>
   for ViewMetadata
   
<https://github.com/apache/iceberg/blob/b3273276fa4bac384b2429b7218fd18b242beefe/core/src/main/java/org/apache/iceberg/view/ViewMetadata.java>
   too.

Please share your thoughts.

Ref: https://github.com/apache/iceberg/pull/8907#discussion_r1441986754

Regards,
Naveen Kumar

Reply via email to