diff --git a/pkg/storage/unified/sql/data/resource_history_read.sql b/pkg/storage/unified/sql/data/resource_history_read.sql index b063ba4a6d8..d13447d90e0 100644 --- a/pkg/storage/unified/sql/data/resource_history_read.sql +++ b/pkg/storage/unified/sql/data/resource_history_read.sql @@ -9,24 +9,9 @@ SELECT AND {{ .Ident "group" }} = {{ .Arg .Request.Key.Group }} AND {{ .Ident "resource" }} = {{ .Arg .Request.Key.Resource }} AND {{ .Ident "name" }} = {{ .Arg .Request.Key.Name }} - - {{/* - Resource versions work like snapshots at the kind level. Thus, a request - to retrieve a specific resource version should be interpreted as asking - for a resource as of how it existed at that point in time. This is why we - request matching entities with at most the provided resource version, and - return only the one with the highest resource version. In the case of not - specifying a resource version (i.e. resource version zero), it is - interpreted as the latest version of the given entity, thus we instead - query the "entity" table (which holds only the latest version of - non-deleted entities) and we don't need to specify anything else. The - "entity" table has a unique constraint on (namespace, group, resource, - name), so we're guaranteed to have at most one matching row. - */}} {{ if gt .Request.ResourceVersion 0 }} - AND {{ .Ident "resource_version" }} <= {{ .Arg .Request.ResourceVersion }} - - ORDER BY {{ .Ident "resource_version" }} DESC - LIMIT 1 + AND {{ .Ident "resource_version" }} <= {{ .Arg .Request.ResourceVersion }} {{ end }} + ORDER BY {{ .Ident "resource_version" }} DESC + LIMIT 1 ; diff --git a/pkg/storage/unified/sql/data/resource_update.sql b/pkg/storage/unified/sql/data/resource_update.sql index 6f7fa2a49c0..47ab9fabd5e 100644 --- a/pkg/storage/unified/sql/data/resource_update.sql +++ b/pkg/storage/unified/sql/data/resource_update.sql @@ -1,11 +1,11 @@ UPDATE {{ .Ident "resource" }} SET - {{ .Ident "guid" }} = {{ .Arg .GUID }}, + {{ .Ident "guid" }} = {{ .Arg .GUID }}, {{ .Ident "value" }} = {{ .Arg .WriteEvent.Value }}, {{ .Ident "action" }} = {{ .Arg .WriteEvent.Type }} WHERE 1 = 1 - AND {{ .Ident "group" }} = {{ .Arg .WriteEvent.Key.Group }} - AND {{ .Ident "resource" }} = {{ .Arg .WriteEvent.Key.Resource }} - AND {{ .Ident "namespace" }} = {{ .Arg .WriteEvent.Key.Namespace }} - AND {{ .Ident "name" }} = {{ .Arg .WriteEvent.Key.Name }} + AND {{ .Ident "group" }} = {{ .Arg .WriteEvent.Key.Group }} + AND {{ .Ident "resource" }} = {{ .Arg .WriteEvent.Key.Resource }} + AND {{ .Ident "namespace" }} = {{ .Arg .WriteEvent.Key.Namespace }} + AND {{ .Ident "name" }} = {{ .Arg .WriteEvent.Key.Name }} ; diff --git a/pkg/storage/unified/sql/data/resource_version_get.sql b/pkg/storage/unified/sql/data/resource_version_get.sql index ab5e2a6f2b3..907fefd5ef0 100644 --- a/pkg/storage/unified/sql/data/resource_version_get.sql +++ b/pkg/storage/unified/sql/data/resource_version_get.sql @@ -2,6 +2,6 @@ SELECT {{ .Ident "resource_version" | .Into .ResourceVersion }} FROM {{ .Ident "resource_version" }} WHERE 1 = 1 - AND {{ .Ident "group" }} = {{ .Arg .Group }} - AND {{ .Ident "resource" }} = {{ .Arg .Resource }} + AND {{ .Ident "group" }} = {{ .Arg .Group }} + AND {{ .Ident "resource" }} = {{ .Arg .Resource }} ; diff --git a/pkg/storage/unified/sql/data/resource_version_inc.sql b/pkg/storage/unified/sql/data/resource_version_inc.sql index b4ea3bfa1b0..20e94dad0a1 100644 --- a/pkg/storage/unified/sql/data/resource_version_inc.sql +++ b/pkg/storage/unified/sql/data/resource_version_inc.sql @@ -1,7 +1,7 @@ UPDATE {{ .Ident "resource_version" }} SET - {{ .Ident "resource_version" }} = resource_version + 1 + {{ .Ident "resource_version" }} = resource_version + 1 WHERE 1 = 1 - AND {{ .Ident "group" }} = {{ .Arg .Group }} - AND {{ .Ident "resource" }} = {{ .Arg .Resource }} + AND {{ .Ident "group" }} = {{ .Arg .Group }} + AND {{ .Ident "resource" }} = {{ .Arg .Resource }} ;