Class FrameWriterUtils


  • public class FrameWriterUtils
    extends Object
    Utility methods used by FrameWriter implementations.
    • Field Detail

      • NULL_STRING_MARKER_ARRAY

        public static final byte[] NULL_STRING_MARKER_ARRAY
    • Constructor Detail

      • FrameWriterUtils

        public FrameWriterUtils()
    • Method Detail

      • writeFrameHeader

        public static long writeFrameHeader​(org.apache.datasketches.memory.WritableMemory memory,
                                            long startPosition,
                                            FrameType frameType,
                                            long totalSize,
                                            int numRows,
                                            int numRegions,
                                            boolean permuted)
        Writes a frame header to a memory locations.
      • getUtf8ByteBuffersFromStringSelector

        public static List<ByteBuffer> getUtf8ByteBuffersFromStringSelector​(DimensionSelector selector,
                                                                            boolean multiValue)
        Retrieves UTF-8 byte buffers from a DimensionSelector, which is expected to be the kind of selector you get for an STRING column. Null strings are returned as NULL_STRING_MARKER_ARRAY.
        Parameters:
        selector - the selector
        multiValue - if true, return an array that corresponds exactly to DimensionSelector.getRow(). if false, always return a single-valued array. In particular, this means [] is returned as [NULL_STRING_MARKER_ARRAY].
        Returns:
        UTF-8 strings. The list itself is never null.
      • findDisallowedFieldNames

        public static Set<String> findDisallowedFieldNames​(RowSignature signature)
        Checks the provided signature for any disallowed field names. Returns any that are found.
      • verifySortColumns

        public static void verifySortColumns​(List<KeyColumn> keyColumns,
                                             RowSignature signature)
        Verifies whether the provided sortColumns are all sortable, and are a prefix of the signature. This is required because it allows us to treat the sort key as a chunk of bytes. Exits quietly if the sort columns are OK. Throws an exception if there is a problem.
        Throws:
        IllegalArgumentException - if there is a problem
      • copyByteBufferToMemoryAllowingNullBytes

        public static void copyByteBufferToMemoryAllowingNullBytes​(ByteBuffer src,
                                                                   org.apache.datasketches.memory.WritableMemory dst,
                                                                   long dstPosition,
                                                                   int len)
        Copies src to dst without making any modification to the source data.
      • copyByteBufferToMemoryDisallowingNullBytes

        public static int copyByteBufferToMemoryDisallowingNullBytes​(ByteBuffer src,
                                                                     org.apache.datasketches.memory.WritableMemory dst,
                                                                     long dstPosition,
                                                                     int len,
                                                                     boolean removeNullBytes)
        Copies src to dst, disallowing null bytes to be written to the destination. If removeNullBytes is true, the method will drop the null bytes, and if it is false, the method will throw an exception. The written bytes can be less than "len" if the null bytes are dropped, and the callers must evaluate the return value to see the actual length of the buffer that is copied
      • replaceUnknownTypesWithNestedColumns

        public static RowSignature replaceUnknownTypesWithNestedColumns​(RowSignature rowSignature)