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

lincoln lee commented on FLINK-29558:
-------------------------------------

[~godfreyhe] Could you also take a look at this when you have time? There're 
several existing cases already tested the case  which select nothing from 
source, e.g., "SELECT COUNT(1) FROM T" in 
 
`org.apache.flink.table.planner.plan.stream.sql.TableSourceTest#testProjectWithoutInputRef`
and the expected plan is:
{code}
  <TestCase name="testProjectWithoutInputRef">
    <Resource name="sql">
      <![CDATA[SELECT COUNT(1) FROM T]]>
    </Resource>
    <Resource name="ast">
      <![CDATA[
LogicalAggregate(group=[{}], EXPR$0=[COUNT()])
+- LogicalProject($f0=[0])
   +- LogicalTableScan(table=[[default_catalog, default_database, T]])
]]>
    </Resource>
    <Resource name="optimized exec plan">
      <![CDATA[
GroupAggregate(select=[COUNT(*) AS EXPR$0])
+- Exchange(distribution=[single])
   +- TableSourceScan(table=[[default_catalog, default_database, T, project=[], 
metadata=[]]], fields=[])
]]>
    </Resource>
  </TestCase>
{code}

so is there any contract that connectors should follow in such cases?

> Use select count(*) from xxx; and get SQL syntax
> ------------------------------------------------
>
>                 Key: FLINK-29558
>                 URL: https://issues.apache.org/jira/browse/FLINK-29558
>             Project: Flink
>          Issue Type: Bug
>          Components: Connectors / JDBC
>    Affects Versions: 1.15.3
>         Environment: flink 1.15.2
> CentOS Linux release 7.9.2009 (Core)
> 5.7.32-log MySQL Community Server (GPL)
>            Reporter: StarBoy1005
>            Assignee: lincoln lee
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.17.0
>
>         Attachments: image-2022-10-10-15-31-34-341.png, 
> image-2022-10-19-17-55-14-700.png, image-2022-11-03-18-16-12-127.png, 
> screenshot-1.png, screenshot-2.png
>
>
> Hi, I use flink sql to make kafka records to mysql.
> so I create these 2 tables in flink sql,here is the mysql ,and I created the 
> table in mysql before I did the insert action in flink sql.
>   CREATE TABLE mysql_MyUserTable (
>   id STRING,
>   name STRING,
>   age STRING,
>   status STRING,
>   PRIMARY KEY (id) NOT ENFORCED
> ) WITH (
>    'connector' = 'jdbc',
>    'url' = 'jdbc:mysql://10.19.29.170:3306/fromflink152',
>    'table-name' = 'users',
>    'username' = 'root',
>    'password' = '******'
> );
> In mysql, I created database "fromflink152" then created the table like this 
> way
>  CREATE TABLE `users` (
>   `id` varchar(64) NOT NULL DEFAULT '',
>   `name` varchar(255) DEFAULT NULL,
>   `age` varchar(255) DEFAULT NULL,
>   `status` varchar(255) DEFAULT NULL,
>   PRIMARY KEY (`id`)
> )  
> After executed insert sql,I found 'select * from mysql_MyUserTable' can get 
> correct result,but ’select count(\*) from mysql_MyUserTable‘  or ’select 
> count(id) from mysql_MyUserTable‘ ,the collect job in flink app keep 
> restarting again and again.The exception is:
>  !image-2022-10-10-15-31-34-341.png! 
> So I wonder which config that I missed about the table in flink or mysql side 
> :(



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

Reply via email to