@Override
    public Block apply(Block rowNumberBlock)
    {
        requireNonNull(rowNumberBlock, "rowNumberBlock is null");

        int positionCount = rowNumberBlock.getPositionCount();
        Block lazyBlock = new LazyBlock(positionCount, (block) -> {
            BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, positionCount, rowIDSlice.length());
            for (int i = 0; i < positionCount; i++) {
                long rowNumber = BIGINT.getLong(rowNumberBlock, i);
                rowIDBytes.putLong(0, rowNumber);
                VARBINARY.writeSlice(blockBuilder, rowIDSlice);
            }
            block.setBlock(blockBuilder.build());
        });
        return lazyBlock;
    }
@Test
    public void testApply()
    {
        Block rowNumbers = new LongArrayBlockBuilder(null, 5)
                .writeLong(7L)
                .writeLong(Long.MIN_VALUE)
                .writeLong(0L)
                .writeLong(1L)
                .writeLong(-1L)
                .writeLong(Long.MAX_VALUE)
                .build();
        Block rowIDs = coercer.apply(rowNumbers);
        assertEquals(rowIDs.getPositionCount(), rowNumbers.getPositionCount());
        assertRowId(rowIDs, 0, 7L);
        assertRowId(rowIDs, 1, Long.MIN_VALUE);
        assertRowId(rowIDs, 2, 0L);
        assertRowId(rowIDs, 3, 1L);
        assertRowId(rowIDs, 4, -1L);
        assertRowId(rowIDs, 5, Long.MAX_VALUE);
    }