diff options
Diffstat (limited to 'contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java')
-rw-r--r-- | contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java b/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java index 9f93e18b3..fde4d2850 100644 --- a/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java +++ b/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java @@ -304,7 +304,7 @@ public class MaprDBJsonRecordReader extends AbstractRecordReader { writeDouble(writer, fieldName, reader); break; case DECIMAL: - throw unsupportedError("Decimal type is currently not supported."); + writeDecimal(writer, fieldName, reader); case DATE: writeDate(writer, fieldName, reader); break; @@ -365,6 +365,15 @@ public class MaprDBJsonRecordReader extends AbstractRecordReader { } } + private void writeDecimal(MapOrListWriterImpl writer, String fieldName, DBDocumentReaderBase reader) { + if (allTextMode) { + writeString(writer, fieldName, String.valueOf(reader.getDecimal())); + } else { + writer.varDecimal(fieldName, reader.getDecimalScale(), reader.getDecimalPrecision()) + .writeVarDecimal(reader.getDecimal()); + } + } + private void writeFloat(MapOrListWriterImpl writer, String fieldName, DBDocumentReaderBase reader) { if (allTextMode) { writeString(writer, fieldName, String.valueOf(reader.getFloat())); |