示例#1
0
  @Override
  public void execute(PTFPartitionIterator<Object> pItr, PTFPartition outP) throws HiveException {
    while (pItr.hasNext()) {
      Object iRow = pItr.next();

      SymbolFunctionResult syFnRes = SymbolFunction.match(syFn, iRow, pItr);
      if (syFnRes.matches) {
        int sz = syFnRes.nextRow - (pItr.getIndex() - 1);
        Object selectListInput =
            MatchPath.getSelectListInput(
                iRow, tableDef.getInput().getOutputShape().getOI(), pItr, sz);
        ArrayList<Object> oRow = new ArrayList<Object>();
        for (ExprNodeEvaluator resExprEval : resultExprInfo.resultExprEvals) {
          oRow.add(resExprEval.evaluate(selectListInput));
        }
        outP.append(oRow);
      }
    }
  }