Skip to content

Commit

Permalink
[no-release-notes] Bug fix bump, small stats bug (#8098)
Browse files Browse the repository at this point in the history
* [statsnoms] Bump, small stats bug

* add test

* test pass

* move test to GMS

* test fix

* bump
  • Loading branch information
max-hoffman authored Jul 3, 2024
1 parent bcf4dd5 commit 4073701
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 8 deletions.
2 changes: 1 addition & 1 deletion go/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ require (
github.com/cespare/xxhash v1.1.0
github.com/creasty/defaults v1.6.0
github.com/dolthub/flatbuffers/v23 v23.3.3-dh.2
github.com/dolthub/go-mysql-server v0.18.2-0.20240702022058-d7eb602c04ee
github.com/dolthub/go-mysql-server v0.18.2-0.20240703002444-01667a0198d3
github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63
github.com/dolthub/swiss v0.1.0
github.com/goccy/go-json v0.10.2
Expand Down
4 changes: 2 additions & 2 deletions go/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,8 @@ github.com/dolthub/fslock v0.0.3 h1:iLMpUIvJKMKm92+N1fmHVdxJP5NdyDK5bK7z7Ba2s2U=
github.com/dolthub/fslock v0.0.3/go.mod h1:QWql+P17oAAMLnL4HGB5tiovtDuAjdDTPbuqx7bYfa0=
github.com/dolthub/go-icu-regex v0.0.0-20230524105445-af7e7991c97e h1:kPsT4a47cw1+y/N5SSCkma7FhAPw7KeGmD6c9PBZW9Y=
github.com/dolthub/go-icu-regex v0.0.0-20230524105445-af7e7991c97e/go.mod h1:KPUcpx070QOfJK1gNe0zx4pA5sicIK1GMikIGLKC168=
github.com/dolthub/go-mysql-server v0.18.2-0.20240702022058-d7eb602c04ee h1:VYwVsWT3byEtq6W8ebAVO7cNCPUKeUNr590s/U6F3wo=
github.com/dolthub/go-mysql-server v0.18.2-0.20240702022058-d7eb602c04ee/go.mod h1:JahRYjx/Py6T/bWrnTu25CaGn94Df+McAuWGEG0shwU=
github.com/dolthub/go-mysql-server v0.18.2-0.20240703002444-01667a0198d3 h1:HoLlqFO9gQHwURwkpgCPOXH4wU3W00J3x6NeNL0B9/Q=
github.com/dolthub/go-mysql-server v0.18.2-0.20240703002444-01667a0198d3/go.mod h1:JahRYjx/Py6T/bWrnTu25CaGn94Df+McAuWGEG0shwU=
github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63 h1:OAsXLAPL4du6tfbBgK0xXHZkOlos63RdKYS3Sgw/dfI=
github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63/go.mod h1:lV7lUeuDhH5thVGDCKXbatwKy2KW80L4rMT46n+Y2/Q=
github.com/dolthub/ishell v0.0.0-20240701202509-2b217167d718 h1:lT7hE5k+0nkBdj/1UOSFwjWpNxf+LCApbRHgnCA17XE=
Expand Down
8 changes: 7 additions & 1 deletion go/libraries/doltcore/sqle/statsnoms/load.go
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,13 @@ func loadLowerBound(ctx *sql.Context, qual sql.StatQualifier) (sql.Row, error) {
if err != nil {
return nil, err
}
idx, err := table.GetIndexRowData(ctx, qual.Index())

var idx durable.Index
if qual.Index() == "primary" {
idx, err = table.GetRowData(ctx)
} else {
idx, err = table.GetIndexRowData(ctx, qual.Index())
}
if err != nil {
return nil, err
}
Expand Down
34 changes: 31 additions & 3 deletions go/libraries/doltcore/sqle/statspro/dolt_stats.go
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ func (s *DoltStats) WithHistogram(h sql.Histogram) (sql.Statistic, error) {
for _, b := range h {
doltB, ok := b.(DoltBucket)
if !ok {
return nil, fmt.Errorf("invalid bucket type: %T", b)
return nil, fmt.Errorf("invalid bucket type: %T, %s", b, h.DebugString())
}
ret.Hist = append(ret.Hist, doltB)
}
Expand Down Expand Up @@ -206,11 +206,39 @@ func (s *DoltStats) UpdateActive() {
type DoltHistogram []DoltBucket

type DoltBucket struct {
*stats.Bucket
Bucket *stats.Bucket
Chunk hash.Hash
Created time.Time
}

func (d DoltBucket) RowCount() uint64 {
return d.Bucket.RowCount()
}

func (d DoltBucket) DistinctCount() uint64 {
return d.Bucket.DistinctCount()
}

func (d DoltBucket) NullCount() uint64 {
return d.Bucket.NullCount()
}

func (d DoltBucket) BoundCount() uint64 {
return d.Bucket.BoundCount()
}

func (d DoltBucket) UpperBound() sql.Row {
return d.Bucket.UpperBound()
}

func (d DoltBucket) McvCounts() []uint64 {
return d.Bucket.McvCounts()
}

func (d DoltBucket) Mcvs() []sql.Row {
return d.Bucket.Mcvs()
}

func DoltBucketChunk(b sql.HistogramBucket) hash.Hash {
return b.(DoltBucket).Chunk
}
Expand Down Expand Up @@ -243,7 +271,7 @@ func DoltHistFromSql(hist sql.Histogram, types []sql.Type) (sql.Histogram, error
}
}
ret[i] = DoltBucket{
Bucket: stats.NewHistogramBucket(b.RowCount(), b.DistinctCount(), b.NullCount(), b.BoundCount(), upperBound, b.McvCounts(), mcvs),
Bucket: stats.NewHistogramBucket(b.RowCount(), b.DistinctCount(), b.NullCount(), b.BoundCount(), upperBound, b.McvCounts(), mcvs).(*stats.Bucket),
}
}
return ret, nil
Expand Down
2 changes: 1 addition & 1 deletion go/libraries/doltcore/sqle/statspro/update_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ func TestBucketBuilder(t *testing.T) {
require.Equal(t, int(tt.bucket.DistinctCount()), int(bucket.DistinctCount()))
require.Equal(t, int(tt.bucket.BoundCount()), int(bucket.BoundCount()))
require.Equal(t, tt.bucket.UpperBound(), bucket.UpperBound())
require.Equal(t, tt.bucket.McvsCnt, bucket.McvsCnt)
require.Equal(t, tt.bucket.McvCounts(), bucket.McvCounts())
require.Equal(t, tt.bucket.Mcvs(), bucket.Mcvs())
})
}
Expand Down

0 comments on commit 4073701

Please sign in to comment.