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