IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 28181 for trunk


Ignore:
Timestamp:
Jun 1, 2010, 3:09:47 PM (16 years ago)
Author:
Paul Price
Message:

Merging branches/haf_branches/ipp.20100512/ into trunk: addtool development to ingest sources into separate dvo catalogues and dvodb merging. (Committed by PAP for HAF)

Location:
trunk
Files:
18 edited
12 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/dbconfig/add.md

    r25835 r28181  
    1212    note            STR     255
    1313    image_only      BOOL    f
     14    minidvodb       BOOL    f
     15    minidvodb_group STR     64
     16    minidvodb_name  STR     64
    1417END
    1518
     
    1821    dtime_addstar   F32     0.0
    1922    path_base       STR     255
     23    dvodb_path      STR     255
    2024    fault           S16     0       # Key NOT NULL
    2125END
     
    2428    label           STR    64       # Primary Key
    2529END
    26    
     30
     31
     32
  • trunk/dbconfig/ipp.m4

    r28090 r28181  
    2424include(label.md)
    2525include(magic.md)
     26include(minidvodb.md)
    2627include(calibration.md)
    2728include(flatcorr.md)
  • trunk/ippScripts/Build.PL

    r28092 r28181  
    6262        scripts/magic_destreak_cleanup.pl
    6363        scripts/magic_destreak_defineruns.pl
     64        scripts/minidvodb_createdb.pl
     65        scripts/minidvodb_load.pl
    6466        scripts/ippdb.pl
    6567        scripts/ipp_cleanup.pl
  • trunk/ippScripts/scripts/addstar_run.pl

    r27718 r28181  
    3737}
    3838
    39 my ( $exp_tag, $add_id, $camera, $outroot, $camroot, $dbname, $reduction, $dvodb, $image_only, $verbose, $no_update,
     39my ( $exp_tag, $add_id, $camera, $outroot, $camroot, $dbname, $reduction, $dvodb, $minidvodb, $minidvodb_name, $minidvodb_group, $image_only, $verbose, $no_update,
    4040     $no_op, $redirect, $save_temps);
    4141GetOptions(
     
    4848    'reduction=s'       => \$reduction, # Reduction class
    4949    'dvodb|w=s'         => \$dvodb,  # output DVO database
     50    'minidvodb'         => \$minidvodb,  # use minidvodb?
     51    'minidvodb_name|w=s'=> \$minidvodb_name,  # miniDVO database name
     52    'minidvodb_group|w=s' => \$minidvodb_group, # miniDVO database group
    5053    'image-only'        => \$image_only,   # Print to stdout
    5154    'verbose'           => \$verbose,   # Print to stdout
     
    5861pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    5962pod2usage(
    60           -msg => "Required options: --exp_tag --add_id --camera --outroot",
     63          -msg => "Required options: --exp_tag --add_id --camera --outroot --dvodb --camroot",
    6164          -exitval => 3,
    6265          ) unless
     
    6568    defined $outroot and
    6669    defined $camroot and
     70    defined $dvodb and
    6771    defined $camera;
    68 
     72if ($minidvodb && !defined($minidvodb_group)) {
     73                my_die( "missing minidvodb_group", $add_id, 3 );
     74            }
    6975my $ipprc = PS::IPP::Config->new( $camera ) or my_die( "Unable to set up", $add_id, $PS_EXIT_CONFIG_ERROR ); # IPP configuration
    7076
     
    103109my $dtime_addstar = 0;
    104110
     111if (defined $dvodbReal) {
     112        if ($minidvodb) {
     113           
     114            if (!defined($minidvodb_name)) {
     115                #take the active one, if it's not defined on the command line
     116                #reverts would have this already set, for example.
     117                my $command = "addtool -listminidvodbrun ";
     118                $command .= " -minidvodb_group $minidvodb_group" if defined $minidvodb_group;
     119                $command .= " -state 'active' -limit 1";
     120                $command .= " -dbname $dbname" if defined $dbname;
     121                print $command;
     122                my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     123                    run(command => $command, verbose => $verbose);
     124                &my_die( "Unable to get active minidvodb_name", $add_id, $PS_EXIT_SYS_ERROR) unless $success;
     125                my $metadata = $mdcParser->parse(join "", @$stdout_buf) or
     126                    &my_die("Unable to parse metadata config", $add_id, $PS_EXIT_PROG_ERROR);
     127
     128                my $components = parse_md_list($metadata) or
     129                    &my_die("Unable to parse metadata list", $add_id, $PS_EXIT_PROG_ERROR);
     130                my $comp = $$components[0];
     131                $minidvodb_name = $comp->{minidvodb_name};
     132       
     133                if (!defined($minidvodb_name)) {
     134                    &my_die("Unable to parse minidvodb_name", $add_id, $PS_EXIT_PROG_ERROR);
     135                }
     136               
     137            }
     138            # tack on the minidvodb part to the db.
     139            $dvodbReal = $dvodbReal . '/' . $minidvodb_name . '/';
     140           
     141        }
    105142unless ($no_op) {
    106     if (defined $dvodbReal) {
     143            print $dvodbReal;
    107144
    108145        ## addstar can either save the full set of detections, or just
     
    142179$fpaCommand .= " -path_base $outroot";
    143180$fpaCommand .= " -dtime_addstar $dtime_addstar";
     181$fpaCommand .= " -dvodb_path $dvodbReal";
    144182$fpaCommand .= " -dbname $dbname" if defined $dbname;
    145 
     183print $fpaCommand;
    146184# Add the result into the database
    147185unless ($no_update) {
     
    171209        $command .= " -addprocessedexp";
    172210        $command .= " -fault $exit_code";
     211        $command .= " -dvodb_path $dvodbReal" if defined $dvodbReal;
    173212        $command .= " -path_base $outroot" if defined $outroot;
    174213        $command .= (" -dtime_addstar " . ((DateTime->now->mjd - $mjd_start) * 86400));
  • trunk/ippScripts/scripts/minidvodb_merge.pl

    r28180 r28181  
    8787unless ($no_op) {
    8888    if (defined $mergedvodbReal) {
    89         {
     89        {
    9090            my $command  = "$addstar -resort";
    9191            $command .= " -D CAMERA $camera";
     
    101101            }
    102102            $dtime_addstar = 86400.0*(DateTime->now->mjd - $mjd_addstar_start);  $dtime_resort = $dtime_addstar;
    103             # MJD of starting script
     103            # MJD of starting script
    104104            print "addstar -resort time $dtime_addstar\n";
    105105        }
     
    123123            print "relphot time $dtime_relphot\n";
    124124        }
    125        
    126         {
    127 
    128             my $mdcParser = PS::IPP::Metadata::Config->new;
    129            
    130 
    131             my $command = "$addtool -listminidvodbrun -state mergedsdfsad -minidvodb_group " . $minidvodb_group;
    132             $command .= " -dbname $dbname" if defined $dbname;
    133 
    134            
    135 
    136             my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     125
     126        my $this_is_the_first;
     127        {
     128
     129            my $mdcParser = PS::IPP::Metadata::Config->new;
     130
     131            my $command = "$addtool -listminidvodbrun -state mergedsdfsad -minidvodb_group " . $minidvodb_group;
     132            $command .= " -dbname $dbname" if defined $dbname;
     133
     134            my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    137135                    run(command => $command, verbose => $verbose);
    138             &my_die( "Unable to get list of minidvodbruns", $minidvodb_id, $PS_EXIT_SYS_ERROR) unless $success;
    139             my $this_is_the_first;
    140             if (scalar @$stdout_buf == 0 ) { #it lists nothing if it is the first
    141                 $this_is_the_first =1;
    142             } else {
    143                  my $metadata = $mdcParser->parse(join "", @$stdout_buf) or
     136            &my_die( "Unable to get list of minidvodbruns", $minidvodb_id, $PS_EXIT_SYS_ERROR) unless $success;
     137            if (scalar @$stdout_buf == 0 ) { #it lists nothing if it is the first
     138                $this_is_the_first =1;
     139            } else {
     140                my $metadata = $mdcParser->parse(join "", @$stdout_buf) or
    144141                    &my_die("Unable to parse metadata config", $minidvodb_id, $PS_EXIT_PROG_ERROR);
    145                 #this fails if there is nothing listed. I checked.
     142                #this fails if there is nothing listed. I checked.
    146143                my $components = parse_md_list($metadata) or
    147144                    &my_die("Unable to parse metadata list", $minidvodb_id, $PS_EXIT_PROG_ERROR);
    148145                my $comp = $$components[0];
    149            my  $minidvodb_name = $comp->{minidvodb_name};
    150        
     146                my  $minidvodb_name = $comp->{minidvodb_name};
     147
    151148                if (!defined($minidvodb_name)) {
    152149                    &my_die("Unable to parse minidvodb_name", $minidvodb_id, $PS_EXIT_PROG_ERROR);
    153150                } #but just to make sure, have it grab a minidvodb_name, to make sure it's not junk.
    154                  $this_is_the_first = 0;
    155             }
    156 
    157             my $merge_command;
    158             if ($this_is_the_first) {
    159                
    160                 $merge_command = "cp -rp $minidvodb $mergedvodb"
    161 
    162             } else {
    163 
    164                 $merge_command = "$dvomerge $minidvodb into $mergedvodb"
    165             }
    166 
    167 
    168 
    169             system ($merge_command);
    170 
    171             my ( $success2, $error_code2, $full_buf2, $stdout_buf2, $stderr_buf2 ) =
    172                 run(command => $merge_command, verbose => $verbose);
    173         unless ($success2) {
    174             $error_code2 = (($error_code2 >> 8) or $PS_EXIT_PROG_ERROR);
    175             &my_die("Unable to merge: $error_code", $mergedvodb, $error_code2);
    176         }
    177 
    178                    
    179             $dtime_merge = 86400.0*(DateTime->now->mjd - $mjd_relphot_start);   # MJD of starting script
     151                $this_is_the_first = 0;
     152            }
     153        }
     154
     155        {
     156            my $merge_command;
     157            if ($this_is_the_first) {
     158                $merge_command = "cp -rp $minidvodb $mergedvodb"
     159            } else {
     160                $merge_command = "$dvomerge $minidvodb into $mergedvodb"
     161            }
     162
     163            my $mjd_merge_start = DateTime->now->mjd;   # MJD of starting script
     164
     165            my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     166                run(command => $merge_command, verbose => $verbose);
     167            unless ($success) {
     168                $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     169                &my_die("Unable to merge: $error_code", $mergedvodb, $error_code);
     170            }
     171
     172            $dtime_merge = 86400.0*(DateTime->now->mjd - $mjd_merge_start);   # MJD of starting script
    180173            print "merge time $dtime_merge\n";
    181            
    182         }
    183        
    184 
    185         {
    186         my $command = "addtool -minidvodb_id $minidvodb_id";
    187         $command .= " -addminidvodbprocessed";
    188         $command .= " -mergedvodb_path $mergedvodbReal" if defined $mergedvodbReal;
    189         $command .= " -minidvodb_group $minidvodb_group";
    190         $command .= " -dtime_relphot $dtime_relphot"  if defined $dtime_relphot;
    191         $command .= " -dtime_relphot $dtime_resort" if defined $dtime_resort;
    192         $command .= " -dtime_relphot $dtime_merge" if defined $dtime_merge;
    193         $command .= " -dbname $dbname" if defined $dbname;
    194     #print $command;
    195         system ($command);
    196 
    197         my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    198             run(command => $command, verbose => $verbose);
    199         unless ($success) {
    200             $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
    201             &my_die("Unable to add to minidvodbprocessed: $error_code", $mergedvodb, $error_code);
    202         }
    203 
    204         }
     174        }
     175
     176
     177        {
     178            my $command = "addtool -minidvodb_id $minidvodb_id";
     179            $command .= " -addminidvodbprocessed";
     180            $command .= " -mergedvodb_path $mergedvodbReal" if defined $mergedvodbReal;
     181            $command .= " -minidvodb_group $minidvodb_group";
     182            $command .= " -dtime_relphot $dtime_relphot"  if defined $dtime_relphot;
     183            $command .= " -dtime_relphot $dtime_resort" if defined $dtime_resort;
     184            $command .= " -dtime_relphot $dtime_merge" if defined $dtime_merge;
     185            $command .= " -dbname $dbname" if defined $dbname;
     186            #print $command;
     187
     188            my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     189                run(command => $command, verbose => $verbose);
     190            unless ($success) {
     191                $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     192                &my_die("Unable to add to minidvodbprocessed: $error_code", $mergedvodb, $error_code);
     193            }
     194        }
    205195
    206196    } else {
     
    217207{
    218208    my $msg = shift; # Warning message on die
    219     my $minidbvodb_id = shift; 
     209    my $minidbvodb_id = shift;
    220210    my $exit_code = shift; # Exit code to add
    221211
     
    223213
    224214if (defined $minidvodb_id ) {
    225    
     215
    226216    my $command = "addtool -minidvodb_id $minidvodb_id";
    227217    $command .= " -addminidvodbprocessed";
    228218        $command .= " -fault $exit_code";
    229         $command .= " -mergedvodb_path $mergedvodbReal" if defined $mergedvodbReal;
    230         $command .= " -minidvodb_group $minidvodb_group";
     219        $command .= " -mergedvodb_path $mergedvodbReal" if defined $mergedvodbReal;
     220        $command .= " -minidvodb_group $minidvodb_group";
    231221        $command .= " -dtime_relphot $dtime_relphot" if defined $dtime_relphot;
    232222        $command .= " -dtime_relphot $dtime_resort" if defined $dtime_resort;
    233223        $command .= " -dtime_relphot $dtime_merge" if defined $dtime_merge;
    234224        $command .= " -dbname $dbname" if defined $dbname;
    235    
    236    
     225
     226
    237227
    238228    #print $command;
  • trunk/ippTasks/Makefile.am

    r28154 r28181  
    3232        dqstats.pro \
    3333        science.cleanup.pro \
     34        minidvodb.pro \
    3435        nightly_stacks.pro \
    3536        lossy_compress.pro
  • trunk/ippTasks/addstar.pro

    r27280 r28181  
    4545end
    4646
     47
    4748# this variable will cycle through the known database names
    4849$addstar_DB = 0
    4950$addstar_revert_DB = 0
     51
    5052
    5153# select images ready for addstar analysis
     
    6466
    6567  task.exec
    66     if ($LABEL:n == 0) break
     68   # if ($LABEL:n == 0) break
    6769    $run = addtool -pendingexp
    6870    if ($DB:n == 0)
     
    134136    book getword addPendingExp $pageName reduction -var REDUCTION
    135137    book getword addPendingExp $pageName dvodb  -var DVODB
     138    book getword addPendingExp $pageName minidvodb  -var MINIDVODB
     139    book getword addPendingExp $pageName minidvodb_name  -var MINIDVODB_NAME
     140    book getword addPendingExp $pageName minidvodb_group  -var MINIDVODB_GROUP
    136141    book getword addPendingExp $pageName image_only -var IMAGE_ONLY
    137142    book getword addPendingExp $pageName dbname -var DBNAME
     
    164169      $run = $run --image-only
    165170    end
     171    if ("$MINIDVODB" == "T")
     172    $run = $run --minidvodb
     173    $run = $run --minidvodb_group
     174        if (("$MINIDVODB_NAME" != "NULL") && ("$MINIDVODB_NAME" != "(null)"))
     175           $run = $run --minidvodb_name  #have addstar_run.pl grab the 'active' name if it is NULL
     176        end
     177    end
    166178   
    167179    add_standard_args run
  • trunk/ippTasks/survey.pro

    r27294 r28181  
    207207
    208208macro survey.add.addstar
    209   if ($0 != 3)
    210     echo "USAGE: survey.add.addstar (label) (dvodb)"
     209  if ($0 != 4)
     210    echo "USAGE: survey.add.addstar (label) (dvodb) (minidvodb_group)"
    211211    break
    212212  end
    213213  book newpage SURVEY_ADDSTAR $1
    214214  book setword SURVEY_ADDSTAR $1 DVODB $2
     215  book setword SURVEY_ADDSTAR $1 MINIDVODB_GROUP $3
    215216  book setword SURVEY_ADDSTAR $1 STATE PENDING
    216217end
     
    638639    book setword SURVEY_ADDSTAR $label STATE DONE
    639640    book getword SURVEY_ADDSTAR $label DVODB -var dvodb
     641    book getword SURVEY_ADDSTAR $label MINIDVODB_GROUP -var minidvodb_group
    640642 
    641643 #   $run = addtool -definebyquery -destreaked -label $label -set_dvodb $dbodb
     
    648650    end
    649651   
    650     $run = $run -definebyquery -destreaked -label $label -set_dvodb $dvodb
     652    $run = $run -definebyquery -destreaked -label $label -set_dvodb $dvodb -set_minidvodb_group $minidvodb_group
    651653    echo $run
    652654    command $run
  • trunk/ippTools/share/Makefile.am

    r28154 r28181  
    44
    55dist_pkgdata_DATA = \
     6     addtool_checkminidvodbaddrun.sql \
    67     addtool_donecleanup.sql \
    78     addtool_find_cam_id.sql \
    89     addtool_find_pendingexp.sql \
     10     addtool_find_pendingmergeprocess.sql \
    911     addtool_find_processedexp.sql \
     12     addtool_find_minidvodbprocessed.sql \
     13     addtool_find_minidvodbrun.sql \
    1014     addtool_pendingcleanupexp.sql \
    1115     addtool_pendingcleanuprun.sql \
    1216     addtool_queue_cam_id.sql \
     17     addtool_queue_minidvodbrun.sql \
     18     addtool_reset_faulted_minidvodbruns.sql \
    1319     addtool_reset_faulted_runs.sql \
     20     addtool_revertminidvodbprocessed.sql \
    1421     addtool_revertprocessedexp.sql \
    1522     camtool_donecleanup.sql \
  • trunk/ippTools/share/addtool_find_processedexp.sql

    r25789 r28181  
    22    addProcessedExp.*,
    33    addRun.workdir
    4 FROM addRun
    5 JOIN camProcessedExp
     4FROM addProcessedExp
     5JOIN addRun
     6    USING(add_id)
     7JOIN camRun
    68    USING(cam_id)
    79JOIN chipRun
  • trunk/ippTools/share/addtool_queue_cam_id.sql

    r25835 r28181  
    1111        '%s',           -- dvodb
    1212        '%s',           -- note
    13         %d              -- image_only
     13        %d,             -- image_only
     14        %d,             -- minidvodb
     15        '%s',           -- minidvodb_group
     16        '%s'            -- minidvodb_name
    1417    FROM camRun
    1518    WHERE
  • trunk/ippTools/src/addtool.c

    r27773 r28181  
    4040static bool maskedMode(pxConfig *config);
    4141static bool unblockMode(pxConfig *config);
     42static bool addminidvodbrunMode(pxConfig *config);
     43static bool updateminidvodbrunMode(pxConfig *config);
     44static bool listminidvodbrunMode(pxConfig *config);
     45static bool flipminidvodbrunMode(pxConfig *config);
     46static bool checkminidvodbrunaddrunMode(pxConfig *config);
     47static bool addminidvodbprocessedMode(pxConfig *config);
     48static bool listminidvodbprocessedMode(pxConfig *config);
     49static bool revertminidvodbprocessedMode(pxConfig *config);
     50static bool updateminidvodbprocessedMode(pxConfig *config);
     51
     52
    4253
    4354# define MODECASE(caseName, func) \
     
    6980        MODECASE(ADDTOOL_MODE_MASKED,               maskedMode);
    7081        MODECASE(ADDTOOL_MODE_UNBLOCK,              unblockMode);
     82        MODECASE(ADDTOOL_MODE_ADDMINIDVODBRUN,      addminidvodbrunMode);
     83        MODECASE(ADDTOOL_MODE_UPDATEMINIDVODBRUN,   updateminidvodbrunMode);
     84        MODECASE(ADDTOOL_MODE_LISTMINIDVODBRUN,     listminidvodbrunMode);
     85        MODECASE(ADDTOOL_MODE_FLIPMINIDVODBRUN,     flipminidvodbrunMode);
     86        MODECASE(ADDTOOL_MODE_CHECKMINIDVODBRUNADDRUN, checkminidvodbrunaddrunMode);
     87        MODECASE(ADDTOOL_MODE_ADDMINIDVODBPROCESSED,addminidvodbprocessedMode);
     88        MODECASE(ADDTOOL_MODE_LISTMINIDVODBPROCESSED,listminidvodbprocessedMode);
     89        MODECASE(ADDTOOL_MODE_REVERTMINIDVODBPROCESSED,revertminidvodbprocessedMode);
     90        MODECASE(ADDTOOL_MODE_UPDATEMINIDVODBPROCESSED,updateminidvodbprocessedMode);
     91
    7192        default:
    7293            psAbort("invalid option (this should not happen)");
     
    102123    PXOPT_COPY_STR(config->args, where,  "-reduction", "camRun.reduction", "==");
    103124
     125
    104126    if (!psListLength(where->list)) {
    105127        psFree(where);
     
    114136    PXOPT_LOOKUP_STR(reduction,   config->args, "-set_reduction", false, false);
    115137    PXOPT_LOOKUP_STR(note,        config->args, "-set_note", false, false);
     138    PXOPT_LOOKUP_STR(minidvodb_name,        config->args, "-set_minidvodb_name", false, false);
     139    PXOPT_LOOKUP_STR(minidvodb_group,        config->args, "-set_minidvodb_group", false, false);
    116140    PXOPT_LOOKUP_BOOL(image_only, config->args, "-image_only", false);
     141    PXOPT_LOOKUP_BOOL(minidvodb,  config->args, "-set_minidvodb", false);
    117142    PXOPT_LOOKUP_BOOL(destreaked, config->args, "-destreaked", false);
    118143    PXOPT_LOOKUP_BOOL(pretend,    config->args, "-pretend", false);
    119144    PXOPT_LOOKUP_BOOL(simple,     config->args, "-simple", false);
     145
     146
    120147
    121148    // find the cam_id of all the exposures that we want to queue up.
     
    245272                               dvodb       ? dvodb     : row->dvodb,
    246273                               note        ? note      : NULL,
    247                                image_only
     274                               image_only,
     275                               minidvodb,
     276                               minidvodb_group,
     277                               minidvodb_name
    248278        )) {
    249279            if (!psDBRollback(config->dbh)) {
    250                 psError(PS_ERR_UNKNOWN, false, "database error");
     280                psError(PS_ERR_UNKNOWN, false, "database error sfg");
    251281            }
    252282            psError(PS_ERR_UNKNOWN, false,
     
    291321
    292322    // pxUpdateRun gets parameters from config->args and runs the update query
    293     bool result = pxUpdateRun(config, where, &query, "addRun", "add_id", 
     323    bool result = pxUpdateRun(config, where, &query, "addRun", "add_id",
    294324        "addProcessedExp", false);
    295325
     
    374404    PXOPT_LOOKUP_STR(path_base,     config->args, "-path_base", false, false);
    375405    PXOPT_LOOKUP_F32(dtime_addstar, config->args, "-dtime_addstar", false, false);
     406    PXOPT_LOOKUP_STR(dvodb_path, config->args, "-dvodb_path", false, false);
    376407    PXOPT_LOOKUP_S16(fault,         config->args, "-fault", false, false);
    377408
     
    399430        return false;
    400431    }
     432    //psError(PS_ERR_UNKNOWN, false, "database error %s", query);
    401433    psFree(query);
    402434
     
    424456        dtime_addstar,
    425457        path_base,
     458        dvodb_path,
    426459        fault
    427460        );
     
    522555
    523556    if (!p_psDBRunQuery(config->dbh, query)) {
    524         psError(PS_ERR_UNKNOWN, false, "database error");
     557      psError(PS_ERR_UNKNOWN, false, "database error %s ", query);
    525558        psFree(query);
    526559        return false;
     
    733766    return true;
    734767}
     768
     769static bool addminidvodbrunMode(pxConfig *config)
     770{
     771  PS_ASSERT_PTR_NON_NULL(config, NULL);
     772
     773  // required
     774
     775  PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-set_minidvodb_group", true, false);
     776  PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-set_mergedvodb_path", true, false);
     777
     778  //optional
     779  PXOPT_LOOKUP_STR(minidvodb_name, config->args, "-set_minidvodb_name", false, false);
     780  PXOPT_LOOKUP_STR(minidvodb_path, config->args, "-set_minidvodb_path", false, false);
     781  PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
     782
     783  if (!psDBTransaction(config->dbh)) {
     784    psError(PS_ERR_UNKNOWN, false, "database error");
     785    return false;
     786  }
     787
     788  psString minidvodbpath = "NULL";
     789
     790  // I don't know how to get around the complaints of minidvodb_path can't be null. this 'fixes' it, but someone smarter can fix it properly.
     791  if (minidvodb_path) {
     792    minidvodbpath = minidvodb_path;
     793  }
     794
     795  if (!minidvodbRunInsert(config->dbh,
     796            0, // job_id
     797            minidvodb_name,
     798            minidvodb_group,
     799            minidvodbpath,
     800            mergedvodb_path,
     801            "new",
     802            0
     803            )) {
     804    psError(PS_ERR_UNKNOWN, false, "database error");
     805    return false;
     806  }
     807
     808  psU64 affected = psDBAffectedRows(config->dbh);
     809  if (affected != 1) {
     810    psError(PS_ERR_UNKNOWN, false,
     811            "should have affected one row but %" PRIu64 " rows were modified",
     812            affected);
     813    return false;
     814  }
     815
     816  psS64 minidvodb_id = psDBLastInsertID(config->dbh);
     817  printf("%" PRId64 "\n", minidvodb_id);
     818
     819
     820  if (!minidvodb_name) {
     821    psStringAppend(&minidvodb_name, "%s.%" PRIu64,minidvodb_group,minidvodb_id);
     822  }
     823
     824  if (!minidvodb_path) {
     825    psStringAppend(&minidvodb_path,"%s/%s",mergedvodb_path,minidvodb_name);
     826  }
     827
     828  psString query = NULL;
     829
     830  psStringAppend(&query, "UPDATE minidvodbRun SET minidvodb_path = '%s', minidvodb_name = '%s' where minidvodb_id = %" PRIu64";", minidvodb_path, minidvodb_name, minidvodb_id);
     831
     832  if (!p_psDBRunQuery(config->dbh, query)) {
     833    psError(PS_ERR_UNKNOWN, false, "database error");
     834    psFree(query);
     835    return false;
     836  }
     837
     838  if (!psDBCommit(config->dbh)) {
     839    psError(PS_ERR_UNKNOWN, false, "database error");
     840    return false;
     841  }
     842
     843  return true;
     844}
     845
     846static bool updateminidvodbrunMode(pxConfig *config) {
     847  PS_ASSERT_PTR_NON_NULL(config, false);
     848
     849    psMetadata *where = psMetadataAlloc();
     850    PXOPT_COPY_S64(config->args, where, "-minidvodb_id",     "minidvodb_id", "==");
     851    PXOPT_COPY_STR(config->args, where, "-minidvodb_name",     "minidvodb_name", "==");
     852    PXOPT_COPY_STR(config->args, where, "-state",     "state", "==");
     853    PXOPT_COPY_STR(config->args, where, "-minidvodb_path", "minidvodb_path", "==");
     854    PXOPT_COPY_STR(config->args, where, "-mergedvodb_path", "mergedvodb_path", "==");
     855    PXOPT_COPY_STR(config->args, where, "-minidvodb_group",     "minidvodb_group", "==");
     856
     857    PXOPT_LOOKUP_STR(minidvodb_name,  config->args, "-set_minidvodb_name", false, false);
     858    PXOPT_LOOKUP_STR(minidvodb_path,  config->args, "-set_minidvodb_path", false, false);
     859    PXOPT_LOOKUP_STR(state,  config->args, "-set_state", false, false);
     860    PXOPT_LOOKUP_STR(mergedvodb_path,  config->args, "-set_mergedvodb_path", false, false);
     861    PXOPT_LOOKUP_STR(minidvodb_group,  config->args, "-set_minidvodb_group", false, false);
     862
     863
     864    if (!psListLength(where->list)) {
     865      psFree(where);
     866      psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     867      return false;
     868    }
     869
     870    psString query = psStringCopy("UPDATE minidvodbRun SET ");
     871    int cnt = 0;
     872    psString comma = ",";
     873    if (minidvodb_name) {
     874      psStringAppend(&query, " minidvodb_name = '%s'", minidvodb_name);
     875      cnt++;
     876    }
     877
     878    if (minidvodb_path) {
     879      if (cnt) {
     880          psStringAppend(&query, "%s", comma);
     881      }
     882
     883      psStringAppend(&query, " minidvodb_path = '%s'", minidvodb_path);
     884      cnt++;
     885    }
     886
     887    if (state) {
     888      if (cnt) {
     889        psStringAppend(&query, "%s", comma);
     890      }
     891      psStringAppend(&query, " state = '%s'", state);
     892      cnt++;
     893    }
     894
     895    if (mergedvodb_path) {
     896      if (cnt) {
     897        psStringAppend(&query, "%s", comma);
     898      }
     899      psStringAppend(&query, " mergedvodb_path = '%s'", mergedvodb_path);
     900      cnt++;
     901    }
     902
     903    if (minidvodb_group) {
     904      if (cnt) {
     905        psStringAppend(&query, "%s", comma);
     906      }
     907      psStringAppend(&query, " minidvodb_group = '%s'", minidvodb_group);
     908      cnt++;
     909    }
     910
     911    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     912    psStringAppend(&query, " WHERE %s", whereClause);
     913
     914    if (!p_psDBRunQuery(config->dbh, query)) {
     915      psError(PS_ERR_UNKNOWN, false, "database error");
     916      psFree(query);
     917      return false;
     918    }
     919
     920    psFree(query);
     921    psFree(where);
     922
     923    return true;
     924
     925}
     926
     927static bool flipminidvodbrunMode(pxConfig *config) {
     928  PS_ASSERT_PTR_NON_NULL(config, false);
     929
     930  psMetadata *where = psMetadataAlloc();
     931  PXOPT_LOOKUP_STR(minidvodb_group,  config->args, "-minidvodb_group",true, false);
     932  PXOPT_COPY_STR(config->args, where, "-minidvodb_group",     "minidvodb_group", "==");
     933
     934//this flips the new - > active
     935// and the active - > waiting in one action
     936
     937
     938// the first query looks to find things that are new and where all the fields are filled (ie, ready to be flipped to active)
     939
     940// start a transaction eraly so it will contain any row level locks
     941  if (!psDBTransaction(config->dbh)) {
     942    psError(PS_ERR_UNKNOWN, false, "database error");
     943    return false;
     944  }
     945
     946  psString firstquery = psStringCopy("SELECT * from  minidvodbRun where state = 'new' and minidvodb_name is NOT NULL and minidvodb_group IS NOT NULL and minidvodb_path IS NOT NULL and mergedvodb_path IS NOT NULL");
     947
     948  psString firstwhereClause = psDBGenerateWhereConditionSQL(where, NULL);
     949  psStringAppend(&firstquery, " AND %s", firstwhereClause);
     950
     951
     952
     953  if (!p_psDBRunQuery(config->dbh, firstquery)) {
     954    psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     955    if (!psDBRollback(config->dbh)) {
     956      psError(PS_ERR_UNKNOWN, false, "database error");
     957    }
     958    return false;
     959  }
     960  psFree(firstquery);
     961
     962 //we don't care what the stuff is that is found, just that there is stuff. This is a check to see that there is something in the 'new' state, before flipping (so that if there is nothing in new, it won't flip the active to waiting.  the flipminidvo is just to make it easy to flip from new -> active.
     963
     964  psArray *output = p_psDBFetchResult(config->dbh);
     965  if (!output) {
     966    psError(PS_ERR_UNKNOWN, false, "database error");
     967    return false;
     968  }
     969  if (!psArrayLength(output)) {
     970    psTrace("addtool", PS_LOG_INFO, "no rows found");
     971    psFree(output);
     972    return true;
     973  }
     974
     975
     976  //ok, there's something, so flip active -> waiting
     977
     978  psString query = psStringCopy("UPDATE minidvodbRun SET state = 'waiting' WHERE state = 'active' ");
     979
     980  psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     981  psStringAppend(&query, " AND %s", whereClause);
     982
     983
     984  if (!p_psDBRunQuery(config->dbh, query)) {
     985    psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     986    if (!psDBRollback(config->dbh)) {
     987      psError(PS_ERR_UNKNOWN, false, "database error");
     988    }
     989    return false;
     990  }
     991
     992
     993  //now flip new -> active
     994  psString query2 = psStringCopy("UPDATE minidvodbRun SET state = 'active' WHERE state = 'new' AND minidvodb_name is NOT NULL and minidvodb_group IS NOT NULL and minidvodb_path IS NOT NULL and mergedvodb_path IS NOT NULL ");
     995  psStringAppend(&query2, " AND minidvodb_group = '%s' limit 1;", minidvodb_group);
     996  if (!p_psDBRunQuery(config->dbh, query2)) {
     997    psError(PS_ERR_UNKNOWN, false, "database error");
     998    if (!psDBRollback(config->dbh)) {
     999      psError(PS_ERR_UNKNOWN, false, "database error");
     1000    }
     1001    psFree(query);
     1002    return false;
     1003  }
     1004
     1005
     1006  if (!psDBCommit(config->dbh)) {
     1007    psError(PS_ERR_UNKNOWN, false, "database error");
     1008    if (!psDBRollback(config->dbh)) {
     1009      psError(PS_ERR_UNKNOWN, false, "database error");
     1010    }
     1011    psFree(query);
     1012  return false;
     1013  }
     1014 psFree(query2);
     1015 psFree(where);
     1016
     1017 return true;
     1018
     1019}
     1020
     1021
     1022static bool checkminidvodbrunaddrunMode(pxConfig *config) {
     1023  PS_ASSERT_PTR_NON_NULL(config, false);
     1024  psMetadata *where = psMetadataAlloc();
     1025
     1026  //this checks to see if a minidvod_group/name is has completed addRun processing
     1027  PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "minidvodbRun.minidvodb_group", "==");
     1028  PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbRun.minidvodb_name", "==");
     1029  PXOPT_COPY_STR(config->args, where, "-state", "minidvodbRun.state", "==");
     1030
     1031
     1032  PXOPT_LOOKUP_U64(limit,      config->args, "-limit", false, false);
     1033  PXOPT_LOOKUP_BOOL(all_addrun_states, config->args, "-all_addrun_states", false);
     1034  //this doesn't care what state the addRun is in (useful for counting addRuns)
     1035  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1036
     1037  if (!psListLength(where->list)) {
     1038        psFree(where);
     1039        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     1040        return false;
     1041  }
     1042
     1043  psString query = pxDataGet("addtool_checkminidvodbaddrun.sql");
     1044
     1045  if (!query) {
     1046        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1047        return false;
     1048  }
     1049
     1050
     1051  if (psListLength(where->list)) {
     1052    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1053        psStringAppend(&query, " WHERE %s", whereClause);
     1054        psFree(whereClause);
     1055  }
     1056
     1057  if (!all_addrun_states) {
     1058    psStringAppend(&query, " AND (cnt2 = cnt) ");
     1059  }
     1060
     1061  if (limit) {
     1062    psString limitString = psDBGenerateLimitSQL(limit);
     1063    psStringAppend(&query, " %s", limitString);
     1064    psFree(limitString);
     1065  }
     1066
     1067
     1068  if (!p_psDBRunQuery(config->dbh, query)) {
     1069    psError(PS_ERR_UNKNOWN, false, "database error");
     1070    psFree(query);
     1071    return false;
     1072  }
     1073  psFree(query);
     1074  psArray *output = p_psDBFetchResult(config->dbh);
     1075  if (!output) {
     1076    psError(PS_ERR_UNKNOWN, false, "database error");
     1077    return false;
     1078  }
     1079  if (!psArrayLength(output)) {
     1080    psTrace("addtool", PS_LOG_INFO, "no rows found");
     1081    psFree(output);
     1082    return true;
     1083  }
     1084
     1085  if (!ippdbPrintMetadatas(stdout, output, "minidvodbRun", !simple)) {
     1086    psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1087    psFree(output);
     1088    return false;
     1089  }
     1090
     1091  psFree(output);
     1092
     1093  return true;
     1094}
     1095
     1096
     1097
     1098static bool listminidvodbrunMode(pxConfig *config) {
     1099    PS_ASSERT_PTR_NON_NULL(config, false);
     1100    psMetadata *where = psMetadataAlloc();
     1101
     1102    PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbRun.minidvodb_name", "LIKE");
     1103    PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "minidvodbRun.minidvodb_group", "==");
     1104    PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbRun.minidvodb_id", "==");
     1105
     1106    PXOPT_COPY_STR(config->args, where, "-state", "minidvodbRun.state", "==");
     1107    PXOPT_LOOKUP_U64(limit,      config->args, "-limit", false, false);
     1108    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1109
     1110
     1111    if (!psListLength(where->list)) {
     1112      psFree(where);
     1113      psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     1114      return false;
     1115    }
     1116
     1117    psString query = pxDataGet("addtool_find_minidvodbrun.sql");
     1118
     1119    if (!query) {
     1120      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1121      return false;
     1122    }
     1123
     1124    if (psListLength(where->list)) {
     1125      psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1126      psStringAppend(&query, " WHERE %s", whereClause);
     1127      psFree(whereClause);
     1128    }
     1129
     1130    if (limit) {
     1131      psString limitString = psDBGenerateLimitSQL(limit);
     1132      psStringAppend(&query, " %s", limitString);
     1133      psFree(limitString);
     1134    }
     1135
     1136    if (!p_psDBRunQuery(config->dbh, query)) {
     1137      psError(PS_ERR_UNKNOWN, false, "database error");
     1138      psFree(query);
     1139      return false;
     1140    }
     1141
     1142    psFree(query);
     1143    psArray *output = p_psDBFetchResult(config->dbh);
     1144    if (!output) {
     1145      psError(PS_ERR_UNKNOWN, false, "database error");
     1146      return false;
     1147    }
     1148    if (!psArrayLength(output)) {
     1149      psTrace("addtool", PS_LOG_INFO, "no rows found");
     1150      psFree(output);
     1151      return true;
     1152    }
     1153
     1154    if (!ippdbPrintMetadatas(stdout, output, "minidvodbRun",  !simple)) {
     1155      psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1156      psFree(output);
     1157      return false;
     1158    }
     1159
     1160    psFree(output);
     1161
     1162return true;
     1163}
     1164
     1165static bool addminidvodbprocessedMode(pxConfig *config) {
     1166
     1167  PS_ASSERT_PTR_NON_NULL(config, false);
     1168
     1169    // required
     1170  PXOPT_LOOKUP_U64(minidvodb_id, config->args, "-minidvodb_id", true, false);
     1171  PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-mergedvodb_path", true, false);
     1172  PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-minidvodb_group", true, false);
     1173
     1174    // optional
     1175  PXOPT_LOOKUP_U64(merge_order,     config->args, "-merge_order", false, false);
     1176  PXOPT_LOOKUP_F32(dtime_relphot, config->args, "-dtime_relphot", false, false);
     1177  PXOPT_LOOKUP_F32(dtime_resort, config->args, "-dtime_resort", false, false);
     1178  PXOPT_LOOKUP_F32(dtime_merge, config->args, "-dtime_merge", false, false);
     1179  PXOPT_LOOKUP_TIME(epoch, config->args, "-epoch", false, false);
     1180  PXOPT_LOOKUP_S16(fault,         config->args, "-fault", false, false);
     1181    //generate restrictions
     1182  psMetadata *where = psMetadataAlloc();
     1183  PXOPT_COPY_S64(config->args, where, "-minidvodb_id",   "minidvodbRun.minidvodb_id",   "==");
     1184
     1185
     1186  if (!psDBTransaction(config->dbh)) {
     1187    psError(PS_ERR_UNKNOWN, false, "database error");
     1188    return false;
     1189  }
     1190
     1191
     1192  psString query = pxDataGet("addtool_find_pendingmergeprocess.sql");
     1193  if (!query) {
     1194    psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1195    return false;
     1196  }
     1197  // use psDBGenerateWhereSQL because the SQL yields an intermediate table
     1198  if (psListLength(where->list)) {
     1199    psString whereClaus = psDBGenerateWhereConditionSQL(where, NULL);
     1200    psStringAppend(&query, " AND %s", whereClaus);
     1201    psFree(whereClaus);
     1202  }
     1203  psFree(where);
     1204
     1205  if (!p_psDBRunQuery(config->dbh, query)) {
     1206    psError(PS_ERR_UNKNOWN, false, "database error");
     1207    psFree(query);
     1208    return false;
     1209  }
     1210  psFree(query);
     1211
     1212  psArray *output = p_psDBFetchResult(config->dbh);
     1213  if (!output) {
     1214    psError(PS_ERR_UNKNOWN, false, "database error");
     1215    return false;
     1216  }
     1217  if (!psArrayLength(output)) {
     1218    psTrace("addtool", PS_LOG_INFO, "no rows found");
     1219    psFree(output);
     1220    return true;
     1221  }
     1222
     1223  minidvodbRunRow *pendingRow = minidvodbRunObjectFromMetadata(output->data[0]);
     1224  psFree(output);
     1225  minidvodbProcessedRow *row = minidvodbProcessedRowAlloc(
     1226               pendingRow->minidvodb_id,
     1227               merge_order,
     1228               dtime_resort,
     1229               dtime_relphot,
     1230               dtime_merge,
     1231               epoch,
     1232               mergedvodb_path,
     1233               fault
     1234               );
     1235
     1236  if (!minidvodbProcessedInsertObject(config->dbh, row)) {
     1237    // rollback
     1238    if (!psDBRollback(config->dbh)) {
     1239      psError(PS_ERR_UNKNOWN, false, "database error");
     1240    }
     1241    psError(PS_ERR_UNKNOWN, false, "database error");
     1242    psFree(row);
     1243    psFree(pendingRow);
     1244    return false;
     1245  }
     1246
     1247
     1248
     1249
     1250  //this finds the # of merged things (for the merge order)
     1251  psString query3 = NULL;
     1252  psStringAppend(&query3, "select count(*) from minidvodbRun join minidvodbProcessed using (minidvodb_id) where state = 'merged' and minidvodb_group = '%s';", minidvodb_group);
     1253
     1254  if (!p_psDBRunQuery(config->dbh, query3)) {
     1255    // rollback
     1256    if (!psDBRollback(config->dbh)) {
     1257      psError(PS_ERR_UNKNOWN, false, "database error");
     1258    }
     1259    psError(PS_ERR_UNKNOWN, false, "database error");
     1260    psFree(query3);
     1261    return false;
     1262  }
     1263  psArray *output2 = p_psDBFetchResult(config->dbh);
     1264  if (!output2) {
     1265    psError(PS_ERR_UNKNOWN, false, "database error");
     1266    return false;
     1267  }
     1268  if (!psArrayLength(output2)) {
     1269    psTrace("addtool", PS_LOG_INFO, "no rows found");
     1270    psFree(output);
     1271    return true;
     1272  }
     1273  bool status;
     1274  psS64 m_order = psMetadataLookupS64(&status, output2->data[0], "count(*)");
     1275  if (!status) {
     1276
     1277    psAbort("failed to lookup value for count column");
     1278    return false;
     1279  }
     1280  psString final = NULL;
     1281  psStringAppend(&final, "%" PRIu64, m_order);
     1282    //return false;
     1283  psFree(query3);
     1284  psFree(output2);
     1285
     1286
     1287
     1288  //update the merge_order
     1289
     1290  psString query4 = NULL;
     1291  psStringAppend(&query4, "update minidvodbProcessed set merge_order = %"PRIu64,m_order);
     1292  psStringAppend(&query4," where minidvodb_id = %" PRIu64,  minidvodb_id);
     1293  printf("%s", query4);
     1294  if (!p_psDBRunQuery(config->dbh, query4)) {
     1295    // rollback
     1296    if (!psDBRollback(config->dbh)) {
     1297      psError(PS_ERR_UNKNOWN, false, "database error");
     1298    }
     1299    psError(PS_ERR_UNKNOWN, false, "database error");
     1300    psFree(query4);
     1301    return false;
     1302  }
     1303  //
     1304psFree(query4);
     1305
     1306
     1307
     1308// since there is only one exp per 'new' set mindvodbRun.state = 'merged'
     1309
     1310  psString query2 = NULL ;
     1311  psStringAppend(&query2, "UPDATE minidvodbRun SET state = 'merged' WHERE minidvodb_id = %'" PRIu64, row->minidvodb_id);
     1312
     1313  if (!p_psDBRunQuery(config->dbh, query2)) {
     1314    // rollback
     1315    if (!psDBRollback(config->dbh)) {
     1316      psError(PS_ERR_UNKNOWN, false, "database error");
     1317    }
     1318    psError(PS_ERR_UNKNOWN, false, "database error");
     1319    psFree(query2);
     1320    return false;
     1321  }
     1322
     1323
     1324
     1325
     1326
     1327
     1328
     1329
     1330  psFree(row);
     1331  psFree(pendingRow);
     1332
     1333
     1334
     1335
     1336
     1337  //commit the changes
     1338  if (!psDBCommit(config->dbh)) {
     1339    psError(PS_ERR_UNKNOWN, false, "database error");
     1340    return false;
     1341  }
     1342
     1343
     1344  //print the merge_order (why not!)
     1345  printf("%s", final);
     1346  psFree(final);
     1347
     1348  return true;
     1349}
     1350
     1351
     1352
     1353static bool listminidvodbprocessedMode(pxConfig *config) {
     1354  psMetadata *where = psMetadataAlloc();
     1355  PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbProcessed.minidvodb_id", "==");
     1356  PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbProcessed.minidvodb_name", "==");
     1357  PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "minidvodbProcessed.minidvodb_group", "==");
     1358  PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1359  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1360  PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false);
     1361  if (!psListLength(where->list)) {
     1362        psFree(where);
     1363        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     1364        return false;
     1365    }
     1366
     1367  psString query = pxDataGet("addtool_find_minidvodbprocessed.sql");
     1368    if (!query) {
     1369        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1370        return false;
     1371    }
     1372
     1373if (psListLength(where->list)) {
     1374        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1375        psStringAppend(&query, " WHERE %s", whereClause);
     1376        psFree(whereClause);
     1377    }
     1378
     1379// we either add AND (condition) or WHERE (condition):
     1380    if (where->list && faulted) {
     1381        // list only faulted rows
     1382        psStringAppend(&query, " %s", " AND minidvodbProcessed.fault != 0");
     1383    }
     1384    if (where->list && !faulted) {
     1385        // don't list faulted rows
     1386        psStringAppend(&query, " %s", " AND minidvodbProcessed.fault = 0");
     1387    }
     1388    if (!where->list && faulted) {
     1389        // list only faulted rows
     1390        psStringAppend(&query, " %s", " WHERE minidvodbProcessed.fault != 0");
     1391    }
     1392    if (!where->list && !faulted) {
     1393        // don't list faulted rows
     1394        psStringAppend(&query, " %s", " WHERE minidvodbProcessed.fault = 0");
     1395    }
     1396    psFree(where);
     1397
     1398    // order by epoch
     1399    psStringAppend(&query, " ORDER BY minidvodb_id");
     1400
     1401    // treat limit == 0 as "no limit"
     1402    if (limit) {
     1403        psString limitString = psDBGenerateLimitSQL(limit);
     1404        psStringAppend(&query, " %s", limitString);
     1405        psFree(limitString);
     1406    }
     1407
     1408    if (!p_psDBRunQuery(config->dbh, query)) {
     1409      psError(PS_ERR_UNKNOWN, false, "database error ");
     1410        psFree(query);
     1411        return false;
     1412    }
     1413    psFree(query);
     1414
     1415    psArray *output = p_psDBFetchResult(config->dbh);
     1416    if (!output) {
     1417        psError(PS_ERR_UNKNOWN, false, "database error");
     1418        return false;
     1419    }
     1420    if (!psArrayLength(output)) {
     1421        psTrace("addtool", PS_LOG_INFO, "no rows found");
     1422        psFree(output);
     1423        return true;
     1424    }
     1425
     1426    // negate simple so the default is true
     1427    if (!ippdbPrintMetadatas(stdout, output, "minidvodbProcessed", !simple)) {
     1428        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1429        psFree(output);
     1430        return false;
     1431    }
     1432
     1433    psFree(output);
     1434
     1435return true;
     1436}
     1437
     1438
     1439
     1440static bool revertminidvodbprocessedMode(pxConfig *config) {
     1441  psMetadata *where = psMetadataAlloc();
     1442  PS_ASSERT_PTR_NON_NULL(config, false);
     1443  PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbProcessed.minidvodb_id", "==");
     1444  PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "addRun.minidvodb_group", "==");
     1445
     1446  if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
     1447    psFree(where);
     1448    psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     1449    return false;
     1450  }
     1451
     1452  if (!psDBTransaction(config->dbh)) {
     1453      psError(PS_ERR_UNKNOWN, false, "database error");
     1454      psFree(where);
     1455      return false;
     1456  }
     1457
     1458  {
     1459        psString query = pxDataGet("addtool_reset_faulted_minidvodbruns.sql");
     1460        if (!query) {
     1461            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1462            psFree(where);
     1463            return false;
     1464        }
     1465
     1466        // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE
     1467
     1468        if (where && psListLength(where->list)) {
     1469          psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1470          psStringAppend(&query, " AND %s", whereClause);
     1471          psFree(whereClause);
     1472        }
     1473
     1474        if (!p_psDBRunQuery(config->dbh, query)) {
     1475          // rollback
     1476          if (!psDBRollback(config->dbh)) {
     1477            psError(PS_ERR_UNKNOWN, false, "database error");
     1478          }
     1479          psError(PS_ERR_UNKNOWN, false, "database error");
     1480          psFree(query);
     1481          psFree(where);
     1482          return false;
     1483        }
     1484        psFree(query);
     1485  }
     1486  {
     1487    psString query = pxDataGet("addtool_revertminidvodbprocessed.sql");
     1488    if (!query) {
     1489      // rollback
     1490      if (!psDBRollback(config->dbh)) {
     1491        psError(PS_ERR_UNKNOWN, false, "database error");
     1492      }
     1493      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1494      psFree(where);
     1495      return false;
     1496    }
     1497
     1498    // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE
     1499    if (where && psListLength(where->list)) {
     1500      psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1501      psStringAppend(&query, " AND %s", whereClause);
     1502      psFree(whereClause);
     1503    }
     1504
     1505    if (!p_psDBRunQuery(config->dbh, query)) {
     1506      // rollback
     1507      if (!psDBRollback(config->dbh)) {
     1508        psError(PS_ERR_UNKNOWN, false, "database error");
     1509      }
     1510      psError(PS_ERR_UNKNOWN, false, "database error");
     1511      psFree(query);
     1512      psFree(where);
     1513            return false;
     1514    }
     1515    psFree(query);
     1516  }
     1517  psFree(where);
     1518
     1519  if (!psDBCommit(config->dbh)) {
     1520    psError(PS_ERR_UNKNOWN, false, "database error");
     1521    return false;
     1522  }
     1523
     1524  return true;
     1525}
     1526
     1527
     1528
     1529static bool updateminidvodbprocessedMode(pxConfig *config) {
     1530  PS_ASSERT_PTR_NON_NULL(config, false);
     1531  psMetadata *where = psMetadataAlloc();
     1532
     1533  PXOPT_LOOKUP_U64(minidvodb_id,  config->args, "-minidvodb_id", true, false);
     1534  PXOPT_LOOKUP_U64(merge_order,  config->args, "-set_merge_order", false, false);
     1535  PXOPT_LOOKUP_S16(fault,  config->args, "-set_fault", false, false);
     1536  PXOPT_LOOKUP_F32(dtime_relphot,  config->args, "-set_dtime_relphot", false, false);
     1537  PXOPT_LOOKUP_F32(dtime_resort,  config->args, "-set_dtime_resort", false, false);
     1538  PXOPT_LOOKUP_F32(dtime_merge,  config->args, "-set_dtime_merge", false, false);
     1539
     1540  PXOPT_COPY_S64(config->args, where, "-minidvodb_id",     "minidvodbProcessed.minidvodb_id", "==");
     1541  PXOPT_COPY_STR(config->args, where, "-minidvodb_name",     "minidvodbRun.minidvodb_name", "==");
     1542
     1543
     1544  if (!psListLength(where->list)) {
     1545    psFree(where);
     1546    psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     1547    return false;
     1548  }
     1549
     1550  psString query = psStringCopy("UPDATE minidvodbProcessed JOIN minidvodbRun USING (minidvodb_id) SET ");
     1551  int cnt = 0;
     1552  psString comma = ",";
     1553  if (fault) {
     1554    psStringAppend(&query, " fault = %d", fault);
     1555  cnt++;
     1556  }
     1557
     1558  if (merge_order) {
     1559    if (cnt) {
     1560      psStringAppend(&query, "%s", comma);
     1561    }
     1562
     1563    psStringAppend(&query, " merge_order = %" PRId64, merge_order);
     1564    cnt++;
     1565  }
     1566
     1567  if (dtime_relphot) {
     1568    if (cnt) {
     1569      psStringAppend(&query, "%s", comma);
     1570    }
     1571    psStringAppend(&query, " dtime_relphot = %f", dtime_relphot);
     1572    cnt++;
     1573  }
     1574
     1575  if (dtime_resort) {
     1576    if (cnt) {
     1577      psStringAppend(&query, "%s", comma);
     1578    }
     1579    psStringAppend(&query, " dtime_resort = %f", dtime_resort);
     1580    cnt++;
     1581  }
     1582
     1583  if (dtime_merge) {
     1584    if (cnt) {
     1585      psStringAppend(&query, "%s", comma);
     1586    }
     1587    psStringAppend(&query, " dtime_merge = %f", dtime_merge);
     1588    cnt++;
     1589 }
     1590
     1591  psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1592  psStringAppend(&query, " WHERE %s", whereClause);
     1593
     1594  if (!p_psDBRunQuery(config->dbh, query)) {
     1595   psError(PS_ERR_UNKNOWN, false, "database error %s", query);
     1596   psFree(query);
     1597   return false;
     1598  }
     1599
     1600  psFree(query);
     1601  psFree(where);
     1602
     1603  return true;
     1604}
     1605
     1606
  • trunk/ippTools/src/addtool.h

    r25299 r28181  
    3939    ADDTOOL_MODE_DONECLEANUP,
    4040    ADDTOOL_MODE_EXPORTRUN,
    41     ADDTOOL_MODE_IMPORTRUN
     41    ADDTOOL_MODE_IMPORTRUN,
     42    ADDTOOL_MODE_ADDMINIDVODBRUN,
     43    ADDTOOL_MODE_UPDATEMINIDVODBRUN,
     44    ADDTOOL_MODE_LISTMINIDVODBRUN,
     45    ADDTOOL_MODE_FLIPMINIDVODBRUN,
     46    ADDTOOL_MODE_CHECKMINIDVODBRUNADDRUN,
     47    ADDTOOL_MODE_ADDMINIDVODBPROCESSED,
     48    ADDTOOL_MODE_LISTMINIDVODBPROCESSED,
     49    ADDTOOL_MODE_REVERTMINIDVODBPROCESSED,
     50    ADDTOOL_MODE_UPDATEMINIDVODBPROCESSED
    4251} addtoolMode;
    4352
  • trunk/ippTools/src/addtoolConfig.c

    r27773 r28181  
    6363    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-pretend",           0, "do not actually modify the database", false);
    6464    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple",            0, "use the simple output format", false);
    65 
     65    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-set_minidvodb",            0, "use minidvodb", false);
     66    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_minidvodb_group", 0,   "define minidvodb_group", NULL);
     67    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_minidvodb_name", 0,   "define minidvodb_bname", NULL);
    6668    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_data_group", 0,   "define new data_group", NULL);
    6769    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_dist_group", 0,   "define new dist_group", NULL);
     
    8486    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-set_dist_group", 0,   "define new dist_group", NULL);
    8587    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-set_note", 0,         "define new note", NULL);
     88
    8689    // -pendingexp
    8790    psMetadata *pendingexpArgs = psMetadataAlloc();
     
    98101    psMetadataAddS64(addprocessedexpArgs, PS_LIST_TAIL, "-add_id", 0,            "define addtool ID (required)", 0);
    99102    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-path_base", 0,            "define base output location", NULL);
     103     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-dvodb_path", 0,            "define base output location", NULL);
    100104    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-dtime_addstar", 0, "define elapsed time for DVO insertion (seconds)", NAN);
    101105    psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-fault",  0,            "set fault code", 0);
     
    142146    psMetadataAddStr(unblockArgs, PS_LIST_TAIL, "-label",  0,            "name of a label to unmask (required)", NULL);
    143147
     148    // -addminidvodbruns
     149    psMetadata *addminidvodbrunArgs = psMetadataAlloc();
     150    psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_name",        0, "define minidvodb_name", NULL);
     151    psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_group",        0, "define minidvodb_group (required)", NULL);
     152    psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_path",        0, "define path for minidvodb", NULL);
     153    psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_mergedvodb_path",        0, "define path for the merged dvodb (required)", NULL);
     154    psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_state",        0, "define state", NULL);
     155
     156    // -updateminidvodbruns
     157    psMetadata *updateminidvodbrunArgs = psMetadataAlloc();
     158    psMetadataAddU64(updateminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_id",        0, "search by minidvodb_id ", 0);
     159    psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_group",        0, "search by minidvodb_name (LIKE)", NULL);
     160    psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_name",        0, "search by minidvodb_name (LIKE)", NULL);
     161    psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_path",        0, "search by path for minidvodb", NULL);
     162    psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-mergedvodb_path",        0, "search by path for the merged dvodb", NULL);
     163    psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-state",        0, "search by state", NULL);
     164    psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_name",        0, "define minidvodb_name", NULL);
     165    psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_path",        0, "define path for minidvodb", NULL);
     166    psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_mergedvodb_path",        0, "define path for minidvodb", NULL);
     167    psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_group",        0, "define path for the merged dvodb", NULL);
     168    psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_state",        0, "define state", NULL);
     169   
     170    // -listminidvodbrunArgs
     171    psMetadata *listminidvodbrunArgs = psMetadataAlloc();
     172    psMetadataAddU64(listminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_id",        0, "search by minidvodb_id", 0);
     173    psMetadataAddStr(listminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_name",        0, "search by minidvodb_name (LIKE)", NULL);
     174    psMetadataAddStr(listminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_group",     0,    "search by minidvodb.minidvodb_group", NULL);
     175    psMetadataAddStr(listminidvodbrunArgs, PS_LIST_TAIL, "-state",        0, "search by state", NULL);
     176    psMetadataAddU64(listminidvodbrunArgs, PS_LIST_TAIL, "-limit",        0, "limit to N items", 0);
     177    psMetadataAddBool(listminidvodbrunArgs, PS_LIST_TAIL, "-simple",        0, "simple output", false);
     178   
     179    //psMetadataAddBool(listminidvodbrunArgs, PS_LIST_TAIL, "-finished_addrun",        0, "limit to minidvodbs with completed addRuns (none in new state)", false);
     180    psMetadata *flipminidvodbrunArgs = psMetadataAlloc();
     181    psMetadataAddStr(flipminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_group",     0,    "for the supplied minidvodb_group (required): flip the current 'new' to 'active', the current 'active' to 'waiting'", NULL);
     182   
     183    psMetadata *checkminidvodbrunaddrunArgs = psMetadataAlloc();
     184    psMetadataAddStr(checkminidvodbrunaddrunArgs, PS_LIST_TAIL, "-minidvodb_group",     0,    "for the supplied minidvodb_group (required): check if the addRun stage is complete (all in addRun.state = full) ", NULL);
     185    psMetadataAddStr(checkminidvodbrunaddrunArgs, PS_LIST_TAIL, "-minidvodb_name",     0,    "for the supplied minidvodb_name: check if the addRun stage is complete (all in addRun.state = full) ", NULL);
     186    psMetadataAddStr(checkminidvodbrunaddrunArgs, PS_LIST_TAIL, "-state",     0,    "limit by minidvodbRun state ", NULL);
     187    psMetadataAddU64(checkminidvodbrunaddrunArgs, PS_LIST_TAIL, "-limit",        0, "limit to N items", 0);
     188    psMetadataAddBool(checkminidvodbrunaddrunArgs, PS_LIST_TAIL, "-simple",        0, "simple output", false);
     189    psMetadataAddBool(checkminidvodbrunaddrunArgs, PS_LIST_TAIL, "-all_addrun_states",        0, "list all minidvodbRun.minidvodb_names, not just ones that have complete addRuns", false);
     190
     191    psMetadata *addminidvodbprocessedArgs = psMetadataAlloc();
     192    psMetadataAddU64(addminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_id", 0,    "define minidvodb_id (required)", 0);
     193    psMetadataAddU64(addminidvodbprocessedArgs, PS_LIST_TAIL, "-merge_order",    0,    "define merge order", 0);
     194    psMetadataAddF32(addminidvodbprocessedArgs, PS_LIST_TAIL, "-dtime_relphot",  0,    "define elapsed time for relphot (seconds)", NAN);
     195    psMetadataAddF32(addminidvodbprocessedArgs, PS_LIST_TAIL, "-dtime_resort", 0,    "define elapsed time for resort (seconds)", NAN);
     196    psMetadataAddF32(addminidvodbprocessedArgs, PS_LIST_TAIL, "-dtime_merge",    0,    "define elapsed time for DVO merge (seconds)", NAN);
     197    psMetadataAddTime(addminidvodbprocessedArgs, PS_LIST_TAIL, "-epoch",         0,    "time merge is finished", NULL);
     198    psMetadataAddStr(addminidvodbprocessedArgs, PS_LIST_TAIL, "-mergedvodb_path",0,    "path of merged dvodb", NULL);
     199    psMetadataAddStr(addminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_group",0,    "minidvodb_group", NULL);
     200    psMetadataAddS16(addminidvodbprocessedArgs, PS_LIST_TAIL, "-fault",          0,    "set fault code", 0);
     201
     202    psMetadata *listminidvodbprocessedArgs = psMetadataAlloc();
     203    psMetadataAddU64(listminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_id",        0, "search by minidvodb_id", 0);
     204    psMetadataAddStr(listminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name",        0, "search by minidvodb_name", NULL);
     205    psMetadataAddStr(listminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_group",        0, "search by minidvodb.minidvodb_group", NULL);
     206    psMetadataAddU64(listminidvodbprocessedArgs, PS_LIST_TAIL, "-limit",        0, "limit to N items", 0);
     207    psMetadataAddBool(listminidvodbprocessedArgs, PS_LIST_TAIL, "-simple",        0, "simple output", false);
     208    psMetadataAddBool(listminidvodbprocessedArgs, PS_LIST_TAIL, "-faulted",        0, "limit to faulted state", false);
     209
     210    psMetadata *revertminidvodbprocessedArgs = psMetadataAlloc();
     211    psMetadataAddU64(revertminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_id",        0, "search by minidvodb_id", 0);
     212    psMetadataAddStr(revertminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_group",        0, "search by addRun.minidvodb_group", NULL);
     213
     214    psMetadata *updateminidvodbprocessedArgs = psMetadataAlloc();
     215    psMetadataAddU64(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_id",        0, "search by minidvodb_id", 0);
     216    psMetadataAddStr(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name",        0, "search by minidvodb_name", NULL);
     217    psMetadataAddS16(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_fault",  0,            "set fault code", 0);
     218    psMetadataAddU64(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_merge_order",    0,    "define merge order", 0);
     219    psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_relphot",  0,    "define elapsed time for relphot (seconds)", 0);
     220    psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_resort", 0,    "define elapsed time for resort (seconds)", 0);
     221    psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_merge",    0,    "define elapsed time for DVO merge (seconds)", 0);
     222   
    144223    psMetadata *argSets = psMetadataAlloc();
    145224    psMetadata *modes = psMetadataAlloc();
     
    154233    PXOPT_ADD_MODE("-block",                "set a label block",                    ADDTOOL_MODE_BLOCK,         blockArgs);
    155234    PXOPT_ADD_MODE("-masked",               "show blocked labels",                  ADDTOOL_MODE_MASKED,        maskedArgs);
    156     PXOPT_ADD_MODE("-unblock",              "remove a label block",                 ADDTOOL_MODE_UNBLOCK,       unblockArgs);
     235    PXOPT_ADD_MODE("-addminidvodbrun",      "create minidvodbs ",                   ADDTOOL_MODE_ADDMINIDVODBRUN, addminidvodbrunArgs);
     236    PXOPT_ADD_MODE("-updateminidvodbrun",   "change minidvodb properties",          ADDTOOL_MODE_UPDATEMINIDVODBRUN,     updateminidvodbrunArgs);
     237    PXOPT_ADD_MODE("-listminidvodbrun",     "list minidvodbs",                      ADDTOOL_MODE_LISTMINIDVODBRUN,       listminidvodbrunArgs);
     238    PXOPT_ADD_MODE("-flipminidvodbrun",     "flip minidvodbs",                      ADDTOOL_MODE_FLIPMINIDVODBRUN,       flipminidvodbrunArgs);
     239    PXOPT_ADD_MODE("-checkminidvodbrunaddrun", "check minidvodbs to see if addRuns are completed", ADDTOOL_MODE_CHECKMINIDVODBRUNADDRUN,       checkminidvodbrunaddrunArgs);
     240    PXOPT_ADD_MODE("-addminidvodbprocessed","add a processed minidvodb",            ADDTOOL_MODE_ADDMINIDVODBPROCESSED,  addminidvodbprocessedArgs);
     241    PXOPT_ADD_MODE("-listminidvodbprocessed","list processed minidvodbs",           ADDTOOL_MODE_LISTMINIDVODBPROCESSED, listminidvodbprocessedArgs);
     242    PXOPT_ADD_MODE("-revertminidvodbprocessed","revert processed minidvobs",        ADDTOOL_MODE_REVERTMINIDVODBPROCESSED,     revertminidvodbprocessedArgs);
     243    PXOPT_ADD_MODE("-updateminidvodbprocessed","change processed minidvodb properties",ADDTOOL_MODE_UPDATEMINIDVODBPROCESSED,  updateminidvodbprocessedArgs);
     244 
     245 
     246
    157247
    158248    if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
  • trunk/ippTools/src/flatcorr.c

    r26981 r28181  
    671671                row->dvodb,
    672672                NULL,       // note is not propagated
    673                 0)) {
     673                0,
     674                0,  //The minidvodb stuff is off
     675                NULL,
     676                NULL)) {
    674677            if (!psDBRollback(config->dbh)) {
    675678                psError(PS_ERR_UNKNOWN, false, "database error");
  • trunk/ippTools/src/pstamptool.h

    r28106 r28181  
    2222
    2323#include "pxtools.h"
     24
     25#define PSTAMP_FIRST_ERROR_CODE 0       // First error code value to consider
    2426
    2527typedef enum {
  • trunk/ippTools/src/pxadd.c

    r26981 r28181  
    130130                       char *dvodb,
    131131                       char *note,
    132                        bool image_only)
     132                       bool image_only,
     133                       bool minidvodb,
     134                       char *minidvodb_group,
     135                       char *minidvodb_name)
    133136{
    134137    PS_ASSERT_PTR_NON_NULL(config, false);
     
    158161                         note     ? note     : "NULL",
    159162                         image_only,
     163                         minidvodb,
     164                         minidvodb_group,
     165                         minidvodb_name,
    160166                         (long long) cam_id
    161167    )) {
    162         psError(PS_ERR_UNKNOWN, false, "database error");
     168      psError(PS_ERR_UNKNOWN, false, "database error %s", query);
    163169        return false;
    164170    }
  • trunk/ippTools/src/pxadd.h

    r25835 r28181  
    3838                       char *dvodb,
    3939                       char *note,
    40                        bool image_only);
     40                       bool image_only,
     41                       bool minidvodb,
     42                       char *minidvodb_group,
     43                       char *minidvodb_name);
    4144
    4245#endif // PXADD_H
Note: See TracChangeset for help on using the changeset viewer.