presto-hive/src/main/java/io/prestosql/plugin/hive/parquet/ParquetPageSource.java/ParquetPageSource/getNextPage
class ParquetPageSource:    @Override
    public Page getNextPage()
    {
        try {
            batchId++;
            int batchSize = parquetReader.nextBatch();

            if (closed || batchSize <= 0) {
                close();
                return null;
            }

            Block[] blocks = new Block[fields.size()];
            for (int fieldId = 0; fieldId < blocks.length; fieldId++) {
                Type type = types.get(fieldId);
                blocks[fieldId] = fields.get(fieldId)
                        .map(field -> (Block) new LazyBlock(batchSize, new ParquetBlockLoader(field)))
                        .orElse(RunLengthEncodedBlock.create(type, null, batchSize));
            }
            return new Page(batchSize, blocks);
        }
        catch (PrestoException e) {
            closeWithSuppression(e);
            throw e;
        }
        catch (RuntimeException e) {
            closeWithSuppression(e);
            throw new PrestoException(HIVE_CURSOR_ERROR, e);
        }
    }