@Override public String toString() { StringBuilder sb = new StringBuilder("MaprDBJsonRecordReader[Table=") .append(table != null ? table.getPath() : null); if (reader != null) { sb.append(", Document ID=") .append(IdCodec.asString(reader.getId())); } sb.append(", reader=") .append(reader) .append(']'); return sb.toString(); } }
@Override protected void writeDBDocument(VectorContainerWriter vectorWriter, DBDocumentReaderBase reader) throws SchemaChangeException { MapOrListWriterImpl writer = new MapOrListWriterImpl(vectorWriter.rootAsMap()); if (reader.next() != EventType.START_MAP) { throw dataReadError(logger, "The document did not start with START_MAP!"); } valueWriter.writeToListOrMap(writer, reader); }
@Override protected void writeDBDocument(VectorContainerWriter vectorWriter, DBDocumentReaderBase reader) throws SchemaChangeException { if (reader.next() != EventType.START_MAP) { throw dataReadError(logger, "The document did not start with START_MAP!"); } MapOrListWriterImpl writer = new MapOrListWriterImpl(vectorWriter.rootAsMap()); writer.start(); MapOrListWriter documentMapWriter = writer.map(DBConstants.DOCUMENT_FIELD); documentMapWriter.start(); // write _id field data if (includeId) { valueWriter.writeBinary(documentMapWriter, DocumentConstants.ID_KEY, reader.getIdData()); } // write rest of the data buffers Map<Integer, ByteBuffer> dataMap = reader.getDataMap(); for (Entry<Integer, ByteBuffer> familyData : dataMap.entrySet()) { valueWriter.writeBinary(documentMapWriter, String.valueOf(familyData.getKey()), familyData.getValue()); } documentMapWriter.end(); DocumentReaderWithProjection p = new DocumentReaderWithProjection(reader, projector); valueWriter.writeToListOrMap(writer, p); }
@Override protected void writeDBDocument(VectorContainerWriter vectorWriter, DBDocumentReaderBase reader) throws SchemaChangeException { if (reader.next() != EventType.START_MAP) { throw dataReadError(logger, "The document did not start with START_MAP!"); } MapOrListWriterImpl writer = new MapOrListWriterImpl(vectorWriter.rootAsMap()); writer.start(); MapOrListWriter documentMapWriter = writer.map(DBConstants.DOCUMENT_FIELD); documentMapWriter.start(); // write _id field data if (includeId) { valueWriter.writeBinary(documentMapWriter, DocumentConstants.ID_KEY, reader.getIdData()); } // write rest of the data buffers Map<Integer, ByteBuffer> dataMap = reader.getDataMap(); for (Entry<Integer, ByteBuffer> familyData : dataMap.entrySet()) { valueWriter.writeBinary(documentMapWriter, String.valueOf(familyData.getKey()), familyData.getValue()); } documentMapWriter.end(); DocumentReaderWithProjection p = new DocumentReaderWithProjection(reader, projector); valueWriter.writeToListOrMap(writer, p); }
@Override public void writeDBDocument(VectorContainerWriter vectorWriter, DBDocumentReaderBase reader) throws SchemaChangeException { MapWriter writer = vectorWriter.rootAsMap(); Value id = reader.getId(); try { switch(id.getType()) { case STRING: valueWriter.writeString(writer, ID_KEY, id.getString()); break; case BINARY: valueWriter.writeBinary(writer, ID_KEY, id.getBinary()); break; default: throw new UnsupportedOperationException(id.getType() + " is not a supported type for _id field."); } } catch (IllegalStateException | IllegalArgumentException e) { throw schemaChangeException(logger, e, "Possible schema change at _id: '%s'", IdCodec.asString(id)); } }
@Override protected void writeDBDocument(VectorContainerWriter vectorWriter, DBDocumentReaderBase reader) throws SchemaChangeException { MapOrListWriterImpl writer = new MapOrListWriterImpl(vectorWriter.rootAsMap()); if (reader.next() != EventType.START_MAP) { throw dataReadError(logger, "The document did not start with START_MAP!"); } valueWriter.writeToListOrMap(writer, reader); }
public void readToInitSchema() { DBDocumentReaderBase reader = null; vectorWriter.setPosition(0); try (DocumentStream dstream = table.find()) { reader = (DBDocumentReaderBase) dstream.iterator().next().asReader(); documentWriter.writeDBDocument(vectorWriter, reader); } catch(UserException e) { throw UserException.unsupportedError(e) .addContext(String.format("Table: %s, document id: '%s'", getTable().getPath(), reader == null ? null : IdCodec.asString(reader.getId()))) .build(logger); } catch (SchemaChangeException e) { if (getIgnoreSchemaChange()) { logger.warn("{}. Dropping the row from result.", e.getMessage()); logger.debug("Stack trace:", e); } else { throw dataReadError(logger, e); } } finally { vectorWriter.setPosition(0); } }
String err_row = reader.getId().asJsonString(); if (ignoreSchemaChange) { logger.warn("{}. Dropping row '{}' from result.", e.getMessage(), err_row); table.getPath(), document.asReader() == null ? null : IdCodec.asString(((DBDocumentReaderBase)document.asReader()).getId()))) .build(logger); } catch (SchemaChangeException e) { String err_row = ((DBDocumentReaderBase)document.asReader()).getId().asJsonString(); if (ignoreSchemaChange) { logger.warn("{}. Dropping row '{}' from result.", e.getMessage(), err_row);
} catch (UserException e) { throw UserException.unsupportedError(e).addContext(String.format("Table: %s, document id: '%s'", getTable().getPath(), reader == null ? null : IdCodec.asString(reader.getId()))).build(logger); } catch (SchemaChangeException e) { if (getIgnoreSchemaChange()) {
@Override public String toString() { StringBuilder sb = new StringBuilder("MaprDBJsonRecordReader[Table=") .append(table != null ? table.getPath() : null); if (reader != null) { sb.append(", Document ID=") .append(IdCodec.asString(reader.getId())); } sb.append(", reader=") .append(reader) .append(']'); return sb.toString(); } }
@Override public void writeDBDocument(VectorContainerWriter vectorWriter, DBDocumentReaderBase reader) throws SchemaChangeException { MapWriter writer = vectorWriter.rootAsMap(); Value id = reader.getId(); try { switch(id.getType()) { case STRING: valueWriter.writeString(writer, ID_KEY, id.getString()); break; case BINARY: valueWriter.writeBinary(writer, ID_KEY, id.getBinary()); break; default: throw new UnsupportedOperationException(id.getType() + " is not a supported type for _id field."); } } catch (IllegalStateException | IllegalArgumentException e) { throw schemaChangeException(logger, e, "Possible schema change at _id: '%s'", IdCodec.asString(id)); } }
public void readToInitSchema() { DBDocumentReaderBase reader = null; vectorWriter.setPosition(0); try (DocumentStream dstream = table.find()) { reader = (DBDocumentReaderBase) dstream.iterator().next().asReader(); documentWriter.writeDBDocument(vectorWriter, reader); } catch(UserException e) { throw UserException.unsupportedError(e) .addContext(String.format("Table: %s, document id: '%s'", getTable().getPath(), reader == null ? null : IdCodec.asString(reader.getId()))) .build(logger); } catch (SchemaChangeException e) { if (getIgnoreSchemaChange()) { logger.warn("{}. Dropping the row from result.", e.getMessage()); logger.debug("Stack trace:", e); } else { throw dataReadError(logger, e); } } finally { vectorWriter.setPosition(0); } }
String err_row = reader.getId().asJsonString(); if (ignoreSchemaChange) { logger.warn("{}. Dropping row '{}' from result.", e.getMessage(), err_row); table.getPath(), document.asReader() == null ? null : IdCodec.asString(((DBDocumentReaderBase)document.asReader()).getId()))) .build(logger); } catch (SchemaChangeException e) { String err_row = ((DBDocumentReaderBase)document.asReader()).getId().asJsonString(); if (ignoreSchemaChange) { logger.warn("{}. Dropping row '{}' from result.", e.getMessage(), err_row);
} catch (UserException e) { throw UserException.unsupportedError(e).addContext(String.format("Table: %s, document id: '%s'", getTable().getPath(), reader == null ? null : IdCodec.asString(reader.getId()))).build(logger); } catch (SchemaChangeException e) { if (getIgnoreSchemaChange()) {