You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Bowen Li (JIRA)" <ji...@apache.org> on 2019/06/13 23:17:00 UTC

[jira] [Created] (FLINK-12841) Unify catalog meta-objects implementations and remove their interfaces

Bowen Li created FLINK-12841:
--------------------------------

             Summary: Unify catalog meta-objects implementations and remove their interfaces
                 Key: FLINK-12841
                 URL: https://issues.apache.org/jira/browse/FLINK-12841
             Project: Flink
          Issue Type: Sub-task
          Components: Connectors / Hive, Table SQL / API
    Affects Versions: 1.9.0
            Reporter: Bowen Li
            Assignee: Bowen Li
             Fix For: 1.9.0


We've been evaluating the original design in FLIP-30 that proposed creating catalog meta object interfaces and individual impl of those interfaces in each catalog. Interfaces we have so far are: {{CatalogDatabase}}, {{CatalogTable}}, {{CatalogView}}, {{CatalogPartition}}, {{CatalogFunction}}, and e.g. for {{CatalogTable}} interface, we have impls of {{GenericCatalogTable}} and {{HiveCatalogTable}}, etc.

Well, we have gone pretty far on FLIP-30 now. When we look back and re-evaluate this design, we actually found there are not many differences between, e.g. {{GenericCatalogTable}} and {{HiveCatalogTable}}. And having this class hierarchy complicates situations and development. On the other side in Blink, we don't have this hierarchy and have been just using a single meta-object class (e.g. just {{CatalogTable}}) to represent data in different catalogs, it has been fine without any problem and all the difference among catalogs can be stored as properties.

Thus we propose removing the inheritance hierarchy and impl of the meta-object interfaces for each individual catalog. To be more specific, take table classes for example, we will replace {{CatalogTable}} with existing {{AbstractCatalogTable}}, and remove {{GenericCatalogTable}} and {{HiveCatalogTable}}.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)