Github user chenghao-intel commented on a diff in the pull request:

    https://github.com/apache/spark/pull/6804#discussion_r32595832
  
    --- Diff: 
unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java ---
    @@ -125,30 +129,37 @@ public UTF8String substring(final int start, final 
int until) {
       }
     
       public boolean contains(final UTF8String substring) {
    +    if (substring == null) return false;
         final byte[] b = substring.getBytes();
         if (b.length == 0) {
           return true;
         }
     
         for (int i = 0; i <= bytes.length - b.length; i++) {
    -      // TODO: Avoid copying.
    -      if (bytes[i] == b[0] && Arrays.equals(Arrays.copyOfRange(bytes, i, i 
+ b.length), b)) {
    +      if (bytes[i] == b[0] && startsWith(b, i)) {
             return true;
           }
         }
         return false;
       }
     
    +  private boolean startsWith(final byte[] prefix, int offset) {
    --- End diff --
    
    At the first sight, I thought the `offset` is for the start point of the 
`prefix`. However, if the `offset` represents the start pos of the current 
`UTF8String.bytes` in the comparison, probably we need to change the method 
name to `contains` or something, and switch the `offset` and `prefix`.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to