presto-orc/src/main/java/io/prestosql/orc/reader/SliceColumnReader.java/SliceColumnReader/SliceColumnReader
class SliceColumnReader:    public SliceColumnReader(Type type, OrcColumn column, AggregatedMemoryContext systemMemoryContext)
            throws OrcCorruptionException
    {
        requireNonNull(type, "type is null");
        verifyStreamType(column, type, t -> t instanceof VarcharType || t instanceof CharType || t instanceof VarbinaryType);

        this.column = requireNonNull(column, "column is null");

        int maxCodePointCount = getMaxCodePointCount(type);
        boolean charType = isCharType(type);
        directReader = new SliceDirectColumnReader(column, maxCodePointCount, charType);
        dictionaryReader = new SliceDictionaryColumnReader(column, systemMemoryContext.newLocalMemoryContext(SliceColumnReader.class.getSimpleName()), maxCodePointCount, charType);
    }