[
https://issues.apache.org/jira/browse/FLINK-24412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
sandy du updated FLINK-24412:
-----------------------------
Description:
I can reappear this error in follow sql:
create table user_info(
name string,
age int,
primary key(name) not enforced
) whith(
'connector'='jdbc',
'url'='jdbc:mysql...',
...
'lookup.cache.max-rows'='0',
'lookup.cache.ttl'='1 s'
);
create table user_action(
name string,
app string,
dt string,
proctime as proctime()
)whith(
'connector'='kafka',
...
);
create view v_user_action as select * from(
select name,app,proctime,row_number() over(partition by name,app order by dt
desc) as rn from user_action
)t where rn=1;
create view user_out as select a.name,a.app,b.age from v_user_action a left
join user_info
for system_time as of a.proctime as b on a.name=b.name;
select * from (
select name,app,age ,row_number() over(partition by name,app order by age
desc) as rn from user_out
) t where rn=1;
*first :*
{color:#de350b} user_action got data
\{"name":"11","app":"app","dt":"2021-09-10"}{color}
{color:#de350b}user_info got data \{"name":"11","age":11}{color}
at the moment sql can successful run.
*{color:#de350b}then :{color}*
{color:#de350b}user_action got data
\{"name":"11","app":"app","dt":"2021-09-20"}{color}
{color:#de350b}user_info got data \{"name":"11","age":11}
\{"name":"11","age":22} {color}
now, TopN query on last sql, the TopN operator will thrown exception: {{Caused
by: java.lang.RuntimeException: Can not retract a non-existent record. This
should never happen.}}
was:
I can reappear this error in follow sql:
create table user_info(
name string,
age int,
primary key(name) not enforced
) whith(
'connector'='jdbc',
'url'='jdbc:mysql...',
...
'lookup.cache.max-rows'='0',
'lookup.cache.ttl'='1 s'
);
create table user_action(
name string,
app string,
dt string,
proctime as proctime()
)whith(
'connector'='kafka',
...
);
create view v_user_action as select * from(
select name,app,proctime,row_number() over(partition by name,app order by dt
desc) as rn from user_action
)t where rn=1;
create view user_out as select a.name,a.app,b.age from v_user_action a left
join user_info
for system_time as of a.proctime as b on a.name=b.name;
select * from (
select name,app,age ,row_number() over(partition by name,app order by age desc)
as rn from user_out
) t where rn=1;
first :
{color:#de350b} user_action got data
\{"name":"11","app":"app","dt":"2021-09-10"}{color}
{color:#de350b}user_info got data \{"name":"11","age":11}{color}
at the moment sql can successful run.
{color:#de350b}then user_action got data
\{"name":"11","app":"app","dt":"2021-09-20"}{color}
{color:#de350b}user_info got data \{"name":"11","age":11}
\{"name":"11","age":22} {color}
now, TopN query on last sql, the TopN operator will thrown exception: {{Caused
by: java.lang.RuntimeException: Can not retract a non-existent record. This
should never happen.}}
> retract stream join on topN error
> --------------------------------------
>
> Key: FLINK-24412
> URL: https://issues.apache.org/jira/browse/FLINK-24412
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Runtime
> Affects Versions: 1.12.3
> Reporter: sandy du
> Priority: Critical
>
> I can reappear this error in follow sql:
> create table user_info(
> name string,
> age int,
> primary key(name) not enforced
> ) whith(
> 'connector'='jdbc',
> 'url'='jdbc:mysql...',
> ...
> 'lookup.cache.max-rows'='0',
> 'lookup.cache.ttl'='1 s'
> );
> create table user_action(
> name string,
> app string,
> dt string,
> proctime as proctime()
> )whith(
> 'connector'='kafka',
> ...
> );
> create view v_user_action as select * from(
> select name,app,proctime,row_number() over(partition by name,app order by dt
> desc) as rn from user_action
> )t where rn=1;
> create view user_out as select a.name,a.app,b.age from v_user_action a left
> join user_info
> for system_time as of a.proctime as b on a.name=b.name;
> select * from (
> select name,app,age ,row_number() over(partition by name,app order by age
> desc) as rn from user_out
> ) t where rn=1;
>
> *first :*
> {color:#de350b} user_action got data
> \{"name":"11","app":"app","dt":"2021-09-10"}{color}
> {color:#de350b}user_info got data \{"name":"11","age":11}{color}
> at the moment sql can successful run.
> *{color:#de350b}then :{color}*
> {color:#de350b}user_action got data
> \{"name":"11","app":"app","dt":"2021-09-20"}{color}
> {color:#de350b}user_info got data \{"name":"11","age":11}
> \{"name":"11","age":22} {color}
> now, TopN query on last sql, the TopN operator will thrown exception:
> {{Caused by: java.lang.RuntimeException: Can not retract a non-existent
> record. This should never happen.}}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)