Search in sources :

Example 1 with LazyBlock

use of io.prestosql.spi.block.LazyBlock in project carbondata by apache.

the class CarbondataPageSource method getNextPageForColumnar.

private Page getNextPageForColumnar() {
    if (nanoStart == 0) {
        nanoStart = System.nanoTime();
    }
    CarbonVectorBatch columnarBatch = null;
    int batchSize = 0;
    try {
        batchId++;
        if (vectorReader.nextKeyValue()) {
            Object vectorBatch = vectorReader.getCurrentValue();
            if (vectorBatch instanceof CarbonVectorBatch) {
                columnarBatch = (CarbonVectorBatch) vectorBatch;
                batchSize = columnarBatch.numRows();
                if (batchSize == 0) {
                    close();
                    return null;
                }
            }
        } else {
            close();
            return null;
        }
        if (columnarBatch == null) {
            return null;
        }
        Block[] blocks = new Block[columnHandles.size()];
        for (int column = 0; column < blocks.length; column++) {
            blocks[column] = new LazyBlock(batchSize, new CarbondataBlockLoader(column));
        }
        Page page = new Page(batchSize, blocks);
        return page;
    } catch (PrestoException e) {
        closeWithSuppression(e);
        throw e;
    } catch (RuntimeException e) {
        closeWithSuppression(e);
        throw new CarbonDataLoadingException("Exception when creating the Carbon data Block", e);
    }
}
Also used : LazyBlock(io.prestosql.spi.block.LazyBlock) CarbonDataLoadingException(org.apache.carbondata.processing.loading.exception.CarbonDataLoadingException) LazyBlock(io.prestosql.spi.block.LazyBlock) Block(io.prestosql.spi.block.Block) Page(io.prestosql.spi.Page) PrestoException(io.prestosql.spi.PrestoException)

Aggregations

Page (io.prestosql.spi.Page)1 PrestoException (io.prestosql.spi.PrestoException)1 Block (io.prestosql.spi.block.Block)1 LazyBlock (io.prestosql.spi.block.LazyBlock)1 CarbonDataLoadingException (org.apache.carbondata.processing.loading.exception.CarbonDataLoadingException)1