code: func ConvertAssignRowNullable(row []Value, dest ...interface{}) error {
  	if len(row) != len(dest) {
  		return errors.Newf(
  			"# of row entries %d does not match # of destinations %d",
  			len(row),
  			len(dest))
  	}
  
  	if row == nil {
  		return nil
  	}
  
  	for i := 0; i < len(row); i++ {
  		if row[i].IsNull() {
  			continue
  		}
  
  		err := ConvertAssign(row[i], dest[i])
  		if err != nil {
  			return err
  		}
  	}
  
  	return nil
  }
docs: // ConverAssignRowNullable is the same as ConvertAssignRow except that it allows
  // nil as a value for the row or any of the row values. In thoses cases, the
  // corresponding values are ignored.