GitHub user beyond1920 opened a pull request:
https://github.com/apache/flink/pull/3406
[flink-5568] [Table API & SQL]Introduce interface for catalog, and provide
an in-memory implementation. Integrate external catalog with calcite catalog
This pr aims to introduce interface for catalog, and provide an in-memory
implementation for test and develop, finally integrate external catalog with
calcite catalog.
The main change including:
1. Introduce ExternalCatalog abstraction, including introduce
ExternalCatalogDatabase as database in catalog and ExternalCatalogTable as
table in catalog.
2. Provide an in-memory implementation for test and develop.
3. Introduce ExternalCatalogSchema which is an implementation of Calcite
Schema interface. It registers database in ExternalCatalog as calcite Schemas,
and tables in a database as Calcite table.
4. Add ExternalCatalogCompatible annotation. The TableSource with this
annotation represents it could be converted to or from externalCatalogTable.
ExternalCatalogTableConverter is the converter between externalCatalogTable and
tableSource.
5. Introduce CatalogTableHelper utility. It has two responsibilities: *
automatically find the TableSources which are with ExternalCatalogCompatible
annotation. * convert an ExternalCatalogTable instance to a TableSourceTable
instance.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/alibaba/flink dev
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/flink/pull/3406.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #3406
----
commit d0e1ab20078adc4f788e9c2d2c167f0251ae3476
Author: jingzhang <[email protected]>
Date: 2017-02-22T11:28:08Z
Introduce interface for external catalog, and provide an in-memory
implementation for test or develop. Integrate with calcite catalog.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---