IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 21, 2013, 1:18:35 PM (13 years ago)
Author:
watersc1
Message:

Updated SQL and database interactions for WSdiffs. This should allow it to run in a reasonable amount of time and without blocking the database.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/share/difftool_definewarpstack.sql

    r24572 r35192  
    1 -- Get list of warps that can be diffed, with any associated diff,
    2 -- and the best stack to use as a template
    3 -- Warps without an existing diff can be identified by a NULL diff_id
     1-- Get list of warp-stack pairs that can be diffed
     2-- and check results against existing diffs
    43SELECT
    5     warpsToDiff.warp_id,
    6     warpsToDiff.skycell_id,
    7     warpsToDiff.tess_id,
    8     warpsToDiff.filter,
    9     warpsToDiff.good_frac,
    10     warpsToDiff.diff_id,
    11     current_stack_id,
    12     best_stack_id,
    13     exp_id
    14 FROM (
    15     -- Get list of warps that can be diffed, with any associated diff
    16     SELECT
    17         warpSkyfile.warp_id,
    18         warpSkyfile.skycell_id,
    19         warpSkyfile.tess_id,
    20         warpSkyfile.good_frac,
    21         warpRun.label,
    22         filter,
    23         warpRun.label as warp_label,
    24         diffInputs.diff_id,
    25         diffInputs.stack2 AS current_stack_id,
    26         rawExp.exp_id
    27     FROM warpSkyfile
    28     JOIN warpRun USING(warp_id)
    29     JOIN fakeRun USING(fake_id)
    30     JOIN camRun USING(cam_id)
    31     JOIN chipRun USING(chip_id)
    32     JOIN rawExp USING(exp_id)
    33     -- Check if it has an associated diff
    34     LEFT JOIN diffInputSkyfile AS diffInputs
    35         ON diffInputs.warp1 = warpSkyfile.warp_id
    36         AND diffInputs.skycell_id = warpSkyfile.skycell_id
    37         AND diffInputs.stack2 IS NOT NULL
    38     WHERE
    39         warpSkyfile.fault = 0
    40         AND warpSkyfile.quality = 0
    41     -- warpsToDiff WHERE hook %s
    42     ) AS warpsToDiff
    43 -- Get best stack as a function of skycell_id, filter
    44 JOIN (
    45     SELECT
    46         MAX(stack_id) AS best_stack_id, -- most recent stack, by virtue of auto-increment
    47         skycell_id,
    48         filter
    49     FROM stackRun
    50     JOIN stackSumSkyfile USING(stack_id)
    51     WHERE stackRun.state = 'full'
    52         AND stackSumSkyfile.fault = 0
    53         AND stackSumSkyfile.quality = 0
    54     -- stacksForDiff WHERE hook %s
    55     GROUP BY
    56         skycell_id,
    57         filter
    58     ) AS stacksForDiff USING(skycell_id, filter)
     4   exp_id,
     5   warp_id,
     6   rawExp.filter,
     7   warpRun.label AS warpLabel,
     8   warpRun.data_group AS warpDataGroup,
     9   warpRun.tess_id,
     10   warpSkyfile.skycell_id,
     11   MAX(stack_id) AS stack_id,
     12   stackRun.label AS stackLabel,
     13   stackRun.data_group AS stackDataGroup,
     14   diff_id,
     15   diffRun.label AS diffLabel
     16FROM warpRun
     17     JOIN fakeRun USING(fake_id)
     18     JOIN camRun USING(cam_id)
     19     JOIN chipRun USING(chip_id)
     20     JOIN rawExp USING(exp_id)
     21     JOIN warpSkyfile USING(warp_id)
     22     JOIN stackRun ON
     23       (stackRun.skycell_id = warpSkyfile.skycell_id AND
     24        stackRun.filter     = rawExp.filter AND
     25        stackRun.tess_id    = warpRun.tess_id)
     26     JOIN stackSumSkyfile USING(stack_id)
     27     LEFT JOIN diffInputSkyfile ON
     28       (warp_id = diffInputSkyfile.warp1 AND
     29        stack_id = diffInputSkyfile.stack2 AND
     30        diffInputSkyfile.skycell_id = stackRun.skycell_id AND
     31        diffInputSkyfile.tess_id = stackRun.tess_id)
     32     LEFT JOIN diffRun USING(diff_id)
     33WHERE
     34     warpRun.state = 'full'
     35     AND stackRun.state = 'full'
     36     AND warpSkyfile.fault = 0
     37     AND warpSkyfile.quality = 0
     38     AND stackSumSkyfile.fault = 0
     39     AND stackSumSkyfile.quality = 0
     40     AND exp_id IS NOT NULL
     41-- %s
     42GROUP BY exp_id,warp_id,skycell_id
Note: See TracChangeset for help on using the changeset viewer.