Github user sameeragarwal commented on a diff in the pull request:

    https://github.com/apache/spark/pull/13161#discussion_r66650450
  
    --- Diff: 
core/src/main/java/org/apache/spark/util/collection/unsafe/sort/UnsafeInMemorySorter.java
 ---
    @@ -206,14 +216,27 @@ public void expandPointerArray(LongArray newArray) {
        * @param recordPointer pointer to a record in a data page, encoded by 
{@link TaskMemoryManager}.
        * @param keyPrefix a user-defined key prefix
        */
    -  public void insertRecord(long recordPointer, long keyPrefix) {
    +  public void insertRecord(long recordPointer, long keyPrefix, boolean 
prefixIsNull) {
         if (!hasSpaceForAnotherRecord()) {
           throw new IllegalStateException("There is no space for new record");
         }
    -    array.set(pos, recordPointer);
    -    pos++;
    -    array.set(pos, keyPrefix);
    -    pos++;
    +    if (prefixIsNull && radixSortSupport != null) {
    +      // Swap forward a non-null record to make room for this one at the 
beginning of the array.
    +      array.set(pos, array.get(nullPos));
    --- End diff --
    
    As discussed offline, it'd be nice to explicitly test this when pos and 
nullPos are both 0 (i.e., the first element in the array is one with a null 
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