[ 
https://issues.apache.org/jira/browse/FLINK-32188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17729665#comment-17729665
 ] 

Xin Chen commented on FLINK-32188:
----------------------------------

To make a summary, when submitting an SQL task with Flink to test a customized 
data source connector, I specified to query an array-type field of a temporary 
table with a fixed-value array. For example, "select * from image-source where 
URL=ARRAY ['/flink. jpg', '/flink_1. jpg']", but it couldn't obtain the 
corresponding predicate filters at all in the connector's 
DynamicTableSource.applyFilters method. The change related to 
"RexNodeExtractor.scala"  can fix it.

By the way, linked to https://issues.apache.org/jira/browse/CALCITE-5733. 
Simplification seem to not take into account that the specified field is of 
array type. In other words,it can simplify "a = 1 AND a = 2" to "false",but can 
not simplify “a = [1,2] AND a = [2,3]” to "false". For example, "select * from 
image-source where URL=ARRAY ['/flink. jpg', '/flink_1. jpg'] AND URL=ARRAY 
['/f. jpg', '/f_1. jpg']" can obtain two predicate conditions, this is 
illogical. Generally speaking, simplifying this SQL condition should not result 
in any predicates. Changes related to “RexSimplify.java” can fix it.

> Does the custom connector not support pushing down "where" query predicates 
> to query fields of array type?
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-32188
>                 URL: https://issues.apache.org/jira/browse/FLINK-32188
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / Planner
>    Affects Versions: 1.12.2, 1.17.0, 1.16.1
>            Reporter: Xin Chen
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: image-2023-05-25-17-16-02-288.png, 
> image-2023-05-25-20-44-08-834.png, image-2023-05-25-20-44-47-581.png, 
> image-2023-06-06-16-50-10-805.png, image-2023-06-06-16-50-54-467.png, 
> screenshot-1.png, screenshot-10.png, screenshot-11.png, screenshot-12.png, 
> screenshot-2.png, screenshot-3.png, screenshot-4.png, screenshot-5.png, 
> screenshot-6.png, screenshot-7.png, screenshot-8.png, screenshot-9.png
>
>
> When I customized a data source connector which assumed as image-connector, I 
> met issues while creating a table with ddl to specify a field "URL" as an 
> array type. When submitting an SQL task with Flink, I specified query of this 
> field with a fixed array. For example, "select * from image source where 
> URL=ARRAY ['/flink. jpg', '/flink_1. jpg']", but it couldn't obtain the 
> corresponding predicate filters at all.
> Does the custom connector not support  to query fields of array type with 
> "where"?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to