docCount++;
break;
case WRITE_FAILED:
if (docCount == 0) {
throw new DrillRuntimeException(errMsg);
}
logger.warn(errMsg, doc);
break done;
default:
break done;
}
}
for (SchemaPath sp : jsonReaderWithState.getNullColumns()) {
PathSegment root = sp.getRootSegment();
BaseWriter.MapWriter fieldWriter = writer.rootAsMap();
if (root.getChild() != null && !root.getChild().isArray()) {
fieldWriter = fieldWriter.map(root.getNameSegment().getPath());
while (root.getChild().getChild() != null
&& !root.getChild().isArray()) {
fieldWriter = fieldWriter.map(root.getChild().getNameSegment()
.getPath());
root = root.getChild();
}
fieldWriter.integer(root.getChild().getNameSegment().getPath());
} else {
fieldWriter.integer(root.getNameSegment().getPath());
}
}
writer.setValueCount(docCount);
logger.debug("Took {} ms to get {} records",
watch.elapsed(TimeUnit.MILLISECONDS), rowCount);
return docCount;
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new DrillRuntimeException("Failure while reading Mongo Record.", e);
}
}