Interface DupCompactKernel
- All Known Implementing Classes:
ByteDupCompactKernel,ByteReverseDupCompactKernel,CharDupCompactKernel,CharReverseDupCompactKernel,DoubleDupCompactKernel,DoubleReverseDupCompactKernel,EqualsConsistentObjectDupCompactKernel,EqualsConsistentObjectReverseDupCompactKernel,FloatDupCompactKernel,FloatReverseDupCompactKernel,IntDupCompactKernel,IntReverseDupCompactKernel,LongDupCompactKernel,LongReverseDupCompactKernel,ObjectDupCompactKernel,ObjectReverseDupCompactKernel,ShortDupCompactKernel,ShortReverseDupCompactKernel
public interface DupCompactKernel
-
Method Summary
Modifier and TypeMethodDescriptionintcompactDuplicates(@NotNull WritableChunk<? extends Any> chunkToCompact, @NotNull WritableLongChunk<RowKeys> rowKeys) Remove all adjacent values fromchunkToCompact, except the last value in any adjacent run.intcompactDuplicatesPreferFirst(@NotNull WritableChunk<? extends Any> chunkToCompact, @NotNull WritableIntChunk<ChunkPositions> chunkPositions) Remove all adjacent values fromchunkToCompact, except the first value in any adjacent run.static DupCompactKernelmakeDupCompactDeephavenOrdering(@NotNull ChunkType chunkType, boolean equalsConsistent, boolean reverse) Make a DupCompactKernel that orders values as Deephaven sorts them.static DupCompactKernelmakeDupCompactNaturalOrdering(@NotNull ChunkType chunkType, boolean equalsConsistent, boolean reverse) Make a DupCompactKernel that orders values by their natural ordering.
-
Method Details
-
makeDupCompactDeephavenOrdering
static DupCompactKernel makeDupCompactDeephavenOrdering(@NotNull @NotNull ChunkType chunkType, boolean equalsConsistent, boolean reverse) Make a DupCompactKernel that orders values as Deephaven sorts them.- Parameters:
chunkType- the chunk type of the valuesequalsConsistent- true when values of the data type compare equal exactly when they are equal (seeBinarySearchKernelHelper.compareConsistentWithEquality(Class)), which selects the EqualsConsistentObject kernel that tests Object equality withequals; when false, Object equality is tested withObjectComparisons.compareEquals(Object, Object). Other chunk types ignore it. An operation reads the registry once and passes the same decision to every kernel it creates, so its kernels come from one family.reverse- true for descending values- Returns:
- the DupCompactKernel
-
makeDupCompactNaturalOrdering
static DupCompactKernel makeDupCompactNaturalOrdering(@NotNull @NotNull ChunkType chunkType, boolean equalsConsistent, boolean reverse) Make a DupCompactKernel that orders values by their natural ordering.- Parameters:
chunkType- the chunk type of the valuesequalsConsistent- true when values of the data type compare equal exactly when they are equal (seeBinarySearchKernelHelper.compareConsistentWithEquality(Class)), which selects the EqualsConsistentObject kernel that tests Object equality withequals; when false, Object equality is tested withObjectComparisons.compareEquals(Object, Object). Other chunk types ignore it. An operation reads the registry once and passes the same decision to every kernel it creates, so its kernels come from one family.reverse- true for descending values- Returns:
- the DupCompactKernel
-
compactDuplicates
int compactDuplicates(@NotNull @NotNull WritableChunk<? extends Any> chunkToCompact, @NotNull @NotNull WritableLongChunk<RowKeys> rowKeys) Remove all adjacent values fromchunkToCompact, except the last value in any adjacent run. TherowKeysare parallel to thechunkToCompact. When a value is removed fromchunkToCompact, it is also removed fromrowKeys.Additionally, verifies that the elements in
chunkToCompactare properly ordered. Upon encountering an out-of-order element, the operation stops compacting and returns the position of the out-of-order element.- Parameters:
chunkToCompact- The values to remove duplicates fromrowKeys- The row keys parallel tochunkToCompact- Returns:
- The first position of an out-of-order element, or -1 if all elements are in order
-
compactDuplicatesPreferFirst
int compactDuplicatesPreferFirst(@NotNull @NotNull WritableChunk<? extends Any> chunkToCompact, @NotNull @NotNull WritableIntChunk<ChunkPositions> chunkPositions) Remove all adjacent values fromchunkToCompact, except the first value in any adjacent run. ThechunkPositionsare parallel to thechunkToCompact. When a value is removed fromchunkToCompact, it is also removed fromchunkPositions.Additionally, verifies that the elements in
chunkToCompactare properly ordered. Upon encountering an out-of-order element, the operation stops compacting and returns the position of the out-of-order element.- Parameters:
chunkToCompact- The values to remove duplicates fromchunkPositions- The chunk positions parallel tochunkToCompact- Returns:
- The first position of an out-of-order element, or -1 if all elements are in order
-