private RowStoreEncoder(Schema schema) { this.schema = schema; nullFlags = new BitArray(schema.size()); headerSize = nullFlags.bytesLength(); }
@Override public void clear() { curOffset = 0; curFieldIdx = 0; nullFlags.clear(); }
public String toString() { StringBuilder sb = new StringBuilder(); for(int i = 0;i < length;i++) { if(this.get(i)) sb.append("1"); else sb.append("0"); if (i > 0 && i % 8 == 0) { sb.append(" "); } } return sb.toString(); } }
public Tuple toTuple(byte [] bytes) { nullFlags.clear(); ByteBuffer bb = ByteBuffer.wrap(bytes); Tuple tuple = new VTuple(schema.size()); nullFlags.fromByteBuffer(bb); bb.limit(bytes.length); if (nullFlags.get(i)) { tuple.put(i, DatumFactory.createNullDatum()); continue;
nullFlags.fromByteBuffer(buffer); if (nullFlags.get(i)) { outTuple.put(i, DatumFactory.createNullDatum()); continue;
byte[] nullFlagBytes = new byte[nullFlagSize]; buffer.get(nullFlagBytes, 0, nullFlagSize); nullFlags = new BitArray(nullFlagBytes); int tupleSize = buffer.getShort(); Column col; for (i = 0; i < schema.size(); i++) { if (!nullFlags.get(i)) { col = schema.getColumn(i); switch (col.getDataType().getType()) {
@Override public void skipField() { // set null flag nullFlags.set(curFieldIdx); curFieldIdx++; }
@Override public void endRow() { long rowHeaderPos = recordStartAddr(); // curOffset is equivalent to a byte length of this row. PlatformDependent.putInt(rowHeaderPos, curOffset); rowHeaderPos += SizeOf.SIZE_OF_INT; //set null flags byte [] flags = nullFlags.toArray(); PlatformDependent.putShort(rowHeaderPos, (short) flags.length); rowHeaderPos += SizeOf.SIZE_OF_SHORT; PlatformDependent.copyMemory(flags, 0, rowHeaderPos, flags.length); rowBlock.setRows(rowBlock.rows() + 1); }
public void init() throws IOException { SYNC_INTERVAL = conf.getInt(ConfVars.ROWFILE_SYNC_INTERVAL.varname, ConfVars.ROWFILE_SYNC_INTERVAL.defaultIntVal); fs = path.getFileSystem(conf); if (!fs.exists(path.getParent())) { throw new FileNotFoundException(path.toString()); } if (fs.exists(path)) { throw new AlreadyExistsStorageException(path); } sync = new byte[SYNC_HASH_SIZE]; lastSyncPos = 0; out = fs.create(path); MessageDigest md; try { md = MessageDigest.getInstance("MD5"); md.update((path.toString()+System.currentTimeMillis()).getBytes()); sync = md.digest(); } catch (NoSuchAlgorithmException e) { LOG.error(e); } writeHeader(); buffer = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE); nullFlags = new BitArray(schema.size()); if (enabledStats) { this.stats = new TableStatistics(this.schema); } }
public byte[] toBytes(Tuple tuple) { nullFlags.clear(); int size = estimateTupleDataSize(tuple); ByteBuffer bb = ByteBuffer.allocate(size + headerSize); for (int i = 0; i < schema.size(); i++) { if (tuple.isBlankOrNull(i)) { nullFlags.set(i); continue; switch (col.getDataType().getType()) { case NULL_TYPE: nullFlags.set(i); break; case BOOLEAN: byte[] flags = nullFlags.toArray(); int finalPosition = bb.position(); bb.position(0);
public Tuple toTuple(byte [] bytes) { nullFlags.clear(); ByteBuffer bb = ByteBuffer.wrap(bytes); Tuple tuple = new VTuple(schema.size()); nullFlags.fromByteBuffer(bb); bb.limit(bytes.length); if (nullFlags.get(i)) { tuple.put(i, DatumFactory.createNullDatum()); continue;
nullFlags.fromByteBuffer(buffer); if (nullFlags.get(i)) { outTuple.put(i, DatumFactory.createNullDatum()); continue;
byte[] nullFlagBytes = new byte[nullFlagSize]; buffer.get(nullFlagBytes, 0, nullFlagSize); nullFlags = new BitArray(nullFlagBytes); int tupleSize = buffer.getShort(); Column col; for (i = 0; i < schema.size(); i++) { if (!nullFlags.get(i)) { col = schema.getColumn(i); switch (col.getDataType().getType()) {
@Override public void skipField() { // set null flag nullFlags.set(curFieldIdx); curFieldIdx++; }
@Override public void endRow() { long rowHeaderPos = recordStartAddr(); // curOffset is equivalent to a byte length of this row. PlatformDependent.putInt(rowHeaderPos, curOffset); rowHeaderPos += SizeOf.SIZE_OF_INT; //set null flags byte [] flags = nullFlags.toArray(); PlatformDependent.putShort(rowHeaderPos, (short) flags.length); rowHeaderPos += SizeOf.SIZE_OF_SHORT; PlatformDependent.copyMemory(flags, 0, rowHeaderPos, flags.length); rowBlock.setRows(rowBlock.rows() + 1); }
nullFlags = new BitArray(schema.size());
private RowStoreEncoder(Schema schema) { this.schema = schema; nullFlags = new BitArray(schema.size()); headerSize = nullFlags.bytesLength(); } public byte [] toBytes(Tuple tuple) {
public byte[] toBytes(Tuple tuple) { nullFlags.clear(); int size = estimateTupleDataSize(tuple); ByteBuffer bb = ByteBuffer.allocate(size + headerSize); for (int i = 0; i < schema.size(); i++) { if (tuple.isBlankOrNull(i)) { nullFlags.set(i); continue; switch (col.getDataType().getType()) { case NULL_TYPE: nullFlags.set(i); break; case BOOLEAN: byte[] flags = nullFlags.toArray(); int finalPosition = bb.position(); bb.position(0);
public Tuple toTuple(byte [] bytes) { nullFlags.clear(); ByteBuffer bb = ByteBuffer.wrap(bytes); Tuple tuple = new VTuple(schema.size()); nullFlags.fromByteBuffer(bb); bb.limit(bytes.length); if (nullFlags.get(i)) { tuple.put(i, DatumFactory.createNullDatum()); continue;