You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "zju_zsx (Jira)" <ji...@apache.org> on 2023/04/19 08:14:00 UTC
[jira] [Updated] (FLINK-31848) And Operator has side effect when operands have udf
[ https://issues.apache.org/jira/browse/FLINK-31848?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
zju_zsx updated FLINK-31848:
----------------------------
Description:
{code:java}
CREATE TABLE kafka_source (
`content` varchar,
`testid` bigint,
`extra` int
);
CREATE TABLE console_sink (
`content` varchar,
`testid` bigint
)
with (
'connector' = 'print'
);
insert into console_sink
select
content,testid+1
from kafka_source where testid is not null and testid > 0 and my_udf(testid) != 0; {code}
my_udf has a constraint that the testid should not be null。
But in ScalarOperatorGens.generateAnd
!image-2023-04-19-14-54-46-458.png!
if left.nullTerm is true, right code will be execute 。
it seems that
{code:java}
if (!${left.nullTerm} && !${left.resultTerm}) {code}
can be safely replaced with
{code:java}
if (!${left.resultTerm}){code}
?
was:
{code:java}
CREATE TABLE kafka_source (
`content` varchar,
`testid` bigint,
`extra` int
);
CREATE TABLE console_sink (
`content` varchar,
`testid` bigint
)
with (
'connector' = 'print'
);
insert into console_sink
select
content,testid+1
from kafka_source where testid is not null and testid > 0 and my_udf(testid) != 0; {code}
my_udf has a constraint that the testid should not be null。
But in ScalarOperatorGens.generateAnd
!image-2023-04-19-14-55-36-506.png!
if left.nullTerm is true, right code will be execute 。
it seems that
{code:java}
if (!${left.nullTerm} && !${left.resultTerm}) {code}
can be safely replaced with
{code:java}
if (!${left.resultTerm}){code}
?
> And Operator has side effect when operands have udf
> ---------------------------------------------------
>
> Key: FLINK-31848
> URL: https://issues.apache.org/jira/browse/FLINK-31848
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Affects Versions: 1.13.2
> Reporter: zju_zsx
> Priority: Major
> Attachments: image-2023-04-19-14-54-46-458.png
>
>
>
> {code:java}
> CREATE TABLE kafka_source (
> `content` varchar,
> `testid` bigint,
> `extra` int
> );
> CREATE TABLE console_sink (
> `content` varchar,
> `testid` bigint
> )
> with (
> 'connector' = 'print'
> );
> insert into console_sink
> select
> content,testid+1
> from kafka_source where testid is not null and testid > 0 and my_udf(testid) != 0; {code}
> my_udf has a constraint that the testid should not be null。
>
> But in ScalarOperatorGens.generateAnd
> !image-2023-04-19-14-54-46-458.png!
> if left.nullTerm is true, right code will be execute 。
> it seems that
> {code:java}
> if (!${left.nullTerm} && !${left.resultTerm}) {code}
> can be safely replaced with
> {code:java}
> if (!${left.resultTerm}){code}
> ?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)