mirror of
https://github.com/coder/coder.git
synced 2025-07-09 11:45:56 +00:00
fix: Order database queries for templates (#3249)
* fix: Order database queries for templates Fixes a race in a test where the order of templates varies. * fix: Add sorting to databasefake as well
This commit is contained in:
committed by
GitHub
parent
5802c29c38
commit
cef622d77c
@ -626,7 +626,8 @@ func (q *fakeQuerier) GetLatestWorkspaceBuildsByWorkspaceIDs(_ context.Context,
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) GetWorkspaceBuildByWorkspaceID(_ context.Context,
|
||||
params database.GetWorkspaceBuildByWorkspaceIDParams) ([]database.WorkspaceBuild, error) {
|
||||
params database.GetWorkspaceBuildByWorkspaceIDParams,
|
||||
) ([]database.WorkspaceBuild, error) {
|
||||
q.mutex.RLock()
|
||||
defer q.mutex.RUnlock()
|
||||
|
||||
@ -893,6 +894,12 @@ func (q *fakeQuerier) GetTemplatesWithFilter(_ context.Context, arg database.Get
|
||||
templates = append(templates, template)
|
||||
}
|
||||
if len(templates) > 0 {
|
||||
slices.SortFunc(templates, func(i, j database.Template) bool {
|
||||
if !i.CreatedAt.Before(j.CreatedAt) {
|
||||
return false
|
||||
}
|
||||
return i.ID.String() < j.ID.String()
|
||||
})
|
||||
return templates, nil
|
||||
}
|
||||
|
||||
@ -1069,7 +1076,15 @@ func (q *fakeQuerier) GetTemplates(_ context.Context) ([]database.Template, erro
|
||||
q.mutex.RLock()
|
||||
defer q.mutex.RUnlock()
|
||||
|
||||
return q.templates[:], nil
|
||||
templates := slices.Clone(q.templates)
|
||||
slices.SortFunc(templates, func(i, j database.Template) bool {
|
||||
if !i.CreatedAt.Before(j.CreatedAt) {
|
||||
return false
|
||||
}
|
||||
return i.ID.String() < j.ID.String()
|
||||
})
|
||||
|
||||
return templates, nil
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) GetOrganizationMemberByUserID(_ context.Context, arg database.GetOrganizationMemberByUserIDParams) (database.OrganizationMember, error) {
|
||||
|
@ -1889,6 +1889,7 @@ func (q *sqlQuerier) GetTemplateByOrganizationAndName(ctx context.Context, arg G
|
||||
|
||||
const getTemplates = `-- name: GetTemplates :many
|
||||
SELECT id, created_at, updated_at, organization_id, deleted, name, provisioner, active_version_id, description, max_ttl, min_autostart_interval, created_by FROM templates
|
||||
ORDER BY (created_at, id) ASC
|
||||
`
|
||||
|
||||
func (q *sqlQuerier) GetTemplates(ctx context.Context) ([]Template, error) {
|
||||
@ -1953,6 +1954,7 @@ WHERE
|
||||
id = ANY($4)
|
||||
ELSE true
|
||||
END
|
||||
ORDER BY (created_at, id) ASC
|
||||
`
|
||||
|
||||
type GetTemplatesWithFilterParams struct {
|
||||
|
@ -34,6 +34,7 @@ WHERE
|
||||
id = ANY(@ids)
|
||||
ELSE true
|
||||
END
|
||||
ORDER BY (created_at, id) ASC
|
||||
;
|
||||
|
||||
-- name: GetTemplateByOrganizationAndName :one
|
||||
@ -49,7 +50,9 @@ LIMIT
|
||||
1;
|
||||
|
||||
-- name: GetTemplates :many
|
||||
SELECT * FROM templates;
|
||||
SELECT * FROM templates
|
||||
ORDER BY (created_at, id) ASC
|
||||
;
|
||||
|
||||
-- name: InsertTemplate :one
|
||||
INSERT INTO
|
||||
|
Reference in New Issue
Block a user