code: func DecodeRecordKey(key kv.Key) (tableID int64, handle int64, err error) {
  	if len(key) <= prefixLen {
  		return 0, 0, errInvalidRecordKey.GenWithStack("invalid record key - %q", key)
  	}
  
  	k := key
  	if !hasTablePrefix(key) {
  		return 0, 0, errInvalidRecordKey.GenWithStack("invalid record key - %q", k)
  	}
  
  	key = key[tablePrefixLength:]
  	key, tableID, err = codec.DecodeInt(key)
  	if err != nil {
  		return 0, 0, errors.Trace(err)
  	}
  
  	if !hasRecordPrefixSep(key) {
  		return 0, 0, errInvalidRecordKey.GenWithStack("invalid record key - %q", k)
  	}
  
  	key = key[recordPrefixSepLength:]
  	key, handle, err = codec.DecodeInt(key)
  	if err != nil {
  		return 0, 0, errors.Trace(err)
  	}
  	return
  }
docs: // DecodeRecordKey decodes the key and gets the tableID, handle.