hugokitano opened a new issue, #1169:
URL: https://github.com/apache/iceberg-rust/issues/1169

   ### Is your feature request related to a problem or challenge?
   
   I'm able to write parquet and metadata/manifest files with the **Glue** 
catalog, but I am not able to see the catalog update with snapshots, and 
writing subsequently to the same table makes it clear the catalog always thinks 
it's the first write. Confused about how I have to tell the catalog that I've 
committed.
   
   ```
   pub struct IcebergParquetWriteSession {
       writer: Box<dyn IcebergWriter>,
       table: Table,
       tokio_runtime: Arc<tokio::runtime::Runtime>,
       catalog: IcebergCatalog
   }
   
   pub fn commit_parquet_writes(
       mut session: IcebergParquetWriteSession
   ) -> Result<Vec<IcebergDataFile>, iceberg::Error> {
       session.tokio_runtime.block_on(async {
           let data_files = session.writer.close().await?;
           println!("Writer closed, got {} data files", data_files.len());
   
           let tx = Transaction::new(&session.table);
           println!("Transaction created for table {} at {}",
                    session.table.identifier().name(),
                    session.table.metadata().location());
   
           println!("Table current snapshot before commit: {:?}",
                    session.table.metadata().current_snapshot_id());
   
           let mut fast_append = tx.fast_append(None, vec![])?;
   
           fast_append.add_data_files(data_files.clone())?;
           println!("Added {} data files to transaction", data_files.len());
   
           println!("Applying transaction...");
           let updated_tx = fast_append.apply().await?;
           println!("Transaction applied successfully");
       
           let table_ident = session.table.identifier().clone();
           let catalog_ref = match &session.catalog {
               IcebergCatalog::Memory(mem_catalog) => {
                   let refreshed_table = 
mem_catalog.load_table(&table_ident).await?;
                   println!("Table snapshot after commit: {:?}", 
refreshed_table.metadata().current_snapshot_id());
               },
               IcebergCatalog::Glue(glue_catalog) => {
                   let refreshed_table = 
glue_catalog.load_table(&table_ident).await?;
                   println!("Table snapshot after commit: {:?}", 
refreshed_table.metadata().current_snapshot_id());
               }
           };
   
           Ok(data_files)
       })
   }
   ```
   
   I get the following output.
   ```
   Writer closed, got 1 data files
   Transaction created for table test_table_name at 
s3://chalk-staging-data/hugo-test/iceberg_warehouse/test_glue_namespace/test_table_name
   Table current snapshot before commit: None
   Added 1 data files to transaction
   Applying transaction...
   Transaction applied successfully
   Table snapshot after commit: None
   ```
   
   I would like to try 
   
   ```        
   // I tried adding the below to see if it works, but I get `Error: 
FeatureUnsupported => Updating a table is not supported yet`
           // println!("Committing transaction to catalog...");
           // match &session.catalog {
           //     IcebergCatalog::Memory(mem_catalog) => {
           //         updated_tx.commit(mem_catalog).await?;
           //     },
           //     IcebergCatalog::Glue(glue_catalog) => {
           //         updated_tx.commit(glue_catalog).await?;
           //     }
           // }
           // println!("Transaction committed successfully");
   ```
   But I get a `Error: FeatureUnsupported => Updating a table is not supported 
yet`. What's the best way to do this?
   
   ### Describe the solution you'd like
   
   _No response_
   
   ### Willingness to contribute
   
   None


-- 
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: issues-unsubscr...@iceberg.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to