@@ -354,7 +354,10 @@ def _identifier_to_validated_tuple(self, identifier: Union[str, Identifier]) ->
354354
355355 def _split_identifier_for_path (self , identifier : Union [str , Identifier , TableIdentifier ]) -> Properties :
356356 if isinstance (identifier , TableIdentifier ):
357- return {"namespace" : NAMESPACE_SEPARATOR .join (identifier .namespace .root [1 :]), "table" : identifier .name }
357+ if identifier .namespace .root [0 ] == self .name :
358+ return {"namespace" : NAMESPACE_SEPARATOR .join (identifier .namespace .root [1 :]), "table" : identifier .name }
359+ else :
360+ return {"namespace" : NAMESPACE_SEPARATOR .join (identifier .namespace .root ), "table" : identifier .name }
358361 identifier_tuple = self ._identifier_to_validated_tuple (identifier )
359362 return {"namespace" : NAMESPACE_SEPARATOR .join (identifier_tuple [:- 1 ]), "table" : identifier_tuple [- 1 ]}
360363
@@ -675,6 +678,17 @@ def rename_table(self, from_identifier: Union[str, Identifier], to_identifier: U
675678
676679 return self .load_table (to_identifier )
677680
681+ def _remove_catalog_name_from_table_request_identifier (self , table_request : CommitTableRequest ) -> CommitTableRequest :
682+ if table_request .identifier .namespace .root [0 ] == self .name :
683+ return table_request .model_copy (
684+ update = {
685+ "identifier" : TableIdentifier (
686+ namespace = table_request .identifier .namespace .root [1 :], name = table_request .identifier .name
687+ ).model_dump ()
688+ }
689+ )
690+ return table_request
691+
678692 @retry (** _RETRY_ARGS )
679693 def _commit_table (self , table_request : CommitTableRequest ) -> CommitTableResponse :
680694 """Update the table.
@@ -692,7 +706,7 @@ def _commit_table(self, table_request: CommitTableRequest) -> CommitTableRespons
692706 """
693707 response = self ._session .post (
694708 self .url (Endpoints .update_table , prefixed = True , ** self ._split_identifier_for_path (table_request .identifier )),
695- data = table_request .model_dump_json ().encode (UTF8 ),
709+ data = self . _remove_catalog_name_from_table_request_identifier ( table_request ) .model_dump_json ().encode (UTF8 ),
696710 )
697711 try :
698712 response .raise_for_status ()
0 commit comments