Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions vector/vbuild/array.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ func newArraySetBuilder(typ super.Type) *arraySetBuilder {

func (a *arraySetBuilder) Write(vec vector.Any) {
n := vec.Len()
if n == 0 {
return
}
var index []uint32
if view, ok := vec.(*vector.View); ok {
vec = view.Any
Expand Down
3 changes: 3 additions & 0 deletions vector/vbuild/bool.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ type boolBuilder struct {
}

func (b *boolBuilder) Write(vec vector.Any) {
if vec.Len() == 0 {
return
}
switch vec := vec.(type) {
case *vector.Const:
v := vec.Any.(*vector.Bool).IsSet(0)
Expand Down
9 changes: 9 additions & 0 deletions vector/vbuild/bytes.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ type bytesConstWriter struct {
}

func (b *bytesConstWriter) Write(vec vector.Any) genericWriter {
if vec.Len() == 0 {
return b
}
if c, ok := vec.(*vector.Const); ok {
v := bytesTableOf(c.Any).Bytes(0)
if b.val == nil {
Expand Down Expand Up @@ -68,6 +71,9 @@ type bytesDictWriter struct {
}

func (b *bytesDictWriter) Write(vec vector.Any) genericWriter {
if vec.Len() == 0 {
return b
}
switch vec := vec.(type) {
case *vector.Const:
t := bytesTableOf(vec.Any)
Expand Down Expand Up @@ -137,6 +143,9 @@ type bytesFlatWriter struct {
}

func (b *bytesFlatWriter) Write(vec vector.Any) genericWriter {
if vec.Len() == 0 {
return b
}
switch vec := vec.(type) {
case *vector.View:
table := bytesTableOf(vec.Any)
Expand Down
3 changes: 3 additions & 0 deletions vector/vbuild/enum.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ func newEnumBuilder(typ *super.TypeEnum) Builder {
}

func (a *enumBuilder) Write(vec vector.Any) {
if vec.Len() == 0 {
return
}
var index []uint32
if view, ok := vec.(*vector.View); ok {
index = view.Index
Expand Down
3 changes: 3 additions & 0 deletions vector/vbuild/error.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ type errorBuilder struct {
}

func (e *errorBuilder) Write(vec vector.Any) {
if vec.Len() == 0 {
return
}
e.vals.Write(vec.(*vector.Error).Vals)
}

Expand Down
3 changes: 3 additions & 0 deletions vector/vbuild/fusion.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ func newFusionBuilder(typ *super.TypeFusion) *fusionBuilder {
}

func (f *fusionBuilder) Write(vec vector.Any) {
if vec.Len() == 0 {
return
}
if view, ok := vec.(*vector.View); ok {
fusion := view.Any.(*vector.Fusion)
f.vals.Write(vector.Pick(fusion.Values, view.Index))
Expand Down
12 changes: 12 additions & 0 deletions vector/vbuild/generic.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ type genericBuilder[E comparable] struct {
}

func (b *genericBuilder[E]) Write(vec vector.Any) {
if vec.Len() == 0 {
return
}
if b.writer == nil {
b.writer = &genericConstWriter[E]{
valuesOf: b.valuesOf,
Expand Down Expand Up @@ -46,6 +49,9 @@ type genericConstWriter[E comparable] struct {
}

func (c *genericConstWriter[E]) Write(vec vector.Any) genericWriter {
if vec.Len() == 0 {
return c
}
if const_, ok := vec.(*vector.Const); ok {
vals := c.valuesOf(const_.Any)
if c.len == 0 {
Expand Down Expand Up @@ -80,6 +86,9 @@ type genericDictWriter[E comparable] struct {
}

func (d *genericDictWriter[E]) Write(vec vector.Any) genericWriter {
if vec.Len() == 0 {
return d
}
switch vec := vec.(type) {
case *vector.Const:
vals := d.valuesOf(vec.Any)
Expand Down Expand Up @@ -143,6 +152,9 @@ type genericFlatWriter[E comparable] struct {
}

func (f *genericFlatWriter[E]) Write(vec vector.Any) genericWriter {
if vec.Len() == 0 {
return f
}
switch vec := vec.(type) {
case *vector.Const:
vals := f.valuesOf(vec.Any)
Expand Down
3 changes: 3 additions & 0 deletions vector/vbuild/map.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ func newMapBuilder(typ *super.TypeMap) Builder {

func (m *mapBuilder) Write(vec vector.Any) {
n := vec.Len()
if n == 0 {
return
}
var index []uint32
if view, ok := vec.(*vector.View); ok {
index = view.Index
Expand Down
4 changes: 2 additions & 2 deletions vector/vbuild/none.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type noneBuilder struct {
}

func (n *noneBuilder) Write(vec vector.Any) {
n.len += vec.(*vector.None).Len()
n.len += vec.Len()
}

func (n *noneBuilder) Build() vector.Any {
Expand All @@ -21,7 +21,7 @@ type nullBuilder struct {
}

func (n *nullBuilder) Write(vec vector.Any) {
n.len += vec.(*vector.Null).Len()
n.len += vec.Len()
}

func (n *nullBuilder) Build() vector.Any {
Expand Down
9 changes: 6 additions & 3 deletions vector/vbuild/record.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,11 @@ func newRecordBuilder(typ *super.TypeRecord) Builder {
}
}

func (r *recordBuilder) Write(in vector.Any) {
vec := in
func (r *recordBuilder) Write(vec vector.Any) {
n := vec.Len()
if n == 0 {
return
}
var index []uint32
if view, ok := vec.(*vector.View); ok {
vec = view.Any
Expand All @@ -40,7 +43,7 @@ func (r *recordBuilder) Write(in vector.Any) {
}
r.fields[i].Write(vec)
}
r.len += in.Len()
r.len += n
}

func (r *recordBuilder) Build() vector.Any {
Expand Down
Loading