@@ -235,6 +235,7 @@ func (b *httpBatch) IsSent() bool {
235235func (b * httpBatch ) Send () (err error ) {
236236 defer func () {
237237 b .sent = true
238+ b .release (err )
238239 }()
239240 if b .sent {
240241 return ErrBatchAlreadySent
@@ -262,37 +263,31 @@ func (b *httpBatch) Send() (err error) {
262263 connWriter := compressionWriter .reset (pipeWriter )
263264
264265 go func () {
265- var err error = nil
266- defer b .release (err )
266+ var err error
267267 defer pipeWriter .CloseWithError (err )
268268 defer connWriter .Close ()
269269 b .conn .buffer .Reset ()
270- rowCount := b .block .Rows ()
271- if rowCount != 0 {
272- if err = b .conn .writeData (b .block ); err != nil {
273- return
274- }
275- }
276- if err = b .conn .writeData (& proto.Block {}); err != nil {
270+ if err = b .conn .writeData (b .block ); err != nil {
277271 return
278272 }
279273 if _ , err = connWriter .Write (b .conn .buffer .Buf ); err != nil {
280274 return
281275 }
282-
283- b .conn .debugf ("[batch send complete] rows=%d" , rowCount )
284276 }()
285277
286278 options .settings ["query" ] = b .query
287279 headers ["Content-Type" ] = "application/octet-stream"
288280
289- b .conn .debugf ("[batch send started] rows=%d" , b .block .Rows ())
281+ b .conn .debugf ("[batch send start] columns=%d rows=%d" , len ( b . block . Columns ) , b .block .Rows ())
290282 res , err := b .conn .sendStreamQuery (b .ctx , pipeReader , & options , headers )
291283 if err != nil {
292- return fmt .Errorf ("sendStreamQuery: %w" , err )
284+ return fmt .Errorf ("batch sendStreamQuery: %w" , err )
293285 }
294286 discardAndClose (res .Body )
295287
288+ b .conn .debugf ("[batch send complete]" )
289+ b .block .Reset ()
290+
296291 return nil
297292}
298293
0 commit comments