Sha256: 91cc70ba4fcc79d676de5277401e7b4538ff271e030fd0d2e44359dd2dbe30c4

Contents?: true

Size: 1.29 KB

Versions: 2

Compression:

Stored size: 1.29 KB

Contents

package org.embulk.filter.calcite.adapter.page;

import org.apache.calcite.linq4j.Enumerator;
import org.embulk.filter.calcite.PageConverter;
import org.embulk.spi.Page;
import org.embulk.spi.PageReader;
import org.embulk.spi.Schema;

public class PageEnumerator
        implements Enumerator<Object[]>
{
    private final Schema schema;
    private final PageConverter pageConverter;
    private final PageReader pageReader;

    public PageEnumerator(Schema schema, PageConverter pageConverter)
    {
        this.schema = schema;
        this.pageReader = new PageReader(schema);
        this.pageConverter = pageConverter;
    }

    public void setPage(Page page)
    {
        this.pageReader.setPage(page);
        this.pageConverter.setPageReader(pageReader);
    }

    @Override
    public Object[] current()
    {
        // this is called from org.apache.calcite.linq4j.EnumerableDefaults
        schema.visitColumns(pageConverter);
        return pageConverter.getRow();
    }

    @Override
    public boolean moveNext()
    {
        return pageReader.nextRecord();
    }

    @Override
    public void reset()
    {
        throw new UnsupportedOperationException();
    }

    @Override
    public void close()
    {
        if (pageReader != null) {
            pageReader.close();
        }
    }
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
embulk-filter-calcite-0.1.1 src/main/java/org/embulk/filter/calcite/adapter/page/PageEnumerator.java
embulk-filter-calcite-0.1.0 src/main/java/org/embulk/filter/calcite/adapter/page/PageEnumerator.java