view sql/job-todo.sql @ 18:600204c31bf0

misc: refactor
author David Demelier <markand@malikania.fr>
date Tue, 12 Jul 2022 20:20:51 +0200
parents 8c408176d2b1
children de4bf839b565
line wrap: on
line source

--
-- job-todo.sql -- list jobs to perform for a worker
--
-- Copyright (c) 2021 David Demelier <markand@malikania.fr>
--
-- Permission to use, copy, modify, and/or distribute this software for any
-- purpose with or without fee is hereby granted, provided that the above
-- copyright notice and this permission notice appear in all copies.
--
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
--

--
-- This request won't list jobs that were created before the worker itself
-- otherwise when adding a new worker it would need to run potentially a very
-- high number of jobs
--
SELECT job.id
     , job.tag
     , job.project_id
  FROM job
 WHERE job.id
NOT IN (
       SELECT jobresult.job_id
         FROM jobresult
        WHERE jobresult.worker_id = ?
       )
   AND job.date >= (
                 SELECT worker.date
                   FROM worker
                  WHERE worker.id = ?
                 )
 LIMIT ?