Commit b29ed61 1 parent 0c5789d commit b29ed61 Copy full SHA for b29ed61
File tree 3 files changed +29
-1
lines changed
3 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -19,3 +19,16 @@ func (r *Result) Close() {
19
19
r .Resultset = nil
20
20
}
21
21
}
22
+
23
+ func (r * Result ) ChainResultSet (rs * Resultset ) {
24
+ if r .Resultset == nil {
25
+ r .Resultset = rs
26
+ return
27
+ }
28
+
29
+ var lastRS * Resultset
30
+
31
+ for lastRS = r .Resultset ; lastRS .Next != nil ; lastRS = lastRS .Next {}
32
+
33
+ lastRS .Next = rs
34
+ }
Original file line number Diff line number Diff line change @@ -17,6 +17,8 @@ type Resultset struct {
17
17
RawPkg []byte
18
18
19
19
RowDatas []RowData
20
+
21
+ Next * Resultset
20
22
}
21
23
22
24
var (
Original file line number Diff line number Diff line change @@ -181,7 +181,20 @@ func (c *Conn) writeValue(value interface{}) error {
181
181
return c .writeOK (nil )
182
182
case * Result :
183
183
if v != nil && v .Resultset != nil {
184
- return c .writeResultset (v .Resultset )
184
+ for rs := v .Resultset ; rs != nil ; rs = rs .Next {
185
+ if rs .Next != nil {
186
+ c .status |= SERVER_MORE_RESULTS_EXISTS
187
+ }
188
+
189
+ err := c .writeResultset (rs )
190
+ c .status &= ^ SERVER_MORE_RESULTS_EXISTS
191
+
192
+ if err != nil {
193
+ return err
194
+ }
195
+ }
196
+
197
+ return nil
185
198
} else {
186
199
return c .writeOK (v )
187
200
}
You can’t perform that action at this time.
0 commit comments