From 63187f59ee259bed0fe56b114ca2a2cd22d6aa26 Mon Sep 17 00:00:00 2001 From: Jason Aten Date: Fri, 4 Sep 2020 17:28:38 -0500 Subject: [PATCH] refine our f.gen nil handling to support blue/green --- fragment.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/fragment.go b/fragment.go index e3e8d9242..cef03de05 100644 --- a/fragment.go +++ b/fragment.go @@ -638,8 +638,11 @@ func (f *fragment) setBit(tx Tx, rowID, columnID uint64) (changed bool, err erro if f.gen != nil { err = f.gen.Transaction(wp, doSetFunc) } else { - panic("internal error: f.gen was nil. should never happen under roaring b/c storage should be open") - //err = doSetFunc() + if tx.Type() == RoaringTxn { + panic("internal error: f.gen was nil. should never happen under roaring b/c storage should be open") + } + // else blue green or transactional backend. Just do it. + err = doSetFunc() } return changed, err } @@ -2342,8 +2345,11 @@ func (f *fragment) importPositions(tx Tx, set, clear []uint64, rowSet map[uint64 if f.gen != nil { err = f.gen.Transaction(wp, doFunc) } else { - panic("internal error: 2nd place, f.gen was nil. should never happen under roaring b/c storage should be open") - //err = doFunc() + if tx.Type() == RoaringTxn { + panic("internal error: 2nd place, f.gen was nil. should never happen under roaring b/c storage should be open") + } + // else blue green or transactional backend. Just do it. + err = doFunc() } if err != nil {