private void primitiveToJson(ColumnMetaData column, Object value) throws IOException { switch (column.getType()) { case NULL: generator.writeNull(); break; case BOOLEAN: generator.writeBoolean((Boolean)value); break; case INT: generator.writeNumber((Integer)value); break; case LONG: generator.writeNumber((Long)value); break; case FIXED32: generator.writeNumber((Integer)value); break; case FIXED64: generator.writeNumber((Long)value); break; case FLOAT: generator.writeNumber((Float)value); break; case DOUBLE: generator.writeNumber((Double)value); break; case STRING: generator.writeString((String)value); break; case BYTES: generator.writeBinary((byte[])value); break; default: throw new RuntimeException("Unknown value type: "+column.getType()); } }
public void writeValue(Object value) throws IOException { buffer.writeValue(value, meta.getType()); if (meta.hasIndexValues() && rowCount == 0) firstValues.add(buffer.toByteArray()); }
ColumnValues(ColumnDescriptor column) throws IOException { this.column = column; this.type = column.metaData.getType(); this.codec = Codec.get(column.metaData); this.checksum = Checksum.get(column.metaData); this.in = new InputBuffer(column.file); column.ensureBlocksRead(); }
public void ensureBlocksRead() throws IOException { if (blocks != null) return; // read block descriptors InputBuffer in = new InputBuffer(file, start); int blockCount = in.readFixed32(); BlockDescriptor[] blocks = new BlockDescriptor[blockCount]; if (metaData.hasIndexValues()) firstValues = (T[])new Comparable[blockCount]; for (int i = 0; i < blockCount; i++) { blocks[i] = BlockDescriptor.read(in); if (metaData.hasIndexValues()) firstValues[i] = in.readValue(metaData.getType()); } dataStart = in.tell(); // compute blockStarts and firstRows Checksum checksum = Checksum.get(metaData); blockStarts = new long[blocks.length]; firstRows = new long[blocks.length]; long startPosition = dataStart; long row = 0; for (int i = 0; i < blockCount; i++) { BlockDescriptor b = blocks[i]; blockStarts[i] = startPosition; firstRows[i] = row; startPosition += b.compressedSize + checksum.size(); row += b.rowCount; } this.blocks = blocks; }
public void writeValue(Object value) throws IOException { buffer.writeValue(value, meta.getType()); if (meta.hasIndexValues() && rowCount == 0) firstValues.add(buffer.toByteArray()); }
@Override public void writeValue(Object value) throws IOException { assert length > 0; getBuffer().writeValue(value, getMeta().getType()); length -= 1; }
ColumnValues(ColumnDescriptor column) throws IOException { this.column = column; this.type = column.metaData.getType(); this.codec = Codec.get(column.metaData); this.checksum = Checksum.get(column.metaData); this.in = new InputBuffer(column.file); column.ensureBlocksRead(); }
private void primitiveToJson(ColumnMetaData column, Object value) throws IOException { switch (column.getType()) { case NULL: generator.writeNull(); break; case INT: generator.writeNumber((Integer)value); break; case LONG: generator.writeNumber((Long)value); break; case FIXED32: generator.writeNumber((Integer)value); break; case FIXED64: generator.writeNumber((Long)value); break; case FLOAT: generator.writeNumber((Float)value); break; case DOUBLE: generator.writeNumber((Double)value); break; case STRING: generator.writeString((String)value); break; case BYTES: generator.writeBinary((byte[])value); break; default: throw new RuntimeException("Unknown value type: "+column.getType()); } }
private void primitiveToJson(ColumnMetaData column, Object value) throws IOException { switch (column.getType()) { case NULL: generator.writeNull(); break; case BOOLEAN: generator.writeBoolean((Boolean)value); break; case INT: generator.writeNumber((Integer)value); break; case LONG: generator.writeNumber((Long)value); break; case FIXED32: generator.writeNumber((Integer)value); break; case FIXED64: generator.writeNumber((Long)value); break; case FLOAT: generator.writeNumber((Float)value); break; case DOUBLE: generator.writeNumber((Double)value); break; case STRING: generator.writeString((String)value); break; case BYTES: generator.writeBinary((byte[])value); break; default: throw new RuntimeException("Unknown value type: "+column.getType()); } }
public void ensureBlocksRead() throws IOException { if (blocks != null) return; // read block descriptors InputBuffer in = new InputBuffer(file, start); int blockCount = in.readFixed32(); BlockDescriptor[] blocks = new BlockDescriptor[blockCount]; if (metaData.hasIndexValues()) firstValues = (T[])new Comparable[blockCount]; for (int i = 0; i < blockCount; i++) { blocks[i] = BlockDescriptor.read(in); if (metaData.hasIndexValues()) firstValues[i] = in.<T>readValue(metaData.getType()); } dataStart = in.tell(); // compute blockStarts and firstRows Checksum checksum = Checksum.get(metaData); blockStarts = new long[blocks.length]; firstRows = new long[blocks.length]; long startPosition = dataStart; long row = 0; for (int i = 0; i < blockCount; i++) { BlockDescriptor b = blocks[i]; blockStarts[i] = startPosition; firstRows[i] = row; startPosition += b.compressedSize + checksum.size(); row += b.rowCount; } this.blocks = blocks; }