Hi everyone, I'm trying to migrate from the old set of CatalogTable related APIs (CatalogTableImpl, TableSchema, DescriptorProperties) to the new ones (CatalogBaseTable, Schema and ResolvedSchema, CatalogPropertiesUtil), in a custom catalog.
The catalog stores table definitions, and the current logic involves persisting the schema from a CatalogBaseTable to a database. When we get a table, its definition is read from the database and the CatalogTable is built up and returned. For this, we currently serialize the schema like this: descriptorProperties.putTableSchema(Schema.SCHEMA, catalogBaseTable.getSchema()); The new API seems to intentionally only allow the serialization of the Resolved version of objects (e.g. ResolvedCatalogTable, ResolvedSchema). 1. Could you please clarify why this limitation was put into place? It seems to me that it would be sufficient to resolve the CatalogTables once we are actually trying to pass the table to the DynamicTableFactory. 2. What additional information is gained during the resolution of a CatalogTable, and where does that information come from? Are there some references to things in other catalogs? 3. Is it possible to "manually" resolve a CatalogTable? (invoke something like what the internal DefaultSchemaResolver does). What context is required? Thanks, Balazs