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

Method writePrepare

IceFireDB-SQLProxy/pkg/mysql/server/stmt.go:49–99  ·  view source on GitHub ↗
(s *Stmt)

Source from the content-addressed store, hash-verified

47}
48
49func (c *Conn) writePrepare(s *Stmt) error {
50 data := make([]byte, 4, 128)
51
52 // status ok
53 data = append(data, 0)
54 // stmt id
55 data = append(data, Uint32ToBytes(s.ID)...)
56 // number columns
57 data = append(data, Uint16ToBytes(uint16(s.Columns))...)
58 // number params
59 data = append(data, Uint16ToBytes(uint16(s.Params))...)
60 // filter [00]
61 data = append(data, 0)
62 // warning count
63 data = append(data, 0, 0)
64
65 if err := c.WritePacket(data); err != nil {
66 return err
67 }
68
69 if s.Params > 0 {
70 for i := 0; i < s.Params; i++ {
71 data = data[0:4]
72 data = append(data, paramFieldData...)
73
74 if err := c.WritePacket(data); err != nil {
75 return errors.Trace(err)
76 }
77 }
78
79 if err := c.writeEOF(); err != nil {
80 return err
81 }
82 }
83
84 if s.Columns > 0 {
85 for i := 0; i < s.Columns; i++ {
86 data = data[0:4]
87 data = append(data, columnFieldData...)
88
89 if err := c.WritePacket(data); err != nil {
90 return errors.Trace(err)
91 }
92 }
93
94 if err := c.writeEOF(); err != nil {
95 return err
96 }
97 }
98 return nil
99}
100
101func (c *Conn) handleStmtExecute(data []byte) (*Result, error) {
102 if len(data) < 9 {

Callers 1

WriteValueMethod · 0.95

Calls 4

WritePacketMethod · 0.95
writeEOFMethod · 0.95
Uint32ToBytesFunction · 0.50
Uint16ToBytesFunction · 0.50

Tested by

no test coverage detected