jamesbornholt opened a new pull request, #3058:
URL: https://github.com/apache/iceberg-python/pull/3058

   # Rationale for this change
   
   GlueCatalog.create_table() fails for S3 Tables because it tries to write 
Iceberg metadata to a warehouse-derived location before registering the table 
in Glue. S3 Tables manages storage internally, so the location is not known 
until the table exists in the service.
   
   Detect S3 Tables federated databases (FederatedDatabase.ConnectionType == 
"aws:s3tables") and use a two-phase create: first create a minimal table entry 
in Glue to have S3 Tables allocate storage, then write Iceberg metadata to the 
managed location and update the Glue table with the metadata pointer. On 
failure, clean up the table entry.
   
   This follows the same "pre-create then update" pattern used by the Java 
GlueCatalog when LakeFormation is enabled
   (GlueTableOperations.createGlueTempTableIfNecessary).
   
   ## Are these changes tested?
   
   moto doesn't mock with enough fidelity to test this directly. I've tested 
locally against both S3 Tables and vanilla Glue Iceberg and confirmed 
CreateTable still works on both paths.
   
   ## Are there any user-facing changes?
   
   No.
   
   
   
   
   


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