pvary opened a new pull request, #9735:
URL: https://github.com/apache/iceberg/pull/9735

   Currently it is not possible to create metadata tables above serialized 
tables. This could be useful as a general feature, and specifically it is 
needed if we want to create Flink jobs to run table maintenance tasks, and we 
want this tasks to run consistently on a specific table snapshot.
   
   Also theoretically this should be possible as the serialzed table points to 
the state of the given table at a specific snapshot, and only the missing 
implementation prevents us to query metadata for this given snapshot.
   
   Tried 3 approaches:
   1. Created a new interface `HasTableMetadata` which could return the current 
`TableMetadata` for a given table. - `HasTableOperations` is often used in 
places where only the `TableMetadata` is needed, and having a different 
interface should separate the cases where we only want to use the 
`TableMetadata` form the cases where we want to execute `TableOperations`.
   2. Created a new extended interface with `TableWithTableMetadata` - We do 
not need `instanceof` checks to use this interface, we might even add this to 
the main `Table` interface, as every table should have a `TableMetadata`. OTOH 
exposing the current `TableMetadata` could be questionable, as it could make it 
hard to change this interface later.
   3. Made `SerializableTable` to implement `HasTableOperations` - Only minimal 
changes needed for this one
   
   In this PR I have opted for the 3rd approach, but if the community wants, I 
can implement one of the other options too.


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to