docs: public final VoltTableRow fetchRow(int index) {
          assert(verifyTableInvariants());
  
          // check bounds
          if ((index < 0) || (index >= m_rowCount)) {
              throw new IndexOutOfBoundsException("index = " + index + "; rows = " + m_rowCount);
          }
  
          // if no memoized value or looking in front of the memoized value, reset
          if ((m_memoizedRowOffset == NO_MEMOIZED_ROW_OFFSET) || (index < m_memoizedRowOffset)) {
              m_memoizedRowOffset = 0; m_memoizedBufferOffset = m_rowStart + ROW_COUNT_SIZE;
          }
  
          while (m_memoizedRowOffset < index) {
              // add 4 bytes as the row size is non-inclusive
              m_memoizedBufferOffset += m_buffer.getInt(m_memoizedBufferOffset) + ROW_HEADER_SIZE;
              m_memoizedRowOffset++;
          }
          Row retval = new Row(m_memoizedBufferOffset + ROW_HEADER_SIZE);
          retval.m_activeRowIndex = index;
          return retval;
      }