[
https://issues.apache.org/jira/browse/FLINK-18938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17181601#comment-17181601
]
liufangliang commented on FLINK-18938:
--------------------------------------
[~jark] The judgment method is consistent with the judgment method used in the
FactoryUtil class. Obtain a collection containing all factories according to
ClassLoader, and then filter out all connectors according to whether they
implemented from DynamicTableSourceFactory (DynamicTableSinkFactory). At this
time, it is already known whether each connector supports source (sink). The
name of the connector obtained through the factoryIdentifier() method of them ,
Combine the above information to get a complete connector tips, and it can
ensure that the tips content is exactly the same as that automatically
discovered by Flink.
> Throw better exception message for quering sink-only connector
> --------------------------------------------------------------
>
> Key: FLINK-18938
> URL: https://issues.apache.org/jira/browse/FLINK-18938
> Project: Flink
> Issue Type: Improvement
> Reporter: Jark Wu
> Priority: Major
>
> Currently, if we are quering a sink-only connector, for example: {{SELECT *
> FROM elasticsearch_sink}}, a following exception will be thrown:
> {code}
> Caused by: org.apache.flink.table.api.ValidationException: Could not find any
> factory for identifier 'elasticsearch-7' that implements
> 'org.apache.flink.table.factories.DynamicTableSourceFactory' in the classpath.
> Available factory identifiers are:
> datagen
> {code}
> The above exception is very misleading, it sounds like that the elasticsearch
> jar is not loaded, however the elasticsearch jar is in the lib directory of
> Flink cluster.
> We can improve the exception that explicitly telling users the found
> connector only support as sink, can't be used as a source.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)