From 1c0bbfbb09690b28085a8467558e922c42b2c915 Mon Sep 17 00:00:00 2001 From: Igor Berntein Date: Mon, 16 Oct 2023 10:06:21 -0400 Subject: [PATCH] add a new constructor for chunkReader to avoid line noise --- bigtable/bigtable.go | 9 ++++++++- bigtable/reader.go | 9 +++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/bigtable/bigtable.go b/bigtable/bigtable.go index add080f6cd2f..177106a68447 100644 --- a/bigtable/bigtable.go +++ b/bigtable/bigtable.go @@ -208,7 +208,14 @@ func (t *Table) ReadRows(ctx context.Context, arg RowSet, f func(Row) bool, opts if err != nil { return err } - cr := newChunkReader(req.Reversed) + + var cr *chunkReader + if req.Reversed { + cr = newReverseChunkReader() + } else { + cr = newChunkReader() + } + for { res, err := stream.Recv() if err == io.EOF { diff --git a/bigtable/reader.go b/bigtable/reader.go index 16a808c70884..e8da73d7c7bb 100644 --- a/bigtable/reader.go +++ b/bigtable/reader.go @@ -72,10 +72,15 @@ type chunkReader struct { } // newChunkReader returns a new chunkReader for handling read rows responses. -func newChunkReader(reversed bool) *chunkReader { - return &chunkReader{reversed: reversed, state: newRow} +func newChunkReader() *chunkReader { + return &chunkReader{reversed: false, state: newRow} } +func newReverseChunkReader() *chunkReader { + return &chunkReader{reversed: true, state: newRow} +} + + // Process takes a cell chunk and returns a new Row if the given chunk // completes a Row, or nil otherwise. func (cr *chunkReader) Process(cc *btpb.ReadRowsResponse_CellChunk) (Row, error) {