@Override public int metricId() { return ordinal(); } }
@Override public List<FieldVector> getChildren() { return Lists.newArrayList(Iterables.transform(mutator.getVectors(), new Function<ValueVector, FieldVector>() { @Nullable @Override public FieldVector apply(@Nullable ValueVector input) { return (FieldVector) input; } })); }
@Override public ProducerOperator create( final FragmentExecutionContext fragmentExecContext, final OperatorContext context, HBaseSubScan subScan) throws ExecutionSetupException { final List<SchemaPath> columns = subScan.getColumns() == null ? GroupScan.ALL_COLUMNS : subScan.getColumns(); final HBaseStoragePlugin plugin2 = fragmentExecContext.getStoragePlugin(subScan.getPluginId()); final Iterable<RecordReader> readers = FluentIterable.from(subScan.getScans()).transform(new Function<HBaseSubScanSpec, RecordReader>(){ @Override public RecordReader apply(HBaseSubScanSpec scanSpec) { return new HBaseRecordReader(plugin2.getConnection(), scanSpec, columns, context, false); }}); return new ScanOperator(fragmentExecContext.getSchemaUpdater(), subScan, context, readers.iterator()); }
@Override public <T extends FieldVector> T addOrGet(String childName, FieldType fieldType, Class<T> clazz) { try { Field field = new Field(childName, fieldType, null); final FieldVector v = mutator.addField(field, clazz); putChild(childName, v); return this.typeify(v, clazz); } catch (SchemaChangeException e) { throw new IllegalStateException(e); } }
@Override public <T extends FieldVector> T getChild(String name, Class<T> clazz) { final ValueVector v = mutator.getVector(name.toLowerCase()); if (v == null) { return null; } return typeify(v, clazz); } }
public VectorContainerWriter(OutputMutator mutator) { this.mutator = mutator; this.allocator = new RootAllocator(Long.MAX_VALUE); structVector = new SpecialStructVector(allocator, mutator.getCallBack()); structRoot = new SingleStructWriter(structVector); }
@Override public VectorAccessible setup() throws Exception { schema.maskAndReorder(config.getColumns()).materializeVectors(selectedColumns, mutator); outgoing.buildSchema(SelectionVectorMode.NONE); callBack.getSchemaChangedAndReset(); setupReader(currentReader); state = State.CAN_PRODUCE; return outgoing; }
@Override public ProducerOperator create(FragmentExecutionContext fec, OperatorContext context, EmptyValues config) throws ExecutionSetupException { return new ScanOperator(fec.getSchemaUpdater(), config, context, Iterators.<RecordReader>singletonIterator(new EmptyRecordReader(context))); }