Search in sources :

Example 1 with PrestoException

use of io.prestosql.spi.PrestoException 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)

Example 2 with PrestoException

use of io.prestosql.spi.PrestoException in project carbondata by apache.

the class CarbondataPageSource method getNextPageForRow.

private Page getNextPageForRow() {
    if (isFrstPage) {
        isFrstPage = false;
        initialReaderForRow();
    }
    if (nanoStart == 0) {
        nanoStart = System.nanoTime();
    }
    int count = 0;
    try {
        Block[] blocks = new Block[columnCount];
        CarbonColumnVectorImpl[] columns = new CarbonColumnVectorImpl[columnCount];
        for (int i = 0; i < columnCount; ++i) {
            columns[i] = CarbonVectorBatch.createDirectStreamReader(batchSize, dataTypes[i], fields[i]);
        }
        while (rowReader.nextKeyValue()) {
            Object[] values = (Object[]) rowReader.getCurrentValue();
            for (int index = 0; index < columnCount; index++) {
                columns[index].putObject(count, values[index]);
            }
            count++;
            if (count == batchSize) {
                break;
            }
        }
        if (count == 0) {
            close();
            return null;
        } else {
            for (int index = 0; index < columnCount; index++) {
                blocks[index] = ((PrestoVectorBlockBuilder) columns[index]).buildBlock();
                sizeOfData += blocks[index].getSizeInBytes();
            }
        }
        return new Page(count, blocks);
    } catch (PrestoException e) {
        closeWithSuppression(e);
        throw e;
    } catch (RuntimeException | IOException e) {
        closeWithSuppression(e);
        throw new CarbonDataLoadingException("Exception when creating the Carbon data Block", e);
    }
}
Also used : CarbonDataLoadingException(org.apache.carbondata.processing.loading.exception.CarbonDataLoadingException) CarbonColumnVectorImpl(org.apache.carbondata.core.scan.result.vector.impl.CarbonColumnVectorImpl) Page(io.prestosql.spi.Page) PrestoException(io.prestosql.spi.PrestoException) IOException(java.io.IOException) LazyBlock(io.prestosql.spi.block.LazyBlock) Block(io.prestosql.spi.block.Block)

Aggregations

Page (io.prestosql.spi.Page)2 PrestoException (io.prestosql.spi.PrestoException)2 Block (io.prestosql.spi.block.Block)2 LazyBlock (io.prestosql.spi.block.LazyBlock)2 CarbonDataLoadingException (org.apache.carbondata.processing.loading.exception.CarbonDataLoadingException)2 IOException (java.io.IOException)1 CarbonColumnVectorImpl (org.apache.carbondata.core.scan.result.vector.impl.CarbonColumnVectorImpl)1