public static ArrayList<Object> getPath(Object currRow, ObjectInspector rowOI,
      PTFPartitionIterator<Object> pItr, int sz)  throws HiveException {
    int idx = pItr.getIndex() - 1;
    ArrayList<Object> path = new ArrayList<Object>();
    path.add(ObjectInspectorUtils.copyToStandardObject(currRow, rowOI));
    int pSz = 1;

    while (pSz < sz && pItr.hasNext())
    {
      currRow = pItr.next();
      path.add(ObjectInspectorUtils.copyToStandardObject(currRow, rowOI));
      pSz++;
    }
    pItr.resetToIndex(idx);
    return path;
  }
<ul>
<li> check structure of Arguments:
<ol>
<li> First arg should be a String
<li> then there should be an even number of Arguments:
String, expression; expression should be Convertible to Boolean.
<li> finally there should be a String.
</ol>
<li> convert pattern into a NNode chain.
<li> convert symbol args into a Symbol Map.
<li> parse selectList into SelectList struct. The inputOI used to translate
these expressions should be based on the
columns in the Input, the 'path.attr'
</ul>
ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/MatchPath.java