@@ -144,31 +144,44 @@ func Update(ctx context.Context, m *gorpmapper.Mapper, db gorpmapper.SqlExecutor
144144
145145func MarkToDeleteByRunIDs (db gorpmapper.SqlExecutorWithTx , runID int64 ) error {
146146 query := `
147- UPDATE item SET to_delete = true WHERE (api_ref->>'run_id')::int = $1
147+ UPDATE item SET to_delete = true WHERE (api_ref->>'run_id')::int = $1
148148 `
149149 _ , err := db .Exec (query , runID )
150150 return sdk .WrapError (err , "unable to mark item to delete for run %d" , runID )
151151}
152152
153- func LoadFileByProjectAndCacheTag (ctx context.Context , m * gorpmapper.Mapper , db gorp.SqlExecutor , itemType sdk. CDNItemType , projKey string , cacheTag string ) (* sdk.CDNItem , error ) {
153+ func LoadWorkerCacheItemByProjectAndCacheTag (ctx context.Context , m * gorpmapper.Mapper , db gorp.SqlExecutor , projKey string , cacheTag string ) (* sdk.CDNItem , error ) {
154154 query := gorpmapper .NewQuery (`
155155 SELECT *
156156 FROM item
157157 WHERE type = $1
158158 AND (api_ref->>'project_key')::text = $2
159159 AND (api_ref->>'cache_tag')::text = $3
160160 AND to_delete = false
161-
162- ` ).Args (itemType , projKey , cacheTag )
161+ ORDER BY created DESC
162+ LIMIT 1
163+ ` ).Args (sdk .CDNTypeItemWorkerCache , projKey , cacheTag )
163164 return getItem (ctx , m , db , query )
164165}
165166
167+ func LoadWorkerCacheItemsByProjectAndCacheTag (ctx context.Context , m * gorpmapper.Mapper , db gorp.SqlExecutor , projKey string , cacheTag string ) ([]sdk.CDNItem , error ) {
168+ query := gorpmapper .NewQuery (`
169+ SELECT *
170+ FROM item
171+ WHERE type = $1
172+ AND (api_ref->>'project_key')::text = $2
173+ AND (api_ref->>'cache_tag')::text = $3
174+ AND to_delete = false
175+ ` ).Args (sdk .CDNTypeItemWorkerCache , projKey , cacheTag )
176+ return getItems (ctx , m , db , query )
177+ }
178+
166179// LoadByAPIRefHashAndType load an item by his job id, step order and type
167180func LoadByAPIRefHashAndType (ctx context.Context , m * gorpmapper.Mapper , db gorp.SqlExecutor , hash string , itemType sdk.CDNItemType , opts ... gorpmapper.GetOptionFunc ) (* sdk.CDNItem , error ) {
168181 query := gorpmapper .NewQuery (`
169182 SELECT *
170183 FROM item
171- WHERE api_ref_hash = $1
184+ WHERE api_ref_hash = $1
172185 AND type = $2
173186 AND to_delete = false
174187 ` ).Args (hash , itemType )
@@ -179,7 +192,7 @@ func LoadByAPIRefHashAndType(ctx context.Context, m *gorpmapper.Mapper, db gorp.
179192func ComputeSizeByIDs (db gorp.SqlExecutor , itemIDs []string ) (int64 , error ) {
180193 query := `
181194 SELECT COALESCE(SUM(size), 0) FROM item
182- WHERE id = ANY($1)
195+ WHERE id = ANY($1)
183196 `
184197 size , err := db .SelectInt (query , pq .StringArray (itemIDs ))
185198 if err != nil {
@@ -191,9 +204,9 @@ func ComputeSizeByIDs(db gorp.SqlExecutor, itemIDs []string) (int64, error) {
191204func ListNodeRunByProject (db gorp.SqlExecutor , projectKey string ) ([]int64 , error ) {
192205 var IDs []int64
193206 query := `
194- SELECT
207+ SELECT
195208 DISTINCT((api_ref->>'node_run_id')::int)
196- FROM item
209+ FROM item
197210 WHERE api_ref->>'project_key' = $1
198211 `
199212 _ , err := db .Select (& IDs , query , projectKey )
@@ -206,7 +219,7 @@ func ListNodeRunByProject(db gorp.SqlExecutor, projectKey string) ([]int64, erro
206219// ComputeSizeByProjectKey returns the size used by a project
207220func ComputeSizeByProjectKey (db gorp.SqlExecutor , projectKey string ) (int64 , error ) {
208221 query := `
209- SELECT SUM(size) FROM item WHERE api_ref->>'project_key' = $1
222+ SELECT SUM(size) FROM item WHERE api_ref->>'project_key' = $1
210223 `
211224 size , err := db .SelectInt (query , projectKey )
212225 if err != nil {
@@ -223,15 +236,15 @@ type Stat struct {
223236
224237func CountItems (db gorp.SqlExecutor ) (res []Stat , err error ) {
225238 _ , err = db .Select (& res , `
226- SELECT status, type, count(status) as "number"
239+ SELECT status, type, count(status) as "number"
227240 FROM item
228241 GROUP BY status, type` )
229242 return res , sdk .WithStack (err )
230243}
231244
232245func CountItemsToDelete (db gorp.SqlExecutor ) (int64 , error ) {
233246 query := `SELECT count(1) as "number"
234- FROM item
247+ FROM item
235248 WHERE to_delete = true`
236249 nb , err := db .SelectInt (query )
237250 return nb , sdk .WithStack (err )
@@ -334,5 +347,4 @@ func LoadRunResultByRunID(ctx context.Context, m *gorpmapper.Mapper, db gorp.Sql
334347 SELECT * FROM item WHERE id IN (SELECT id FROM deduplication)
335348 ` ).Args (runID , sdk .CDNTypeItemRunResult )
336349 return getItems (ctx , m , db , query )
337-
338350}
0 commit comments