...
The descriptors TableDescriptor/Schema
only defines the meta information (just like DDL string) used to build the CatalogTable. The implementation of TableEnvironment#createTemporaryTable(path, descriptor) will translate the descriptor into CatalogTable.
TableDescriptor
stores the meta information in the package-visible member fields/methods, e.g. schema, partitionedKeys, connectorOptions()
, so does the Schema
class.
TableEnvironmentImpl#createTemporaryTable will create a new instance of TableDescriptorRegistration
to register descriptor as a CatalogTable into catalog. It is an @Internal class located in org.apache.flink.table.descriptors.
So that TableDescriptorRegistration
can access member fields in TableDescriptor/Schema
. TableDescriptorRegistration
will convert schema
into TableSchema
(with the help of CatalogTableSchemaResolver
), and convert partitionedKeys, options, tableSchema
into CatalogTableImpl
.
TableEnvironment#from(descriptor)
will register descriptor under a system generated table path (just like TableImpl#toString
) first, and scan from the table path to get derive the Table
. Table#executeInsert Table#executeInsert()
does it in the similar way.
...