Skip to content

Commit 477c7b6

Browse files
committed
remove empty block from being encoded in batch
1 parent 277a485 commit 477c7b6

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

conn_http_batch.go

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ func (b *httpBatch) IsSent() bool {
235235
func (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

Comments
 (0)