• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dal-go / dalgo / 20464581391

23 Dec 2025 03:20PM UTC coverage: 96.172% (-1.8%) from 97.958%
20464581391

push

github

trakhimenok
fix: test fixed with ErrNotImplementedYet

1985 of 2064 relevant lines covered (96.17%)

1.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

84.62
/recordset/column_bitmap.go
1
package recordset
2

3
import (
4
        "reflect"
5

6
        "github.com/RoaringBitmap/roaring"
7
)
8

9
type bitmapValue[T comparable] struct {
10
        v    T
11
        rows *roaring.Bitmap
12
}
13

14
func NewBitmapColumn[T comparable](name string, initialCapacity int, getDefaultVal func() T) Column[T] {
1✔
15
        return &columnBitmap[T]{
1✔
16
                columnBase: columnBase[T]{
1✔
17
                        name:       name,
1✔
18
                        defaultVal: getDefaultVal,
1✔
19
                },
1✔
20

1✔
21
                values: make([]bitmapValue[T], initialCapacity),
1✔
22
        }
1✔
23
}
1✔
24

25
type columnBitmap[T comparable] struct {
26
        rowsCount int
27
        columnBase[T]
28
        values []bitmapValue[T]
29
}
30

31
func (c *columnBitmap[T]) GetValue(row int) (value T, err error) {
1✔
32
        i := uint32(row)
1✔
33
        for _, val := range c.values {
2✔
34
                if val.rows.Contains(i) {
2✔
35
                        return val.v, nil
1✔
36
                }
1✔
37
        }
38
        return
1✔
39
}
40

41
func (c *columnBitmap[T]) SetValue(row int, value T) (err error) {
1✔
42
        i := uint32(row)
1✔
43
        for _, val := range c.values {
2✔
44
                if val.v == value {
2✔
45
                        val.rows.Add(i)
1✔
46
                } else {
2✔
47
                        val.rows.Remove(i)
1✔
48
                }
1✔
49
        }
50
        for _, val := range c.values {
2✔
51
                if val.v == value {
2✔
52
                        return
1✔
53
                }
1✔
54
        }
55
        rows := roaring.New()
1✔
56
        rows.Add(i)
1✔
57
        c.values = append(c.values, bitmapValue[T]{v: value, rows: rows})
1✔
58
        return
1✔
59
}
60

61
func (c *columnBitmap[T]) ValueType() reflect.Type {
1✔
62
        var t T
1✔
63
        return reflect.TypeOf(t)
1✔
64
}
1✔
65

66
func (c *columnBitmap[T]) IsBitmap() bool {
1✔
67
        return true
1✔
68
}
1✔
69

70
func (c *columnBitmap[T]) Add(value T) error {
1✔
71
        c.rowsCount++
1✔
72
        return c.SetValue(c.rowsCount-1, value)
1✔
73
}
1✔
74

75
func (c *columnBitmap[T]) Values() []T {
×
76
        result := make([]T, c.rowsCount)
×
77
        for i := 0; i < c.rowsCount; i++ {
×
78
                for _, val := range c.values {
×
79
                        if val.rows.Contains(uint32(i)) {
×
80
                                result[i] = val.v
×
81
                                break
×
82
                        }
83
                }
84
        }
85
        return result
×
86
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc