MCPcopy
hub / github.com/go-sql-driver/mysql / query

Method query

statement.go:104–150  ·  view source on GitHub ↗
(args []driver.Value)

Source from the content-addressed store, hash-verified

102}
103
104func (stmt *mysqlStmt) query(args []driver.Value) (*binaryRows, error) {
105 if stmt.mc.closed.Load() {
106 return nil, driver.ErrBadConn
107 }
108 // Send command
109 err := stmt.writeExecutePacket(args)
110 if err != nil {
111 return nil, stmt.mc.markBadConn(err)
112 }
113
114 mc := stmt.mc
115
116 // Read Result
117 handleOk := stmt.mc.clearResult()
118 resLen, metadataFollows, err := handleOk.readResultSetHeaderPacket()
119 if err != nil {
120 return nil, err
121 }
122
123 rows := new(binaryRows)
124
125 if resLen > 0 {
126 rows.mc = mc
127 if metadataFollows {
128 if rows.rs.columns, err = mc.readColumns(resLen, stmt.columns); err != nil {
129 return nil, err
130 }
131 stmt.columns = rows.rs.columns
132 } else {
133 if err = mc.skipEof(); err != nil {
134 return nil, err
135 }
136 rows.rs.columns = stmt.columns
137 }
138 } else {
139 rows.rs.done = true
140
141 switch err := rows.NextResultSet(); err {
142 case nil, io.EOF:
143 return rows, nil
144 default:
145 return nil, err
146 }
147 }
148
149 return rows, err
150}
151
152var jsonType = reflect.TypeFor[json.RawMessage]()
153

Callers 2

QueryMethod · 0.95
QueryContextMethod · 0.95

Calls 7

writeExecutePacketMethod · 0.95
markBadConnMethod · 0.80
clearResultMethod · 0.80
readColumnsMethod · 0.80
skipEofMethod · 0.80
NextResultSetMethod · 0.45

Tested by

no test coverage detected