IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 18520


Ignore:
Timestamp:
Jul 14, 2008, 3:18:02 PM (18 years ago)
Author:
Paul Price
Message:

Updating tables for magic (adding fault codes, removing skyfilemask)

Location:
trunk/ippTools
Files:
4 edited

Legend:

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

    r18029 r18520  
    719719CREATE TABLE diffInputSkyfile (diff_id BIGINT, template TINYINT, stack_id BIGINT, warp_id BIGINT, skycell_id VARCHAR(64), tess_id VARCHAR(64), kind VARCHAR(64), PRIMARY KEY(diff_id, template), KEY(stack_id), KEY(warp_id), KEY(skycell_id), KEY(tess_id), KEY(kind), FOREIGN KEY (diff_id)  REFERENCES  diffRun(diff_id), FOREIGN KEY (stack_id)  REFERENCES  stackSumSkyfile(stack_id), FOREIGN KEY (warp_id, skycell_id, tess_id)  REFERENCES  warpSkyfile(warp_id, skycell_id, tess_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    720720CREATE TABLE diffSkyfile (diff_id BIGINT, uri VARCHAR(255), path_base VARCHAR(255), bg DOUBLE, bg_stdev DOUBLE, stamps_num INT, stamps_rms FLOAT, sources INT, dtime_diff FLOAT, hostname VARCHAR(64), good_frac FLOAT, fault SMALLINT, PRIMARY KEY(diff_id), KEY(good_frac), KEY(fault), FOREIGN KEY (diff_id)  REFERENCES  diffRun(diff_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    721 CREATE TABLE magicRun (magic_id BIGINT AUTO_INCREMENT, state VARCHAR(64), workdir VARCHAR(255), workdir_state VARCHAR(255), label VARCHAR(64), dvodb VARCHAR(255), registered DATETIME, PRIMARY KEY(magic_id), KEY(magic_id), KEY(state), KEY(workdir_state), KEY(label)) ENGINE=innodb DEFAULT CHARSET=latin1;
    722 CREATE TABLE magicInputSkyfile (magic_id BIGINT, diff_id BIGINT, node VARCHAR(64), PRIMARY KEY(magic_id, diff_id), FOREIGN KEY (magic_id)  REFERENCES  magicRun(magic_id), FOREIGN KEY (diff_id)  REFERENCES  diffRun(diff_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    723 CREATE TABLE magicTree (magic_id BIGINT, node VARCHAR(64), dep VARCHAR(64), KEY(magic_id), KEY(node), KEY(dep), INDEX(magic_id, node), FOREIGN KEY (magic_id)  REFERENCES  magicRun(magic_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    724 CREATE TABLE magicNodeResult (magic_id BIGINT, node VARCHAR(64), uri VARCHAR(255), PRIMARY KEY(magic_id, node), FOREIGN KEY (magic_id)  REFERENCES  magicRun(magic_id), FOREIGN KEY (magic_id, node)  REFERENCES  magicTree(magic_id, node)) ENGINE=innodb DEFAULT CHARSET=latin1;
    725 CREATE TABLE magicMask (magic_id BIGINT, uri VARCHAR(255), PRIMARY KEY(magic_id), FOREIGN KEY (magic_id)  REFERENCES  magicRun(magic_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    726 CREATE TABLE magicSkyfileMask (magic_id BIGINT, diff_id BIGINT, uri VARCHAR(255), PRIMARY KEY(magic_id, diff_id), KEY(uri), FOREIGN KEY (magic_id)  REFERENCES  magicRun(magic_id), FOREIGN KEY (magic_id, diff_id)  REFERENCES  magicInputSkyfile(magic_id, diff_id), FOREIGN KEY (magic_id)  REFERENCES  magicMask(magic_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
     721
     722CREATE TABLE magicRun (
     723        magic_id BIGINT AUTO_INCREMENT,
     724        state VARCHAR(64),
     725        workdir VARCHAR(255),
     726        workdir_state VARCHAR(255),
     727        label VARCHAR(64),
     728        dvodb VARCHAR(255),
     729        registered DATETIME,
     730        fault SMALLINT,
     731        PRIMARY KEY(magic_id),
     732        KEY(magic_id),
     733        KEY(state),
     734        KEY(workdir_state),
     735        KEY(label),
     736        KEY(fault)
     737) ENGINE=innodb DEFAULT CHARSET=latin1;
     738
     739CREATE TABLE magicInputSkyfile (
     740        magic_id BIGINT,
     741        diff_id BIGINT,
     742        node VARCHAR(64),
     743        PRIMARY KEY(magic_id, diff_id),
     744        FOREIGN KEY (magic_id)  REFERENCES  magicRun(magic_id),
     745        FOREIGN KEY (diff_id)  REFERENCES  diffRun(diff_id)
     746) ENGINE=innodb DEFAULT CHARSET=latin1;
     747
     748CREATE TABLE magicTree (
     749        magic_id BIGINT,
     750        node VARCHAR(64),
     751        dep VARCHAR(64),
     752        KEY(magic_id),
     753        KEY(node),
     754        KEY(dep),
     755        INDEX(magic_id, node),
     756        FOREIGN KEY (magic_id)  REFERENCES  magicRun(magic_id)
     757) ENGINE=innodb DEFAULT CHARSET=latin1;
     758
     759CREATE TABLE magicNodeResult (
     760        magic_id BIGINT,
     761        node VARCHAR(64),
     762        uri VARCHAR(255),
     763        fault SMALLINT,
     764        PRIMARY KEY(magic_id, node),
     765        FOREIGN KEY (magic_id)  REFERENCES  magicRun(magic_id),
     766        FOREIGN KEY (magic_id, node)  REFERENCES  magicTree(magic_id, node),
     767        KEY(fault)
     768) ENGINE=innodb DEFAULT CHARSET=latin1;
     769
     770CREATE TABLE magicMask (
     771        magic_id BIGINT,
     772        uri VARCHAR(255),
     773        streaks INT,
     774        fault SMALLINT,
     775        PRIMARY KEY(magic_id),
     776        FOREIGN KEY (magic_id)  REFERENCES  magicRun(magic_id),
     777        KEY(fault)
     778) ENGINE=innodb DEFAULT CHARSET=latin1;
     779
    727780CREATE TABLE calDB (cal_id BIGINT AUTO_INCREMENT, dvodb VARCHAR(64), state VARCHAR(64), PRIMARY KEY(cal_id), KEY(cal_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    728781CREATE TABLE calRun (cal_id BIGINT AUTO_INCREMENT, region VARCHAR(64), last_step VARCHAR(64), state VARCHAR(64), PRIMARY KEY(cal_id), KEY(cal_id), KEY(last_step), FOREIGN KEY (cal_id)  REFERENCES  calDB(cal_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
  • trunk/ippTools/src/magictool.c

    r18336 r18520  
    4141static bool tomaskMode(pxConfig *config);
    4242static bool addmaskMode(pxConfig *config);
    43 static bool toskyfilemaskMode(pxConfig *config);
    44 static bool addskyfilemaskMode(pxConfig *config);
    4543
    4644static bool setmagicRunState(pxConfig *config, psS64 magic_id, const char *state);
     
    7573        MODECASE(MAGICTOOL_MODE_TOMASK,         tomaskMode);
    7674        MODECASE(MAGICTOOL_MODE_ADDMASK,        addmaskMode);
    77         MODECASE(MAGICTOOL_MODE_TOSKYFILEMASK,  toskyfilemaskMode);
    78         MODECASE(MAGICTOOL_MODE_ADDSKYFILEMASK, addskyfilemaskMode);
    7975        default:
    8076            psAbort("invalid option (this should not happen)");
     
    211207                NULL,       // label
    212208                NULL,       // dvodb
    213                 NULL        // registered
     209                NULL,       // registered
     210                0           // fault
    214211        );
    215212        if (!run) {
     
    262259    PS_ASSERT_PTR_NON_NULL(config, false);
    263260
    264     // required 
     261    // required
    265262    PXOPT_LOOKUP_STR(workdir, config->args, "-workdir", true, false);
    266263
     
    278275            label,
    279276            dvodb,
    280             registered
     277            registered,
     278            0
    281279    );
    282280    psFree(registered);
    283281    if (!run) {
    284282        psError(PS_ERR_UNKNOWN, false, "failed to alloc magicRun object");
    285         return true;
     283        return false;
    286284    }
    287285    if (!magicRunInsertObject(config->dbh, run)) {
    288286        psError(PS_ERR_UNKNOWN, false, "database error");
    289287        psFree(run);
    290         return true;
     288        return false;
    291289    }
    292290
     
    444442        return false;
    445443    }
    446    
     444
    447445    return true;
    448446}
     
    491489        return false;
    492490    }
    493    
     491
    494492    return true;
    495493}
     
    589587        return true;
    590588    }
    591      
     589
    592590    psHash *forest = psHashAlloc(psArrayLength(magicTree));
    593591
     
    642640    PXOPT_LOOKUP_STR(magic_id, config->args, "-magic_id", true, false);
    643641    PXOPT_LOOKUP_STR(node, config->args, "-node", true, false);
    644     PXOPT_LOOKUP_STR(uri, config->args, "-uri", true, false);
     642
     643    // optional
     644    PXOPT_LOOKUP_STR(uri, config->args, "-uri", false, false);
     645
     646    // default values
     647    PXOPT_LOOKUP_S16(code, config->args, "-code", false, false);
    645648
    646649    if (!magicNodeResultInsert(config->dbh,
    647                 (psS64)atoll(magic_id),
    648                 node,
    649                 uri
     650                               (psS64)atoll(magic_id),
     651                               node,
     652                               uri,
     653                               code
    650654        )) {
    651655        psError(PS_ERR_UNKNOWN, false, "database error");
     
    726730    // required
    727731    PXOPT_LOOKUP_STR(magic_id, config->args, "-magic_id", true, false);
    728     PXOPT_LOOKUP_STR(uri, config->args, "-uri", true, false);
     732
     733    // optional
     734    PXOPT_LOOKUP_STR(uri, config->args, "-uri", false, false);
     735    PXOPT_LOOKUP_S32(streaks, config->args, "-streaks", false, false);
     736
     737    // default values
     738    PXOPT_LOOKUP_S16(code, config->args, "-code", false, false);
    729739
    730740    if (!magicMaskInsert(config->dbh,
    731                 (psS64)atoll(magic_id),
    732                 uri
    733         )) {
    734         psError(PS_ERR_UNKNOWN, false, "database error");
    735         return false;
    736     }
    737 
    738     return true;
    739 }
    740 
    741 
    742 static bool toskyfilemaskMode(pxConfig *config)
    743 {
    744     PS_ASSERT_PTR_NON_NULL(config, false);
    745 
    746     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    747     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    748 
    749     psString query = pxDataGet("magictool_toskyfilemask.sql");
    750     if (!query) {
    751         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    752         return false;
    753     }
    754 
    755     // treat limit == 0 as "no limit"
    756     if (limit) {
    757         psString limitString = psDBGenerateLimitSQL(limit);
    758         psStringAppend(&query, " %s", limitString);
    759         psFree(limitString);
    760     }
    761 
    762     if (!p_psDBRunQuery(config->dbh, query)) {
    763         psError(PS_ERR_UNKNOWN, false, "database error");
    764         psFree(query);
    765         return false;
    766     }
    767     psFree(query);
    768 
    769     psArray *output = p_psDBFetchResult(config->dbh);
    770     if (!output) {
    771         psErrorCode err = psErrorCodeLast();
    772         switch (err) {
    773             case PS_ERR_DB_CLIENT:
    774                 psError(PXTOOLS_ERR_SYS, false, "database error");
    775             case PS_ERR_DB_SERVER:
    776                 psError(PXTOOLS_ERR_PROG, false, "database error");
    777             default:
    778                 psError(PXTOOLS_ERR_PROG, false, "unknown error");
    779         }
    780 
    781         return false;
    782     }
    783     if (!psArrayLength(output)) {
    784         psTrace("magictool", PS_LOG_INFO, "no rows found");
    785         psFree(output);
    786         return true;
    787     }
    788 
    789     if (psArrayLength(output)) {
    790         // negative simple so the default is true
    791         if (!ippdbPrintMetadatas(stdout, output, "toskyfilemask", !simple)) {
    792             psError(PS_ERR_UNKNOWN, false, "failed to print array");
    793             psFree(output);
    794             return false;
    795         }
    796     }
    797 
    798     psFree(output);
    799 
    800     return true;
    801 }
    802 
    803 
    804 static bool addskyfilemaskMode(pxConfig *config)
    805 {
    806     PS_ASSERT_PTR_NON_NULL(config, false);
    807 
    808     // required
    809     PXOPT_LOOKUP_STR(magic_id, config->args, "-magic_id", true, false);
    810     PXOPT_LOOKUP_STR(diff_id, config->args, "diff_id", true, false);
    811     PXOPT_LOOKUP_STR(uri, config->args, "uri", true, false);
    812 
    813     if (!magicSkyfileMaskInsert(config->dbh,
    814                 (psS64)atoll(magic_id),
    815                 (psS64)atoll(diff_id),
    816                 uri
     741                         (psS64)atoll(magic_id),
     742                         uri,
     743                         streaks,
     744                         code
    817745        )) {
    818746        psError(PS_ERR_UNKNOWN, false, "database error");
  • trunk/ippTools/src/magictool.h

    r18093 r18520  
    3535    MAGICTOOL_MODE_TOMASK,
    3636    MAGICTOOL_MODE_ADDMASK,
    37     MAGICTOOL_MODE_TOSKYFILEMASK,
    38     MAGICTOOL_MODE_ADDSKYFILEMASK,
    3937} MAGICtoolMode;
    4038
  • trunk/ippTools/src/magictoolConfig.c

    r18172 r18520  
    104104    psMetadataAddStr(inputtreeArgs, PS_LIST_TAIL, "-dep_file", 0,
    105105            "order of operations dep. file (required)", NULL);
     106    psMetadataAddS16(inputtreeArgs, PS_LIST_TAIL, "-code",  0, "set fault code", 0);
    106107
    107108    // -tooprocess
     
    121122            "define symbolic node name (required)", NULL);
    122123    psMetadataAddStr(addresultArgs, PS_LIST_TAIL, "-uri",  0,
    123             "define URI (required)", NULL);
     124            "define URI", NULL);
     125    psMetadataAddS16(addresultArgs, PS_LIST_TAIL, "-code",  0, "set fault code", 0);
    124126
    125127    // -tomask
     
    134136    psMetadataAddStr(addmaskArgs, PS_LIST_TAIL, "-magic_id", 0,
    135137            "define magictool ID (required)", NULL);
    136     psMetadataAddStr(addmaskArgs, PS_LIST_TAIL, "-uri",  0,
    137             "define URI (required)", NULL);
    138 
    139     // -toskyfilemask
    140     psMetadata *toskyfilemaskArgs = psMetadataAlloc();
    141     psMetadataAddStr(toskyfilemaskArgs, PS_LIST_TAIL, "-magic_id", 0,
    142             "search by magic ID", NULL);
    143     psMetadataAddU64(toskyfilemaskArgs, PS_LIST_TAIL, "-limit",  0,
    144             "limit result set to N items", 0);
    145     psMetadataAddBool(toskyfilemaskArgs, PS_LIST_TAIL, "-simple",  0,
    146             "use the simple output format", false);
    147 
    148     // -addskyfilemask
    149     psMetadata *addskyfilemaskArgs = psMetadataAlloc();
    150     psMetadataAddStr(addskyfilemaskArgs, PS_LIST_TAIL, "-magic_id", 0,
    151             "define magictool ID (required)", NULL);
    152     psMetadataAddStr(addskyfilemaskArgs, PS_LIST_TAIL, "-diff_id",  0,
    153             "define difftool ID (required)", NULL);
    154     psMetadataAddStr(addskyfilemaskArgs, PS_LIST_TAIL, "-uri",  0,
    155             "define URI (required)", NULL);
     138    psMetadataAddStr(addmaskArgs, PS_LIST_TAIL, "-uri",  0, "define URI", NULL);
     139    psMetadataAddS32(addmaskArgs, PS_LIST_TAIL, "-uri",  0, "define number of streaks", 0);
    156140
    157141    psFree(now);
     
    170154    PXOPT_ADD_MODE("-tomask",          "", MAGICTOOL_MODE_TOMASK,          tomaskArgs);
    171155    PXOPT_ADD_MODE("-addmask",         "", MAGICTOOL_MODE_ADDMASK,         addmaskArgs);
    172     PXOPT_ADD_MODE("-toskyfilemask",   "", MAGICTOOL_MODE_TOSKYFILEMASK,   toskyfilemaskArgs);
    173     PXOPT_ADD_MODE("-addskyfilemask",  "", MAGICTOOL_MODE_ADDSKYFILEMASK,  addskyfilemaskArgs);
    174156
    175157    if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Note: See TracChangeset for help on using the changeset viewer.