/** * Returns the value row by two steps: * 1) looking up the key row with the same id (skipped if the key row is cached) * 2) retrieve the value row by reusing the metadata from step 1) * In most times, 1) is skipped because `getKeyRow(id)` is often called before `getValueRow(id)`. */ @Override protected UnsafeRow getValueFromKey(int rowId) { if (keyRowId != rowId) { getKeyRow(rowId); } assert(rowId >= 0); valueRow.pointTo(base, keyRow.getBaseOffset() + klen, vlen); return valueRow; }
/** * Returns the value row by two steps: * 1) looking up the key row with the same id (skipped if the key row is cached) * 2) retrieve the value row by reusing the metadata from step 1) * In most times, 1) is skipped because `getKeyRow(id)` is often called before `getValueRow(id)`. */ @Override protected UnsafeRow getValueFromKey(int rowId) { if (keyRowId != rowId) { getKeyRow(rowId); } assert(rowId >= 0); valueRow.pointTo(base, keyRow.getBaseOffset() + klen, vlen); return valueRow; }
/** * Returns the value row by two steps: * 1) looking up the key row with the same id (skipped if the key row is cached) * 2) retrieve the value row by reusing the metadata from step 1) * In most times, 1) is skipped because `getKeyRow(id)` is often called before `getValueRow(id)`. */ @Override protected UnsafeRow getValueFromKey(int rowId) { if (keyRowId != rowId) { getKeyRow(rowId); } assert(rowId >= 0); valueRow.pointTo(base, keyRow.getBaseOffset() + klen, vlen + 4); return valueRow; }