(result *Result)
| 321 | } |
| 322 | |
| 323 | func (c *Conn) readResultColumns(result *Result) (err error) { |
| 324 | var i int = 0 |
| 325 | var data []byte |
| 326 | |
| 327 | for { |
| 328 | rawPkgLen := len(result.RawPkg) |
| 329 | result.RawPkg, err = c.ReadPacketReuseMem(result.RawPkg) |
| 330 | if err != nil { |
| 331 | return |
| 332 | } |
| 333 | data = result.RawPkg[rawPkgLen:] |
| 334 | |
| 335 | // EOF Packet |
| 336 | if c.isEOFPacket(data) { |
| 337 | if c.capability&CLIENT_PROTOCOL_41 > 0 { |
| 338 | result.Warnings = binary.LittleEndian.Uint16(data[1:]) |
| 339 | // todo add strict_mode, warning will be treat as error |
| 340 | result.Status = binary.LittleEndian.Uint16(data[3:]) |
| 341 | c.status = result.Status |
| 342 | } |
| 343 | |
| 344 | if i != len(result.Fields) { |
| 345 | err = ErrMalformPacket |
| 346 | } |
| 347 | |
| 348 | return |
| 349 | } |
| 350 | |
| 351 | if result.Fields[i] == nil { |
| 352 | result.Fields[i] = &Field{} |
| 353 | } |
| 354 | err = result.Fields[i].Parse(data) |
| 355 | if err != nil { |
| 356 | return |
| 357 | } |
| 358 | |
| 359 | result.FieldNames[hack.String(result.Fields[i].Name)] = i |
| 360 | |
| 361 | i++ |
| 362 | } |
| 363 | } |
| 364 | |
| 365 | func (c *Conn) readResultRows(result *Result, isBinary bool) (err error) { |
| 366 | var data []byte |
no test coverage detected