Skip to content

Commit 8c780dc

Browse files
committed
search on display_name, default to name if display_name is empty
1 parent caee61c commit 8c780dc

File tree

4 files changed

+18
-11
lines changed

4 files changed

+18
-11
lines changed

coderd/database/queries.sql.go

Lines changed: 8 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/templates.sql

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,16 @@ WHERE
4242
lower(t.name) ILIKE '%' || lower(@fuzzy_name) || '%'
4343
ELSE true
4444
END
45-
-- Filter by display_name, matching on substring
45+
-- Filter by display_name, matching on substring (fallback to name if display_name is empty)
4646
AND CASE
4747
WHEN @fuzzy_display_name :: text != '' THEN
48-
lower(t.display_name) ILIKE '%' || lower(@fuzzy_display_name) || '%'
48+
CASE
49+
WHEN t.display_name IS NOT NULL AND t.display_name != '' THEN
50+
lower(t.display_name) ILIKE '%' || lower(@fuzzy_display_name) || '%'
51+
ELSE
52+
-- Remove spaces if present since 't.name' cannot have any spaces
53+
lower(t.name) ILIKE '%' || REPLACE(lower(@fuzzy_display_name), ' ', '') || '%'
54+
END
4955
ELSE true
5056
END
5157
-- Filter by ids

coderd/searchquery/search.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,8 +268,7 @@ func Templates(ctx context.Context, db database.Store, actorID uuid.UUID, query
268268
// Always lowercase for all searches.
269269
query = strings.ToLower(query)
270270
values, errors := searchTerms(query, func(term string, values url.Values) error {
271-
// Default to the template name and display name
272-
values.Add("name", term)
271+
// Default to the display name
273272
values.Add("display_name", term)
274273
return nil
275274
})

coderd/searchquery/search_test.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,6 @@ func TestSearchTemplates(t *testing.T) {
686686
Name: "OnlyName",
687687
Query: "foobar",
688688
Expected: database.GetTemplatesWithFilterParams{
689-
FuzzyName: "foobar",
690689
FuzzyDisplayName: "foobar",
691690
},
692691
},
@@ -759,10 +758,9 @@ func TestSearchTemplates(t *testing.T) {
759758
},
760759
},
761760
{
762-
Name: "SearchOnNameAndDisplayName",
761+
Name: "SearchOnDisplayName",
763762
Query: "test name",
764763
Expected: database.GetTemplatesWithFilterParams{
765-
FuzzyName: "test name",
766764
FuzzyDisplayName: "test name",
767765
},
768766
},
@@ -785,7 +783,6 @@ func TestSearchTemplates(t *testing.T) {
785783
Query: `foo bar exact_name:"test display name"`,
786784
Expected: database.GetTemplatesWithFilterParams{
787785
ExactName: "test display name",
788-
FuzzyName: "foo bar",
789786
FuzzyDisplayName: "foo bar",
790787
},
791788
},
@@ -794,7 +791,6 @@ func TestSearchTemplates(t *testing.T) {
794791
Query: "deprecated:false test template",
795792
Expected: database.GetTemplatesWithFilterParams{
796793
Deprecated: sql.NullBool{Bool: false, Valid: true},
797-
FuzzyName: "test template",
798794
FuzzyDisplayName: "test template",
799795
},
800796
},

0 commit comments

Comments
 (0)