public String toString() { StringBuffer buff = new StringBuffer(data.length * 5); buff.append("( /* pos:"); buff.append(getPos()); if (version != 0) { buff.append(" v:" + version); } if (getDeleted()) { buff.append(" deleted"); } buff.append(" */ "); for (int i = 0; i < data.length; i++) { if (i > 0) { buff.append(", "); } buff.append(data[i].getSQL()); } buff.append(')'); return buff.toString(); }
public boolean next() throws SQLException { if (multiVersion) { while (true) { if (delta != null) { if (!delta.hasNext()) { delta = null; row = null; continue; } else { row = (Row) delta.next(); if (!row.getDeleted() || row.getSessionId() == session.getId()) { continue; } } } else { row = scan.getNextRow(session, row); if (row != null && row.getSessionId() != 0 && row.getSessionId() != session.getId()) { continue; } } break; } return row != null; } row = scan.getNextRow(session, row); return row != null; }
boolean isDeleted = deltaRow.getDeleted(); if (isThisSession && isDeleted) { needNewDelta = true;
public void removeRow(Session session, Row row) throws SQLException { lastModificationId = database.getNextModificationDataId(); if (database.isMultiVersion()) { if (row.getDeleted()) { throw Message.getSQLException(ErrorCode.CONCURRENT_UPDATE_1, getName());
private void writeRow(DataPage buff, Row r) throws SQLException { buff.checkCapacity(1 + buff.getIntLen() * 7); buff.writeByte((byte) 1); buff.writeInt(r.getMemorySize()); buff.writeInt(r.getColumnCount()); buff.writeInt(r.getPos()); buff.writeInt(r.getVersion()); buff.writeInt(r.getDeleted() ? 1 : 0); buff.writeInt(r.getSessionId()); buff.writeInt(r.getStorageId()); for (int i = 0; i < r.getColumnCount(); i++) { Value v = r.getValue(i); if (v.getType() == Value.CLOB || v.getType() == Value.BLOB) { // need to keep a reference to temporary lobs, // otherwise the temp file is deleted ValueLob lob = (ValueLob) v; if (lob.getSmall() == null && lob.getTableId() == 0) { if (lobs == null) { lobs = new ObjectArray(); } lobs.add(lob); } } buff.checkCapacity(buff.getValueLen(v)); buff.writeValue(v); } }