[ 
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)

Reply via email to