IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 36968


Ignore:
Timestamp:
Jul 2, 2014, 5:28:31 PM (12 years ago)
Author:
watersc1
Message:

Fixed major issue where if a stage_id is used in a different stage, it causes infinite problems.

Location:
trunk/ippTools
Files:
5 edited

Legend:

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

    r36853 r36968  
    1 SELECT
    2        cam_id AS stage_id
    3 FROM camRun
    4        LEFT JOIN remoteComponent ON (remoteComponent.stage_id = camRun.cam_id)
    5        LEFT JOIN remoteRun ON (
    6             remoteComponent.remote_id = remoteRun.remote_id AND
    7             remoteRun.label = camRun.label
    8             )
     1SELECT stage_id FROM
     2
     3( SELECT cam_id AS stage_id
     4    FROM camRun
    95WHERE
    10 camRun.state = 'new' AND
    11 (remoteRun.stage = 'camera' OR remoteRun.state IS NULL) AND
    12 remoteComponent.remote_id IS NULL
     6camRun.state = 'new'
     7-- where hook %s
     8GROUP BY cam_id
     9) AS W
     10
     11LEFT JOIN
     12
     13(SELECT remote_id,remoteRun.stage,remoteRun.label,remoteComponent.stage_id,remoteRun.state
     14   FROM remoteRun
     15   JOIN remoteComponent USING (remote_id)
     16WHERE
     17remoteRun.stage = 'camera'
     18-- where hook %s
     19) AS R
     20USING (stage_id)
     21WHERE R.remote_id IS NULL
  • trunk/ippTools/share/remotetool_definebyquery_chip.sql

    r36512 r36968  
    1 SELECT
    2        chip_id AS stage_id
    3 FROM chipRun
    4        LEFT JOIN remoteComponent ON (remoteComponent.stage_id = chipRun.chip_id)
    5        LEFT JOIN remoteRun ON (
    6             remoteComponent.remote_id = remoteRun.remote_id AND
    7             remoteRun.label = chipRun.label
    8             )
     1SELECT stage_id FROM
     2
     3( SELECT chip_id AS stage_id
     4    FROM chipRun
    95WHERE
    10 chipRun.state = 'new' AND
    11 (remoteRun.stage = 'chip' OR remoteRun.stage IS NULL) AND
    12 remoteComponent.remote_id IS NULL
     6chipRun.state = 'new'
     7-- where hook %s
     8GROUP BY chip_id
     9) AS W
     10
     11LEFT JOIN
     12
     13(SELECT remote_id,remoteRun.stage,remoteRun.label,remoteComponent.stage_id,remoteRun.state
     14   FROM remoteRun
     15   JOIN remoteComponent USING (remote_id)
     16WHERE
     17remoteRun.stage = 'chip'
     18-- where hook %s
     19) AS R
     20USING (stage_id)
     21WHERE R.remote_id IS NULL
     22
    1323
    1424
  • trunk/ippTools/share/remotetool_definebyquery_stack.sql

    r36853 r36968  
    1 SELECT
    2        stack_id AS stage_id
    3 FROM stackRun
    4        LEFT JOIN remoteComponent ON (remoteComponent.stage_id = stackRun.stack_id)
    5        LEFT JOIN remoteRun ON (
    6             remoteComponent.remote_id = remoteRun.remote_id AND
    7             remoteRun.label = stackRun.label
    8             )
     1SELECT stage_id FROM
     2
     3( SELECT stack_id AS stage_id
     4    FROM stackRun
    95WHERE
    10 stackRun.state = 'new' AND
    11 (remoteRun.stage = 'stack' OR remoteRun.state IS NULL) AND
    12 remoteComponent.remote_id IS NULL
     6stackRun.state = 'new'
     7-- where hook %s
     8GROUP BY stack_id
     9) AS W
     10
     11LEFT JOIN
     12
     13(SELECT remote_id,remoteRun.stage,remoteRun.label,remoteComponent.stage_id,remoteRun.state
     14   FROM remoteRun
     15   JOIN remoteComponent USING (remote_id)
     16WHERE
     17remoteRun.stage = 'stack'
     18-- where hook %s
     19) AS R
     20USING (stage_id)
     21WHERE R.remote_id IS NULL
  • trunk/ippTools/share/remotetool_definebyquery_warp.sql

    r36963 r36968  
    1 SELECT warp_id AS stage_id FROM (
    2 SELECT warp_id, count(warpSkyCellMap.skycell_id) AS N
     1SELECT stage_id FROM
     2
     3( SELECT warp_id AS stage_id, count(warpSkyCellMap.skycell_id) AS N
    34    FROM warpRun
    45    LEFT JOIN warpSkyCellMap USING(warp_id)
    5     LEFT JOIN remoteComponent ON (remoteComponent.stage_id = warpRun.warp_id)
    6     LEFT JOIN remoteRun ON (remoteComponent.remote_id = remoteRun.remote_id
    7                         AND remoteRun.label = warpRun.label             
    8                         AND (remoteRun.stage = 'warp' OR remoteRun.state IS NULL)
    9                         )
    10 WHERE warpRun.state = 'new'
    11 AND (remoteRun.stage = 'warp' OR remoteRun.state IS NULL)
    12 -- AND remoteComponent.remote_id IS NULL
     6WHERE
     7warpRun.state = 'new'
    138-- where hook %s
    149GROUP BY warp_id
    15 ) AS warpTry
    16 WHERE N != 0
     10HAVING N != 0
     11) AS W
    1712
     13LEFT JOIN
     14
     15(SELECT remote_id,remoteRun.stage,remoteRun.label,remoteComponent.stage_id,remoteRun.state
     16   FROM remoteRun
     17   JOIN remoteComponent USING (remote_id)
     18WHERE
     19remoteRun.stage = 'warp'
     20-- where hook %s
     21) AS R
     22USING (stage_id)
     23WHERE R.remote_id IS NULL
     24
  • trunk/ippTools/src/remotetool.c

    r36896 r36968  
    9494
    9595  // Get a list of the things we can insert into a new component
     96  // CZW: these labels no longer need to be linked to the table, as I've split stageRun and remoteRun into sub-queries.
    9697  psString query = NULL;
    9798  psString whereOption = psStringCopy("");
     
    104105   
    105106    if (label) {
    106       psStringAppend(&query, " AND (chipRun.label = '%s')", label);
     107      psStringAppend(&whereOption, "\n AND (label = '%s')", label);
    107108    }
    108109  }
     
    115116   
    116117    if (label) {
    117       psStringAppend(&query, " AND (camRun.label = '%s')", label);
     118      psStringAppend(&whereOption, "\n AND (label = '%s')", label);
    118119    }
    119120  }   
     
    128129      // Because warp has to check to see if something other than the state is set correctly, I have to use this wonky way to pass the label in.
    129130      //      psStringAppend(&query, " AND (warpRun.label = '%s')", label);
    130       psStringAppend(&whereOption, "\n AND (warpRun.label = '%s')", label);
     131      psStringAppend(&whereOption, "\n AND (label = '%s')", label);
    131132    }
    132133  }   
     
    139140   
    140141    if (label) {
    141       psStringAppend(&query, " AND (stackRun.label = '%s')", label);
     142      psStringAppend(&whereOption, "\n AND (label = '%s')", label);
    142143    }
    143144  }   
     
    152153    psFree(limitString);
    153154  }
    154   if (!p_psDBRunQueryF(config->dbh, query,whereOption)) {
     155  if (!p_psDBRunQueryF(config->dbh, query,whereOption,whereOption)) { // This needs to be here twice because we need to restrict on label twice.
    155156    psError(PS_ERR_UNKNOWN, false, "database error");
    156157    psFree(query);
Note: See TracChangeset for help on using the changeset viewer.