lincoln-lil commented on code in PR #23478: URL: https://github.com/apache/flink/pull/23478#discussion_r1357746002
########## flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/calls/ScalarOperatorGens.scala: ########## @@ -488,6 +488,18 @@ object ScalarOperatorGens { else if (isNumeric(left.resultType) && isNumeric(right.resultType)) { generateComparison(ctx, "!=", left, right, resultType) } + // support date/time/timestamp not equalTo string. + else if ( + (isTimePoint(left.resultType) && isCharacterString(right.resultType)) || Review Comment: I'm wondering why `generateNotEquals` doesn't reuse the logic of `generateEquals` (which ends up wrapped in a `not` expression)? This is the direct cause of the current problem: the logic for data types of `generatingNotEquals` and `generatingEquals` is not aligned (In addition to the timepoint change here, the multiset and generic types are handled differently). So why don't we switch to full reuse of `generatingEquals` to eliminate these inconsistent behaviors altogether ? Because at the moment I don't see a semantic need to differentiate between equal and nonEqual handling (including three-valued logic). cc @LadyForest @libenchao because I saw your discussion in jira. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org