code: func (t *tikvHandlerTool) formValue2DatumRow(sc *stmtctx.StatementContext, values url.Values, idxCols []*model.ColumnInfo) ([]types.Datum, error) {
  	data := make([]types.Datum, len(idxCols))
  	for i, col := range idxCols {
  		colName := col.Name.String()
  		vals, ok := values[colName]
  		if !ok {
  			return nil, errors.BadRequestf("Missing value for index column %s.", colName)
  		}
  
  		switch len(vals) {
  		case 0:
  			data[i].SetNull()
  		case 1:
  			bDatum := types.NewStringDatum(vals[0])
  			cDatum, err := bDatum.ConvertTo(sc, &col.FieldType)
  			if err != nil {
  				return nil, errors.Trace(err)
  			}
  			data[i] = cDatum
  		default:
  			return nil, errors.BadRequestf("Invalid query form for column '%s', it's values are %v."+
  				" Column value should be unique for one index record.", colName, vals)
  		}
  	}
  	return data, nil
  }
docs: // formValue2DatumRow converts URL query string to a Datum Row.