Skip to content

Commit ec8369c

Browse files
authored
feat(search): sort drivers list from driver index (#23)
Sort the driver list coming from the driver index. Also fixes tests which have broken because they're hard-coded against the index and we wiped the index today.
1 parent 50cfb63 commit ec8369c

File tree

2 files changed

+13
-14
lines changed

2 files changed

+13
-14
lines changed

cmd/dbc/manifest_list_test.go

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,14 @@ func TestUnmarshalManifestList(t *testing.T) {
2323
expected []dbc.PkgInfo
2424
err error
2525
}{
26-
{"basic", "[drivers]\nbigquery = {version = '1.6.0'}\nflightsql = {version = '1.6.0'}", []dbc.PkgInfo{
27-
{Driver: dbc.Driver{Path: "bigquery"}, Version: semver.MustParse("1.6.0")},
28-
{Driver: dbc.Driver{Path: "flightsql"}, Version: semver.MustParse("1.6.0")},
26+
{"basic", "[drivers]\nflightsql = {version = '1.7.0'}", []dbc.PkgInfo{
27+
{Driver: dbc.Driver{Path: "flightsql"}, Version: semver.MustParse("1.7.0")},
2928
}, nil},
30-
{"less", "[drivers]\nbigquery = {version = '<1.6.0'}\nflightsql = {version = '<=1.6.0'}", []dbc.PkgInfo{
31-
{Driver: dbc.Driver{Path: "bigquery"}, Version: semver.MustParse("1.5.0")},
32-
{Driver: dbc.Driver{Path: "flightsql"}, Version: semver.MustParse("1.6.0")},
29+
{"less", "[drivers]\nflightsql = {version = '<=1.7.0'}", []dbc.PkgInfo{
30+
{Driver: dbc.Driver{Path: "flightsql"}, Version: semver.MustParse("1.7.0")},
3331
}, nil},
34-
{"greater", "[drivers]\nbigquery = {version = '>1.5.0'}\nflightsql = {version = '>=1.6.0'}", []dbc.PkgInfo{
35-
{Driver: dbc.Driver{Path: "bigquery"}, Version: semver.MustParse("1.6.0")},
36-
{Driver: dbc.Driver{Path: "flightsql"}, Version: semver.MustParse("1.6.0")},
32+
{"greater", "[drivers]\nflightsql = {version = '>=1.7.0'}", []dbc.PkgInfo{
33+
{Driver: dbc.Driver{Path: "flightsql"}, Version: semver.MustParse("1.7.0")},
3734
}, nil},
3835
}
3936

@@ -78,17 +75,13 @@ func must[T any](v T, err error) T {
7875
func TestMarshalManifestList(t *testing.T) {
7976
data, err := toml.Marshal(DriversList{
8077
Drivers: map[string]driverSpec{
81-
"bigquery": {Version: must(semver.NewConstraint(">=1.6.0"))},
8278
"flightsql": {Version: must(semver.NewConstraint(">=1.6.0"))},
8379
},
8480
})
8581
require.NoError(t, err)
8682

8783
assert.Equal(t, `# dbc driver list
8884
[drivers]
89-
[drivers.bigquery]
90-
version = '>=1.6.0'
91-
9285
[drivers.flightsql]
9386
version = '>=1.6.0'
9487
`, string(data))

drivers.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,13 @@ var getDrivers = sync.OnceValues(func() ([]Driver, error) {
7878
return nil, fmt.Errorf("failed to parse driver manifest: %s", err)
7979
}
8080

81-
return drivers.Drivers, nil
81+
// Sort by path (short name)
82+
result := drivers.Drivers
83+
sort.Slice(result, func(i, j int) bool {
84+
return result[i].Path < result[j].Path
85+
})
86+
87+
return result, nil
8288
})
8389

8490
//go:embed columnar.pubkey

0 commit comments

Comments
 (0)