IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 31407


Ignore:
Timestamp:
Apr 28, 2011, 6:41:17 PM (15 years ago)
Author:
watersc1
Message:

Majority of ippTools/SQL work should be complete now. Need to start queueing exposures, and testing the script

Location:
branches/czw_branch/20110406
Files:
1 added
13 edited

Legend:

Unmodified
Added
Removed
  • branches/czw_branch/20110406/dbconfig/changes.txt

    r31396 r31407  
    20792079    registered TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- time run was registered
    20802080    fault SMALLINT NOT NULL,      -- fault code
    2081     quick_sass_id,                -- stackAssociation id for quick stack
    2082     final_sass_id,                -- stackAssociation id for final stack
     2081    quick_sass_id BIGINT,         -- stackAssociation id for quick stack
     2082    final_sass_id BIGINT,         -- stackAssociation id for final stack
    20832083    PRIMARY KEY(lap_id),
    20842084    KEY(seq_id),
     
    21022102    active TINYINT DEFAULT 0, -- denotes if this exposure is currently in use
    21032103    data_state VARCHAR(64) NOT NULL, -- state of exposure
    2104     PRIMARY KEY (lap_id),
     2104    PRIMARY KEY (lap_id,exp_id),
     2105    KEY (lap_id),
    21052106    KEY (exp_id),
    21062107    KEY (chip_id),
     
    21102111    FOREIGN KEY (exp_id) REFERENCES rawExp(exp_id),
    21112112    FOREIGN KEY (chip_id,exp_id) REFERENCES chipRun(chip_id,exp_id),
    2112     FOREIGN KEY (pair_id) REFERENCES chipRun(chip_id),
     2113    FOREIGN KEY (pair_id) REFERENCES chipRun(chip_id)
    21132114) ENGINE=innodb DEFAULT CHARSET=latin1;
    21142115
  • branches/czw_branch/20110406/dbconfig/ipp.m4

    r28486 r31407  
    3535include(background.md)
    3636include(diffphot.md)
     37include(lap.md)
  • branches/czw_branch/20110406/dbconfig/lap.md

    r31396 r31407  
    2222lapExp METADATA
    2323    lap_id         S64         0    # Primary Key fkey (lap_id) ref lapRun(lap_id)
    24     exp_id         S64         0    # Key fkey (exp_id) ref rawExp(exp_id)
     24    exp_id         S64         0    # Primary Key fkey (exp_id) ref rawExp(exp_id)
    2525    chip_id        S64         0    # Key fkey (exp_id, chip_id) ref chipRun(exp_id, chip_id)
    2626    pair_id        S64         0    # Key fkey (pair_id) ref chipRun(chip_id)
  • branches/czw_branch/20110406/ippTools/share/Makefile.am

    r31396 r31407  
    405405        laptool_exposures.sql \
    406406        laptool_inactiveexp.sql \
     407        laptool_listsequence.sql \
    407408        laptool_pendingchipexp.sql \
    408409        laptool_pendingexp.sql \
  • branches/czw_branch/20110406/ippTools/share/laptool_definerun.sql

    r31396 r31407  
    1 SELECT exp_id, chip_id, false as private, true as active
     1SELECT exp_id, chip_id, false as private, true as active, false as pairwise
    22  FROM rawExp
    33  LEFT JOIN
     
    66     where private IS FALSE
    77     AND data_state = 'full') AS old USING(exp_id)
     8     WHERE rawExp.exp_type= 'OBJECT' AND
     9     rawExp.dateobs >= '2009-04-01T00:00:00.000000' AND
    810-- Position restriction goes here.
  • branches/czw_branch/20110406/ippTools/share/laptool_exposures.sql

    r31396 r31407  
    44      W.*,IFNULL(diff1.diff_id,diff2.diff_id) AS diff_id FROM (
    55    SELECT DISTINCT
    6         lap_id,tess_id,projection_cell,filter,lapRun.state as lapRun_state, lapRun.registered, lapRun.fault, labRun.label,
     6        lap_id,lapRun.tess_id,projection_cell,filter,lapRun.state as lapRun_state, lapRun.registered, lapRun.fault, lapRun.label,
    77        lapExp.exp_id,lapExp.chip_id,lapExp.pair_id,private,pairwise,active,lapExp.data_state,
    88        chipRun.state as chipRun_state, sum(chipProcessedImfile.fault) as chip_faults, sum(chipProcessedImfile.quality) as chip_quality,
    9         camRun.state as camRun_state,   sum(camProcessedExp.fault) AS cam_faults, sum(camProcessedExp.quality) AS cam_quality,
    10         fakeRun.state as fakeRun_state, sum(fakeProcessedImfile.fault) as fake_faults,
    11         warpRun.state as warpRun_state, sum(warpSkyfile.fault) as warp_faults, sum(warpSkyfile.quality) as warp_quality,
     9        camRun.cam_id, camRun.state as camRun_state,   sum(camProcessedExp.fault) AS cam_faults, sum(camProcessedExp.quality) AS cam_quality,
     10        fakeRun.fake_id, fakeRun.state as fakeRun_state, sum(fakeProcessedImfile.fault) as fake_faults,
     11        warpRun.warp_id, warpRun.state as warpRun_state, sum(warpSkyfile.fault) as warp_faults, sum(warpSkyfile.quality) as warp_quality,
    1212        warpRun.magicked
    1313    FROM lapRun JOIN lapExp USING(lap_id)
    14     JOIN chipRun USING(chip_id,exp_id)
    15     FROM chipRun JOIN chipProcessedImfile USING(chip_id)
     14    LEFT JOIN chipRun USING(chip_id)
     15    LEFT JOIN chipProcessedImfile USING(chip_id)
    1616    LEFT JOIN camRun USING(chip_id) LEFT JOIN camProcessedExp USING(cam_id)
    1717    LEFT JOIN fakeRun USING(cam_id) LEFT JOIN fakeProcessedImfile USING(fake_id)
    1818    LEFT JOIN warpRun USING(fake_id) LEFT JOIN warpSkyfile USING(warp_id)
    19     @WHERE@
     19    WHERE    @WHERE@
    2020    AND warpSkyfile.quality != 8007 -- known cases where quality != 0, but everything's fine.
    2121    AND warpSkyfile.quality != 3006 -- known cases where quality != 0, but everything's fine.
    22 
     22    GROUP BY lap_id,exp_id
    2323    ) AS W
    2424-- This was unreasonably slow in testing, so that's why I'm using a subquery here.
     
    2727) AS D
    2828LEFT JOIN diffRun USING(diff_id)
    29 JOIN lapExp AS others ON (D.chip_id = lapExp.chip_id AND D.lap_id != lapExp.lap_id)
    30 GROUP BY chip_id
     29JOIN lapExp AS others ON (D.chip_id = others.chip_id AND D.lap_id != others.lap_id)
     30GROUP BY lap_id,exp_id
  • branches/czw_branch/20110406/ippTools/share/laptool_inactiveexp.sql

    r31396 r31407  
    44      W.*,IFNULL(diff1.diff_id,diff2.diff_id) AS diff_id FROM (
    55    SELECT DISTINCT
    6         lap_id,tess_id,projection_cell,filter,lapRun.state as lapRun_state, lapRun.registered, lapRun.fault, labRun.label,
     6        lapRun.lap_id, lapRun.seq_id, lapRun.tess_id, lapRun.projection_cell, lapRun.filter, lapRun.state, lapRun.label,
     7        lapRun.dist_group, lapRun.registered, lapRun.fault, lapRun.quick_sass_id, lapRun.final_sass_id,
    78        lapExp.exp_id,lapExp.chip_id,lapExp.pair_id,private,pairwise,active,lapExp.data_state,
    89        chipRun.state as chipRun_state, sum(chipProcessedImfile.fault) as chip_faults, sum(chipProcessedImfile.quality) as chip_quality,
    9         camRun.state as camRun_state,   sum(camProcessedExp.fault) AS cam_faults, sum(camProcessedExp.quality) AS cam_quality,
    10         fakeRun.state as fakeRun_state, sum(fakeProcessedImfile.fault) as fake_faults,
    11         warpRun.state as warpRun_state, sum(warpSkyfile.fault) as warp_faults, sum(warpSkyfile.quality) as warp_quality,
     10        cam_id, camRun.state as camRun_state,   sum(camProcessedExp.fault) AS cam_faults, sum(camProcessedExp.quality) AS cam_quality,
     11        fake_id, fakeRun.state as fakeRun_state, sum(fakeProcessedImfile.fault) as fake_faults,
     12        warp_id, warpRun.state as warpRun_state, sum(warpSkyfile.fault) as warp_faults, sum(warpSkyfile.quality) as warp_quality,
    1213        warpRun.magicked
    1314    FROM lapRun JOIN lapExp USING(lap_id)
    14     JOIN chipRun USING(chip_id,exp_id)
    15     FROM chipRun JOIN chipProcessedImfile USING(chip_id)
     15    LEFT JOIN chipRun USING(chip_id)
     16    LEFT JOIN chipProcessedImfile USING(chip_id)
    1617    LEFT JOIN camRun USING(chip_id) LEFT JOIN camProcessedExp USING(cam_id)
    1718    LEFT JOIN fakeRun USING(cam_id) LEFT JOIN fakeProcessedImfile USING(fake_id)
     
    1920    WHERE lapExp.active = FALSE
    2021    AND @WHERE@
     22    GROUP BY lap_id,exp_id
    2123    ) AS W
    2224-- This was unreasonably slow in testing, so that's why I'm using a subquery here.
     
    2527) AS D
    2628LEFT JOIN diffRun USING(diff_id)
    27 JOIN lapExp AS others ON (D.chip_id = lapExp.chip_id AND D.lap_id != lapExp.lap_id)
    28 GROUP BY chip_id
     29JOIN lapExp AS others ON (D.chip_id = others.chip_id AND D.lap_id != others.lap_id)
     30GROUP BY lap_id,exp_id
  • branches/czw_branch/20110406/ippTools/share/laptool_pendingexp.sql

    r31396 r31407  
    1 select lap_id, projection_cell, tess_id, registered, state, fault,
    2        exp_id, chip_id, pair_id, private, pairwise, active, data_state,
     1select lapRun.lap_id, lapRun.seq_id, lapRun.tess_id, lapRun.projection_cell, lapRun.filter, lapRun.state, lapRun.label,
     2       lapRun.dist_group, lapRun.registered, lapRun.fault, lapRun.quick_sass_id, lapRun.final_sass_id,
     3       exp_id, chip_id, pair_id, private, pairwise, active, lapExp.data_state,
    34       dateobs, object, comment
    45  FROM lapRun JOIN lapExp USING(lap_id)
    5   JOIN rawExp USING(exp_id)
    6 WHERE active IS TRUE AND fault = 0
     6  JOIN rawExp USING(exp_id,filter)
     7WHERE active IS TRUE AND lapRun.fault = 0
    78-- lap_id restriction here.
    89-- This probably needs to be sorted by dateobs.
  • branches/czw_branch/20110406/ippTools/share/laptool_stacks.sql

    r31385 r31407  
    1 SELECT lapRun.*,stacks.* FROM
     1SELECT
     2       lapRun.lap_id,lapRun.seq_id,lapRun.tess_id,lapRun.projection_cell,lapRun.filter,
     3       lapRun.state,lapRun.label,lapRun.dist_group,lapRun.registered,lapRun.fault,
     4       skycell_id,
     5       quick_sass_id,quick_data_group,quick_stack_id,quick_state,quick_fault,quick_quality,
     6       final_sass_id,final_data_group,final_stack_id,final_state,final_fault,final_quality
     7       FROM
    28       lapRun LEFT JOIN
    3        (SELECT DISTINCT * FROM (
    4 
     9       (
     10SELECT DISTINCT
     11       lap_id,tess_id,projection_cell,filter,skycell_id,
     12       quick_sass_id,quick_data_group,quick_stack_id,quick_state,quick_fault,quick_quality,
     13       final_sass_id,final_data_group,final_stack_id,final_state,final_fault,final_quality
     14       FROM
    515       (select lapRun.lap_id,
    616               stackAssociation.sass_id AS quick_sass_id,
    7                stackAssociation.data_group AS quick_data_group
     17               stackAssociation.data_group AS quick_data_group,
    818               stackAssociation.projection_cell,
    919               stackAssociation.tess_id,
    10                stackAssocaition.filter,
     20               stackAssociation.filter,
    1121               stackRun.stack_id AS quick_stack_id,
    1222               stackRun.skycell_id,
     
    1929           LEFT JOIN stackRun USING(stack_id)
    2030           LEFT JOIN stackSumSkyfile USING(stack_id)
    21            where lapRun.lap_id = @LAP_ID@
     31           WHERE 1 @WHERE@
    2232           AND sass_id = lapRun.quick_sass_id
    23        ) AS quick USING(lap_id,projection_cell,tess_id,filter) LEFT JOIN
     33       ) AS quick LEFT JOIN
    2434       (select lapRun.lap_id,
    2535               stackAssociation.sass_id AS final_sass_id,
     
    2737               stackAssociation.projection_cell,
    2838               stackAssociation.tess_id,
    29                stackAssocaition.filter,
     39               stackAssociation.filter,
    3040               stackRun.stack_id AS final_stack_id,
    3141               stackRun.skycell_id,
     
    3848           LEFT JOIN stackRun USING(stack_id)
    3949           LEFT JOIN stackSumSkyfile USING(stack_id)
    40            where lapRun.lap_id = @LAP_ID@
     50           WHERE 1 @WHERE@
    4151           AND sass_id = lapRun.final_sass_id
    4252       ) AS final USING(lap_id,projection_cell,tess_id,filter,skycell_id)
    43 
    4453       UNION
    45 
     54SELECT DISTINCT
     55       lap_id,tess_id,projection_cell,filter,skycell_id,
     56       quick_sass_id,quick_data_group,quick_stack_id,quick_state,quick_fault,quick_quality,
     57       final_sass_id,final_data_group,final_stack_id,final_state,final_fault,final_quality
     58       FROM
    4659       (select lapRun.lap_id,
    4760               stackAssociation.sass_id AS quick_sass_id,
     
    4962               stackAssociation.projection_cell,
    5063               stackAssociation.tess_id,
    51                stackAssocaition.filter,
     64               stackAssociation.filter,
    5265               stackRun.stack_id AS quick_stack_id,
    5366               stackRun.skycell_id,
     
    6073           LEFT JOIN stackRun USING(stack_id)
    6174           LEFT JOIN stackSumSkyfile USING(stack_id)
    62            where lapRun.lap_id = @LAP_ID@
     75           WHERE 1 @WHERE@
    6376           AND sass_id = lapRun.quick_sass_id
    64        ) AS quick USING(lap_id,projection_cell,tess_id,filter) RIGHT JOIN
     77       ) AS quick RIGHT JOIN
    6578       (select lapRun.lap_id,
    6679               stackAssociation.sass_id AS final_sass_id,
     
    6881               stackAssociation.projection_cell,
    6982               stackAssociation.tess_id,
    70                stackAssocaition.filter,
     83               stackAssociation.filter,
    7184               stackRun.stack_id AS final_stack_id,
    7285               stackRun.skycell_id,
     
    7992           LEFT JOIN stackRun USING(stack_id)
    8093           LEFT JOIN stackSumSkyfile USING(stack_id)
    81            where lapRun.lap_id = @LAP_ID@
     94           WHERE 1 @WHERE@
    8295           AND sass_id = lapRun.final_sass_id
    8396       ) AS final USING(lap_id,projection_cell,tess_id,filter,skycell_id)
    84  ) stacks USING(lap_id,projection_cell,tess_id,filter)
     97 ) stacks USING(lap_id,projection_cell,tess_id,filter,quick_sass_id,final_sass_id)
     98WHERE 1 @WHERE@
  • branches/czw_branch/20110406/ippTools/share/pxadmin_create_tables.sql

    r31396 r31407  
    19121912    registered TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- time run was registered
    19131913    fault SMALLINT NOT NULL,      -- fault code
    1914     quick_sass_id,                -- stackAssociation id for quick stack
    1915     final_sass_id,                -- stackAssociation id for final stack
     1914    quick_sass_id BIGINT,         -- stackAssociation id for quick stack
     1915    final_sass_id BIGINT,         -- stackAssociation id for final stack
    19161916    PRIMARY KEY(lap_id),
    19171917    KEY(seq_id),
     
    19431943    FOREIGN KEY (exp_id) REFERENCES rawExp(exp_id),
    19441944    FOREIGN KEY (chip_id,exp_id) REFERENCES chipRun(chip_id,exp_id),
    1945     FOREIGN KEY (pair_id) REFERENCES chipRun(chip_id),
     1945    FOREIGN KEY (pair_id) REFERENCES chipRun(chip_id)
    19461946) ENGINE=innodb DEFAULT CHARSET=latin1;   
    19471947
  • branches/czw_branch/20110406/ippTools/src/laptool.c

    r31397 r31407  
    121121  }
    122122
    123   if (lapSequencePrintObject(stdout, run, !simple)) {
     123  if (!lapSequencePrintObject(stdout, run, !simple)) {
    124124    psError(PS_ERR_UNKNOWN, false, "failed to print object");
    125125    psFree(run);
     
    141141  psMetadata *where = psMetadataAlloc();
    142142  PXOPT_COPY_S64(config->args, where, "-seq_id", "seq_id", "==");
    143   PXOPT_COPY_STR(config->args, where, "-name",   "name",   "LIKE");
     143  PXOPT_COPY_STR(config->args, where, "-seq_name",   "name",   "LIKE");
    144144
    145145  psString query = pxDataGet("laptool_listsequence.sql");
     
    214214  PXOPT_LOOKUP_STR(label,           config->args, "-label",           false, false);
    215215  PXOPT_LOOKUP_STR(dist_group,      config->args, "-dist_group",      false, false);
     216  PXOPT_LOOKUP_BOOL(all_obsmode,    config->args, "-all_obsmode",     false);
    216217  PXOPT_LOOKUP_BOOL(simple,         config->args, "-simple",          false);
    217218
     
    226227                                  NULL, // registered
    227228                                  0,    // fault
    228                                   0,    // quick_sass_id
    229                                   0     // final_sass_id
     229                                  INT64_MAX,    // quick_sass_id
     230                                  INT64_MAX     // final_sass_id
    230231                                  );
    231232  if (!run) {
     
    248249  }
    249250
    250   // point of no return
    251   if (!psDBCommit(config->dbh)) {
    252     psError(PS_ERR_UNKNOWN, false, "database error");
    253     return false;
    254   }
    255 
    256   if (lapRunPrintObject(stdout, run, !simple)) {
     251
     252  if (!lapRunPrintObject(stdout, run, !simple)) {
     253    if (!psDBRollback(config->dbh)) {
     254      psError(PS_ERR_UNKNOWN, false, "database error");
     255    }
    257256    psError(PS_ERR_UNKNOWN, false, "failed to print object");
    258257    psFree(run);
     
    265264  psString query = pxDataGet("laptool_definerun.sql");
    266265  if (!query) {
     266    if (!psDBRollback(config->dbh)) {
     267      psError(PS_ERR_UNKNOWN, false, "database error");
     268    }
     269
    267270    psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement");
    268271    return(false);
    269272  }
    270   psString where = NULL;
    271   if (!pxspaceAddWhere(config, &where, "rawExp")) {
     273
     274  // Add constraints to the exposure search:
     275  psMetadata *where = psMetadataAlloc();
     276  PXOPT_COPY_STR(config->args, where, "-filter", "rawExp.filter", "==");
     277
     278  // This seems unnecessarily clunky.
     279  if (!all_obsmode) {
     280    //    fprintf(stderr, "Not doing all obsmodes!\n");
     281    if (!psMetadataLookupStr(NULL,config->args,"-obsmode")) {
     282      //      fprintf(stderr, "Not doing all obsmodes and none specified!\n");
     283      psMetadataAddStr(where,PS_LIST_TAIL,"rawExp.obs_mode",0,"==","3PI");
     284    }
     285    pxAddLabelSearchArgs (config, where, "-obsmode", "rawExp.obsmode", "==");
     286  }
     287 
     288  psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     289  if (!pxspaceAddWhere(config, &whereClause, "rawExp")) {
     290    if (!psDBRollback(config->dbh)) {
     291      psError(PS_ERR_UNKNOWN, false, "database error");
     292    }
     293
    272294    psError(psErrorCodeLast(), false, "pxSpaceAddWhere failed");
    273295    return(false);
    274296  }
    275   psStringAppend(&query, " %s", where);
     297  psStringAppend(&query, " %s", whereClause);
    276298  psFree(where);
    277299
     300  // Fetch exposures
    278301  if (!p_psDBRunQuery(config->dbh, query)) {
     302    if (!psDBRollback(config->dbh)) {
     303      psError(PS_ERR_UNKNOWN, false, "database error");
     304    }
     305
    279306    psError(PS_ERR_UNKNOWN, false, "database error");
    280307    psFree(query);
     
    285312  psArray *output = p_psDBFetchResult(config->dbh);
    286313  if (!output) {
     314    if (!psDBRollback(config->dbh)) {
     315      psError(PS_ERR_UNKNOWN, false, "database error");
     316    }
     317
    287318    psError(PS_ERR_UNKNOWN, false, "database error");
    288319    return(false);
    289320  }
    290321  if (!psArrayLength(output)) {
     322    if (!psDBRollback(config->dbh)) {
     323      psError(PS_ERR_UNKNOWN, false, "database error");
     324    }
     325
    291326    psTrace("laptool", PS_LOG_INFO, "no rows found");
    292327    psFree(output);
     
    294329  }
    295330
    296 
    297331  // Insert the exposure data
    298332  for (long i = 0; i < output->n; i++) {
    299333    psMetadata *row = output->data[i]; // Row from select
     334    // Add default values from this run:
     335    psMetadataAddS64(row, PS_LIST_TAIL, "lap_id", 0, "", lap_id);
     336    psMetadataAddS64(row, PS_LIST_TAIL, "pair_id", 0, "", INT64_MAX);
     337    psMetadataAddStr(row, PS_LIST_TAIL, "data_state", 0, "", "new");
    300338    lapExpRow *lapExp = lapExpObjectFromMetadata(row);
    301339    lapExp->lap_id = lap_id;
    302340
    303341    if (!lapExpInsertObject(config->dbh,lapExp)) {
     342      if (!lapExpPrintObject(stdout, lapExp, !simple)) {
     343        if (!psDBRollback(config->dbh)) {
     344          psError(PS_ERR_UNKNOWN, false, "database error");
     345        }
     346        psError(PS_ERR_UNKNOWN, false, "failed to print object");
     347        psFree(run);
     348        return false;
     349      }
     350     
    304351      if (!psDBRollback(config->dbh)) {
    305352        psError(PS_ERR_UNKNOWN, false, "database error");
     
    312359  }
    313360
     361  // point of no return
     362  if (!psDBCommit(config->dbh)) {
     363    psError(PS_ERR_UNKNOWN, false, "database error");
     364    return false;
     365  }
     366
     367 
    314368  psFree(output);
    315369  return(true); 
     
    341395    psFree(whereClause);
    342396  }
    343   psStringAppend(&query, " ORDER BY rawExp.dateobs ");
    344397 
    345398  if (!p_psDBRunQuery(config->dbh, query)) {
     
    452505    psFree(limitString);
    453506  }
     507  psStringAppend(&query, " ORDER BY rawExp.dateobs ");
     508 
    454509  if (!p_psDBRunQuery(config->dbh, query)) {
    455510    psError(PS_ERR_UNKNOWN, false, "database error");
     
    554609{
    555610  PS_ASSERT_PTR_NON_NULL(config, false);
     611  PXOPT_LOOKUP_S64(lap_id, config->args, "-lap_id", true, false);
     612
    556613  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    557614  PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    558  
     615
    559616  psMetadata *where = psMetadataAlloc();
    560617  PXOPT_COPY_S64(config->args, where, "-lap_id", "lap_id", "==");
     
    565622    return(false);
    566623  }
    567   psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    568   if (whereClause) {
     624 
     625  if (psListLength(where->list)) {
     626    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    569627    psStringPrepend(&whereClause, "\n AND ");
    570   }
    571  
    572   psString limitString = NULL;
     628    psStringSubstitute(&query,whereClause,"@WHERE@");
     629    psFree(whereClause);
     630  }
     631
    573632  if (limit) {
    574     limitString = psDBGenerateLimitSQL(limit);
    575     psStringPrepend(&limitString, "\n");
    576   }
    577 
    578   if (!p_psDBRunQueryF(config->dbh, query, whereClause, limitString ? limitString : "")) {
    579     psError(PXTOOLS_ERR_PROG, false, "database error");
     633    psString limitString = psDBGenerateLimitSQL(limit);
     634    psStringAppend(&query, " %s", limitString);
    580635    psFree(limitString);
     636  }
     637
     638
     639  if (!p_psDBRunQuery(config->dbh, query)) {
     640    psError(PS_ERR_UNKNOWN, false, "database error");
    581641    psFree(query);
    582     psFree(whereClause);
    583     return(false);
    584   }
    585   psFree(limitString);
     642    return false;
     643  }
    586644  psFree(query);
    587   psFree(whereClause);
    588  
     645
    589646  psArray *output = p_psDBFetchResult(config->dbh);
    590647  if (!output) {
    591     psError(PS_ERR_UNKNOWN, false, "database error");
    592     return(false);
     648    psErrorCode err = psErrorCodeLast();
     649    switch (err) {
     650    case PS_ERR_DB_CLIENT:
     651      psError(PXTOOLS_ERR_SYS, false, "database error");
     652    case PS_ERR_DB_SERVER:
     653      psError(PXTOOLS_ERR_PROG, false, "database error");
     654    default:
     655      psError(PXTOOLS_ERR_PROG, false, "unknown error %d",err);
     656    }
     657
     658    return false;
    593659  }
    594660  if (!psArrayLength(output)) {
    595661    psTrace("laptool", PS_LOG_INFO, "no rows found");
    596662    psFree(output);
    597     return(true);
    598   }
    599  
    600   if (!ippdbPrintMetadatas(stdout, output, "lapRunStacks", !simple)) {
    601     psError(PS_ERR_UNKNOWN, false, "failed to print array");
    602     psFree(output);
    603     return(false);
     663    return true;
     664  }
     665
     666  if (psArrayLength(output)) {
     667    if (!ippdbPrintMetadatas(stdout, output, "lapRunStacks", !simple)) {
     668      psError(PS_ERR_UNKNOWN, false, "failed to print array");
     669      psFree(output);
     670      return false;
     671    }
    604672  }
    605673
  • branches/czw_branch/20110406/ippTools/src/laptool.h

    r31396 r31407  
    99
    1010typedef enum {
    11   LAPTOOL_MODE_DEFINESEQUENCE     = 0x0,
     11  LAPTOOL_MODE_NONE           = 0x0,
     12  LAPTOOL_MODE_DEFINESEQUENCE,
    1213  LAPTOOL_MODE_LISTSEQUENCE,
    1314  LAPTOOL_MODE_DEFINERUN,
  • branches/czw_branch/20110406/ippTools/src/laptoolConfig.c

    r31397 r31407  
    5757  ADD_OPT(Str, definerunArgs, "-label",                       "define the label used", NULL);
    5858  ADD_OPT(Str, definerunArgs, "-dist_group",                  "define the distribution group for this data", NULL);
     59
     60  psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-obsmode", PS_META_DUPLICATE_OK, "search by obsmode", NULL);
     61  ADD_OPT(Bool,definerunArgs, "-all_obsmode",                 "use all science obsmodes", false);
     62 
     63  ADD_OPT(Bool,definerunArgs, "-simple",                      "use the simple output format", false);
    5964 
    6065  // -pendingrun
     
    6772  ADD_OPT(Str, pendingrunArgs, "-state",                      "search by LAP run state", NULL);
    6873  ADD_OPT(Str, pendingrunArgs, "-fault",                      "search by LAP run fault", NULL);
    69 
     74  ADD_OPT(Bool,pendingrunArgs, "-simple",                     "use the simple output format", false);
    7075  // -updaterun
    7176  psMetadata *updaterunArgs = psMetadataAlloc();
Note: See TracChangeset for help on using the changeset viewer.