IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 31038 for trunk/ippTools


Ignore:
Timestamp:
Mar 24, 2011, 2:09:53 PM (15 years ago)
Author:
watersc1
Message:

implementation of summit_id index in summit{Exp,Imfile},pzDownload{Exp,Imfile},newExp tables.

Location:
trunk/ippTools
Files:
12 edited

Legend:

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

    r30945 r31038  
    1414
    1515CREATE TABLE summitExp (
     16    summit_id BIGINT NOT NULL AUTO_INCREMENT,
    1617    exp_name VARCHAR(64),
    1718    camera VARCHAR(64),
     
    2324    fault SMALLINT NOT NULL,
    2425    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    25     PRIMARY KEY(exp_name, camera, telescope),
     26    PRIMARY KEY(summit_id),
     27    KEY(exp_name, camera, telescope),
    2628    KEY(fault)
    2729) ENGINE=innodb DEFAULT CHARSET=latin1;
    2830
    2931CREATE TABLE summitImfile (
     32    summit_id BIGINT,
    3033    exp_name VARCHAR(64),
    3134    camera VARCHAR(64),
     
    3841    uri VARCHAR(255),
    3942    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    40     PRIMARY KEY(exp_name, camera, telescope, class, class_id),
     43    PRIMARY KEY(summit_id, class, class_id),
     44    KEY(exp_name, camera, telescope, class, class_id),
    4145    KEY(file_id),
     46    FOREIGN KEY(summit_id) REFERENCES summitExp(summit_id),
    4247    FOREIGN KEY(exp_name, camera, telescope) REFERENCES summitExp(exp_name, camera, telescope)
    4348) ENGINE=innodb DEFAULT CHARSET=latin1;
    4449
    4550CREATE TABLE pzDownloadExp (
     51    summit_id BIGINT,
    4652    exp_name VARCHAR(64),
    4753    camera VARCHAR(64),
     
    4955    state VARCHAR(64),
    5056    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    51     PRIMARY KEY(exp_name, camera, telescope),
     57    PRIMARY KEY(summit_id),
     58    KEY(exp_name, camera, telescope),
    5259    KEY(state),
     60    FOREIGN KEY(summit_id) REFERENCES summitExp(summit_id),
    5361    FOREIGN KEY(exp_name, camera, telescope) REFERENCES summitExp(exp_name, camera, telescope)
    5462) ENGINE=innodb DEFAULT CHARSET=latin1;
    5563
    5664CREATE TABLE pzDownloadImfile (
     65    summit_id BIGINT,
    5766    exp_name VARCHAR(64),
    5867    camera VARCHAR(64),
     
    6675    bytes INT,
    6776    md5sum VARCHAR(32),
    68     PRIMARY KEY(exp_name, camera, telescope, class, class_id),
    69     KEY(fault),
     77    PRIMARY KEY(summit_id, class, class_id),
     78    KEY(exp_name, camera, telescope, class, class_id),
     79    KEY(fault),
     80    FOREIGN KEY(summit_id) REFERENCES pzDownloadExp(summit_id),
     81    FOREIGN KEY(summit_id, class, class_id) REFERENCES summitImfile(summit_id, class, class_id),
    7082    FOREIGN KEY (exp_name, camera, telescope) REFERENCES pzDownloadExp(exp_name, camera, telescope),
    7183    FOREIGN KEY(exp_name, camera, telescope, class, class_id) REFERENCES summitImfile(exp_name, camera, telescope, class, class_id)
     
    7486CREATE TABLE newExp (
    7587    exp_id BIGINT AUTO_INCREMENT,
     88    summit_id BIGINT,
    7689    tmp_exp_name VARCHAR(64),
    7790    tmp_camera VARCHAR(64),
     
    88101    PRIMARY KEY(exp_id),
    89102    KEY(exp_id),
     103    KEY(summit_id),
    90104    KEY(tmp_exp_name),
    91105    KEY(tmp_camera),
  • trunk/ippTools/share/pztool_find_completed_exp.sql

    r23643 r31038  
    11SELECT DISTINCT
     2    summit_id,
    23    exp_name,
    34    camera,
     
    1314    FROM pzDownloadExp
    1415    JOIN summitExp
    15         USING(exp_name, camera, telescope)
     16        USING(summit_id)
    1617    LEFT JOIN pzDownloadImfile
    17         USING(exp_name, camera, telescope)
     18        USING(summit_id)
    1819    LEFT JOIN newExp
    19         ON pzDownloadExp.exp_name = newExp.tmp_exp_name
    20         AND pzDownloadExp.camera = newExp.tmp_camera
    21         AND pzDownloadExp.telescope = newExp.tmp_telescope
     20        USING(summit_id)
    2221    WHERE
    2322        pzDownloadExp.state = 'run'
     23        AND newExp.summit_id IS NULL
    2424        AND newExp.tmp_exp_name IS NULL
    2525        AND newExp.tmp_camera IS NULL
    2626        AND newExp.tmp_telescope IS NULL
    2727    GROUP BY
    28         pzDownloadExp.exp_name,
    29         pzDownloadExp.camera,
    30         pzDownloadExp.telescope
     28        pzDownloadExp.summit_id,
    3129    -- it doesn't matter which field in pzDownloadImfile we count as we've
    3230    -- already Download a group by
  • trunk/ippTools/share/pztool_pendingimfile.sql

    r18305 r31038  
    66    FROM summitImfile
    77    JOIN pzDownloadExp
    8         USING(exp_name, camera, telescope)
     8        USING(summit_id)
    99    LEFT JOIN pzDownloadImfile
    10         USING(exp_name, camera, telescope, class, class_id)
     10        USING(summit_id, class, class_id)
    1111    JOIN summitExp
    12         USING(exp_name, camera, telescope)
     12        USING(summit_id)
    1313    WHERE
    1414        pzDownloadExp.state = 'run'
     15        AND pzDownloadImfile.summit_id IS NULL
    1516        AND pzDownloadImfile.exp_name IS NULL
    1617        AND pzDownloadImfile.camera IS NULL
  • trunk/ippTools/share/regtool_checkburntoolimfile.sql

    r30283 r31038  
    2121       FROM
    2222       summitExp
    23        JOIN summitImfile USING(exp_name)
    24        LEFT JOIN pzDownloadExp USING(exp_name)
    25        LEFT JOIN newExp ON summitExp.exp_name = tmp_exp_name
     23       JOIN summitImfile USING(summit_id)
     24       LEFT JOIN pzDownloadExp USING(summit_id)
     25       LEFT JOIN newExp USING(summit_id)
    2626       LEFT JOIN newImfile ON (summitImfile.class_id = newImfile.tmp_class_id AND newExp.exp_id = newImfile.exp_id)
    2727       LEFT JOIN rawExp ON rawExp.exp_id = newExp.exp_id
  • trunk/ippTools/share/regtool_checkstatus.sql

    r30997 r31038  
    2020        (rawImfile.burntool_state IS NOT NULL) AS is_registered
    2121        FROM        summitExp
    22         JOIN summitImfile USING(exp_name)
    23         LEFT JOIN pzDownloadExp USING(exp_name)
    24         LEFT JOIN newExp ON summitExp.exp_name = tmp_exp_name
     22        JOIN summitImfile USING(summit_id)
     23        LEFT JOIN pzDownloadExp USING(summit_id)
     24        LEFT JOIN newExp USING(summit_id)
    2525        LEFT JOIN newImfile ON (summitImfile.class_id = newImfile.tmp_class_id AND newExp.exp_id = newImfile.exp_id)
    2626        LEFT JOIN rawExp ON rawExp.exp_id = newExp.exp_id
  • trunk/ippTools/share/regtool_pendingburntoolimfile.sql

    r30283 r31038  
    2222       FROM
    2323       summitExp
    24        JOIN summitImfile USING(exp_name)
    25        LEFT JOIN pzDownloadExp USING(exp_name)
    26        LEFT JOIN newExp ON summitExp.exp_name = tmp_exp_name
     24       JOIN summitImfile USING(summit_id)
     25       LEFT JOIN pzDownloadExp USING(summit_id)
     26       LEFT JOIN newExp USING(summit_id)
    2727       LEFT JOIN newImfile ON (summitImfile.class_id = newImfile.tmp_class_id AND newExp.exp_id = newImfile.exp_id)
    2828       LEFT JOIN rawExp ON rawExp.exp_id = newExp.exp_id
  • trunk/ippTools/src/pxinject.c

    r25418 r31038  
    9292    if (!newExpInsert(config->dbh,
    9393                0,    // exp_id
     94                0, // summit_id
    9495                tmp_exp_name,
    9596                tmp_camera,
  • trunk/ippTools/src/pzgetexp.c

    r21402 r31038  
    215215        char *query =
    216216            "INSERT INTO summitExp"
    217             "   SElECT"
     217            "   SELECT"
     218            "       NULL," // summit_id
    218219            "       incoming.*,"
    219220            "       NULL,"  // imfiles
  • trunk/ippTools/src/pzgetimfiles.c

    r21402 r31038  
    9999    int status = pclose(output);
    100100
     101    // We have an id value now, let's get it and use it
     102    char *id_query = "SELECT summit_id FROM summitExp WHERE exp_name = '%s' AND camera = '%s' AND telescope = '%s'";
     103
     104    if (!p_psDBRunQueryF(config->dbh, id_query, filesetid, camera, telescope)) {
     105      psError(PS_ERR_UNKNOWN, false, "database error");
     106      return false;
     107    }
     108   
     109    psArray *id_output = p_psDBFetchResult(config->dbh);
     110    if (!id_output) {
     111      psError(PS_ERR_UNKNOWN, false, "database error");
     112      return false;
     113    }
     114    if (psArrayLength(id_output) != 1) {
     115      psError(PS_ERR_UNKNOWN, false, "database error: incorrect number of results");
     116      return false;
     117    }
     118
     119    psMetadata *id_result = id_output->data[0];
     120
     121    psS64 summit_id = psMetadataLookupS64(NULL, id_result, "summit_id");
     122    psFree(id_output);
     123    // End of summit_id block.
     124   
    101125    if (status != 0) {
    102126        // mark the summitExp row as faulted
    103         if (!p_psDBRunQueryF(config->dbh, "UPDATE summitExp SET fault = %d WHERE exp_name = '%s' AND camera = '%s' AND telescope = '%s'", WEXITSTATUS(status), filesetid, camera, telescope)) {
     127        if (!p_psDBRunQueryF(config->dbh, "UPDATE summitExp SET fault = %d WHERE summit_id = %ld", WEXITSTATUS(status), summit_id)) {
    104128            psError(PS_ERR_UNKNOWN, false, "database error");
    105129        }
     
    117141        // download an "empty" fileset.
    118142        // mark the summitExp row as faulted
    119         if (!p_psDBRunQueryF(config->dbh, "UPDATE summitExp SET fault = %d WHERE exp_name = '%s' AND camera = '%s' AND telescope = '%s'", 250, filesetid, camera, telescope)) {
     143        if (!p_psDBRunQueryF(config->dbh, "UPDATE summitExp SET fault = %d WHERE summit_id = %ld", 250, summit_id)) {
    120144                psError(PS_ERR_UNKNOWN, false, "database error");
    121145        }
     
    142166            "UPDATE summitExp"
    143167            " SET imfiles = %d"
    144             " WHERE exp_name = '%s'"
    145             " AND camera = '%s'"
    146             " AND telescope = '%s'";
    147         if (!p_psDBRunQueryF(config->dbh, query, imfiles, filesetid, camera, telescope)) {
     168            " WHERE summit_id = %ld";
     169        if (!p_psDBRunQueryF(config->dbh, query, imfiles, summit_id)) {
    148170            // rollback
    149171            if (!psDBRollback(config->dbh)) {
     
    159181                "DELETE FROM pzDownloadExp"
    160182                " WHERE"
    161                 "   exp_name = '%s'"
    162                 "   AND camera = '%s'"
    163                 "   AND telescope = '%s'";
    164             if (!p_psDBRunQueryF(config->dbh, query, filesetid, camera, telescope)) {
     183                " summit_id = %ld";
     184            if (!p_psDBRunQueryF(config->dbh, query, summit_id)) {
    165185                // rollback
    166186                if (!psDBRollback(config->dbh)) {
     
    245265            "INSERT IGNORE INTO summitImfile"
    246266            "   SELECT"
     267            "       %ld," // summit_id
    247268            "       incoming.exp_name,"
    248269            "       incoming.camera,"
     
    256277            "       NULL"       // epoch
    257278            "   FROM incoming";
    258         if (!p_psDBRunQuery(config->dbh, query)) {
     279        if (!p_psDBRunQueryF(config->dbh, query,summit_id)) {
    259280            // rollback
    260281            if (!psDBRollback(config->dbh)) {
     
    272293            " SET imfiles = (SELECT COUNT(*) FROM summitImfile"
    273294            "   WHERE"
    274             "       exp_name = '%s'"
    275             "       AND camera = '%s'"
    276             "       AND telescope = '%s'"
     295            "   summit_id = %ld"
    277296            ")"
    278297            " WHERE"
    279             "   exp_name = '%s'"
    280             "   AND camera = '%s'"
    281             "   AND telescope = '%s'"
     298            "   summit_id = %ld"
    282299            "   AND imfiles IS NULL";
    283         if (!p_psDBRunQueryF(config->dbh, query, filesetid, camera, telescope, filesetid, camera, telescope)) {
     300        if (!p_psDBRunQueryF(config->dbh, query, summit_id, summit_id)) {
    284301            // rollback
    285302            if (!psDBRollback(config->dbh)) {
     
    308325            "INSERT IGNORE INTO pzDownloadExp"
    309326            "   SELECT"
     327            "       %ld,"    // summit_id
    310328            "       incoming.exp_name,"
    311329            "       incoming.camera,"
     
    319337            "       incoming.telescope";
    320338
    321         if (!p_psDBRunQuery(config->dbh, query)) {
     339        if (!p_psDBRunQueryF(config->dbh, query,summit_id)) {
    322340            // rollback
    323341            if (!psDBRollback(config->dbh)) {
  • trunk/ippTools/src/pztool.c

    r30907 r31038  
    5353static psArray *pzGetPendingCameras(pxConfig *config);
    5454static psArray *pzArrayZip(psArray *arraySet, psS64 limit);
    55 static bool pzDownloadExpSetState(pxConfig *config, const char *exp_name, const char *camera, const char *telescope, const char *state);
     55static bool pzDownloadExpSetState(pxConfig *config, const psS64 summit_id, const char *state);
    5656
    5757# define MODECASE(caseName, func) \
     
    222222
    223223    psMetadata *where = psMetadataAlloc();
     224    PXOPT_COPY_S64(config->args, where,  "-summit_id",    "summit_id", "==");
    224225    PXOPT_COPY_STR(config->args, where,  "-exp_name",     "exp_name", "==");
    225226    PXOPT_COPY_STR(config->args, where,  "-inst",         "camera", "==");
     
    237238            " FROM summitExp"
    238239            " LEFT JOIN pzDownloadExp"
    239             "   USING(exp_name, camera, telescope)"
     240            "   USING(summit_id)"
    240241            " WHERE"
    241             "   pzDownloadExp.exp_name IS NULL"
    242             "   AND pzDownloadExp.camera IS NULL"
    243             "   AND pzDownloadExp.telescope IS NULL"
     242            "   pzDownloadExp.summit_id IS NULL"
    244243            "   AND summitExp.fault = 0"
    245244        );
     
    260259    if (limit) {
    261260        psString limitString = psDBGenerateLimitSQL(limit);
     261
    262262        psStringAppend(&query, " %s", limitString);
    263263        psFree(limitString);
     
    299299
    300300    psMetadata *where = psMetadataAlloc();
     301    PXOPT_COPY_S64(config->args, where,  "-summit_id",     "summit_id", "==");
    301302    PXOPT_COPY_STR(config->args, where,  "-exp_name",      "exp_name",  "==");
    302303    PXOPT_COPY_STR(config->args, where,  "-inst",          "camera",    "==");
     
    401402
    402403    // required
     404    PXOPT_LOOKUP_S64(summit_id, config->args, "-summit_id", true, false);
    403405    PXOPT_LOOKUP_STR(exp_name, config->args, "-exp_name", true, false);
    404406    PXOPT_LOOKUP_STR(camera, config->args, "-inst", true, false);
     
    428430
    429431        psMetadata *where = psMetadataAlloc();
     432        PXOPT_COPY_S64(config->args, where,  "-summit_id", "summit_id", "==");
    430433        PXOPT_COPY_STR(config->args, where,  "-exp_name", "exp_name", "==");
    431434        PXOPT_COPY_STR(config->args, where,  "-inst", "camera", "==");
     
    459462
    460463    if (!pzDownloadImfileInsert(config->dbh,
     464            summit_id,                 
    461465            exp_name,
    462466            camera,
     
    505509
    506510    psMetadata *where = psMetadataAlloc();
     511    PXOPT_COPY_STR(config->args, where,  "-summit_id", "summit_id", "==");
    507512    PXOPT_COPY_STR(config->args, where,  "-exp_name", "exp_name", "==");
    508513    PXOPT_COPY_STR(config->args, where,  "-inst", "camera", "==");
     
    560565
    561566    // required
     567    PXOPT_LOOKUP_S64(summit_id, config->args, "-summit_id", true, false);
    562568    PXOPT_LOOKUP_STR(exp_name, config->args, "-exp_name", true, false);
    563569    PXOPT_LOOKUP_STR(inst, config->args, "-inst", true, false);
     
    579585    if (!newExpInsert(config->dbh,
    580586            0x0,        // exp_id
     587            summit_id,  // summit_id
    581588            exp_name,   // tmp_exp_name
    582589            inst,       // tmp_camera
     
    597604        }
    598605
    599         psS64 exp_id = psDBLastInsertID(config->dbh);
    600 
    601         // insert newImfiles
    602         {
    603             char *query =
     606    psS64 exp_id = psDBLastInsertID(config->dbh);
     607
     608    // insert newImfiles
     609    {
     610      char *query =
    604611                "INSERT INTO newImfile"
    605                 "   SElECT"
     612                "   SELECT"
    606613                "       %" PRId64 ","               // exp_id
     614                "       %" PRId64 ","               // summit_id
    607615                "       pzDownloadImfile.class_id," // tmp_class_id
    608616                "       pzDownloadImfile.uri,"      // uri
     
    616624                "       AND pzDownloadImfile.telescope = '%s'";
    617625
    618         if (!p_psDBRunQueryF(config->dbh, query, exp_id, exp_name, inst, telescope)) {
    619             psError(PS_ERR_UNKNOWN, false, "database error");
    620             return false;
    621         }
    622 
    623         // sanity check: we should have inserted at least one row
    624         psU64 affected = psDBAffectedRows(config->dbh);
    625         if (psDBAffectedRows(config->dbh) < 1) {
    626             psError(PS_ERR_UNKNOWN, false, "should have affected at least 1 row but %" PRIu64 " rows were modified", affected);
    627             return false;
    628         }
     626      if (!p_psDBRunQueryF(config->dbh, query, exp_id, summit_id, exp_name, inst, telescope)) {
     627        psError(PS_ERR_UNKNOWN, false, "database error");
     628        return false;
     629      }
     630
     631      // sanity check: we should have inserted at least one row
     632      psU64 affected = psDBAffectedRows(config->dbh);
     633      if (psDBAffectedRows(config->dbh) < 1) {
     634        psError(PS_ERR_UNKNOWN, false, "should have affected at least 1 row but %" PRIu64 " rows were modified", affected);
     635        return false;
     636      }
    629637    }
    630638
    631639    // set pzDownloadExp.state to 'stop'
    632     if (!pzDownloadExpSetState(config, exp_name, inst, telescope, "stop")) {
    633         psError(PS_ERR_UNKNOWN, false, "failed to change pzDownloadExp.state for %s:%s:%s", exp_name, inst, telescope);
     640    if (!pzDownloadExpSetState(config, summit_id, "stop")) {
     641        psError(PS_ERR_UNKNOWN, false, "failed to change pzDownloadExp.state for %ld", summit_id);
    634642        return false;
    635643    }
     
    887895
    888896
    889 static bool pzDownloadExpSetState(pxConfig *config, const char *exp_name, const char *camera, const char *telescope, const char *state)
     897static bool pzDownloadExpSetState(pxConfig *config, const psS64 summit_id, const char *state)
    890898{
    891899    PS_ASSERT_PTR_NON_NULL(state, false);
     
    904912    }
    905913
    906     char *query = "UPDATE pzDownloadExp SET state = '%s' WHERE exp_name = '%s' and camera = '%s' and telescope = '%s'";
    907     if (!p_psDBRunQueryF(config->dbh, query, state, exp_name, camera, telescope)) {
    908         psError(PS_ERR_UNKNOWN, false, "failed to change state for %s:%s:%s", exp_name, camera, telescope);
     914    char *query = "UPDATE pzDownloadExp SET state = '%s' WHERE summit_id = %ld";
     915    if (!p_psDBRunQueryF(config->dbh, query, state, summit_id)) {
     916        psError(PS_ERR_UNKNOWN, false, "failed to change state for %ld", summit_id);
    909917        return false;
    910918    }
     
    916924{
    917925  PS_ASSERT_PTR_NON_NULL(config, false);
    918   PXOPT_LOOKUP_STR(exp_name, config->args, "-exp_name", true, false);
    919   PXOPT_LOOKUP_STR(camera,   config->args, "-inst",   true, false);
    920   PXOPT_LOOKUP_STR(telescope,config->args, "-telescope",true, false);
     926  PXOPT_LOOKUP_S64(summit_id, config->args, "-summit_id", true, false);
    921927  PXOPT_LOOKUP_STR(state,    config->args, "-set_state",true, false);
    922928
    923   if (!pzDownloadExpSetState(config,exp_name,camera,telescope,state)) {
    924     psError(PS_ERR_UNKNOWN, false, "failed to change state for %s:%s:%s", exp_name, camera, telescope);
     929  if (!pzDownloadExpSetState(config,summit_id, state)) {
     930    psError(PS_ERR_UNKNOWN, false, "failed to change state for %ld", summit_id);
    925931    return false;
    926932  }
  • trunk/ippTools/src/pztoolConfig.c

    r30437 r31038  
    6363    // -pendingexp
    6464    psMetadata *pendingexpArgs = psMetadataAlloc();
     65    psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-summit_id", 0,          "define summit_id", 0);
    6566    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_name", 0,            "define exposure ID", NULL);
    6667    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-inst", 0,            "define camera ID", NULL);
     
    7374    // -pendingimfile
    7475    psMetadata *pendingimfileArgs = psMetadataAlloc();
     76    psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-summit_id", 0,          "define summit_id", 0);
    7577    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-exp_name", 0,            "define exposure ID", NULL);
    7678    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-inst", 0,            "define camera ID", NULL);
     
    8587    // -copydone
    8688    psMetadata *copydoneArgs = psMetadataAlloc();
     89    psMetadataAddS64(copydoneArgs, PS_LIST_TAIL, "-summit_id", 0,          "define summit_id (required)", 0);
    8790    psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-exp_name", 0,            "define exposure ID (required)", NULL);
    8891    psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-inst", 0,            "define camera ID (required)", NULL);
  • trunk/ippTools/src/regtool.c

    r30927 r31038  
    311311
    312312  // required
    313   PXOPT_LOOKUP_STR(dateobs_begin,     config->args, "-dateobs_begin", true, false);
    314   PXOPT_LOOKUP_STR(dateobs_end,     config->args, "-dateobs_end", true, false);
    315   PXOPT_LOOKUP_S32(valid_burntool, config->args, "-valid_burntool", true, false);
     313  PXOPT_LOOKUP_STR(dateobs_begin,   config->args, "-dateobs_begin", true, false);
     314  PXOPT_LOOKUP_STR(dateobs_end,     config->args, "-dateobs_end",    true, false);
     315  PXOPT_LOOKUP_S32(valid_burntool,  config->args, "-valid_burntool", true, false);
    316316  // optional
    317317  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
Note: See TracChangeset for help on using the changeset viewer.