private void genUniqueJoinObject(int aliasNum, int forwardCachePos) throws HiveException { AbstractRowContainer<ArrayList<Object>> alias = storage.get(order[aliasNum]); for (ArrayList<Object> row = alias.first(); row != null; row = alias.next()) { int sz = joinValues.get(order[aliasNum]).size(); int p = forwardCachePos; for (int j = 0; j < sz; j++) { forwardCache[p++] = row.get(j); } if (aliasNum == numAliases - 1) { forward(forwardCache, outputObjInspector); countAfterReport = 0; } else { genUniqueJoinObject(aliasNum + 1, p); } } }
if (!hasEmpty) { int numValues = joinValues.get(alias).size(); for (ArrayList<Object> row = alw.first(); row != null; row = alw.next()) { if (row == dummyObj[alias] || (row.size() > numValues && ((BooleanWritable) (row.get(numValues))).get())) {