IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 27518


Ignore:
Timestamp:
Mar 29, 2010, 4:00:36 PM (16 years ago)
Author:
Paul Price
Message:

Fix destreaking bug: magicdstool -getskycells assumed the mapping between skycells and chips is identical for both the inputs to a diff. Broke the query out into separate cases.

Location:
trunk/ippTools
Files:
2 edited

Legend:

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

    r26557 r27518  
     1-- Input warps
    12SELECT DISTINCT
    23    diffSkyfile.diff_id,
    3     diffRun.tess_id, 
     4    diffRun.tess_id,
    45    diffSkyfile.skycell_id,
    56    diffSkyfile.path_base,
     
    89JOIN magicRun USING(magic_id)
    910JOIN magicInputSkyfile USING(magic_id)
    10 JOIN diffRun ON magicRun.diff_id = diffRun.diff_id
     11JOIN diffRun USING(diff_id)
    1112JOIN diffSkyfile
    1213    ON magicRun.diff_id = diffSkyfile.diff_id
     
    1718    -- Want input warps only
    1819    AND diffInputSkyfile.warp1 IS NOT NULL
     20    AND magicRun.inverse = 0
    1921JOIN warpSkyCellMap
    2022    ON warpSkyCellMap.warp_id = diffInputSkyfile.warp1
     
    2729    diffSkyfile.fault = 0
    2830    AND diffSkyfile.quality = 0
    29     AND magic_ds_id = %lld
     31    -- WHERE hook %s
     32UNION
     33-- Reference warps
     34SELECT DISTINCT
     35    diffSkyfile.diff_id,
     36    diffRun.tess_id,
     37    diffSkyfile.skycell_id,
     38    diffSkyfile.path_base,
     39    diffSkyfile.data_state
     40FROM magicDSRun
     41JOIN magicRun USING(magic_id)
     42JOIN magicInputSkyfile USING(magic_id)
     43JOIN diffRun USING(diff_id)
     44JOIN diffSkyfile
     45    ON magicRun.diff_id = diffSkyfile.diff_id
     46    AND magicInputSkyfile.node = diffSkyfile.skycell_id
     47JOIN diffInputSkyfile
     48    ON diffInputSkyfile.diff_id = diffSkyfile.diff_id
     49    AND diffInputSkyfile.skycell_id = diffSkyfile.skycell_id
     50    AND diffInputSkyfile.warp2 IS NOT NULL
     51    AND magicRun.inverse = 1
     52JOIN warpSkyCellMap
     53    ON warpSkyCellMap.warp_id = diffInputSkyfile.warp2
     54    AND warpSkyCellMap.skycell_id = diffInputSkyfile.skycell_id
     55JOIN warpSkyfile
     56    ON warpSkyfile.warp_id = warpSkyCellMap.warp_id
     57    AND warpSkyfile.skycell_id = warpSkyCellMap.skycell_id
     58    AND warpSkyfile.quality = 0
     59WHERE
     60    diffSkyfile.fault = 0
     61    AND diffSkyfile.quality = 0
     62    -- WHERE hook %s
  • trunk/ippTools/src/magicdstool.c

    r27452 r27518  
    11351135
    11361136    psMetadata *where = psMetadataAlloc();
     1137    PXOPT_COPY_S64(config->args, where, "-magic_ds_id", "magicDSRun.magic_ds_id", "==");
    11371138    PXOPT_COPY_STR(config->args, where, "-class_id",    "warpSkyCellMap.class_id", "==");
    11381139    PXOPT_COPY_STR(config->args, where, "-skycell_id",  "warpSkyCellMap.skycell_id", "==");
     
    11461147    }
    11471148
     1149    psString whereClause = NULL;
    11481150    if (psListLength(where->list)) {
    1149         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    1150         psStringAppend(&query, " AND %s", whereClause);
    1151         psFree(whereClause);
     1151        whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1152        psStringPrepend(&whereClause, "\n");
    11521153    }
    11531154    psFree(where);
    11541155
    1155     if (!p_psDBRunQueryF(config->dbh, query, magic_ds_id)) {
     1156    if (!p_psDBRunQueryF(config->dbh, query, whereClause, whereClause)) {
    11561157        psError(PS_ERR_UNKNOWN, false, "database error");
    11571158        psFree(query);
Note: See TracChangeset for help on using the changeset viewer.