Package org.apache.drill.exec.ref

Examples of org.apache.drill.exec.ref.RecordPointer


  @Override
  protected void consumeRecord() {
    DataValue[] values = new DataValue[defs.length + withinExtra];

    RecordPointer r = inputRecord.copy();

    /**
     * Rather than use a sort on the within value, we need to make sure that this operator correctly implements the
     * reference implementation. Ordering only operates with sequential segment key values. If a segment key value
     * repeats elsewhere in the stream, this operator should bring those together. together.
View Full Code Here


                if (holder == null) {
                    return NextOutcome.NONE_LEFT;
                }
            }

            RecordPointer newPointer = holder.getPointer().copy();
            newPointer.addField(positionRef, new ScalarValues.IntegerScalar(holder.getPosition()));
            newPointer.addField(segmentRef, new ScalarValues.IntegerScalar(holder.getWindowId()));
            windowPointer.setRecord(newPointer);
            return holder.isSchemaChanged() ? NextOutcome.INCREMENTED_SCHEMA_CHANGED : NextOutcome.INCREMENTED_SCHEMA_UNCHANGED;
        }
View Full Code Here

            return setupBufferForIterator(left);
        }

        @Override
        public NextOutcome getNext() {
            final RecordPointer rightPointer = right.getRecordPointer();
            while (true) {
                if (curIdx == 0) {
                    rightOutcome = right.next();

                    if (rightOutcome == NextOutcome.NONE_LEFT) {
View Full Code Here

            return setupBufferForIterator(right);
        }

        @Override
        public NextOutcome getNext() {
            final RecordPointer leftPointer = left.getRecordPointer();
            boolean isFound = true;
            if(curIdx >= bufferLength) {
                return NextOutcome.NONE_LEFT;
            }
View Full Code Here

  }


  protected void doWork() {
    for(RecordIterator ri : incoming){
      RecordPointer rp = ri.getRecordPointer();
      while(ri.next() != NextOutcome.NONE_LEFT){
        UnbackedRecord r = new UnbackedRecord();
        r.copyFrom(rp);
        records.add(r);
      }
View Full Code Here

            ConstantROP rop = new ConstantROP(con);

            rop.setupIterators(new IteratorRegistry());
            RecordIterator iter = rop.getIteratorInternal();
            RecordPointer ptr = iter.getRecordPointer();

            int i = 1;
            while (iter.next() != RecordIterator.NextOutcome.NONE_LEFT){
                System.out.println(ptr);
                org.junit.Assert.assertEquals("Integer value in record " + i + " is incorrect.",
                        ptr.getField(new SchemaPath("c1", ExpressionPosition.UNKNOWN)), new ScalarValues.IntegerScalar(i));
                org.junit.Assert.assertEquals("String value in record " + i + " is incorrect.",
                        ptr.getField(new SchemaPath("c2", ExpressionPosition.UNKNOWN)), new ScalarValues.StringScalar("string " + i));
                i++;
            }
            org.junit.Assert.assertEquals("Incorrect number of records returned by 'constant' record iterator.", 3, i - 1);
        } catch (Exception ex){ ex.printStackTrace(); }
        System.out.println("end test");
View Full Code Here

        verifyWindowOrder(expectedIds, out, new SchemaPath("ref.segment", ExpressionPosition.UNKNOWN), new SchemaPath("ref.position", ExpressionPosition.UNKNOWN));
    }

    private void verifyWindowOrder(List<WindowObj> expectedIds, RecordIterator out, SchemaPath segment, SchemaPath position) {
        RecordIterator.NextOutcome outcome = out.next();
        RecordPointer pointer = out.getRecordPointer();
        int count = 0;
        SchemaPath id = new SchemaPath("test.id", ExpressionPosition.UNKNOWN);
        int expectedSize = expectedIds.size();
        while (outcome != RecordIterator.NextOutcome.NONE_LEFT) {
            count += 1;
            WindowObj windowObj = expectedIds.get(count - 1);
            //System.out.println(windowObj);
            assertEquals("Id mismatch", windowObj.id, pointer.getField(id).getAsNumeric().getAsInt());
            assertEquals("Window id mismatch", windowObj.windowId, pointer.getField(segment).getAsNumeric().getAsInt());
            assertEquals("Position mismatch", windowObj.position, pointer.getField(position).getAsNumeric().getAsInt());
            outcome = out.next();
        }
        assertEquals(expectedSize, count);
    }
View Full Code Here

    String expr = "if( a == 1) then 4 else 2 end";
    ExprLexer lexer = new ExprLexer(new ANTLRStringStream(expr));
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    ExprParser parser = new ExprParser(tokens);
    LogicalExpression e = parser.parse().e;
    RecordPointer r = new UnbackedRecord();
    r.addField(new SchemaPath("a", ExpressionPosition.UNKNOWN), new IntegerScalar(3));
    SimpleEvaluationVisitor builder = new SimpleEvaluationVisitor(r);
    BasicEvaluator eval = e.accept(builder, null);
    DataValue v = eval.eval();
    System.out.println(v);
  }
View Full Code Here

    @Override
    public NextOutcome next() {
      if(!entryIterator.hasNext()) return NextOutcome.NONE_LEFT;
     
      Entry<DataValueSet, RecordPointer> e = entryIterator.next();
      RecordPointer r = e.getValue();
      if(r == null) throw new UnsupportedOperationException();
      outputRecord.setRecord(r);

      if(!e.getKey().equals(previousKeys)){
        previousKeys = e.getKey();
        segmentKey++;
      }
     
      r.addField(outputSegmentKey, new ScalarValues.LongScalar(segmentKey));
      return NextOutcome.INCREMENTED_SCHEMA_CHANGED;
    }
View Full Code Here

TOP

Related Classes of org.apache.drill.exec.ref.RecordPointer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.