You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "zju_zsx (Jira)" <ji...@apache.org> on 2023/04/19 08:13:00 UTC

[jira] [Created] (FLINK-31848) And Operator has side effect when operands have udf

zju_zsx created FLINK-31848:
-------------------------------

             Summary: 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
         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-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}
? 



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