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,
|
func (q *fakeQuerier) GetWorkspaceBuildByWorkspaceID(_ context.Context,
|
||||||
params database.GetWorkspaceBuildByWorkspaceIDParams) ([]database.WorkspaceBuild, error) {
|
params database.GetWorkspaceBuildByWorkspaceIDParams,
|
||||||
|
) ([]database.WorkspaceBuild, error) {
|
||||||
q.mutex.RLock()
|
q.mutex.RLock()
|
||||||
defer q.mutex.RUnlock()
|
defer q.mutex.RUnlock()
|
||||||
|
|
||||||
@ -893,6 +894,12 @@ func (q *fakeQuerier) GetTemplatesWithFilter(_ context.Context, arg database.Get
|
|||||||
templates = append(templates, template)
|
templates = append(templates, template)
|
||||||
}
|
}
|
||||||
if len(templates) > 0 {
|
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
|
return templates, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1069,7 +1076,15 @@ func (q *fakeQuerier) GetTemplates(_ context.Context) ([]database.Template, erro
|
|||||||
q.mutex.RLock()
|
q.mutex.RLock()
|
||||||
defer q.mutex.RUnlock()
|
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) {
|
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
|
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
|
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) {
|
func (q *sqlQuerier) GetTemplates(ctx context.Context) ([]Template, error) {
|
||||||
@ -1953,6 +1954,7 @@ WHERE
|
|||||||
id = ANY($4)
|
id = ANY($4)
|
||||||
ELSE true
|
ELSE true
|
||||||
END
|
END
|
||||||
|
ORDER BY (created_at, id) ASC
|
||||||
`
|
`
|
||||||
|
|
||||||
type GetTemplatesWithFilterParams struct {
|
type GetTemplatesWithFilterParams struct {
|
||||||
|
@ -34,6 +34,7 @@ WHERE
|
|||||||
id = ANY(@ids)
|
id = ANY(@ids)
|
||||||
ELSE true
|
ELSE true
|
||||||
END
|
END
|
||||||
|
ORDER BY (created_at, id) ASC
|
||||||
;
|
;
|
||||||
|
|
||||||
-- name: GetTemplateByOrganizationAndName :one
|
-- name: GetTemplateByOrganizationAndName :one
|
||||||
@ -49,7 +50,9 @@ LIMIT
|
|||||||
1;
|
1;
|
||||||
|
|
||||||
-- name: GetTemplates :many
|
-- name: GetTemplates :many
|
||||||
SELECT * FROM templates;
|
SELECT * FROM templates
|
||||||
|
ORDER BY (created_at, id) ASC
|
||||||
|
;
|
||||||
|
|
||||||
-- name: InsertTemplate :one
|
-- name: InsertTemplate :one
|
||||||
INSERT INTO
|
INSERT INTO
|
||||||
|
Reference in New Issue
Block a user