/** * Read one character from the input stream. * * @return the character */ private char readChar() throws IOException { int x = readByte() & 0xff; if (x < 0x80) { return (char) x; } else if (x >= 0xe0) { return (char) (((x & 0xf) << 12) + ((readByte() & 0x3f) << 6) + (readByte() & 0x3f)); } else { return (char) (((x & 0x1f) << 6) + (readByte() & 0x3f)); } }
@Override public int read(char[] buff, int off, int len) throws IOException { if (len == 0) { return 0; } int i = 0; try { for (; i < len; i++) { buff[off + i] = readChar(); } return len; } catch (EOFException e) { if (i == 0) { return -1; } return i; } }
/** * Read a row from an input stream. * * @param rowFactory the row factory * @param in the input stream * @param data a temporary buffer * @return the row */ public static Row readRow(RowFactory rowFactory, DataReader in, Data data) throws IOException { long key = in.readVarLong(); int len = in.readVarInt(); data.reset(); data.checkCapacity(len); in.readFully(data.getBytes(), len); int columnCount = data.readVarInt(); Value[] values = new Value[columnCount]; for (int i = 0; i < columnCount; i++) { values[i] = data.readValue(); } Row row = rowFactory.createRow(values, Row.MEMORY_CALCULATE); row.setKey(key); return row; }
/** * Read a string from the stream. * * @return the string */ public String readString() throws IOException { int len = readVarInt(); return readString(len); }
throws IOException { Data s = Data.create(this, pageSize); DataReader in = new DataReader( new PageInputStream(writer, this, store, logKey, logFirstTrunkPage, logFirstDataPage, pageSize) CompressLZF compress = new CompressLZF(); while (true) { int x = in.readByte(); if (x < 0) { break; int pageId = in.readVarInt(); int size = in.readVarInt(); byte[] data = new byte[pageSize]; if (size == 0) { in.readFully(data, pageSize); } else if (size == 1) { in.readFully(compressBuffer, size); try { compress.expand(compressBuffer, 0, size, data, 0, pageSize); int sessionId = in.readVarInt(); setStorage(in.readVarInt()); Row row = PageLog.readRow(RowFactory.DEFAULT, in, s); writer.println("-- session " + sessionId + int sessionId = in.readVarInt();
ErrorCode.CONNECTION_BROKEN_1, "length="+ length); DataReader reader = new DataReader(in); int len = (int) length; char[] buff = new char[len]; createClob(new DataReader(in), length); int magic = readInt(); if (magic != LOB_MAGIC) {
DataReader in = new DataReader(pageIn); int logId = 0; Data data = store.createData(); int pos = 0; while (true) { int x = in.readByte(); if (x < 0) { break; isEmpty = false; if (x == UNDO) { int pageId = in.readVarInt(); int size = in.readVarInt(); if (size == 0) { in.readFully(data.getBytes(), store.getPageSize()); } else if (size == 1) { in.readFully(compressBuffer, size); try { compress.expand(compressBuffer, 0, size, int sessionId = in.readVarInt(); int tableId = in.readVarInt(); Row row = readRow(store.getDatabase().getRowFactory(), in, data); if (stage == RECOVERY_STAGE_UNDO) { int sessionId = in.readVarInt(); int tableId = in.readVarInt();
/** * Read a string from the stream. * * @return the string */ public String readString() throws IOException { int len = readVarInt(); return readString(len); }
ErrorCode.CONNECTION_BROKEN_1, "length="+ length); DataReader reader = new DataReader(in); int len = (int) length; char[] buff = new char[len]; createClob(new DataReader(in), length); int magic = readInt(); if (magic != LOB_MAGIC) {
throws IOException { Data s = Data.create(this, pageSize); DataReader in = new DataReader( new PageInputStream(writer, this, store, logKey, logFirstTrunkPage, logFirstDataPage, pageSize) CompressLZF compress = new CompressLZF(); while (true) { int x = in.readByte(); if (x < 0) { break; int pageId = in.readVarInt(); int size = in.readVarInt(); byte[] data = new byte[pageSize]; if (size == 0) { in.readFully(data, pageSize); } else if (size == 1) { in.readFully(compressBuffer, size); try { compress.expand(compressBuffer, 0, size, data, 0, pageSize); int sessionId = in.readVarInt(); setStorage(in.readVarInt()); Row row = PageLog.readRow(RowFactory.DEFAULT, in, s); writer.println("-- session " + sessionId + int sessionId = in.readVarInt();
/** * Read a row from an input stream. * * @param rowFactory the row factory * @param in the input stream * @param data a temporary buffer * @return the row */ public static Row readRow(RowFactory rowFactory, DataReader in, Data data) throws IOException { long key = in.readVarLong(); int len = in.readVarInt(); data.reset(); data.checkCapacity(len); in.readFully(data.getBytes(), len); int columnCount = data.readVarInt(); Value[] values = new Value[columnCount]; for (int i = 0; i < columnCount; i++) { values[i] = data.readValue(); } Row row = rowFactory.createRow(values, Row.MEMORY_CALCULATE); row.setKey(key); return row; }
/** * Read a string from the stream. * * @return the string */ public String readString() throws IOException { int len = readVarInt(); return readString(len); }
private String readString(int len) throws IOException { char[] chars = new char[len]; for (int i = 0; i < len; i++) { chars[i] = readChar(); } return new String(chars); }
throws IOException { Data s = Data.create(this, pageSize); DataReader in = new DataReader( new PageInputStream(writer, this, store, logKey, logFirstTrunkPage, logFirstDataPage, pageSize) CompressLZF compress = new CompressLZF(); while (true) { int x = in.readByte(); if (x < 0) { break; int pageId = in.readVarInt(); int size = in.readVarInt(); byte[] data = new byte[pageSize]; if (size == 0) { in.readFully(data, pageSize); } else if (size == 1) { in.readFully(compressBuffer, size); try { compress.expand(compressBuffer, 0, size, data, 0, pageSize); int sessionId = in.readVarInt(); setStorage(in.readVarInt()); Row row = PageLog.readRow(RowFactory.DEFAULT, in, s); writer.println("-- session " + sessionId + int sessionId = in.readVarInt();
/** * Read a row from an input stream. * * @param rowFactory the row factory * @param in the input stream * @param data a temporary buffer * @return the row */ public static Row readRow(RowFactory rowFactory, DataReader in, Data data) throws IOException { long key = in.readVarLong(); int len = in.readVarInt(); data.reset(); data.checkCapacity(len); in.readFully(data.getBytes(), len); int columnCount = data.readVarInt(); Value[] values = new Value[columnCount]; for (int i = 0; i < columnCount; i++) { values[i] = data.readValue(); } Row row = rowFactory.createRow(values, Row.MEMORY_CALCULATE); row.setKey(key); return row; }
/** * Read a variable size integer. * * @return the value */ public int readVarInt() throws IOException { int b = readByte(); if (b >= 0) { return b; } int x = b & 0x7f; b = readByte(); if (b >= 0) { return x | (b << 7); } x |= (b & 0x7f) << 7; b = readByte(); if (b >= 0) { return x | (b << 14); } x |= (b & 0x7f) << 14; b = readByte(); if (b >= 0) { return x | b << 21; } return x | ((b & 0x7f) << 21) | (readByte() << 28); }
@Override public int read(char[] buff, int off, int len) throws IOException { if (len == 0) { return 0; } int i = 0; try { for (; i < len; i++) { buff[i] = readChar(); } return len; } catch (EOFException e) { if (i == 0) { return -1; } return i; } }
DataReader in = new DataReader(pageIn); int logId = 0; Data data = store.createData(); int pos = 0; while (true) { int x = in.readByte(); if (x < 0) { break; isEmpty = false; if (x == UNDO) { int pageId = in.readVarInt(); int size = in.readVarInt(); if (size == 0) { in.readFully(data.getBytes(), store.getPageSize()); } else if (size == 1) { in.readFully(compressBuffer, size); try { compress.expand(compressBuffer, 0, size, int sessionId = in.readVarInt(); int tableId = in.readVarInt(); Row row = readRow(store.getDatabase().getRowFactory(), in, data); if (stage == RECOVERY_STAGE_UNDO) { int sessionId = in.readVarInt(); int tableId = in.readVarInt();
/** * Read one character from the input stream. * * @return the character */ private char readChar() throws IOException { int x = readByte() & 0xff; if (x < 0x80) { return (char) x; } else if (x >= 0xe0) { return (char) (((x & 0xf) << 12) + ((readByte() & 0x3f) << 6) + (readByte() & 0x3f)); } else { return (char) (((x & 0x1f) << 6) + (readByte() & 0x3f)); } }