diff --git a/CHANGELOG.md b/CHANGELOG.md index a1ae1260645..9aeea60a36f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,11 +23,13 @@ - PR #5309 Handle host frames in serialization - PR #5312 Test serializing `Series` after `slice` - PR #5248 Support interleave_columns for string types +- PR #5386 Remove `cub` from `include_dirs` in `setup.py` - PR #5373 Remove legacy nvstrings/nvcategory/nvtext - PR #5362 Remove dependency on `rmm._DevicePointer` - PR #5302 Add missing comparison operators to `fixed_point` type - PR #5354 Split Dask deserialization methods by dask/cuda - PR #5363 Handle `0-dim` inputs while broadcasting to a column +- PR #5389 Expose typed accessors for Java HostMemoryBuffer - PR #5379 Avoid chaining `Buffer`s ## Bug Fixes @@ -48,6 +50,7 @@ - PR #5326 Fix `DataFrame.__init__` for list of scalar inputs and related dask issue - PR #5383 Fix cython `type_id` enum mismatch - PR #5382 Fix CategoricalDtype equality comparisons +- PR #5390 Fix Java data type IDs and string interleave test # cuDF 0.14.0 (Date TBD) diff --git a/java/src/main/java/ai/rapids/cudf/DType.java b/java/src/main/java/ai/rapids/cudf/DType.java index b8eb76217e2..6b5cbe2f004 100644 --- a/java/src/main/java/ai/rapids/cudf/DType.java +++ b/java/src/main/java/ai/rapids/cudf/DType.java @@ -23,34 +23,38 @@ public enum DType { INT16(2, 2, "short"), INT32(4, 3, "int"), INT64(8, 4, "long"), - FLOAT32(4, 5, "float"), - FLOAT64(8, 6, "double"), + // UINT8(1, 5, "byte"), + // UINT16(2, 6, "short"), + // UINT32(4, 7, "int"), + // UINT64(8, 8, "long"), + FLOAT32(4, 9, "float"), + FLOAT64(8, 10, "double"), /** * Byte wise true non-0/false 0. In general true will be 1. */ - BOOL8(1, 7, "bool"), + BOOL8(1, 11, "bool"), /** * Days since the UNIX epoch */ - TIMESTAMP_DAYS(4, 8, "date32"), + TIMESTAMP_DAYS(4, 12, "date32"), /** * s since the UNIX epoch */ - TIMESTAMP_SECONDS(8, 9, "timestamp[s]"), + TIMESTAMP_SECONDS(8, 13, "timestamp[s]"), /** * ms since the UNIX epoch */ - TIMESTAMP_MILLISECONDS(8, 10, "timestamp[ms]"), + TIMESTAMP_MILLISECONDS(8, 14, "timestamp[ms]"), /** * microseconds since the UNIX epoch */ - TIMESTAMP_MICROSECONDS(8, 11, "timestamp[us]"), + TIMESTAMP_MICROSECONDS(8, 15, "timestamp[us]"), /** * ns since the UNIX epoch */ - TIMESTAMP_NANOSECONDS(8, 12, "timestamp[ns]"), - //DICTIONARY32(4, 13, "NO IDEA"), - STRING(0, 14, "str"); + TIMESTAMP_NANOSECONDS(8, 16, "timestamp[ns]"), + //DICTIONARY32(4, 17, "NO IDEA"), + STRING(0, 18, "str"); private static final DType[] D_TYPES = DType.values(); final int sizeInBytes; diff --git a/java/src/main/java/ai/rapids/cudf/HostMemoryBuffer.java b/java/src/main/java/ai/rapids/cudf/HostMemoryBuffer.java index 9545e0dce76..910cdcde399 100644 --- a/java/src/main/java/ai/rapids/cudf/HostMemoryBuffer.java +++ b/java/src/main/java/ai/rapids/cudf/HostMemoryBuffer.java @@ -329,7 +329,7 @@ public final void setBytes(long offset, byte[] data, long srcOffset, long len) { * @param offset - offset from the address * @return - value */ - final short getShort(long offset) { + public final short getShort(long offset) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 2, "getShort"); return UnsafeMemoryAccessor.getShort(requestedAddress); @@ -340,7 +340,7 @@ final short getShort(long offset) { * @param offset - offset from the address * @param value - value to be set */ - final void setShort(long offset, short value) { + public final void setShort(long offset, short value) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 2, "setShort"); UnsafeMemoryAccessor.setShort(requestedAddress, value); @@ -352,7 +352,7 @@ final void setShort(long offset, short value) { * @param data the data to be copied. * @param srcOffset index in data to start at. */ - final void setShorts(long offset, short[] data, long srcOffset, long len) { + public final void setShorts(long offset, short[] data, long srcOffset, long len) { assert len >= 0 : "length is not allowed " + len; assert len <= data.length - srcOffset; long requestedAddress = this.address + offset; @@ -365,7 +365,7 @@ final void setShorts(long offset, short[] data, long srcOffset, long len) { * @param offset - offset from the address * @return - value */ - final int getInt(long offset) { + public final int getInt(long offset) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 4, "getInt"); return UnsafeMemoryAccessor.getInt(requestedAddress); @@ -376,7 +376,7 @@ final int getInt(long offset) { * @param offset - offset from the address * @param value - value to be set */ - final void setInt(long offset, int value) { + public final void setInt(long offset, int value) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 4, "setInt"); UnsafeMemoryAccessor.setInt(requestedAddress, value); @@ -388,7 +388,7 @@ final void setInt(long offset, int value) { * @param data the data to be copied. * @param srcOffset index into data to start at */ - final void setInts(long offset, int[] data, long srcOffset, long len) { + public final void setInts(long offset, int[] data, long srcOffset, long len) { assert len >= 0 : "length is not allowed " + len; assert len <= data.length - srcOffset; long requestedAddress = this.address + offset; @@ -401,7 +401,7 @@ final void setInts(long offset, int[] data, long srcOffset, long len) { * @param offset - offset from the address * @return - value */ - final long getLong(long offset) { + public final long getLong(long offset) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 8, "setLong"); return UnsafeMemoryAccessor.getLong(requestedAddress); @@ -412,7 +412,7 @@ final long getLong(long offset) { * @param offset - offset from the address * @param value - value to be set */ - final void setLong(long offset, long value) { + public final void setLong(long offset, long value) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 8, "getLong"); UnsafeMemoryAccessor.setLong(requestedAddress, value); @@ -424,7 +424,7 @@ final void setLong(long offset, long value) { * @param data the data to be copied. * @param srcOffset index into data to start at. */ - final void setLongs(long offset, long[] data, long srcOffset, long len) { + public final void setLongs(long offset, long[] data, long srcOffset, long len) { assert len >= 0 : "length is not allowed " + len; assert len <= data.length - srcOffset; long requestedAddress = this.address + offset; @@ -437,7 +437,7 @@ final void setLongs(long offset, long[] data, long srcOffset, long len) { * @param offset - offset from the address * @return - value */ - final float getFloat(long offset) { + public final float getFloat(long offset) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 4, "getFloat"); return UnsafeMemoryAccessor.getFloat(requestedAddress); @@ -448,7 +448,7 @@ final float getFloat(long offset) { * @param offset - offset from the address * @param value - value to be set */ - final void setFloat(long offset, float value) { + public final void setFloat(long offset, float value) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 4, "setFloat"); UnsafeMemoryAccessor.setFloat(requestedAddress, value); @@ -460,7 +460,7 @@ final void setFloat(long offset, float value) { * @param data the data to be copied. * @param srcOffset index into data to start at */ - final void setFloats(long offset, float[] data, long srcOffset, long len) { + public final void setFloats(long offset, float[] data, long srcOffset, long len) { assert len >= 0 : "length is not allowed " + len; assert len <= data.length - srcOffset; long requestedAddress = this.address + offset; @@ -473,7 +473,7 @@ final void setFloats(long offset, float[] data, long srcOffset, long len) { * @param offset - offset from the address * @return - value */ - final double getDouble(long offset) { + public final double getDouble(long offset) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 8, "getDouble"); return UnsafeMemoryAccessor.getDouble(requestedAddress); @@ -484,7 +484,7 @@ final double getDouble(long offset) { * @param offset - offset from the address * @param value - value to be set */ - final void setDouble(long offset, double value) { + public final void setDouble(long offset, double value) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 8, "setDouble"); UnsafeMemoryAccessor.setDouble(requestedAddress, value); @@ -496,7 +496,7 @@ final void setDouble(long offset, double value) { * @param data the data to be copied. * @param srcOffset index into data to start at */ - final void setDoubles(long offset, double[] data, long srcOffset, long len) { + public final void setDoubles(long offset, double[] data, long srcOffset, long len) { assert len >= 0 : "length is not allowed " + len; assert len <= data.length - srcOffset; long requestedAddress = this.address + offset; @@ -509,7 +509,7 @@ final void setDoubles(long offset, double[] data, long srcOffset, long len) { * @param offset - offset from the address * @return - value */ - final boolean getBoolean(long offset) { + public final boolean getBoolean(long offset) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 1, "getBoolean"); return UnsafeMemoryAccessor.getBoolean(requestedAddress); @@ -520,7 +520,7 @@ final boolean getBoolean(long offset) { * @param offset - offset from the address * @param value - value to be set */ - final void setBoolean(long offset, boolean value) { + public final void setBoolean(long offset, boolean value) { long requestedAddress = this.address + offset; addressOutOfBoundsCheck(requestedAddress, 1, "setBoolean"); UnsafeMemoryAccessor.setBoolean(requestedAddress, value); @@ -532,7 +532,7 @@ final void setBoolean(long offset, boolean value) { * @param length - number of bytes to set * @param value - value to be set */ - final void setMemory(long offset, long length, byte value) { + public final void setMemory(long offset, long length, byte value) { addressOutOfBoundsCheck(address + offset, length, "set memory"); UnsafeMemoryAccessor.setMemory(address + offset, length, value); } diff --git a/java/src/test/java/ai/rapids/cudf/TableTest.java b/java/src/test/java/ai/rapids/cudf/TableTest.java index 2a4cd856a9c..27fdd237557 100644 --- a/java/src/test/java/ai/rapids/cudf/TableTest.java +++ b/java/src/test/java/ai/rapids/cudf/TableTest.java @@ -1080,9 +1080,10 @@ void testInterleaveStringColumns() { try (Table t = new Table.TestBuilder() .column("a", "b", "c") .column("d", "e", "f") - .build()) { - assertThrows(CudfException.class, () -> t.interleaveColumns(), - "Only fixed-width types are supported in interleave_columns"); + .build(); + ColumnVector expected = ColumnVector.fromStrings("a", "d", "b", "e", "c", "f"); + ColumnVector actual = t.interleaveColumns()) { + assertColumnsAreEqual(expected, actual); } }