IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 31038


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

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

Location:
trunk
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/dbconfig/changes.txt

    r30945 r31038  
    20072007
    20082008ALTER TABLE stackSumSkyfile ADD column dtime_convolve FLOAT AFTER dtime_match_stdev;
     2009
     2010-- Version 1.1.69
     2011
     2012ALTER TABLE summitImfile DROP FOREIGN KEY summitImfile_ibfk_1;
     2013ALTER TABLE pzDownloadExp DROP FOREIGN KEY pzDownloadExp_ibfk_1;
     2014
     2015ALTER TABLE summitExp DROP PRIMARY KEY;
     2016ALTER TABLE summitExp ADD COLUMN summit_id BIGINT NOT NULL AUTO_INCREMENT FIRST,  ADD PRIMARY KEY (summit_id);
     2017ALTER TABLE summitExp ADD KEY (exp_name,camera,telescope);
     2018
     2019
     2020ALTER TABLE pzDownloadImfile DROP FOREIGN KEY pzDownloadImfile_ibfk_2;
     2021
     2022ALTER TABLE summitImfile ADD COLUMN summit_id BIGINT FIRST;
     2023UPDATE summitImfile,summitExp SET summitImfile.summit_id = summitExp.summit_id WHERE summitImfile.exp_name = summitExp.exp_name AND summitImfile.camera = summitExp.camera AND summitImfile.telescope = summitExp.telescope;
     2024
     2025ALTER TABLE summitImfile DROP PRIMARY KEY, ADD PRIMARY KEY (summit_id,class,class_id);
     2026ALTER TABLE summitImfile ADD KEY (exp_name,camera,telescope,class,class_id);
     2027ALTER TABLE summitImfile ADD FOREIGN KEY(summit_id) REFERENCES summitExp(summit_id);
     2028ALTER TABLE summitImfile ADD FOREIGN KEY(exp_name,camera,telescope) REFERENCES summitExp(exp_name,camera,telescope);
     2029
     2030
     2031ALTER TABLE pzDownloadImfile DROP FOREIGN KEY pzDownloadImfile_ibfk_1;
     2032
     2033ALTER TABLE pzDownloadExp ADD COLUMN summit_id BIGINT FIRST;
     2034UPDATE pzDownloadExp,summitExp SET pzDownloadExp.summit_id = summitExp.summit_id WHERE pzDownloadExp.exp_name = summitExp.exp_name AND pzDownloadExp.camera = summitExp.camera AND pzDownloadExp.telescope = summitExp.telescope;
     2035
     2036ALTER TABLE pzDownloadExp DROP PRIMARY KEY, ADD PRIMARY KEY (summit_id);
     2037ALTER TABLE pzDownloadExp ADD KEY (exp_name,camera,telescope);
     2038ALTER TABLE pzDownloadExp ADD FOREIGN KEY(summit_id) REFERENCES summitExp(summit_id);
     2039ALTER TABLE pzDownloadExp ADD FOREIGN KEY(exp_name,camera,telescope) REFERENCES summitExp(exp_name,camera,telescope);
     2040
     2041
     2042ALTER TABLE pzDownloadImfile ADD COLUMN summit_id BIGINT FIRST;
     2043UPDATE pzDownloadImfile,pzDownloadExp SET pzDownloadImfile.summit_id = pzDownloadExp.summit_id WHERE pzDownloadImfile.exp_name = pzDownloadExp.exp_name AND pzDownloadImfile.camera = pzDownloadExp.camera AND pzDownloadImfile.telescope = pzDownloadExp.telescope;
     2044
     2045ALTER TABLE pzDownloadImfile DROP PRIMARY KEY, ADD PRIMARY KEY (summit_id,class,class_id);
     2046ALTER TABLE pzDownloadImfile ADD FOREIGN KEY(summit_id) REFERENCES pzDownloadExp(summit_id);
     2047ALTER TABLE pzDownloadImfile ADD FOREIGN KEY(summit_id,class,class_id) REFERENCES summitImfile(summit_id,class,class_id);
     2048ALTER TABLE pzDownloadImfile ADD FOREIGN KEY(exp_name,camera,telescope) REFERENCES summitExp(exp_name,camera,telescope);
     2049ALTER TABLE pzDownloadImfile ADD FOREIGN KEY(exp_name,camera,telescope,class,class_id) REFERENCES summitImfile(exp_name,camera,telescope,class,class_id);
     2050
     2051
     2052ALTER TABLE newExp ADD COLUMN summit_id BIGINT AFTER exp_id;
     2053UPDATE newExp,pzDownloadExp SET newExp.summit_id = pzDownloadExp.summit_id WHERE newExp.tmp_exp_name = pzDownloadExp.exp_name AND newExp.tmp_camera = pzDownloadExp.camera AND newExp.tmp_telescope = pzDownloadExp.telescope;
     2054
     2055ALTER TABLE newExp ADD KEY (summit_id);
     2056
     2057
     2058UPDATE dbversion set schema_version = '1.1.69', updated= CURRENT_TIMESTAMP();
     2059
     2060
     2061
  • trunk/dbconfig/new.md

    r25418 r31038  
    11newExp METADATA
    22    exp_id      S64         0       # Primary Key AUTO_INCREMENT
     3    summit_id   S64         0       # Key
    34    tmp_exp_name STR        64      # Key
    45    tmp_camera    STR       64      # Key
  • trunk/dbconfig/summitcopy.md

    r26378 r31038  
    1111# -1 as NULL or 0 might be a valid value (empty fileset)
    1212summitExp METADATA
    13     exp_name    STR         64      # Primary Key
    14     camera      STR         64      # Primary Key
    15     telescope   STR         64      # Primary Key
     13    summit_id   S64         0       # Primary Key AUTO_INCREMENT
     14    exp_name    STR         64      # Key
     15    camera      STR         64      # Key
     16    telescope   STR         64      # Key
    1617    dateobs     UTC         NULL
    1718    exp_type    STR         64
     
    2627# list of source images -- updated as exposures/filesets are queried
    2728summitImfile METADATA
    28     exp_name    STR         64      # Primary Key fkey(exp_name, camera, telescope) ref summitExp(exp_name, camera, telescope)
    29     camera      STR         64      # Primary Key
    30     telescope   STR         64      # Primary Key
     29    summit_id   S64         0       # Primary Key fkey(summit_id) ref summitExp(summit_id)
     30    exp_name    STR         64      # Key fkey(exp_name, camera, telescope) ref summitExp(exp_name, camera, telescope)
     31    camera      STR         64      # Key
     32    telescope   STR         64      # Key
    3133    file_id     STR         64      # Key
    3234    bytes       S32         0
     
    4143# downloaded)
    4244pzDownloadExp METADATA
    43     exp_name    STR         64      # Primary Key fkey(exp_name, camera, telescope) ref summitExp(exp_name, camera, telescope)
    44     camera      STR         64      # Primary Key
    45     telescope   STR         64      # Primary Key
     45    summit_id   S64         0       # Primary Key fkey(summit_id) ref summitExp(summit_id)
     46    exp_name    STR         64      # Key fkey(exp_name, camera, telescope) ref summitExp(exp_name, camera, telescope)
     47    camera      STR         64      # Key
     48    telescope   STR         64      # Key
    4649    state       STR         64      # Key
    4750    epoch       UTC         0001-01-01T00:00:00Z
     
    4952
    5053pzDownloadImfile METADATA
    51     exp_name    STR         64      # Primary Key fkey(exp_name, camera, telescope) ref pzDownloadExp(exp_name, camera, telescope)
    52     camera      STR         64      # Primary Key fkey(exp_name, camera, telescope, class, class_id) ref summitImfile(exp_name, camera, telescope, class, class_id)
    53     telescope   STR         64      # Primary Key
    54     class       STR         64      # Primary Key
     54    summit_id   S64         0       # Primary Key fkey(summit_id) ref pzDownloadExp(summit_id)
     55    exp_name    STR         64      # Key fkey(exp_name, camera, telescope) ref pzDownloadExp(exp_name, camera, telescope)
     56    camera      STR         64      # Key fkey(exp_name, camera, telescope, class, class_id) ref summitImfile(exp_name, camera, telescope, class, class_id)
     57    telescope   STR         64      # Key fkey(exp_name, camera, telescope) ref summitExp(exp_name, camera, telescope)
     58    class       STR         64      # Primary Key fkey(summit_id,class,class_id) ref summitImfile(summit_id,class,class_id)
    5559    class_id    STR         64      # Primary Key
    5660    uri         STR         255
  • trunk/ippScripts/scripts/summit_copy.pl

    r30875 r31038  
    2222
    2323# Parse the command-line arguments
    24 my ( $uri, $filename, $compress, $bytes, $md5, $nebulous, $exp_name, $inst, $telescope, $class, $class_id,
     24my ( $uri, $filename, $compress, $bytes, $md5, $nebulous, $summit_id, $exp_name, $inst, $telescope, $class, $class_id,
    2525     $dbname, $verbose, $no_update, $no_op, $timeout, $copies );
    2626GetOptions(
     
    3131       'md5=s'          => \$md5,       # reported md5 checksum
    3232       'nebulous'       => \$nebulous,  # use nebulous for the target file
     33       'summit_id=s'    => \$summit_id, # summit_id for this exposure
    3334       'exp_name=s'     => \$exp_name,  # Exposure name
    3435       'inst=s'         => \$inst,      # Instrument
     
    4546
    4647pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    47 pod2usage( -msg => "Required options: --uri --filename --exp_name --inst --telescope --class --class_id",
     48pod2usage( -msg => "Required options: --uri --filename --summit_id --exp_name --inst --telescope --class --class_id",
    4849       -exitval => 3)
    4950    unless defined $uri
    5051    and defined $filename
     52    and defined $summit_id
    5153    and defined $exp_name
    5254    and defined $inst
     
    110112$command  = "$pztool -copydone";
    111113$command .= " -row_lock";
     114$command .= " -summit_id $summit_id";
    112115$command .= " -exp_name $exp_name";
    113116$command .= " -inst $inst";
     
    236239        my $command;
    237240        $command  = "$pztool -copydone";
     241        $command .= " -summit_id $summit_id";
    238242        $command .= " -exp_name $exp_name";
    239243        $command .= " -inst $inst";
  • trunk/ippTasks/summit.copy.pro

    r27895 r31038  
    429429        book getword pzPendingImfile $pageName md5sum    -var MD5SUM
    430430        book getword pzPendingImfile $pageName dateobs   -var DATEOBS
     431        book getword pzPendingImfile $pageName summit_id -var SUMMIT_ID
    431432        book getword pzPendingImfile $pageName exp_name  -var EXP_NAME
    432433        book getword pzPendingImfile $pageName camera    -var CAMERA
     
    479480        end
    480481
    481         $run = summit_copy.pl --uri $URI --filename $FILENAME --exp_name $EXP_NAME --inst $CAMERA --telescope $TELESCOPE --class $CLASS --class_id $CLASS_ID --bytes $BYTES --md5 $MD5SUM --dbname $DBNAME --timeout 600 --verbose --copies 2
     482        $run = summit_copy.pl --uri $URI --filename $FILENAME --summit_id $SUMMIT_ID --exp_name $EXP_NAME --inst $CAMERA --telescope $TELESCOPE --class $CLASS --class_id $CLASS_ID --bytes $BYTES --md5 $MD5SUM --dbname $DBNAME --timeout 600 --verbose --copies 2
    482483        if ($USECOMPRESS == 1)
    483484            $run = $run --compress
     
    625626        book setword pzPendingAdvance $pageName pantaskState RUN
    626627
     628        book getword pzPendingAdvance $pageName summit_id -var SUMMIT_ID
    627629        book getword pzPendingAdvance $pageName exp_name  -var EXP_NAME
    628630        book getword pzPendingAdvance $pageName camera    -var CAMERA
  • trunk/ippTools/share/pxadmin_create_tables.sql

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

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

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

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

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

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

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

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

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

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

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

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