From be078e77fddbc328d986d84e3f33aa69fcbcac9d Mon Sep 17 00:00:00 2001 From: Guoliang Sun Date: Wed, 15 May 2024 21:53:14 +0800 Subject: [PATCH] AL-9703 Fix query using both = and in operators for the same value (#347) --- core/src/main/java/org/apache/calcite/rex/RexSimplify.java | 4 +++- gradle.properties | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/apache/calcite/rex/RexSimplify.java b/core/src/main/java/org/apache/calcite/rex/RexSimplify.java index 16bba487b60..2bfcafbb77a 100644 --- a/core/src/main/java/org/apache/calcite/rex/RexSimplify.java +++ b/core/src/main/java/org/apache/calcite/rex/RexSimplify.java @@ -1676,7 +1676,9 @@ private > RexNode simplifyAnd2ForUnknownAsFalse( final RexLiteral literal = comparison.literal; final RexLiteral prevLiteral = equalityConstantTerms.put(comparison.ref, literal); - if (prevLiteral != null && !literal.equals(prevLiteral)) { + // see https://olapio.atlassian.net/browse/AL-9703 + if (prevLiteral != null && !(literal.getTypeName() == prevLiteral.getTypeName() + && literal.getValue().equals(prevLiteral.getValue()))) { return rexBuilder.makeLiteral(false); } } else if (RexUtil.isReferenceOrAccess(left, true) diff --git a/gradle.properties b/gradle.properties index 309593ed7ad..5dbcf38d8fa 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,7 +27,7 @@ systemProp.org.gradle.internal.publish.checksums.insecure=true # This is version for Calcite itself # Note: it should not include "-SNAPSHOT" as it is automatically added by build.gradle.kts # Release version can be generated by using -Prelease or -Prc= arguments -calcite.version=1.30.0-kylin-4.x-r08 +calcite.version=1.30.0-kylin-4.x-r09 # This is a version to be used from Maven repository. It can be overridden by localAvatica below calcite.avatica.version=1.20.0