This is an automated email from the ASF dual-hosted git repository.
JingsongLi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new 30c96ae7e4 [common] Fix like optimization for escaped patterns (#9205)
30c96ae7e4 is described below
commit 30c96ae7e4e5a1f7d0fdaebb2585871b976993b9
Author: Arnav Balyan <[email protected]>
AuthorDate: Thu Aug 13 19:23:23 2026 +0530
[common] Fix like optimization for escaped patterns (#9205)
---
.../src/main/java/org/apache/paimon/predicate/LikeOptimization.java | 2 +-
.../src/test/java/org/apache/paimon/predicate/PredicateTest.java | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git
a/paimon-common/src/main/java/org/apache/paimon/predicate/LikeOptimization.java
b/paimon-common/src/main/java/org/apache/paimon/predicate/LikeOptimization.java
index b17898a40f..3856d914e6 100644
---
a/paimon-common/src/main/java/org/apache/paimon/predicate/LikeOptimization.java
+++
b/paimon-common/src/main/java/org/apache/paimon/predicate/LikeOptimization.java
@@ -45,7 +45,7 @@ public class LikeOptimization {
}
String pattern = patternLiteral.toString();
- if (pattern.contains("_")) {
+ if (pattern.indexOf('_') >= 0 || pattern.indexOf('\\') >= 0) {
return Optional.empty();
}
diff --git
a/paimon-common/src/test/java/org/apache/paimon/predicate/PredicateTest.java
b/paimon-common/src/test/java/org/apache/paimon/predicate/PredicateTest.java
index f09c263429..37be3e0b4f 100644
--- a/paimon-common/src/test/java/org/apache/paimon/predicate/PredicateTest.java
+++ b/paimon-common/src/test/java/org/apache/paimon/predicate/PredicateTest.java
@@ -580,6 +580,8 @@ public class PredicateTest {
assertThat(executeLike("abcde", "%c.e")).isEqualTo(false);
assertThat(executeLike("a-c", "a\\_c")).isEqualTo(false);
assertThat(executeLike("a_c", "a\\_c")).isEqualTo(true);
+ assertThat(Arrays.asList(executeLike("a%", "a\\%"),
executeLike("a\\anything", "a\\%")))
+ .containsExactly(true, false);
assertThat(executeLike("startX", "start%")).isEqualTo(true);
assertThat(executeLike("not_startX", "start%")).isEqualTo(false);
assertThat(executeLike("xxmiddleyy", "%middle%")).isEqualTo(true);