From 618468dd42c5544b428af61fb8ee6c1dce29f24a Mon Sep 17 00:00:00 2001 From: Piotr Fus Date: Thu, 7 Mar 2024 13:27:43 +0100 Subject: [PATCH] SNOW-1222159 Download arrow batches even if first one is empty --- chunk_downloader.go | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/chunk_downloader.go b/chunk_downloader.go index a265f2fa6..50ec0edcd 100644 --- a/chunk_downloader.go +++ b/chunk_downloader.go @@ -271,32 +271,31 @@ func getChunk( } func (scd *snowflakeChunkDownloader) startArrowBatches() error { - if scd.RowSet.RowSetBase64 == "" { - return nil - } - var err error - chunkMetaLen := len(scd.ChunkMetas) var loc *time.Location if scd.sc != nil && scd.sc.cfg != nil { loc = getCurrentLocation(scd.sc.cfg.Params) } - firstArrowChunk, err := buildFirstArrowChunk(scd.RowSet.RowSetBase64, loc, scd.pool) - if err != nil { - return err - } - scd.FirstBatch = &ArrowBatch{ - idx: 0, - scd: scd, - funcDownloadHelper: scd.FuncDownloadHelper, - loc: loc, - } - // decode first chunk if possible - if firstArrowChunk.allocator != nil { - scd.FirstBatch.rec, err = firstArrowChunk.decodeArrowBatch(scd) + if scd.RowSet.RowSetBase64 != "" { + var err error + firstArrowChunk, err := buildFirstArrowChunk(scd.RowSet.RowSetBase64, loc, scd.pool) if err != nil { return err } + scd.FirstBatch = &ArrowBatch{ + idx: 0, + scd: scd, + funcDownloadHelper: scd.FuncDownloadHelper, + loc: loc, + } + // decode first chunk if possible + if firstArrowChunk.allocator != nil { + scd.FirstBatch.rec, err = firstArrowChunk.decodeArrowBatch(scd) + if err != nil { + return err + } + } } + chunkMetaLen := len(scd.ChunkMetas) scd.ArrowBatches = make([]*ArrowBatch, chunkMetaLen) for i := range scd.ArrowBatches { scd.ArrowBatches[i] = &ArrowBatch{