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)