This is an automated email from the ASF dual-hosted git repository.

vjasani pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/master by this push:
     new 0a65109a89 PHOENIX-7585 ADDENDUM for 
BsonConditionInvalidArgumentException
0a65109a89 is described below

commit 0a65109a89eccfe736887e2e3007dabc3dac7ea6
Author: Viraj Jasani <[email protected]>
AuthorDate: Tue Jul 8 15:07:54 2025 -0700

    PHOENIX-7585 ADDENDUM for BsonConditionInvalidArgumentException
---
 .../expression/util/bson/SQLComparisonExpressionUtils.java  |  7 +++++--
 .../phoenix/util/bson/ComparisonExpressionUtilsTest.java    | 13 ++++---------
 2 files changed, 9 insertions(+), 11 deletions(-)

diff --git 
a/phoenix-core-client/src/main/java/org/apache/phoenix/expression/util/bson/SQLComparisonExpressionUtils.java
 
b/phoenix-core-client/src/main/java/org/apache/phoenix/expression/util/bson/SQLComparisonExpressionUtils.java
index 8a9ac9bd72..92c22fc6ff 100644
--- 
a/phoenix-core-client/src/main/java/org/apache/phoenix/expression/util/bson/SQLComparisonExpressionUtils.java
+++ 
b/phoenix-core-client/src/main/java/org/apache/phoenix/expression/util/bson/SQLComparisonExpressionUtils.java
@@ -555,6 +555,10 @@ public final class SQLComparisonExpressionUtils {
     if (prefixBsonValue == null) {
       return false;
     }
+    if (!prefixBsonValue.isString() && !prefixBsonValue.isBinary()) {
+      throw new BsonConditionInvalidArgumentException(
+              "begins_with function only supports String and Binary data 
types.");
+    }
     if (fieldValue.isString() && prefixBsonValue.isString()) {
       String fieldStr = ((BsonString) fieldValue).getValue();
       String prefixStr = ((BsonString) prefixBsonValue).getValue();
@@ -568,8 +572,7 @@ public final class SQLComparisonExpressionUtils {
       return IntStream.range(0, prefixBytes.length)
               .noneMatch(i -> fieldBytes[i] != prefixBytes[i]);
     } else {
-      throw new BsonConditionInvalidArgumentException(
-              "begins_with function only supports String and Binary data 
types.");
+      return false;
     }
   }
 
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/util/bson/ComparisonExpressionUtilsTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/util/bson/ComparisonExpressionUtilsTest.java
index af68fcbf97..a6eafb6be7 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/util/bson/ComparisonExpressionUtilsTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/util/bson/ComparisonExpressionUtilsTest.java
@@ -1607,17 +1607,12 @@ public class ComparisonExpressionUtilsTest {
     assertFalse(SQLComparisonExpressionUtils.evaluateConditionExpression(
             "begins_with(NonExistentField, #Title)", rawBsonDocument, 
compareValues));
 
-    try {
-      SQLComparisonExpressionUtils.evaluateConditionExpression(
-              "begins_with(Id, #Title)", rawBsonDocument, compareValues);
-      fail("Expected BsonConditionInvalidArgumentException");
-    } catch (BsonConditionInvalidArgumentException e) {
-      // expected
-    }
+    assertFalse(SQLComparisonExpressionUtils.evaluateConditionExpression(
+            "begins_with(Id, #Title)", rawBsonDocument, compareValues));
 
     try {
       SQLComparisonExpressionUtils.evaluateConditionExpression(
-              "begins_with(Title, #NestedMap1_NList1_3)", rawBsonDocument, 
compareValues);
+              "begins_with(Title, :1)", rawBsonDocument, compareValues);
       fail("Expected BsonConditionInvalidArgumentException");
     } catch (BsonConditionInvalidArgumentException e) {
       // expected
@@ -1677,7 +1672,7 @@ public class ComparisonExpressionUtilsTest {
             "  \"#NestedList1_10\" : \"1234abce\",\n" +
             "  \"$Id1\" : 120,\n" +
             "  \"$Id10\" : 101,\n" +
-            "  \":>\" : 100,\n " +
+            "  \":1\" : 100,\n " +
             "  \"$Ids1\" : \"12\",\n" +
             "  \":ISBN\" : \"111-1111111111\",\n" +
             "  \"#NestedList1_xyz0123\" : \"xyz0123\",\n" +

Reply via email to