comparison pkg/controllers/importqueue.go @ 4748:47922c1a088d

Added a 'changed' column to the import.imports table. Changed is update each time the state changes (TODO: solve this with a trigger). The update script takes as approximation the time of the last log entry connected with the particular import.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 18 Oct 2019 15:34:34 +0200
parents 4394daeea96a
children 1fef4679b07a
comparison
equal deleted inserted replaced
4747:b1428b44e43f 4748:47922c1a088d
43 selectImportsSQL = ` 43 selectImportsSQL = `
44 SELECT 44 SELECT
45 imports.id AS id, 45 imports.id AS id,
46 state::varchar, 46 state::varchar,
47 enqueued, 47 enqueued,
48 changed,
48 kind, 49 kind,
49 username, 50 username,
50 signer, 51 signer,
51 summary IS NOT NULL AS has_summary, 52 summary IS NOT NULL AS has_summary,
52 EXISTS(SELECT 1 FROM import.import_logs 53 EXISTS(SELECT 1 FROM import.import_logs
271 var signer sql.NullString 272 var signer sql.NullString
272 273
273 for rows.Next() { 274 for rows.Next() {
274 var it models.Import 275 var it models.Import
275 var enqueued time.Time 276 var enqueued time.Time
277 var changed time.Time
276 if err = rows.Scan( 278 if err = rows.Scan(
277 &it.ID, 279 &it.ID,
278 &it.State, 280 &it.State,
279 &enqueued, 281 &enqueued,
282 &changed,
280 &it.Kind, 283 &it.Kind,
281 &it.User, 284 &it.User,
282 &signer, 285 &signer,
283 &it.Summary, 286 &it.Summary,
284 &it.Errors, 287 &it.Errors,
288 } 291 }
289 if signer.Valid { 292 if signer.Valid {
290 it.Signer = signer.String 293 it.Signer = signer.String
291 } 294 }
292 it.Enqueued = models.ImportTime{Time: enqueued.UTC()} 295 it.Enqueued = models.ImportTime{Time: enqueued.UTC()}
296 it.Changed = models.ImportTime{Time: changed.UTC()}
293 imports = append(imports, &it) 297 imports = append(imports, &it)
294 } 298 }
295 299
296 if err = rows.Err(); err != nil { 300 if err = rows.Err(); err != nil {
297 return 301 return
444 WHERE id = $1` 448 WHERE id = $1`
445 449
446 reviewSQL = ` 450 reviewSQL = `
447 UPDATE import.imports SET 451 UPDATE import.imports SET
448 state = $1::import_state, 452 state = $1::import_state,
453 changed = CURRENT_TIMESTAMP,
449 signer = $2 454 signer = $2
450 WHERE id = $3` 455 WHERE id = $3`
451 456
452 deleteImportDataSQL = `SELECT import.del_import($1)` 457 deleteImportDataSQL = `SELECT import.del_import($1)`
453 458