[ https://issues.apache.org/jira/browse/FLINK-25174?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jingsong Lee updated FLINK-25174: --------------------------------- Description: We need an interface to discover the managed table factory implementation for managed table: {code:java} /** * Base interface for configuring a managed dynamic table connector. The managed table factory is * used when there is no {@link FactoryUtil#CONNECTOR} option. */ @Internal public interface ManagedTableFactory extends DynamicTableFactory { @Override default String factoryIdentifier() { return ""; } /** * Enrich options from catalog and session information. * * @return new options of this table. */ Map<String, String> enrichOptions(Context context); /** Notifies the listener that a table creation occurred. */ void onCreateTable(Context context); /** Notifies the listener that a table drop occurred. */ void onDropTable(Context context); } {code} A catalog that supports built-in dynamic table needs to implement the method in the Catalog (The GenericInMemoryCatalog and HiveCatalog will implement this method): {code:java} /** * If return true, the Table without specified connector will be translated to the Flink managed table. * See {@link CatalogBaseTable.TableKind#MANAGED} */ default boolean supportsManagedTable { return false; } {code} was: We need an interface to discover the managed table factory implementation for managed table: {code:java} /** * Base interface for configuring a managed dynamic table connector. The managed table factory is * used when there is no {@link FactoryUtil#CONNECTOR} option. */ @Internal public interface ManagedTableFactory extends DynamicTableFactory { @Override default String factoryIdentifier() { return ""; } /** * Enrich options from catalog and session information. * * @return new options of this table. */ Map<String, String> enrichOptions(Context context); /** Notifies the listener that a table creation occurred. */ void onCreateTable(Context context); /** Notifies the listener that a table drop occurred. */ void onDropTable(Context context); } {code} A catalog that supports built-in dynamic table needs to implement the method in the Catalog (The GenericInMemoryCatalog and HiveCatalog will implement this method): {{/**}} {{ }}{{* If return true, the Table without specified connector will be translated to the Flink managed table.}} {{ }}{{{}* See {@link CatalogBaseTable.TableKind#MANAGED{}}}} {{ }}{{*/}} {{default}} {{boolean}} {{supportsManagedTable {}} {{ }}{{return}} {{{}false{}}}{{{};{}}} {{}}} {{}} > Introduce ManagedTableFactory > ----------------------------- > > Key: FLINK-25174 > URL: https://issues.apache.org/jira/browse/FLINK-25174 > Project: Flink > Issue Type: Sub-task > Components: Table SQL / API > Reporter: Jingsong Lee > Priority: Major > Fix For: 1.15.0 > > > We need an interface to discover the managed table factory implementation for > managed table: > {code:java} > /** > * Base interface for configuring a managed dynamic table connector. The > managed table factory is > * used when there is no {@link FactoryUtil#CONNECTOR} option. > */ > @Internal > public interface ManagedTableFactory extends DynamicTableFactory { > > @Override > default String factoryIdentifier() { > return ""; > } > > /** > * Enrich options from catalog and session information. > * > * @return new options of this table. > */ > Map<String, String> enrichOptions(Context context); > > /** Notifies the listener that a table creation occurred. */ > void onCreateTable(Context context); > > /** Notifies the listener that a table drop occurred. */ > void onDropTable(Context context); > } {code} > A catalog that supports built-in dynamic table needs to implement the method > in the Catalog (The GenericInMemoryCatalog and HiveCatalog will implement > this method): > {code:java} > /** > * If return true, the Table without specified connector will be translated > to the Flink managed table. > * See {@link CatalogBaseTable.TableKind#MANAGED} > */ > default boolean supportsManagedTable { > return false; > } {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)