unifiedStorage: sort by namespace/name ASC (#91314)

* unified: sort by key asc

* sort by key

* keep tests commented
This commit is contained in:
Georges Chaudy 2024-08-01 10:27:01 +02:00 committed by GitHub
parent a77ff98d3f
commit 36c2e0cfae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 22 additions and 22 deletions

View File

@ -359,9 +359,9 @@ func buildTree(ctx context.Context, s *cdkBackend, key *ResourceKey) (*cdkListIt
resources = append(resources, *res) resources = append(resources, *res)
} }
sort.Slice(resources, func(i, j int) bool { sort.Slice(resources, func(i, j int) bool {
a := resources[i].versions[0].rv a := resources[i].prefix
b := resources[j].versions[0].rv b := resources[j].prefix
return a > b return a < b
}) })
return &cdkListIterator{ return &cdkListIterator{

View File

@ -46,7 +46,7 @@ SELECT
AND kv.{{ .Ident "name" }} = {{ .Arg .Request.Options.Key.Name }} AND kv.{{ .Ident "name" }} = {{ .Arg .Request.Options.Key.Name }}
{{ end }} {{ end }}
{{ end }} {{ end }}
ORDER BY kv.{{ .Ident "resource_version" }} DESC ORDER BY kv.{{ .Ident "namespace" }} ASC, kv.{{ .Ident "name" }} ASC
{{ if (gt .Request.Limit 0) }} {{ if (gt .Request.Limit 0) }}
LIMIT {{ .Arg .Request.Limit }} OFFSET {{ .Arg .Request.Offset }} LIMIT {{ .Arg .Request.Limit }} OFFSET {{ .Arg .Request.Offset }}
{{ end }} {{ end }}

View File

@ -19,5 +19,5 @@ SELECT
AND {{ .Ident "name" }} = {{ .Arg .Request.Options.Key.Name }} AND {{ .Ident "name" }} = {{ .Arg .Request.Options.Key.Name }}
{{ end }} {{ end }}
{{ end }} {{ end }}
ORDER BY {{ .Ident "resource_version" }} DESC ORDER BY {{ .Ident "namespace" }} ASC, {{ .Ident "name" }} ASC
; ;

View File

@ -220,12 +220,12 @@ func TestIntegrationBackendList(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.Nil(t, res.Error) require.Nil(t, res.Error)
require.Len(t, res.Items, 5) require.Len(t, res.Items, 5)
// should be sorted by resource version DESC // should be sorted by key ASC
require.Equal(t, "item6 ADDED", string(res.Items[0].Value)) require.Equal(t, "item1 ADDED", string(res.Items[0].Value))
require.Equal(t, "item2 MODIFIED", string(res.Items[1].Value)) require.Equal(t, "item2 MODIFIED", string(res.Items[1].Value))
require.Equal(t, "item5 ADDED", string(res.Items[2].Value)) require.Equal(t, "item4 ADDED", string(res.Items[2].Value))
require.Equal(t, "item4 ADDED", string(res.Items[3].Value)) require.Equal(t, "item5 ADDED", string(res.Items[3].Value))
require.Equal(t, "item1 ADDED", string(res.Items[4].Value)) require.Equal(t, "item6 ADDED", string(res.Items[4].Value))
require.Empty(t, res.NextPageToken) require.Empty(t, res.NextPageToken)
}) })
@ -245,9 +245,9 @@ func TestIntegrationBackendList(t *testing.T) {
require.Len(t, res.Items, 3) require.Len(t, res.Items, 3)
continueToken, err := sql.GetContinueToken(res.NextPageToken) continueToken, err := sql.GetContinueToken(res.NextPageToken)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "item6 ADDED", string(res.Items[0].Value)) require.Equal(t, "item1 ADDED", string(res.Items[0].Value))
require.Equal(t, "item2 MODIFIED", string(res.Items[1].Value)) require.Equal(t, "item2 MODIFIED", string(res.Items[1].Value))
require.Equal(t, "item5 ADDED", string(res.Items[2].Value)) require.Equal(t, "item4 ADDED", string(res.Items[2].Value))
require.Equal(t, int64(8), continueToken.ResourceVersion) require.Equal(t, int64(8), continueToken.ResourceVersion)
}) })
@ -264,10 +264,10 @@ func TestIntegrationBackendList(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.Nil(t, res.Error) require.Nil(t, res.Error)
require.Len(t, res.Items, 4) require.Len(t, res.Items, 4)
require.Equal(t, "item4 ADDED", string(res.Items[0].Value)) require.Equal(t, "item1 ADDED", string(res.Items[0].Value))
require.Equal(t, "item3 ADDED", string(res.Items[1].Value)) require.Equal(t, "item2 ADDED", string(res.Items[1].Value))
require.Equal(t, "item2 ADDED", string(res.Items[2].Value)) require.Equal(t, "item3 ADDED", string(res.Items[2].Value))
require.Equal(t, "item1 ADDED", string(res.Items[3].Value)) require.Equal(t, "item4 ADDED", string(res.Items[3].Value))
require.Empty(t, res.NextPageToken) require.Empty(t, res.NextPageToken)
}) })
@ -287,8 +287,8 @@ func TestIntegrationBackendList(t *testing.T) {
require.Nil(t, res.Error) require.Nil(t, res.Error)
require.Len(t, res.Items, 3) require.Len(t, res.Items, 3)
t.Log(res.Items) t.Log(res.Items)
require.Equal(t, "item2 MODIFIED", string(res.Items[0].Value)) require.Equal(t, "item1 ADDED", string(res.Items[0].Value))
require.Equal(t, "item5 ADDED", string(res.Items[1].Value)) require.Equal(t, "item2 MODIFIED", string(res.Items[1].Value))
require.Equal(t, "item4 ADDED", string(res.Items[2].Value)) require.Equal(t, "item4 ADDED", string(res.Items[2].Value))
continueToken, err := sql.GetContinueToken(res.NextPageToken) continueToken, err := sql.GetContinueToken(res.NextPageToken)
@ -315,8 +315,8 @@ func TestIntegrationBackendList(t *testing.T) {
require.Nil(t, res.Error) require.Nil(t, res.Error)
require.Len(t, res.Items, 2) require.Len(t, res.Items, 2)
t.Log(res.Items) t.Log(res.Items)
require.Equal(t, "item5 ADDED", string(res.Items[0].Value)) require.Equal(t, "item4 ADDED", string(res.Items[0].Value))
require.Equal(t, "item4 ADDED", string(res.Items[1].Value)) require.Equal(t, "item5 ADDED", string(res.Items[1].Value))
continueToken, err = sql.GetContinueToken(res.NextPageToken) continueToken, err = sql.GetContinueToken(res.NextPageToken)
require.NoError(t, err) require.NoError(t, err)

View File

@ -8,6 +8,6 @@ INNER JOIN (
) AS maxkv ) AS maxkv
ON maxkv."resource_version" = kv."resource_version" AND maxkv."namespace" = kv."namespace" AND maxkv."group" = kv."group" AND maxkv."resource" = kv."resource" AND maxkv."name" = kv."name" ON maxkv."resource_version" = kv."resource_version" AND maxkv."namespace" = kv."namespace" AND maxkv."group" = kv."group" AND maxkv."resource" = kv."resource" AND maxkv."name" = kv."name"
WHERE kv."action" != 3 AND kv."namespace" = ? WHERE kv."action" != 3 AND kv."namespace" = ?
ORDER BY kv."resource_version" DESC ORDER BY kv."namespace" ASC, kv."name" ASC
LIMIT ? OFFSET ? LIMIT ? OFFSET ?
; ;

View File

@ -1,5 +1,5 @@
SELECT "resource_version", "namespace", "name", "value" SELECT "resource_version", "namespace", "name", "value"
FROM "resource" FROM "resource"
WHERE 1 = 1 AND "namespace" = ? WHERE 1 = 1 AND "namespace" = ?
ORDER BY "resource_version" DESC ORDER BY "namespace" ASC, "name" ASC
; ;