Details

    Description

      We need an interface to discover the managed table factory implementation for managed table:

      /**
       * 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);
      } 

      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;
      } 

      Attachments

        Issue Links

          Activity

            People

              lzljs3620320 Jingsong Lee
              lzljs3620320 Jingsong Lee
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: