public int getPos() { return node.row.getPos(); }
public int getPos() { return row.getPos(); }
public int getPos() { return row.getPos(); }
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(); }
private boolean removeIfExists(Session session, Row row) throws SQLException { // maybe it was inserted by the same session just before Cursor c = delta.find(session, row, row); while (c.next()) { Row r = c.get(); if (r.getPos() == row.getPos() && r.getVersion() == row.getVersion()) { if (r != row && table.getScanIndex(session).compareRows(r, row) != 0) { row.setVersion(r.getVersion() + 1); } else { delta.remove(session, r); return true; } } } return false; }
public void add(Session session, Row row) throws SQLException { if (intMap != null) { int key = row.getValue(columns[0].getColumnId()).getInt(); intMap.put(key, row.getPos()); } else { Value key = getKey(row); Object old = rows.get(key); if (old != null) { // TODO index duplicate key for hash indexes: is this allowed? throw getDuplicateKeyException(); } Integer pos = ObjectUtils.getInteger(row.getPos()); rows.put(getKey(row), pos); } rowCount++; }
Row getNextRow(Session session, Row row) throws SQLException { if (storage == null) { int key; if (row == null) { key = -1; } else { key = row.getPos(); } while (true) { key++; if (key >= rows.size()) { return null; } row = (Row) rows.get(key); if (!row.isEmpty()) { return row; } } } int pos = storage.getNext(row); if (pos < 0) { return null; } return (Row) storage.getRecord(session, pos); }
int key = firstFree; Row free = (Row) rows.get(key); firstFree = free.getPos(); row.setPos(key); rows.set(key, row);
int k1 = deltaRow.getPos(); int k2 = baseRow.getPos(); compare = k1 == k2 ? 0 : k1 > k2 ? 1 : -1;
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); } }