private Block getIntegerKeyBlockTemplate(List<DwrfSequenceEncoding> sequenceEncodings) { Type keyType; switch (keyOrcType) { case BYTE: keyType = TinyintType.TINYINT; break; case SHORT: keyType = SmallintType.SMALLINT; break; case INT: keyType = IntegerType.INTEGER; break; case LONG: keyType = BigintType.BIGINT; break; default: throw new IllegalArgumentException("Unsupported flat map key type: " + keyOrcType); } BlockBuilder blockBuilder = keyType.createBlockBuilder(null, sequenceEncodings.size()); for (DwrfSequenceEncoding sequenceEncoding : sequenceEncodings) { keyType.writeLong(blockBuilder, sequenceEncoding.getKey().getIntKey()); } return blockBuilder.build(); }
private Block getSliceKeysBlockTemplate(List<DwrfSequenceEncoding> sequenceEncodings) { int bytes = 0; for (DwrfSequenceEncoding sequenceEncoding : sequenceEncodings) { bytes += sequenceEncoding.getKey().getBytesKey().size(); } VariableWidthBlockBuilder builder = new VariableWidthBlockBuilder(null, sequenceEncodings.size(), bytes); for (DwrfSequenceEncoding sequenceEncoding : sequenceEncodings) { Slice key = Slices.wrappedBuffer(sequenceEncoding.getKey().getBytesKey().toByteArray()); builder.writeBytes(key, 0, key.length()); builder.closeEntry(); } return builder.build(); }
private Block getIntegerKeyBlockTemplate(List<DwrfSequenceEncoding> sequenceEncodings) { Type keyType; switch (keyOrcType) { case BYTE: keyType = TinyintType.TINYINT; break; case SHORT: keyType = SmallintType.SMALLINT; break; case INT: keyType = IntegerType.INTEGER; break; case LONG: keyType = BigintType.BIGINT; break; default: throw new IllegalArgumentException("Unsupported flat map key type: " + keyOrcType); } BlockBuilder blockBuilder = keyType.createBlockBuilder(null, sequenceEncodings.size()); for (DwrfSequenceEncoding sequenceEncoding : sequenceEncodings) { keyType.writeLong(blockBuilder, sequenceEncoding.getKey().getIntKey()); } return blockBuilder.build(); }
private Block getSliceKeysBlockTemplate(List<DwrfSequenceEncoding> sequenceEncodings) { int bytes = 0; for (DwrfSequenceEncoding sequenceEncoding : sequenceEncodings) { bytes += sequenceEncoding.getKey().getBytesKey().size(); } VariableWidthBlockBuilder builder = new VariableWidthBlockBuilder(null, sequenceEncodings.size(), bytes); for (DwrfSequenceEncoding sequenceEncoding : sequenceEncodings) { Slice key = Slices.wrappedBuffer(sequenceEncoding.getKey().getBytesKey().toByteArray()); builder.writeBytes(key, 0, key.length()); builder.closeEntry(); } return builder.build(); }