anchor.diff:      var c = list[0];
       if (c == 84) { // T for RowDescription.
         var qr = new QueryResults(), offset;
  -      offset = parseRowDescription(list, (fields) {
  -        qr.fields = fields;
  -      });
  +      offset = parseRowDescription(list, qr);
  +      if (offset < len) {
  +        if (list[offset] == 68) { // D
  +          parseDataRows(list, offset, qr);
  +        } else {
  +          throw "Unsupported for now.";
  +        }
  +      }
         p(["qr", qr]);
       } else if (c == 69) { // E for ErrorResponse.
         throw "ErrorResponse: ${inspect(parseFields(list))}";
  
positive.code:       // getUint32(list, offset + 1)
        _processId = getUint32(list, offset + 5);
        _secretKey = getUint32(list, offset + 9);
        p(["processId", _processId, "secretKey", _secretKey]);
      } else {
        throw "The BackendKeyData response was too short.";
      }
  
negative.code:     return MoreSys.memchr(address, 0, len) - address;
    }
  
    parseRowDescription(list, queryResults) {
      var len = list.length;
      if (len < 7) {
        throw "RowDescription response is too short.";
  