### Question In `test_base.py` the Table Identifier, `TEST_TABLE_IDENTIFIER`, is a tuple of 4 elements ``` TEST_TABLE_IDENTIFIER = ("com", "organization", "department", "my_table") ``` In most other places, the Table identifier is either a tuple of 2 elements `(database_name, table_name)` or a string with 2 parts, `database_name.table_name`. See [more examples](https://github.com/search?q=repo%3Aapache%2Ficeberg-python+%22identifier+%3D%22+path%3A%2F%5Etests%5C%2F%2F&type=code) In #289, I wanted to implement the `location` for in-memory catalog the [same way as other catalog implementations](https://github.com/search?q=repo%3Aapache%2Ficeberg-python+%22location+%3D+self._resolve_table_location%28location%2C+database_name%2C+table_name%29%22&type=code), by using the `_resolve_table_location` function. ``` location = self._resolve_table_location(location, database_name, table_name) ``` However, due to the Table Identifier being a 4-element tuple, I cannot parse the database name using `identifier_to_database_and_table` ``` database_name, table_name = self.identifier_to_database_and_table(identifier) ``` **What is the proper spec of Table Identifier? And what part of it represents the `database_name`?** In Java implementation, [`TableIdentifier`](https://github.com/apache/iceberg/blob/9de693f1e7f46024f47cdc971d8603fd76d87705/api/src/main/java/org/apache/iceberg/catalog/TableIdentifier.java#L28) is made up of two parts, the `namespace` and the `name`, where [`Namespace`](https://github.com/apache/iceberg/blob/9de693f1e7f46024f47cdc971d8603fd76d87705/api/src/main/java/org/apache/iceberg/catalog/Namespace.java) is a list of string.