MCPcopy Create free account
hub / github.com/IceFireDB/IceFireDB / readResultColumns

Method readResultColumns

IceFireDB-SQLProxy/pkg/mysql/client/resp.go:323–363  ·  view source on GitHub ↗
(result *Result)

Source from the content-addressed store, hash-verified

321}
322
323func (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
365func (c *Conn) readResultRows(result *Result, isBinary bool) (err error) {
366 var data []byte

Callers 2

readResultsetMethod · 0.95

Calls 4

ReadPacketReuseMemMethod · 0.95
isEOFPacketMethod · 0.95
StringMethod · 0.65
ParseMethod · 0.45

Tested by

no test coverage detected