Skip to content

Commit eb3b07a

Browse files
authored
Merge pull request #510 from DhruvilK7/removal
Remove unnecessary type conversions + added make command to do the same
2 parents 53026c2 + 5a67547 commit eb3b07a

24 files changed

Lines changed: 154 additions & 124 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ roaring-fuzz.zip
33
workdir
44
coverage.out
55
testdata/all3.classic
6+
/vendor

BitSliceIndexing/bsi.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ func (b *BSI) GetValue(columnID uint64) (int64, bool) {
148148
value |= (1 << uint64(i))
149149
}
150150
}
151-
return int64(value), exists
151+
return value, exists
152152
}
153153

154154
type action func(t *task, batch []uint32, resultsChan chan *roaring.Bitmap, wg *sync.WaitGroup)
@@ -767,7 +767,7 @@ func batchEqual(e *task, batch []uint32, resultsChan chan *roaring.Bitmap,
767767
for i := 0; i < len(batch); i++ {
768768
cID := batch[i]
769769
if value, ok := e.bsi.GetValue(uint64(cID)); ok {
770-
if _, yes := e.values[int64(value)]; yes {
770+
if _, yes := e.values[value]; yes {
771771
results.Add(cID)
772772
}
773773
}

Makefile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Display general help about this command
2+
help:
3+
@echo ""
4+
@echo "The following commands are available:"
5+
@echo " make unconvert : Find unnecessary type conversions"
6+
@echo ""
7+
8+
# Find unnecessary type conversions
9+
unconvert:
10+
go tool unconvert -apply ./...

arraycontainer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,7 @@ func (ac *arrayContainer) resetTo(a container) {
969969
x.fillArray(ac.content)
970970

971971
case *runContainer16:
972-
card := int(x.getCardinality())
972+
card := x.getCardinality()
973973
ac.realloc(card)
974974
cur := 0
975975
for _, r := range x.iv {

bitmapcontainer.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,7 +1133,7 @@ func (bc *bitmapContainer) NextSetBit(i uint) int {
11331133
return -1
11341134
}
11351135
w := bc.bitmap[x]
1136-
w = w >> uint(i%64)
1136+
w = w >> (i % 64)
11371137
if w != 0 {
11381138
return int(i) + countTrailingZeros(w)
11391139
}
@@ -1155,7 +1155,7 @@ func (bc *bitmapContainer) NextUnsetBit(i uint) int {
11551155
return int(i)
11561156
}
11571157
w := bc.bitmap[x]
1158-
w = w >> uint(i%64)
1158+
w = w >> (i % 64)
11591159
w = ^w
11601160
if w != 0 {
11611161
return int(i) + countTrailingZeros(w)
@@ -1192,7 +1192,7 @@ func (bc *bitmapContainer) uPrevSetBit(i uint) int {
11921192

11931193
b := i % 64
11941194

1195-
w = w << uint(63-b)
1195+
w = w << (63 - b)
11961196
if w != 0 {
11971197
return int(i) - countLeadingZeros(w)
11981198
}

bitmapcontainer_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func TestBitmapContainerNumberOfRuns024(t *testing.T) {
5252
func TestBitmapcontainerAndCardinality(t *testing.T) {
5353
for r := 0; r <= 65535; r++ {
5454
c1 := newRunContainer16Range(0, uint16(r))
55-
c2 := newBitmapContainerwithRange(0, int(r))
55+
c2 := newBitmapContainerwithRange(0, r)
5656

5757
assert.Equal(t, r+1, c1.andCardinality(c2))
5858
}

ctz_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,5 +105,5 @@ func numberOfTrailingZeros(i uint64) int {
105105
n -= 2
106106
x = y
107107
}
108-
return int(n - int64(uint64(x<<1)>>63))
108+
return int(n - int64(x<<1>>63))
109109
}

fastaggregation_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -199,23 +199,23 @@ func TestFastAggregationsAndAny(t *testing.T) {
199199
rb3 := NewBitmap()
200200
// only one filter has some values
201201
from := uint32(maxCapacity * 4)
202-
for i := uint32(from); i < from+100; i += 2 {
202+
for i := from; i < from+100; i += 2 {
203203
rb1.Add(i)
204204
}
205205
// only base has values
206206
from = maxCapacity * 7
207-
for i := uint32(from); i < from+100; i += 2 {
207+
for i := from; i < from+100; i += 2 {
208208
base.Add(i)
209209
}
210210
// base and one of filters have same values
211211
from = maxCapacity * 8
212-
for i := uint32(from); i < from+100; i += 2 {
212+
for i := from; i < from+100; i += 2 {
213213
base.Add(i)
214214
rb1.Add(i)
215215
}
216216
// small union
217217
from = maxCapacity * 10
218-
for i := uint32(from); i < from+1000; i += 10 {
218+
for i := from; i < from+1000; i += 10 {
219219
base.Add(i)
220220
base.Add(i + i%3)
221221

@@ -229,17 +229,17 @@ func TestFastAggregationsAndAny(t *testing.T) {
229229
}
230230
// run filters
231231
from = maxCapacity * 10
232-
for i := uint32(from); i < from+1000; i += 3 {
232+
for i := from; i < from+1000; i += 3 {
233233
base.Add(i)
234234
}
235-
for i := uint32(from); i < from+100; i++ {
235+
for i := from; i < from+100; i++ {
236236
rb1.Add(i)
237237
rb2.Add(i + 333)
238238
rb3.Add(i + 433)
239239
}
240240
// large union
241241
from = maxCapacity * 16
242-
for i := uint32(from); i < from+arrayDefaultMaxSize*10; i += 3 {
242+
for i := from; i < from+arrayDefaultMaxSize*10; i += 3 {
243243
base.Add(i)
244244
base.Add(i + i%2 + 1)
245245
rb2.Add(i)
@@ -248,7 +248,7 @@ func TestFastAggregationsAndAny(t *testing.T) {
248248

249249
// some extra base values
250250
from = maxCapacity * 17
251-
for i := uint32(from); i < from+1000; i++ {
251+
for i := from; i < from+1000; i++ {
252252
base.Add(i)
253253
}
254254

go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ require (
1313

1414
require (
1515
github.com/davecgh/go-spew v1.1.1 // indirect
16+
github.com/mdempsky/unconvert v0.0.0-20250216222326-4a038b3d31f5 // indirect
1617
github.com/pmezard/go-difflib v1.0.0 // indirect
18+
golang.org/x/mod v0.23.0 // indirect
19+
golang.org/x/sync v0.11.0 // indirect
20+
golang.org/x/text v0.22.0 // indirect
21+
golang.org/x/tools v0.30.0 // indirect
1722
gopkg.in/yaml.v3 v3.0.1 // indirect
1823
)
24+
25+
tool github.com/mdempsky/unconvert

go.sum

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,26 @@ github.com/bits-and-blooms/bitset v1.24.2 h1:M7/NzVbsytmtfHbumG+K2bremQPMJuqv1JD
22
github.com/bits-and-blooms/bitset v1.24.2/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
33
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
44
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
5+
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
6+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
57
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
68
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
9+
github.com/mdempsky/unconvert v0.0.0-20250216222326-4a038b3d31f5 h1:KXBP3ozzczYKdX6aHLYRxr0RVkc4Zt2wZk2hZP5yTqc=
10+
github.com/mdempsky/unconvert v0.0.0-20250216222326-4a038b3d31f5/go.mod h1:mVCHGHs8r8jnrZ2ammcv8ySbhG2+rEPXegFmdNA51GI=
711
github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM=
812
github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw=
913
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
1014
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
1115
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
1216
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
17+
golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=
18+
golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
19+
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
20+
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
21+
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
22+
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
23+
golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY=
24+
golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY=
1325
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
1426
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
1527
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

0 commit comments

Comments
 (0)