fix(storage/reads): release arrow buffers when advancing on table (#12737)

pull/12778/head
Lorenzo Affetti 2019-03-20 15:48:59 +01:00 committed by GitHub
parent d18c6e5ffe
commit 7dbecfa256
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 0 deletions

View File

@ -91,6 +91,12 @@ func (t *floatTable) Do(f func(flux.ColReader) error) error {
}
func (t *floatTable) advance() bool {
for _, cb := range t.colBufs {
if cb != nil {
cb.Release()
}
}
a := t.cur.Next()
t.l = a.Len()
if t.l == 0 {
@ -320,6 +326,12 @@ func (t *integerTable) Do(f func(flux.ColReader) error) error {
}
func (t *integerTable) advance() bool {
for _, cb := range t.colBufs {
if cb != nil {
cb.Release()
}
}
a := t.cur.Next()
t.l = a.Len()
if t.l == 0 {
@ -549,6 +561,12 @@ func (t *unsignedTable) Do(f func(flux.ColReader) error) error {
}
func (t *unsignedTable) advance() bool {
for _, cb := range t.colBufs {
if cb != nil {
cb.Release()
}
}
a := t.cur.Next()
t.l = a.Len()
if t.l == 0 {
@ -778,6 +796,12 @@ func (t *stringTable) Do(f func(flux.ColReader) error) error {
}
func (t *stringTable) advance() bool {
for _, cb := range t.colBufs {
if cb != nil {
cb.Release()
}
}
a := t.cur.Next()
t.l = a.Len()
if t.l == 0 {
@ -1007,6 +1031,12 @@ func (t *booleanTable) Do(f func(flux.ColReader) error) error {
}
func (t *booleanTable) advance() bool {
for _, cb := range t.colBufs {
if cb != nil {
cb.Release()
}
}
a := t.cur.Next()
t.l = a.Len()
if t.l == 0 {

View File

@ -85,6 +85,12 @@ func (t *{{.name}}Table) Do(f func(flux.ColReader) error) error {
}
func (t *{{.name}}Table) advance() bool {
for _, cb := range t.colBufs {
if cb != nil {
cb.Release()
}
}
a := t.cur.Next()
t.l = a.Len()
if t.l == 0 {