private List<OrcSplit> callInternal() throws IOException {
if (ppdResult != null) {
assert deltaSplits.isEmpty();
assert ppdResult.hasArray();
CodedInputStream cis = CodedInputStream.newInstance(
ppdResult.array(), ppdResult.arrayOffset(), ppdResult.remaining());
cis.setSizeLimit(InStream.PROTOBUF_MESSAGE_MAX_LIMIT);
return generateSplitsFromPpd(SplitInfos.parseFrom(cis));
} else {
populateAndCacheStripeDetails();
boolean[] includeStripe = null;
if ((deltas == null || deltas.isEmpty()) && context.sarg != null) {
String[] colNames =
extractNeededColNames((readerTypes == null ? fileTypes : readerTypes),
context.conf, readerIncluded, isOriginal);
if (colNames == null) {
LOG.warn("Skipping split elimination for {} as column names is null", file.getPath());
} else {
includeStripe = pickStripes(context.sarg, writerVersion,
stripeStats, stripes.size(), file.getPath(), evolution);
}
}
return generateSplitsFromStripes(includeStripe);
}
}