IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 17872


Ignore:
Timestamp:
May 30, 2008, 4:19:52 PM (18 years ago)
Author:
jhoblitt
Message:

add epoch fields to pz*, new*, & raw* tables

Location:
trunk
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/dbconfig/changes.txt

    r17804 r17872  
    1 How to manually change the database between versions via mySQL commands.
    2 
    3 This file is generated manually, and may not be complete.
     1-- How to manually change the database between versions via mySQL commands.
     2--
     3-- This file is generated manually, and may not be complete.
    44
    55
    6 Version 1.1.20 --> 1.1.21:
     6-- Version 1.1.20 --> 1.1.21:
    77
    88alter table camProcessedExp drop nastro;
     
    1414
    1515
    16 Version 1.1.22 --> 1.1.23
    17 # Adding support for reduction classes (which are used to specify recipes for parts of the pipeline).
     16-- Version 1.1.22 --> 1.1.23
     17-- Adding support for reduction classes (which are used to specify recipes for parts of the pipeline).
    1818# Adding 'reduction' to detRun
    1919# Renaming 'recipe' in {chip,cam}{Pending,Processed}Exp to 'reduction'
     
    2525alter table camProcessedExp change column recipe reduction varchar(64);
    2626
    27 Version ??? --> 1.1.29
     27-- Version ??? --> 1.1.29
    2828
    2929alter table warpSkyfile add column ignored tinyint after good_frac;
    3030
    31 #
    32 # The following set of changes were applied to update the gpc1 database on 2008/02/07
    33 #
     31--
     32-- The following set of changes were applied to update the gpc1 database on 2008/02/07
     33--
    3434
    3535alter table calDB change column catdir dvodb varchar(64);
     
    3838alter table camProcessedExp change column fwhm_range fwhm_minor float;
    3939
    40 # In order to keep the column order correct this is split up below
    41 #alter table camProcessedExp add column ( bias float, bias_stdev float, fringe_0 float, fringe_1 float, fringe_2 float, ap_resid float, ap_resid_stdev float, dtime_detrend float, dtime_photom float, dtime_astrom float, hostname varchar(64) );
     40-- In order to keep the column order correct this is split up below
     41--alter table camProcessedExp add column ( bias float, bias_stdev float, fringe_0 float, fringe_1 float, fringe_2 float, ap_resid float, ap_resid_stdev float, dtime_detrend float, dtime_photom float, dtime_astrom float, hostname varchar(64) );
    4242
    4343alter table camProcessedExp add column bias float after bg_mean_stdev;
     
    5757alter table chipProcessedImfile change column fwhm_range fwhm_minor float;
    5858
    59 # In order to keep the column order correct this is split up below
    60 #alter table chipProcessedImfile add column ( zp_mean float, zp_stdev float, dtime_detrend float, dtime_photom float, dtime_astrom float, hostname varchar(64) );
     59-- In order to keep the column order correct this is split up below
     60-- alter table chipProcessedImfile add column ( zp_mean float, zp_stdev float, dtime_detrend float, dtime_photom float, dtime_astrom float, hostname varchar(64) );
    6161
    6262alter table chipProcessedImfile add column zp_mean float after ap_resid_stdev;
     
    6868
    6969
    70 # In order to keep the column order correct this is split up below
    71 #alter table diffSkyfile add column ( dtime_diff float, hostname varchar(64) );
     70-- In order to keep the column order correct this is split up below
     71-- alter table diffSkyfile add column ( dtime_diff float, hostname varchar(64) );
    7272alter table diffSkyfile add column dtime_diff float after bg_stdev;
    7373alter table diffSkyfile add column hostname varchar(64) after dtime_diff;
     
    7878alter table stackSumSkyfile change column good_frac good_frac float;
    7979
    80 #alter table stackSumSkyfile add column ( dtime_stack float, hostname varchar(64) );
     80-- alter table stackSumSkyfile add column ( dtime_stack float, hostname varchar(64) );
    8181alter table stackSumSkyfile add column dtime_stack float after bg_stdev;
    8282alter table stackSumSkyfile add column hostname varchar(64) after dtime_stack;
     
    112112alter table pzDoneImfile add column fault smallint(6);
    113113
    114 ######## end of changes to 1.1.29
     114-- end of changes to 1.1.29
    115115
    116116alter table newExp add column label varchar(64) after end_stage;
    117117
    118 ### 1.1.30
     118-- 1.1.30
    119119
    120120drop table pzDoneExp;
     
    124124alter table flatcorrRun add column region VARCHAR(255) after stats;
    125125
    126 ### 1.1.31
     126-- 1.1.31
    127127
    128128ALTER TABLE warpRun ADD COLUMN cam_id BIGINT AFTER warp_id;
     
    139139DROP TABLE warpInputExp;
    140140
    141 ### 1.1.32
     141-- 1.1.32
    142142ALTER TABLE warpRun ADD COLUMN label VARCHAR(64) AFTER workdir_state;
    143143ALTER TABLE warpRun ADD KEY(label);
    144144CREATE TABLE warpMask (label VARCHAR(64), PRIMARY KEY(label)) ENGINE=innodb;
    145145
    146 ### 1.1.33
     146-- 1.1.33
    147147ALTER TABLE summitExp ADD COLUMN fault smallint(6) NOT NULL AFTER imfiles;
    148148ALTER TABLE summitExp ADD KEY(fault);
    149149
    150 ### 1.1.34
     150-- 1.1.34
    151151ALTER TABLE rawImfile ADD KEY(exp_name);
    152152
    153 ### 1.1.35
     153-- 1.1.35
    154154ALTER TABLE rawImfile ADD INDEX UNQIUE(exp_id, tmp_class_id);
    155155
    156 ### 1.1.36
     156-- 1.1.36
    157157ALTER TABLE warpSkyfile ADD COLUMN (xmin INT, xmax INT, ymin INT, ymax INT);
    158158ALTER TABLE diffSkyfile ADD COLUMN (stamps_num INT, stamps_rms FLOAT, sources INT);
    159159ALTER TABLE rawImfile ADD COLUMN hostname VARCHAR(64) AFTER solang;
    160160ALTER TABLE rawExp ADD COLUMN hostname VARCHAR(64) AFTER object;
     161
     162-- 1.1.37
     163ALTER TABLE pzDataStore ADD COLUMN epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER uri;
     164ALTER TABLE summitExp ADD COLUMN epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER fault;
     165ALTER TABLE summitImfile ADD COLUMN epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER uri;
     166ALTER TABLE pzDownloadExp ADD COLUMN epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER state;
     167ALTER TABLE pzDownloadImfile ADD COLUMN epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER fault;
     168ALTER TABLE newExp ADD COLUMN epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER label;
     169ALTER TABLE newImfile ADD COLUMN epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER uri;
     170ALTER TABLE rawExp ADD COLUMN epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER fault;
     171ALTER TABLE rawImfile ADD COLUMN epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER fault;
     172
     173
  • trunk/dbconfig/config.md

    r17794 r17872  
    22    pkg_name        STR     ippdb
    33    pkg_namespace   STR     ippdb
    4     pkg_version     STR     1.1.36
     4    pkg_version     STR     1.1.37
    55END
  • trunk/dbconfig/tasks.md

    r17839 r17872  
    1 # $Id: tasks.md,v 1.153 2008-05-29 02:36:29 jhoblitt Exp $
     1# $Id: tasks.md,v 1.154 2008-05-31 02:19:17 jhoblitt Exp $
    22
    33# this table records all exposure ID ever seen from the summit
     
    2424    telescope   STR         64      # Primary Key
    2525    uri         STR         255
     26    epoch       UTC         0001-01-01T00:00:00Z
    2627END
    2728
     
    3839    imfiles     S32         0
    3940    fault       S16         0       # Key NOT NULL
     41    epoch       UTC         0001-01-01T00:00:00Z
    4042END
    4143
     
    5355    class_id    STR         64      # Primary Key
    5456    uri         STR         255
     57    epoch       UTC         0001-01-01T00:00:00Z
    5558END
    5659
     
    6265    telescope   STR         64      # Primary Key
    6366    state       STR         64      # Key
     67    epoch       UTC         0001-01-01T00:00:00Z
    6468END
    6569
     
    7276    uri         STR         255
    7377    fault       S16         0       # Key NOT NULL
     78    epoch       UTC         0001-01-01T00:00:00Z
    7479END
    7580
     
    8792    end_stage   STR         64      # Key
    8893    label       STR         64      # Key
     94    epoch       UTC         0001-01-01T00:00:00Z
    8995END
    9096
     
    95101    tmp_class_id STR        64      # Primary Key
    96102    uri         STR         255
     103    epoch       UTC         0001-01-01T00:00:00Z
    97104END
    98105
     
    156163    hostname    STR         64
    157164    fault       S16         0       # Key NOT NULL
     165    epoch       UTC         0001-01-01T00:00:00Z
    158166END
    159167
     
    215223    hostname    STR         64
    216224    fault       S16         0       # Key NOT NULL
    217 END
     225    epoch       UTC         0001-01-01T00:00:00Z
     226END
  • trunk/ippTools/configure.ac

    r17794 r17872  
    1818PKG_CHECK_MODULES([PSLIB], [pslib >= 1.1.0])
    1919PKG_CHECK_MODULES([PSMODULES], [psmodules >= 1.1.0])
    20 PKG_CHECK_MODULES([IPPDB], [ippdb >= 1.1.36])
     20PKG_CHECK_MODULES([IPPDB], [ippdb >= 1.1.37])
    2121
    2222PXTOOLS_CFLAGS="${PSLIB_CFLAGS=} ${PSMODULES_CFLAGS=} ${IPPDB_CFLAGS=}"
  • trunk/ippTools/share/pxadmin_create_tables.sql

    r17856 r17872  
    33    telescope VARCHAR(64),
    44    uri VARCHAR(255),
     5    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    56    PRIMARY KEY(camera, telescope)
    67) ENGINE=innodb DEFAULT CHARSET=latin1;
     
    1516    imfiles INT,
    1617    fault SMALLINT NOT NULL,
     18    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    1719    PRIMARY KEY(exp_name, camera, telescope),
    1820    KEY(fault))
     
    2931    class_id VARCHAR(64),
    3032    uri VARCHAR(255),
     33    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    3134    PRIMARY KEY(exp_name, camera, telescope, class, class_id),
    3235    KEY(file_id),
     
    4043    telescope VARCHAR(64),
    4144    state VARCHAR(64),
     45    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    4246    PRIMARY KEY(exp_name, camera, telescope),
    4347    KEY(state),
     
    5458    uri VARCHAR(255),
    5559    fault SMALLINT NOT NULL,
     60    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    5661    PRIMARY KEY(exp_name, camera, telescope, class, class_id),
    5762    KEY(fault),
     
    6166        REFERENCES  summitImfile(exp_name, camera, telescope, class, class_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    6267
    63 CREATE TABLE newExp (exp_id BIGINT AUTO_INCREMENT, tmp_exp_name VARCHAR(64), tmp_camera VARCHAR(64), tmp_telescope VARCHAR(64), state VARCHAR(64), workdir VARCHAR(255), workdir_state VARCHAR(64), reduction VARCHAR(64), dvodb VARCHAR(255), tess_id VARCHAR(64), end_stage VARCHAR(64), label VARCHAR(64), PRIMARY KEY(exp_id), KEY(exp_id), KEY(tmp_exp_name), KEY(tmp_camera), KEY(tmp_telescope), KEY(state), KEY(workdir_state), KEY(end_stage), KEY(label)) ENGINE=innodb DEFAULT CHARSET=latin1;
    64 CREATE TABLE newImfile (exp_id BIGINT, tmp_class_id VARCHAR(64), uri VARCHAR(255), PRIMARY KEY(exp_id, tmp_class_id), FOREIGN KEY (exp_id)  REFERENCES  newExp(exp_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    65 CREATE TABLE rawExp (exp_id BIGINT, exp_name VARCHAR(64), camera VARCHAR(64), telescope VARCHAR(64), dateobs DATETIME, exp_tag VARCHAR(255), exp_type VARCHAR(64), filelevel VARCHAR(64), workdir VARCHAR(255), reduction VARCHAR(64), dvodb VARCHAR(255), tess_id VARCHAR(64), end_stage VARCHAR(64), filter VARCHAR(64), comment VARCHAR(80), airmass FLOAT, ra DOUBLE, decl DOUBLE, exp_time FLOAT, sat_pixel_frac FLOAT, bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, alt DOUBLE, az DOUBLE, ccd_temp FLOAT, posang DOUBLE, m1_x FLOAT, m1_y FLOAT, m1_z FLOAT, m1_tip FLOAT, m1_tilt FLOAT, m2_x FLOAT, m2_y FLOAT, m2_z FLOAT, m2_tip FLOAT, m2_tilt FLOAT, env_temperature FLOAT, env_humidity FLOAT, env_wind_speed FLOAT, env_wind_dir FLOAT, teltemp_m1 FLOAT, teltemp_m1cell FLOAT, teltemp_m2 FLOAT, teltemp_spider FLOAT, teltemp_truss FLOAT, teltemp_extra FLOAT, pon_time FLOAT, user_1 DOUBLE, user_2 DOUBLE, user_3 DOUBLE, user_4 DOUBLE, user_5 DOUBLE, object VARCHAR(64), solang FLOAT, hostname VARCHAR(64), fault SMALLINT NOT NULL, PRIMARY KEY(exp_id), KEY(exp_name), KEY(end_stage), KEY(fault), FOREIGN KEY (exp_id)  REFERENCES  newExp(exp_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    66 CREATE TABLE rawImfile (exp_id BIGINT, exp_name VARCHAR(64), camera VARCHAR(64), telescope VARCHAR(64), dateobs DATETIME, tmp_class_id VARCHAR(64), class_id VARCHAR(64), uri VARCHAR(255), exp_type VARCHAR(64), filelevel VARCHAR(64), filter VARCHAR(64), comment VARCHAR(80), airmass FLOAT, ra DOUBLE, decl DOUBLE, exp_time FLOAT, sat_pixel_frac FLOAT, bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, alt DOUBLE, az DOUBLE, ccd_temp FLOAT, posang DOUBLE, m1_x FLOAT, m1_y FLOAT, m1_z FLOAT, m1_tip FLOAT, m1_tilt FLOAT, m2_x FLOAT, m2_y FLOAT, m2_z FLOAT, m2_tip FLOAT, m2_tilt FLOAT, env_temperature FLOAT, env_humidity FLOAT, env_wind_speed FLOAT, env_wind_dir FLOAT, teltemp_m1 FLOAT, teltemp_m1cell FLOAT, teltemp_m2 FLOAT, teltemp_spider FLOAT, teltemp_truss FLOAT, teltemp_extra FLOAT, pon_time FLOAT, user_1 DOUBLE, user_2 DOUBLE, user_3 DOUBLE, user_4 DOUBLE, user_5 DOUBLE, object VARCHAR(64), hostname VARCHAR(64), fault SMALLINT NOT NULL, PRIMARY KEY(exp_id, class_id), KEY(tmp_class_id), KEY(fault), UNIQUE KEY(exp_id, tmp_class_id), FOREIGN KEY (exp_id, tmp_class_id)  REFERENCES  newImfile(exp_id, tmp_class_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
     68CREATE TABLE newExp (
     69    exp_id BIGINT AUTO_INCREMENT,
     70    tmp_exp_name VARCHAR(64),
     71    tmp_camera VARCHAR(64),
     72    tmp_telescope VARCHAR(64),
     73    state VARCHAR(64),
     74    workdir VARCHAR(255),
     75    workdir_state VARCHAR(64),
     76    reduction VARCHAR(64),
     77    dvodb VARCHAR(255),
     78    tess_id VARCHAR(64),
     79    end_stage VARCHAR(64),
     80    label VARCHAR(64),
     81    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
     82    PRIMARY KEY(exp_id),
     83    KEY(exp_id),
     84    KEY(tmp_exp_name),
     85    KEY(tmp_camera),
     86    KEY(tmp_telescope),
     87    KEY(state),
     88    KEY(workdir_state),
     89    KEY(end_stage),
     90    KEY(label)
     91) ENGINE=innodb DEFAULT CHARSET=latin1;
     92
     93CREATE TABLE newImfile (
     94    exp_id BIGINT,
     95    tmp_class_id VARCHAR(64),
     96    uri VARCHAR(255),
     97    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
     98    PRIMARY KEY(exp_id, tmp_class_id),
     99    FOREIGN KEY (exp_id)
     100        REFERENCES  newExp(exp_id))
     101ENGINE=innodb DEFAULT CHARSET=latin1;
     102
     103CREATE TABLE rawExp (
     104    exp_id BIGINT,
     105    exp_name VARCHAR(64),
     106    camera VARCHAR(64),
     107    telescope VARCHAR(64),
     108    dateobs DATETIME,
     109    exp_tag VARCHAR(255),
     110    exp_type VARCHAR(64),
     111    filelevel VARCHAR(64),
     112    workdir VARCHAR(255),
     113    reduction VARCHAR(64),
     114    dvodb VARCHAR(255),
     115    tess_id VARCHAR(64),
     116    end_stage VARCHAR(64),
     117    filter VARCHAR(64),
     118    comment VARCHAR(80),
     119    airmass FLOAT,
     120    ra DOUBLE,
     121    decl DOUBLE,
     122    exp_time FLOAT,
     123    sat_pixel_frac FLOAT,
     124    bg DOUBLE,
     125    bg_stdev DOUBLE,
     126    bg_mean_stdev DOUBLE,
     127    alt DOUBLE,
     128    az DOUBLE,
     129    ccd_temp FLOAT,
     130    posang DOUBLE,
     131    m1_x FLOAT,
     132    m1_y FLOAT,
     133    m1_z FLOAT,
     134    m1_tip FLOAT,
     135    m1_tilt FLOAT,
     136    m2_x FLOAT,
     137    m2_y FLOAT,
     138    m2_z FLOAT,
     139    m2_tip FLOAT,
     140    m2_tilt FLOAT,
     141    env_temperature FLOAT,
     142    env_humidity FLOAT,
     143    env_wind_speed FLOAT,
     144    env_wind_dir FLOAT,
     145    teltemp_m1 FLOAT,
     146    teltemp_m1cell FLOAT,
     147    teltemp_m2 FLOAT,
     148    teltemp_spider FLOAT,
     149    teltemp_truss FLOAT,
     150    teltemp_extra FLOAT,
     151    pon_time FLOAT,
     152    user_1 DOUBLE,
     153    user_2 DOUBLE,
     154    user_3 DOUBLE,
     155    user_4 DOUBLE,
     156    user_5 DOUBLE,
     157    object VARCHAR(64),
     158    solang FLOAT,
     159    hostname VARCHAR(64),
     160    fault SMALLINT NOT NULL,
     161    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
     162    PRIMARY KEY(exp_id),
     163    KEY(exp_name),
     164    KEY(end_stage),
     165    KEY(fault),
     166    FOREIGN KEY (exp_id)
     167        REFERENCES  newExp(exp_id))
     168ENGINE=innodb DEFAULT CHARSET=latin1;
     169
     170CREATE TABLE rawImfile (
     171    exp_id BIGINT,
     172    exp_name VARCHAR(64),
     173    camera VARCHAR(64),
     174    telescope VARCHAR(64),
     175    dateobs DATETIME,
     176    tmp_class_id VARCHAR(64),
     177    class_id VARCHAR(64),
     178    uri VARCHAR(255),
     179    exp_type VARCHAR(64),
     180    filelevel VARCHAR(64),
     181    filter VARCHAR(64),
     182    comment VARCHAR(80),
     183    airmass FLOAT,
     184    ra DOUBLE,
     185    decl DOUBLE,
     186    exp_time FLOAT,
     187    sat_pixel_frac FLOAT,
     188    bg DOUBLE,
     189    bg_stdev DOUBLE,
     190    bg_mean_stdev DOUBLE,
     191    alt DOUBLE,
     192    az DOUBLE,
     193    ccd_temp FLOAT,
     194    posang DOUBLE,
     195    m1_x FLOAT,
     196    m1_y FLOAT,
     197    m1_z FLOAT,
     198    m1_tip FLOAT,
     199    m1_tilt FLOAT,
     200    m2_x FLOAT,
     201    m2_y FLOAT,
     202    m2_z FLOAT,
     203    m2_tip FLOAT,
     204    m2_tilt FLOAT,
     205    env_temperature FLOAT,
     206    env_humidity FLOAT,
     207    env_wind_speed FLOAT,
     208    env_wind_dir FLOAT,
     209    teltemp_m1 FLOAT,
     210    teltemp_m1cell FLOAT,
     211    teltemp_m2 FLOAT,
     212    teltemp_spider FLOAT,
     213    teltemp_truss FLOAT,
     214    teltemp_extra FLOAT,
     215    pon_time FLOAT,
     216    user_1 DOUBLE,
     217    user_2 DOUBLE,
     218    user_3 DOUBLE,
     219    user_4 DOUBLE,
     220    user_5 DOUBLE,
     221    object VARCHAR(64),
     222    hostname VARCHAR(64),
     223    fault SMALLINT NOT NULL,
     224    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
     225    PRIMARY KEY(exp_id, class_id),
     226    KEY(tmp_class_id),
     227    KEY(fault),
     228    UNIQUE KEY(exp_id, tmp_class_id),
     229    FOREIGN KEY (exp_id, tmp_class_id)
     230        REFERENCES newImfile(exp_id, tmp_class_id))
     231ENGINE=innodb DEFAULT CHARSET=latin1;
     232
    67233CREATE TABLE guidePendingExp (guide_id BIGINT AUTO_INCREMENT, exp_id BIGINT, recipe VARCHAR(64), PRIMARY KEY(guide_id), KEY(guide_id), KEY(exp_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    68 CREATE TABLE chipRun (chip_id BIGINT AUTO_INCREMENT, exp_id BIGINT, state VARCHAR(64), workdir VARCHAR(255), workdir_state VARCHAR(64), label VARCHAR(64), reduction VARCHAR(64), expgroup VARCHAR(64), dvodb VARCHAR(255), tess_id VARCHAR(64), end_stage VARCHAR(64), PRIMARY KEY(chip_id), KEY(chip_id), KEY(exp_id), KEY(state), KEY(workdir_state), KEY(label), KEY(expgroup), KEY(end_stage), INDEX(chip_id, exp_id), FOREIGN KEY  (exp_id)  REFERENCES  rawExp(exp_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    69 CREATE TABLE chipProcessedImfile (chip_id BIGINT, exp_id BIGINT, class_id VARCHAR(64), uri VARCHAR(255), bg FLOAT, bg_stdev FLOAT, bg_mean_stdev FLOAT, bias FLOAT, bias_stdev FLOAT, fringe_0 FLOAT, fringe_1 FLOAT, fringe_2 FLOAT, sigma_ra FLOAT, sigma_dec FLOAT, ap_resid FLOAT, ap_resid_stdev FLOAT, zp_mean FLOAT, zp_stdev FLOAT, fwhm_major FLOAT, fwhm_minor FLOAT, dtime_detrend FLOAT, dtime_photom FLOAT, dtime_astrom FLOAT, hostname VARCHAR(64), n_stars INT, n_extended INT, n_cr INT, n_astrom INT, path_base VARCHAR(255), fault SMALLINT NOT NULL, PRIMARY KEY(chip_id, exp_id, class_id), KEY(fault), FOREIGN KEY  (chip_id, exp_id)  REFERENCES  chipRun(chip_id, exp_id), FOREIGN KEY  (exp_id, class_id)  REFERENCES  rawImfile(exp_id, class_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    70 CREATE TABLE chipMask (label VARCHAR(64), PRIMARY KEY(label)) ENGINE=innodb DEFAULT CHARSET=latin1;
    71 CREATE TABLE camRun (cam_id BIGINT AUTO_INCREMENT, chip_id BIGINT, state VARCHAR(64), workdir VARCHAR(255), workdir_state VARCHAR(64), label VARCHAR(64), reduction VARCHAR(64), expgroup VARCHAR(64), dvodb VARCHAR(255), tess_id VARCHAR(64), end_stage VARCHAR(64), PRIMARY KEY(cam_id), KEY(cam_id), KEY(chip_id), KEY(state), KEY(workdir_state), KEY(label), KEY(expgroup), KEY(end_stage), INDEX(cam_id, chip_id), FOREIGN KEY (chip_id)  REFERENCES  chipRun(chip_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    72 CREATE TABLE camProcessedExp (cam_id BIGINT, chip_id BIGINT, uri VARCHAR(255), bg FLOAT, bg_stdev FLOAT, bg_mean_stdev FLOAT, bias FLOAT, bias_stdev FLOAT, fringe_0 FLOAT, fringe_1 FLOAT, fringe_2 FLOAT, sigma_ra FLOAT, sigma_dec FLOAT, ap_resid FLOAT, ap_resid_stdev FLOAT, zp_mean FLOAT, zp_stdev FLOAT, fwhm_major FLOAT, fwhm_minor FLOAT, dtime_detrend FLOAT, dtime_photom FLOAT, dtime_astrom FLOAT, hostname VARCHAR(64), n_stars INT, n_extended INT, n_cr INT, n_astrom INT, path_base VARCHAR(255), fault SMALLINT NOT NULL, PRIMARY KEY(cam_id, chip_id), KEY(fault), FOREIGN KEY (cam_id, chip_id)  REFERENCES  camRun(cam_id, chip_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    73 CREATE TABLE camMask (label VARCHAR(64), PRIMARY KEY(label)) ENGINE=innodb DEFAULT CHARSET=latin1;
    74 CREATE TABLE detRun (det_id BIGINT AUTO_INCREMENT, iteration INT, det_type VARCHAR(64), mode VARCHAR(64), state VARCHAR(64), filelevel VARCHAR(64), workdir VARCHAR(255), camera VARCHAR(64), telescope VARCHAR(64), exp_type VARCHAR(64), reduction VARCHAR(64), filter VARCHAR(64), airmass_min FLOAT, airmass_max FLOAT, exp_time_min FLOAT, exp_time_max FLOAT, ccd_temp_min FLOAT, ccd_temp_max FLOAT, posang_min DOUBLE, posang_max DOUBLE, registered DATETIME, time_begin DATETIME, time_end DATETIME, use_begin DATETIME, use_end DATETIME, solang_min FLOAT, solang_max FLOAT, label VARCHAR(64), parent INT, PRIMARY KEY(det_id), KEY(det_id), KEY(iteration), KEY(det_type), KEY(mode), KEY(state), KEY(label), KEY(parent), INDEX(det_id, iteration)) ENGINE=innodb DEFAULT CHARSET=latin1;
    75 CREATE TABLE detInputExp (det_id BIGINT, iteration INT, exp_id BIGINT, include TINYINT, PRIMARY KEY(det_id, iteration, exp_id), INDEX(det_id, exp_id), INDEX(det_id, iteration), FOREIGN KEY (det_id)  REFERENCES  detRun(det_id), FOREIGN KEY (exp_id)  REFERENCES  rawExp(exp_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    76 CREATE TABLE detProcessedImfile (det_id BIGINT, exp_id BIGINT, class_id VARCHAR(64), uri VARCHAR(255), recipe VARCHAR(64), bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, fringe_0 DOUBLE, fringe_1 DOUBLE, fringe_2 DOUBLE, user_1 DOUBLE, user_2 DOUBLE, user_3 DOUBLE, user_4 DOUBLE, user_5 DOUBLE, path_base VARCHAR(255), fault SMALLINT NOT NULL, PRIMARY KEY(det_id, exp_id, class_id), KEY(fault), INDEX(det_id, class_id), INDEX(det_id, exp_id), FOREIGN KEY (det_id, exp_id)  REFERENCES  detInputExp(det_id, exp_id), FOREIGN KEY (exp_id, class_id)  REFERENCES  rawImfile(exp_id, class_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    77 CREATE TABLE detProcessedExp (det_id BIGINT, exp_id BIGINT, recipe VARCHAR(64), bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, fringe_0 DOUBLE, fringe_1 DOUBLE, fringe_2 DOUBLE, user_1 DOUBLE, user_2 DOUBLE, user_3 DOUBLE, user_4 DOUBLE, user_5 DOUBLE, path_base VARCHAR(255), fault SMALLINT NOT NULL, PRIMARY KEY(det_id, exp_id), KEY(fault), FOREIGN KEY (det_id, exp_id)  REFERENCES  detInputExp(det_id, exp_id), FOREIGN KEY (det_id, exp_id)  REFERENCES  detProcessedImfile(det_id, exp_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    78 CREATE TABLE detStackedImfile (det_id BIGINT, iteration INT, class_id VARCHAR(64), uri VARCHAR(255), recipe VARCHAR(64), bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, user_1 DOUBLE, user_2 DOUBLE, user_3 DOUBLE, user_4 DOUBLE, user_5 DOUBLE, fault SMALLINT NOT NULL, PRIMARY KEY(det_id, iteration, class_id), KEY(fault), FOREIGN KEY (det_id, iteration)  REFERENCES  detInputExp(det_id, iteration), FOREIGN KEY (det_id, class_id)  REFERENCES  detProcessedImfile(det_id, class_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    79 CREATE TABLE detNormalizedStatImfile (det_id BIGINT, iteration INT, class_id VARCHAR(64), norm FLOAT, fault SMALLINT NOT NULL, PRIMARY KEY(det_id, iteration, class_id), KEY(fault), FOREIGN KEY (det_id, iteration)  REFERENCES  detInputExp(det_id, iteration), FOREIGN KEY (det_id, iteration, class_id)  REFERENCES  detStackedImfile(det_id, iteration, class_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    80 CREATE TABLE detNormalizedImfile (det_id BIGINT, iteration INT, class_id VARCHAR(64), uri VARCHAR(255), bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, user_1 DOUBLE, user_2 DOUBLE, user_3 DOUBLE, user_4 DOUBLE, user_5 DOUBLE, path_base VARCHAR(255), fault SMALLINT NOT NULL, PRIMARY KEY(det_id, iteration, class_id), KEY(fault), INDEX(det_id, iteration), FOREIGN KEY (det_id)  REFERENCES  detInputExp(det_id), FOREIGN KEY (det_id, iteration, class_id)  REFERENCES  detNormalizedStatImfile(det_id, iteration, class_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    81 CREATE TABLE detNormalizedExp (det_id BIGINT, iteration INT, recipe VARCHAR(64), bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, user_1 DOUBLE, user_2 DOUBLE, user_3 DOUBLE, user_4 DOUBLE, user_5 DOUBLE, path_base VARCHAR(255), fault SMALLINT NOT NULL, PRIMARY KEY(det_id, iteration), KEY(fault), FOREIGN KEY (det_id, iteration)  REFERENCES  detInputExp(det_id, iteration), FOREIGN KEY (det_id, iteration)  REFERENCES  detNormalizedImfile(det_id, iteration)) ENGINE=innodb DEFAULT CHARSET=latin1;
    82 CREATE TABLE detResidImfile (det_id BIGINT, iteration INT, exp_id BIGINT, class_id VARCHAR(64), uri VARCHAR(255), recipe VARCHAR(64), bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, bg_skewness DOUBLE, bg_kurtosis DOUBLE, bin_stdev DOUBLE, fringe_0 DOUBLE, fringe_1 DOUBLE, fringe_2 DOUBLE, fringe_resid_0 DOUBLE, fringe_resid_1 DOUBLE, fringe_resid_2 DOUBLE, user_1 DOUBLE, user_2 DOUBLE, user_3 DOUBLE, user_4 DOUBLE, user_5 DOUBLE, path_base VARCHAR(255), fault SMALLINT NOT NULL, PRIMARY KEY(det_id, iteration, exp_id, class_id), KEY(fault), INDEX(det_id, iteration, exp_id), FOREIGN KEY (det_id, iteration, exp_id)  REFERENCES  detInputExp(det_id, iteration, exp_id), FOREIGN KEY (det_id, exp_id, class_id)  REFERENCES  detProcessedImfile(det_id, exp_id, class_id), FOREIGN KEY (det_id, iteration)  REFERENCES  detNormalizedExp(det_id, iteration)) ENGINE=innodb DEFAULT CHARSET=latin1;
     234
     235CREATE TABLE chipRun (
     236    chip_id BIGINT AUTO_INCREMENT,
     237    exp_id BIGINT,
     238    state VARCHAR(64),
     239    workdir VARCHAR(255),
     240    workdir_state VARCHAR(64),
     241    label VARCHAR(64),
     242    reduction VARCHAR(64),
     243     expgroup VARCHAR(64),
     244    dvodb VARCHAR(255),
     245    tess_id VARCHAR(64),
     246    end_stage VARCHAR(64),
     247    PRIMARY KEY(chip_id),
     248    KEY(chip_id), KEY(exp_id),
     249    KEY(state),
     250    KEY(workdir_state),
     251    KEY(label),
     252    KEY(expgroup),
     253    KEY(end_stage),
     254    INDEX(chip_id, exp_id),
     255    FOREIGN KEY (exp_id) 
     256        REFERENCES rawExp(exp_id))
     257ENGINE=innodb DEFAULT CHARSET=latin1;
     258
     259CREATE TABLE chipProcessedImfile (
     260    chip_id BIGINT,
     261    exp_id BIGINT,
     262    class_id VARCHAR(64),
     263    uri VARCHAR(255),
     264    bg FLOAT,
     265    bg_stdev FLOAT,
     266    bg_mean_stdev FLOAT,
     267    bias FLOAT,
     268    bias_stdev FLOAT,
     269    fringe_0 FLOAT,
     270    fringe_1 FLOAT,
     271    fringe_2 FLOAT,
     272    sigma_ra FLOAT,
     273    sigma_dec FLOAT,
     274    ap_resid FLOAT,
     275    ap_resid_stdev FLOAT,
     276    zp_mean FLOAT,
     277    zp_stdev FLOAT,
     278    fwhm_major FLOAT,
     279    fwhm_minor FLOAT,
     280    dtime_detrend FLOAT,
     281    dtime_photom FLOAT,
     282    dtime_astrom FLOAT,
     283    hostname VARCHAR(64),
     284    n_stars INT,
     285    n_extended INT,
     286    n_cr INT,
     287    n_astrom INT,
     288    path_base VARCHAR(255),
     289    fault SMALLINT NOT NULL,
     290    PRIMARY KEY(chip_id, exp_id, class_id),
     291    KEY(fault),
     292    FOREIGN KEY (chip_id, exp_id) 
     293        REFERENCES  chipRun(chip_id, exp_id),
     294    FOREIGN KEY (exp_id, class_id)
     295        REFERENCES  rawImfile(exp_id, class_id))
     296ENGINE=innodb DEFAULT CHARSET=latin1;
     297
     298CREATE TABLE chipMask (
     299    label VARCHAR(64),
     300    PRIMARY KEY(label))
     301ENGINE=innodb DEFAULT CHARSET=latin1;
     302
     303CREATE TABLE camRun (
     304    cam_id BIGINT AUTO_INCREMENT,
     305    chip_id BIGINT,
     306    state VARCHAR(64),
     307    workdir VARCHAR(255),
     308    workdir_state VARCHAR(64),
     309    label VARCHAR(64),
     310    reduction VARCHAR(64),
     311    expgroup VARCHAR(64),
     312    dvodb VARCHAR(255),
     313    tess_id VARCHAR(64),
     314    end_stage VARCHAR(64),
     315    PRIMARY KEY(cam_id),
     316    KEY(cam_id),
     317    KEY(chip_id),
     318    KEY(state),
     319    KEY(workdir_state),
     320    KEY(label),
     321    KEY(expgroup),
     322    KEY(end_stage),
     323    INDEX(cam_id, chip_id),
     324    FOREIGN KEY (chip_id) 
     325        REFERENCES chipRun(chip_id))
     326ENGINE=innodb DEFAULT CHARSET=latin1;
     327
     328CREATE TABLE camProcessedExp (
     329    cam_id BIGINT,
     330    chip_id BIGINT,
     331    uri VARCHAR(255),
     332    bg FLOAT,
     333    bg_stdev FLOAT,
     334    bg_mean_stdev FLOAT,
     335    bias FLOAT,
     336    bias_stdev FLOAT,
     337    fringe_0 FLOAT,
     338    fringe_1 FLOAT,
     339    fringe_2 FLOAT,
     340    sigma_ra FLOAT,
     341    sigma_dec FLOAT,
     342    ap_resid FLOAT,
     343    ap_resid_stdev FLOAT,
     344    zp_mean FLOAT,
     345    zp_stdev FLOAT,
     346    fwhm_major FLOAT,
     347    fwhm_minor FLOAT,
     348    dtime_detrend FLOAT,
     349    dtime_photom FLOAT,
     350    dtime_astrom FLOAT,
     351    hostname VARCHAR(64),
     352    n_stars INT,
     353    n_extended INT,
     354    n_cr INT,
     355    n_astrom INT,
     356    path_base VARCHAR(255),
     357    fault SMALLINT NOT NULL,
     358    PRIMARY KEY(cam_id, chip_id),
     359    KEY(fault),
     360    FOREIGN KEY (cam_id, chip_id) 
     361    REFERENCES camRun(cam_id, chip_id))
     362ENGINE=innodb DEFAULT CHARSET=latin1;
     363
     364CREATE TABLE camMask (
     365    label VARCHAR(64),
     366    PRIMARY KEY(label))
     367ENGINE=innodb DEFAULT CHARSET=latin1;
     368
     369CREATE TABLE detRun (
     370    det_id BIGINT AUTO_INCREMENT,
     371    iteration INT,
     372    det_type VARCHAR(64),
     373    mode VARCHAR(64),
     374    state VARCHAR(64),
     375    filelevel VARCHAR(64),
     376    workdir VARCHAR(255),
     377    camera VARCHAR(64),
     378    telescope VARCHAR(64),
     379    exp_type VARCHAR(64),
     380    reduction VARCHAR(64),
     381    filter VARCHAR(64),
     382    airmass_min FLOAT,
     383    airmass_max FLOAT,
     384    exp_time_min FLOAT,
     385    exp_time_max FLOAT,
     386    ccd_temp_min FLOAT,
     387    ccd_temp_max FLOAT,
     388    posang_min DOUBLE,
     389    posang_max DOUBLE,
     390    registered DATETIME,
     391    time_begin DATETIME,
     392    time_end DATETIME,
     393    use_begin DATETIME,
     394    use_end DATETIME,
     395    solang_min FLOAT,
     396    solang_max FLOAT,
     397    label VARCHAR(64),
     398    parent INT,
     399    PRIMARY KEY(det_id),
     400    KEY(det_id),
     401    KEY(iteration),
     402    KEY(det_type),
     403    KEY(mode),
     404    KEY(state),
     405    KEY(label),
     406    KEY(parent),
     407    INDEX(det_id, iteration))
     408ENGINE=innodb DEFAULT CHARSET=latin1;
     409
     410CREATE TABLE detInputExp (
     411det_id BIGINT,
     412iteration INT,
     413exp_id BIGINT,
     414include TINYINT,
     415PRIMARY KEY(det_id, iteration, exp_id),
     416INDEX(det_id, exp_id),
     417INDEX(det_id, iteration),
     418FOREIGN KEY (det_id) 
     419REFERENCES  detRun(det_id),
     420FOREIGN KEY (exp_id) 
     421REFERENCES  rawExp(exp_id))
     422ENGINE=innodb DEFAULT CHARSET=latin1;
     423
     424CREATE TABLE detProcessedImfile (
     425    det_id BIGINT,
     426    exp_id BIGINT,
     427    class_id VARCHAR(64),
     428    uri VARCHAR(255),
     429    recipe VARCHAR(64),
     430    bg DOUBLE,
     431    bg_stdev DOUBLE,
     432    bg_mean_stdev DOUBLE,
     433    fringe_0 DOUBLE,
     434    fringe_1 DOUBLE,
     435    fringe_2 DOUBLE,
     436    user_1 DOUBLE,
     437    user_2 DOUBLE,
     438    user_3 DOUBLE,
     439    user_4 DOUBLE,
     440    user_5 DOUBLE,
     441    path_base VARCHAR(255),
     442    fault SMALLINT NOT NULL,
     443    PRIMARY KEY(det_id, exp_id, class_id),
     444    KEY(fault),
     445    INDEX(det_id, class_id),
     446    INDEX(det_id, exp_id),
     447    FOREIGN KEY (det_id, exp_id) 
     448        REFERENCES  detInputExp(det_id, exp_id),
     449    FOREIGN KEY (exp_id, class_id) 
     450        REFERENCES  rawImfile(exp_id, class_id)
     451) ENGINE=innodb DEFAULT CHARSET=latin1;
     452
     453CREATE TABLE detProcessedExp (
     454    det_id BIGINT,
     455    exp_id BIGINT,
     456    recipe VARCHAR(64),
     457    bg DOUBLE,
     458    bg_stdev DOUBLE,
     459    bg_mean_stdev DOUBLE,
     460    fringe_0 DOUBLE,
     461    fringe_1 DOUBLE,
     462    fringe_2 DOUBLE,
     463    user_1 DOUBLE,
     464    user_2 DOUBLE,
     465    user_3 DOUBLE,
     466    user_4 DOUBLE,
     467    user_5 DOUBLE,
     468    path_base VARCHAR(255),
     469    fault SMALLINT NOT NULL,
     470    PRIMARY KEY(det_id, exp_id),
     471    KEY(fault),
     472    FOREIGN KEY (det_id, exp_id) 
     473        REFERENCES  detInputExp(det_id, exp_id),
     474    FOREIGN KEY (det_id, exp_id) 
     475        REFERENCES  detProcessedImfile(det_id, exp_id)
     476) ENGINE=innodb DEFAULT CHARSET=latin1;
     477
     478CREATE TABLE detStackedImfile (
     479    det_id BIGINT,
     480    iteration INT,
     481    class_id VARCHAR(64),
     482    uri VARCHAR(255),
     483    recipe VARCHAR(64),
     484    bg DOUBLE,
     485    bg_stdev DOUBLE,
     486    bg_mean_stdev DOUBLE,
     487    user_1 DOUBLE,
     488    user_2 DOUBLE,
     489    user_3 DOUBLE,
     490    user_4 DOUBLE,
     491    user_5 DOUBLE,
     492    fault SMALLINT NOT NULL,
     493    PRIMARY KEY(det_id, iteration, class_id),
     494    KEY(fault),
     495    FOREIGN KEY (det_id, iteration) 
     496        REFERENCES  detInputExp(det_id, iteration),
     497    FOREIGN KEY (det_id, class_id) 
     498        REFERENCES  detProcessedImfile(det_id, class_id)
     499) ENGINE=innodb DEFAULT CHARSET=latin1;
     500
     501CREATE TABLE detNormalizedStatImfile (
     502    det_id BIGINT,
     503    iteration INT,
     504    class_id VARCHAR(64),
     505    norm FLOAT,
     506    fault SMALLINT NOT NULL,
     507    PRIMARY KEY(det_id, iteration, class_id),
     508    KEY(fault),
     509    FOREIGN KEY (det_id, iteration) 
     510    REFERENCES  detInputExp(det_id, iteration),
     511    FOREIGN KEY (det_id, iteration, class_id) 
     512    REFERENCES  detStackedImfile(det_id, iteration, class_id)
     513) ENGINE=innodb DEFAULT CHARSET=latin1;
     514
     515CREATE TABLE detNormalizedImfile (
     516    det_id BIGINT,
     517    iteration INT,
     518    class_id VARCHAR(64),
     519    uri VARCHAR(255),
     520    bg DOUBLE,
     521    bg_stdev DOUBLE,
     522    bg_mean_stdev DOUBLE,
     523    user_1 DOUBLE,
     524    user_2 DOUBLE,
     525    user_3 DOUBLE,
     526    user_4 DOUBLE,
     527    user_5 DOUBLE,
     528    path_base VARCHAR(255),
     529    fault SMALLINT NOT NULL,
     530    PRIMARY KEY(det_id, iteration, class_id),
     531    KEY(fault),
     532    INDEX(det_id, iteration),
     533    FOREIGN KEY (det_id) 
     534    REFERENCES  detInputExp(det_id),
     535    FOREIGN KEY (det_id, iteration, class_id) 
     536    REFERENCES  detNormalizedStatImfile(det_id, iteration, class_id)
     537) ENGINE=innodb DEFAULT CHARSET=latin1;
     538
     539CREATE TABLE detNormalizedExp (
     540    det_id BIGINT,
     541    iteration INT,
     542    recipe VARCHAR(64),
     543    bg DOUBLE,
     544    bg_stdev DOUBLE,
     545    bg_mean_stdev DOUBLE,
     546    user_1 DOUBLE,
     547    user_2 DOUBLE,
     548    user_3 DOUBLE,
     549    user_4 DOUBLE,
     550    user_5 DOUBLE,
     551    path_base VARCHAR(255),
     552    fault SMALLINT NOT NULL,
     553    PRIMARY KEY(det_id, iteration),
     554    KEY(fault),
     555    FOREIGN KEY (det_id, iteration) 
     556    REFERENCES  detInputExp(det_id, iteration),
     557    FOREIGN KEY (det_id, iteration) 
     558    REFERENCES  detNormalizedImfile(det_id, iteration)
     559) ENGINE=innodb DEFAULT CHARSET=latin1;
     560
     561CREATE TABLE detResidImfile (
     562    det_id BIGINT,
     563    iteration INT,
     564    exp_id BIGINT,
     565    class_id VARCHAR(64),
     566    uri VARCHAR(255),
     567    recipe VARCHAR(64),
     568    bg DOUBLE,
     569    bg_stdev DOUBLE,
     570    bg_mean_stdev DOUBLE,
     571    bg_skewness DOUBLE,
     572    bg_kurtosis DOUBLE,
     573    bin_stdev DOUBLE,
     574    fringe_0 DOUBLE,
     575    fringe_1 DOUBLE,
     576    fringe_2 DOUBLE,
     577    fringe_resid_0 DOUBLE,
     578    fringe_resid_1 DOUBLE,
     579    fringe_resid_2 DOUBLE,
     580    user_1 DOUBLE,
     581    user_2 DOUBLE,
     582    user_3 DOUBLE,
     583    user_4 DOUBLE,
     584    user_5 DOUBLE,
     585    path_base VARCHAR(255),
     586    fault SMALLINT NOT NULL,
     587    PRIMARY KEY(det_id, iteration, exp_id, class_id),
     588    KEY(fault),
     589    INDEX(det_id, iteration, exp_id),
     590    FOREIGN KEY (det_id, iteration, exp_id) 
     591    REFERENCES  detInputExp(det_id, iteration, exp_id),
     592    FOREIGN KEY (det_id, exp_id, class_id) 
     593    REFERENCES  detProcessedImfile(det_id, exp_id, class_id),
     594    FOREIGN KEY (det_id, iteration) 
     595    REFERENCES  detNormalizedExp(det_id, iteration)
     596) ENGINE=innodb DEFAULT CHARSET=latin1;
     597
    83598CREATE TABLE detResidExp (det_id BIGINT, iteration INT, exp_id BIGINT, recipe VARCHAR(64), bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, bg_skewness DOUBLE, bg_kurtosis DOUBLE, bin_stdev DOUBLE, fringe_0 DOUBLE, fringe_1 DOUBLE, fringe_2 DOUBLE, fringe_resid_0 DOUBLE, fringe_resid_1 DOUBLE, fringe_resid_2 DOUBLE, user_1 DOUBLE, user_2 DOUBLE, user_3 DOUBLE, user_4 DOUBLE, user_5 DOUBLE, path_base VARCHAR(255), accept TINYINT, fault SMALLINT NOT NULL, PRIMARY KEY(det_id, iteration, exp_id), KEY(fault), INDEX(det_id, iteration), FOREIGN KEY (det_id, iteration, exp_id)  REFERENCES  detInputExp(det_id, iteration, exp_id), FOREIGN KEY (det_id, iteration, exp_id)  REFERENCES  detResidImfile(det_id, iteration, exp_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    84599CREATE TABLE detRunSummary (det_id BIGINT, iteration INT, bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, accept TINYINT, fault SMALLINT NOT NULL, PRIMARY KEY(det_id, iteration), KEY(fault), FOREIGN KEY (det_id, iteration)  REFERENCES  detInputExp(det_id, iteration), FOREIGN KEY (det_id, iteration)  REFERENCES  detResidExp(det_id, iteration)) ENGINE=innodb DEFAULT CHARSET=latin1;
    85600CREATE TABLE detRegisteredImfile (det_id BIGINT, iteration INT, class_id VARCHAR(64), uri VARCHAR(255), bg DOUBLE, bg_stdev DOUBLE, bg_mean_stdev DOUBLE, user_1 DOUBLE, user_2 DOUBLE, user_3 DOUBLE, user_4 DOUBLE, user_5 DOUBLE, path_base VARCHAR(255), fault SMALLINT NOT NULL, PRIMARY KEY(det_id, iteration, class_id), KEY(fault), FOREIGN KEY (det_id, iteration)  REFERENCES  detRun(det_id, iteration)) ENGINE=innodb DEFAULT CHARSET=latin1;
     601
    86602CREATE TABLE warpRun (warp_id BIGINT AUTO_INCREMENT, cam_id BIGINT, mode VARCHAR(64), state VARCHAR(64), workdir VARCHAR(255), workdir_state VARCHAR(64), label VARCHAR(64), dvodb VARCHAR(255), tess_id VARCHAR(64), end_stage VARCHAR(64), registered DATETIME, magiced TINYINT, PRIMARY KEY(warp_id), KEY(warp_id), KEY(cam_id), KEY(mode), KEY(state), KEY(workdir_state), KEY(label), KEY(end_stage), KEY(magiced), INDEX(warp_id, cam_id), FOREIGN KEY (cam_id)  REFERENCES  camProcessedExp(cam_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
    87603CREATE TABLE warpSkyCellMap (warp_id BIGINT, skycell_id VARCHAR(64), tess_id VARCHAR(64), cam_id BIGINT, class_id VARCHAR(64), fault SMALLINT, PRIMARY KEY(warp_id, skycell_id, tess_id, cam_id, class_id), KEY(fault), FOREIGN KEY (warp_id, cam_id)  REFERENCES  warpRun(warp_id, cam_id)) ENGINE=innodb DEFAULT CHARSET=latin1;
  • trunk/ippTools/share/regtool_pendingexp.sql

    r17618 r17872  
    1212    tess_id,
    1313    end_stage,
    14     label
     14    label,
     15    epoch
    1516FROM
    1617    (SELECT
  • trunk/ippTools/src/pxinject.c

    r17611 r17872  
    9191
    9292    if (!newExpInsert(config->dbh,
    93                 0x0, // exp_id
     93                0x0,    // exp_id
    9494                tmp_exp_name,
    9595                tmp_camera,
    9696                tmp_telescope,
    97                 "reg", // state
     97                "reg",  // state
    9898                workdir,
    9999                "dirty",
     
    101101                dvodb,
    102102                tess_id,
    103             end_stage,
    104               label
     103                end_stage,
     104                label,
     105                NULL    // epoch
    105106            )
    106107        ) {
     
    141142
    142143    // insert with error flag state set to 0 (no errors)
    143     if (!newImfileInsert(config->dbh, (psS64)atoll(exp_id), tmp_class_id, uri)) {
     144    if (!newImfileInsert(config->dbh, (psS64)atoll(exp_id), tmp_class_id, uri, NULL)) {
    144145        psError(PS_ERR_UNKNOWN, false, "database error");
    145146        return false;
  • trunk/ippTools/src/pztool.c

    r17700 r17872  
    111111            camera,
    112112            telescope,
    113             uri
     113            uri,
     114            NULL  // epoch
    114115        )) {
    115116        psError(PS_ERR_UNKNOWN, false, "database error");
     
    370371            class_id,
    371372            uri,
    372             code
     373            code,
     374            NULL    // epoch
    373375    )) {
    374376        psError(PS_ERR_UNKNOWN, false, "database error");
     
    497499                    tess_id,            // tess_id
    498500                    end_stage,          // end_stage
    499                    label
     501                    label,
     502                    NULL                // epoch
    500503                )
    501504        ) {
  • trunk/ippTools/src/regtool.c

    r17802 r17872  
    280280        object,
    281281        hostname,
    282         code
     282        code,
     283        NULL
    283284    )) {
    284285        psError(PS_ERR_UNKNOWN, false, "database error");
     
    630631    psMetadata *row = output->data[0];
    631632    // convert metadata into a newExp object
     633    psMetadataConfigPrint(stdout, row);
    632634    newExpRow *newExp = newExpObjectFromMetadata(row);
    633635    psFree(output);
     636    if (!newExp) {
     637        psError(PS_ERR_UNKNOWN, false, "this should not happen");
     638        return false;
     639    }
    634640
    635641    // carry through these values
     
    700706        0.0,
    701707        hostname,
    702         code
     708        code,
     709        NULL
    703710    )) {
    704711        // rollback
  • trunk/ippdb/configure.ac

    r17833 r17872  
    77AC_PREREQ(2.61)
    88
    9 AC_INIT([ippdb], [1.1.36], [pan-starrs.ifa.hawaii.edu])
     9AC_INIT([ippdb], [1.1.37], [pan-starrs.ifa.hawaii.edu])
    1010AC_CONFIG_SRCDIR([ippdb.pc.in])
    1111
  • trunk/ippdb/src/ippdb.c

    r17840 r17872  
    262262static void pzDataStoreRowFree(pzDataStoreRow *object);
    263263
    264 pzDataStoreRow *pzDataStoreRowAlloc(const char *camera, const char *telescope, const char *uri)
     264pzDataStoreRow *pzDataStoreRowAlloc(const char *camera, const char *telescope, const char *uri, psTime* epoch)
    265265{
    266266    pzDataStoreRow  *_object;
     
    272272    _object->telescope = psStringCopy(telescope);
    273273    _object->uri = psStringCopy(uri);
     274    _object->epoch = psTimeCopy(epoch);
    274275
    275276    return _object;
     
    281282    psFree(object->telescope);
    282283    psFree(object->uri);
     284    psFree(object->epoch);
    283285}
    284286
     
    301303        return false;
    302304    }
     305    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, NULL)) {
     306        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     307        psFree(md);
     308        return false;
     309    }
    303310
    304311    bool status = psDBCreateTable(dbh, PZDATASTORE_TABLE_NAME, md);
     
    314321}
    315322
    316 bool pzDataStoreInsert(psDB * dbh, const char *camera, const char *telescope, const char *uri)
     323bool pzDataStoreInsert(psDB * dbh, const char *camera, const char *telescope, const char *uri, psTime* epoch)
    317324{
    318325    psMetadata *md = psMetadataAlloc();
     
    329336    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
    330337        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     338        psFree(md);
     339        return false;
     340    }
     341    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, epoch)) {
     342        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
    331343        psFree(md);
    332344        return false;
     
    355367bool pzDataStoreInsertObject(psDB *dbh, pzDataStoreRow *object)
    356368{
    357     return pzDataStoreInsert(dbh, object->camera, object->telescope, object->uri);
     369    return pzDataStoreInsert(dbh, object->camera, object->telescope, object->uri, object->epoch);
    358370}
    359371
     
    443455        return false;
    444456    }
     457    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, object->epoch)) {
     458        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     459        psFree(md);
     460        return false;
     461    }
    445462
    446463
     
    467484        return false;
    468485    }
    469 
    470     return pzDataStoreRowAlloc(camera, telescope, uri);
     486    psTime* epoch = psMetadataLookupPtr(&status, md, "epoch");
     487    if (!status) {
     488        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item epoch");
     489        return false;
     490    }
     491
     492    return pzDataStoreRowAlloc(camera, telescope, uri, epoch);
    471493}
    472494psArray *pzDataStoreSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    586608static void summitExpRowFree(summitExpRow *object);
    587609
    588 summitExpRow *summitExpRowAlloc(const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, const char *uri, psS32 imfiles, psS16 fault)
     610summitExpRow *summitExpRowAlloc(const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, const char *uri, psS32 imfiles, psS16 fault, psTime* epoch)
    589611{
    590612    summitExpRow    *_object;
     
    601623    _object->imfiles = imfiles;
    602624    _object->fault = fault;
     625    _object->epoch = psTimeCopy(epoch);
    603626
    604627    return _object;
     
    613636    psFree(object->exp_type);
    614637    psFree(object->uri);
     638    psFree(object->epoch);
    615639}
    616640
     
    658682        return false;
    659683    }
     684    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, NULL)) {
     685        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     686        psFree(md);
     687        return false;
     688    }
    660689
    661690    bool status = psDBCreateTable(dbh, SUMMITEXP_TABLE_NAME, md);
     
    671700}
    672701
    673 bool summitExpInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, const char *uri, psS32 imfiles, psS16 fault)
     702bool summitExpInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, const char *uri, psS32 imfiles, psS16 fault, psTime* epoch)
    674703{
    675704    psMetadata *md = psMetadataAlloc();
     
    711740    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) {
    712741        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     742        psFree(md);
     743        return false;
     744    }
     745    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, epoch)) {
     746        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
    713747        psFree(md);
    714748        return false;
     
    737771bool summitExpInsertObject(psDB *dbh, summitExpRow *object)
    738772{
    739     return summitExpInsert(dbh, object->exp_name, object->camera, object->telescope, object->dateobs, object->exp_type, object->uri, object->imfiles, object->fault);
     773    return summitExpInsert(dbh, object->exp_name, object->camera, object->telescope, object->dateobs, object->exp_type, object->uri, object->imfiles, object->fault, object->epoch);
    740774}
    741775
     
    850884        return false;
    851885    }
     886    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, object->epoch)) {
     887        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     888        psFree(md);
     889        return false;
     890    }
    852891
    853892
     
    899938        return false;
    900939    }
    901 
    902     return summitExpRowAlloc(exp_name, camera, telescope, dateobs, exp_type, uri, imfiles, fault);
     940    psTime* epoch = psMetadataLookupPtr(&status, md, "epoch");
     941    if (!status) {
     942        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item epoch");
     943        return false;
     944    }
     945
     946    return summitExpRowAlloc(exp_name, camera, telescope, dateobs, exp_type, uri, imfiles, fault, epoch);
    903947}
    904948psArray *summitExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    10181062static void summitImfileRowFree(summitImfileRow *object);
    10191063
    1020 summitImfileRow *summitImfileRowAlloc(const char *exp_name, const char *camera, const char *telescope, const char *file_id, psS32 bytes, const char *md5sum, const char *class, const char *class_id, const char *uri)
     1064summitImfileRow *summitImfileRowAlloc(const char *exp_name, const char *camera, const char *telescope, const char *file_id, psS32 bytes, const char *md5sum, const char *class, const char *class_id, const char *uri, psTime* epoch)
    10211065{
    10221066    summitImfileRow *_object;
     
    10341078    _object->class_id = psStringCopy(class_id);
    10351079    _object->uri = psStringCopy(uri);
     1080    _object->epoch = psTimeCopy(epoch);
    10361081
    10371082    return _object;
     
    10481093    psFree(object->class_id);
    10491094    psFree(object->uri);
     1095    psFree(object->epoch);
    10501096}
    10511097
     
    10981144        return false;
    10991145    }
     1146    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, NULL)) {
     1147        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     1148        psFree(md);
     1149        return false;
     1150    }
    11001151
    11011152    bool status = psDBCreateTable(dbh, SUMMITIMFILE_TABLE_NAME, md);
     
    11111162}
    11121163
    1113 bool summitImfileInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, const char *file_id, psS32 bytes, const char *md5sum, const char *class, const char *class_id, const char *uri)
     1164bool summitImfileInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, const char *file_id, psS32 bytes, const char *md5sum, const char *class, const char *class_id, const char *uri, psTime* epoch)
    11141165{
    11151166    psMetadata *md = psMetadataAlloc();
     
    11561207    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
    11571208        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     1209        psFree(md);
     1210        return false;
     1211    }
     1212    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, epoch)) {
     1213        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
    11581214        psFree(md);
    11591215        return false;
     
    11821238bool summitImfileInsertObject(psDB *dbh, summitImfileRow *object)
    11831239{
    1184     return summitImfileInsert(dbh, object->exp_name, object->camera, object->telescope, object->file_id, object->bytes, object->md5sum, object->class, object->class_id, object->uri);
     1240    return summitImfileInsert(dbh, object->exp_name, object->camera, object->telescope, object->file_id, object->bytes, object->md5sum, object->class, object->class_id, object->uri, object->epoch);
    11851241}
    11861242
     
    13001356        return false;
    13011357    }
     1358    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, object->epoch)) {
     1359        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     1360        psFree(md);
     1361        return false;
     1362    }
    13021363
    13031364
     
    13541415        return false;
    13551416    }
    1356 
    1357     return summitImfileRowAlloc(exp_name, camera, telescope, file_id, bytes, md5sum, class, class_id, uri);
     1417    psTime* epoch = psMetadataLookupPtr(&status, md, "epoch");
     1418    if (!status) {
     1419        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item epoch");
     1420        return false;
     1421    }
     1422
     1423    return summitImfileRowAlloc(exp_name, camera, telescope, file_id, bytes, md5sum, class, class_id, uri, epoch);
    13581424}
    13591425psArray *summitImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    14731539static void pzDownloadExpRowFree(pzDownloadExpRow *object);
    14741540
    1475 pzDownloadExpRow *pzDownloadExpRowAlloc(const char *exp_name, const char *camera, const char *telescope, const char *state)
     1541pzDownloadExpRow *pzDownloadExpRowAlloc(const char *exp_name, const char *camera, const char *telescope, const char *state, psTime* epoch)
    14761542{
    14771543    pzDownloadExpRow *_object;
     
    14841550    _object->telescope = psStringCopy(telescope);
    14851551    _object->state = psStringCopy(state);
     1552    _object->epoch = psTimeCopy(epoch);
    14861553
    14871554    return _object;
     
    14941561    psFree(object->telescope);
    14951562    psFree(object->state);
     1563    psFree(object->epoch);
    14961564}
    14971565
     
    15191587        return false;
    15201588    }
     1589    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, NULL)) {
     1590        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     1591        psFree(md);
     1592        return false;
     1593    }
    15211594
    15221595    bool status = psDBCreateTable(dbh, PZDOWNLOADEXP_TABLE_NAME, md);
     
    15321605}
    15331606
    1534 bool pzDownloadExpInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, const char *state)
     1607bool pzDownloadExpInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, const char *state, psTime* epoch)
    15351608{
    15361609    psMetadata *md = psMetadataAlloc();
     
    15521625    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, state)) {
    15531626        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     1627        psFree(md);
     1628        return false;
     1629    }
     1630    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, epoch)) {
     1631        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
    15541632        psFree(md);
    15551633        return false;
     
    15781656bool pzDownloadExpInsertObject(psDB *dbh, pzDownloadExpRow *object)
    15791657{
    1580     return pzDownloadExpInsert(dbh, object->exp_name, object->camera, object->telescope, object->state);
     1658    return pzDownloadExpInsert(dbh, object->exp_name, object->camera, object->telescope, object->state, object->epoch);
    15811659}
    15821660
     
    16711749        return false;
    16721750    }
     1751    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, object->epoch)) {
     1752        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     1753        psFree(md);
     1754        return false;
     1755    }
    16731756
    16741757
     
    17001783        return false;
    17011784    }
    1702 
    1703     return pzDownloadExpRowAlloc(exp_name, camera, telescope, state);
     1785    psTime* epoch = psMetadataLookupPtr(&status, md, "epoch");
     1786    if (!status) {
     1787        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item epoch");
     1788        return false;
     1789    }
     1790
     1791    return pzDownloadExpRowAlloc(exp_name, camera, telescope, state, epoch);
    17041792}
    17051793psArray *pzDownloadExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    18191907static void pzDownloadImfileRowFree(pzDownloadImfileRow *object);
    18201908
    1821 pzDownloadImfileRow *pzDownloadImfileRowAlloc(const char *exp_name, const char *camera, const char *telescope, const char *class, const char *class_id, const char *uri, psS16 fault)
     1909pzDownloadImfileRow *pzDownloadImfileRowAlloc(const char *exp_name, const char *camera, const char *telescope, const char *class, const char *class_id, const char *uri, psS16 fault, psTime* epoch)
    18221910{
    18231911    pzDownloadImfileRow *_object;
     
    18331921    _object->uri = psStringCopy(uri);
    18341922    _object->fault = fault;
     1923    _object->epoch = psTimeCopy(epoch);
    18351924
    18361925    return _object;
     
    18451934    psFree(object->class_id);
    18461935    psFree(object->uri);
     1936    psFree(object->epoch);
    18471937}
    18481938
     
    18851975        return false;
    18861976    }
     1977    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, NULL)) {
     1978        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     1979        psFree(md);
     1980        return false;
     1981    }
    18871982
    18881983    bool status = psDBCreateTable(dbh, PZDOWNLOADIMFILE_TABLE_NAME, md);
     
    18981993}
    18991994
    1900 bool pzDownloadImfileInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, const char *class, const char *class_id, const char *uri, psS16 fault)
     1995bool pzDownloadImfileInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, const char *class, const char *class_id, const char *uri, psS16 fault, psTime* epoch)
    19011996{
    19021997    psMetadata *md = psMetadataAlloc();
     
    19332028    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) {
    19342029        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     2030        psFree(md);
     2031        return false;
     2032    }
     2033    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, epoch)) {
     2034        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
    19352035        psFree(md);
    19362036        return false;
     
    19592059bool pzDownloadImfileInsertObject(psDB *dbh, pzDownloadImfileRow *object)
    19602060{
    1961     return pzDownloadImfileInsert(dbh, object->exp_name, object->camera, object->telescope, object->class, object->class_id, object->uri, object->fault);
     2061    return pzDownloadImfileInsert(dbh, object->exp_name, object->camera, object->telescope, object->class, object->class_id, object->uri, object->fault, object->epoch);
    19622062}
    19632063
     
    20672167        return false;
    20682168    }
     2169    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, object->epoch)) {
     2170        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     2171        psFree(md);
     2172        return false;
     2173    }
    20692174
    20702175
     
    21112216        return false;
    21122217    }
    2113 
    2114     return pzDownloadImfileRowAlloc(exp_name, camera, telescope, class, class_id, uri, fault);
     2218    psTime* epoch = psMetadataLookupPtr(&status, md, "epoch");
     2219    if (!status) {
     2220        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item epoch");
     2221        return false;
     2222    }
     2223
     2224    return pzDownloadImfileRowAlloc(exp_name, camera, telescope, class, class_id, uri, fault, epoch);
    21152225}
    21162226psArray *pzDownloadImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    22302340static void newExpRowFree(newExpRow *object);
    22312341
    2232 newExpRow *newExpRowAlloc(psS64 exp_id, const char *tmp_exp_name, const char *tmp_camera, const char *tmp_telescope, const char *state, const char *workdir, const char *workdir_state, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *label)
     2342newExpRow *newExpRowAlloc(psS64 exp_id, const char *tmp_exp_name, const char *tmp_camera, const char *tmp_telescope, const char *state, const char *workdir, const char *workdir_state, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *label, psTime* epoch)
    22332343{
    22342344    newExpRow       *_object;
     
    22492359    _object->end_stage = psStringCopy(end_stage);
    22502360    _object->label = psStringCopy(label);
     2361    _object->epoch = psTimeCopy(epoch);
    22512362
    22522363    return _object;
     
    22662377    psFree(object->end_stage);
    22672378    psFree(object->label);
     2379    psFree(object->epoch);
    22682380}
    22692381
     
    23312443        return false;
    23322444    }
     2445    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, NULL)) {
     2446        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     2447        psFree(md);
     2448        return false;
     2449    }
    23332450
    23342451    bool status = psDBCreateTable(dbh, NEWEXP_TABLE_NAME, md);
     
    23442461}
    23452462
    2346 bool newExpInsert(psDB * dbh, psS64 exp_id, const char *tmp_exp_name, const char *tmp_camera, const char *tmp_telescope, const char *state, const char *workdir, const char *workdir_state, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *label)
     2463bool newExpInsert(psDB * dbh, psS64 exp_id, const char *tmp_exp_name, const char *tmp_camera, const char *tmp_telescope, const char *state, const char *workdir, const char *workdir_state, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *label, psTime* epoch)
    23472464{
    23482465    psMetadata *md = psMetadataAlloc();
     
    24042521    if (!psMetadataAdd(md, PS_LIST_TAIL, "label", PS_DATA_STRING, NULL, label)) {
    24052522        psError(PS_ERR_UNKNOWN, false, "failed to add item label");
     2523        psFree(md);
     2524        return false;
     2525    }
     2526    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, epoch)) {
     2527        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
    24062528        psFree(md);
    24072529        return false;
     
    24302552bool newExpInsertObject(psDB *dbh, newExpRow *object)
    24312553{
    2432     return newExpInsert(dbh, object->exp_id, object->tmp_exp_name, object->tmp_camera, object->tmp_telescope, object->state, object->workdir, object->workdir_state, object->reduction, object->dvodb, object->tess_id, object->end_stage, object->label);
     2554    return newExpInsert(dbh, object->exp_id, object->tmp_exp_name, object->tmp_camera, object->tmp_telescope, object->state, object->workdir, object->workdir_state, object->reduction, object->dvodb, object->tess_id, object->end_stage, object->label, object->epoch);
    24332555}
    24342556
     
    25632685        return false;
    25642686    }
     2687    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, object->epoch)) {
     2688        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     2689        psFree(md);
     2690        return false;
     2691    }
    25652692
    25662693
     
    26322759        return false;
    26332760    }
    2634 
    2635     return newExpRowAlloc(exp_id, tmp_exp_name, tmp_camera, tmp_telescope, state, workdir, workdir_state, reduction, dvodb, tess_id, end_stage, label);
     2761    psTime* epoch = psMetadataLookupPtr(&status, md, "epoch");
     2762    if (!status) {
     2763        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item epoch");
     2764        return false;
     2765    }
     2766
     2767    return newExpRowAlloc(exp_id, tmp_exp_name, tmp_camera, tmp_telescope, state, workdir, workdir_state, reduction, dvodb, tess_id, end_stage, label, epoch);
    26362768}
    26372769psArray *newExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    27512883static void newImfileRowFree(newImfileRow *object);
    27522884
    2753 newImfileRow *newImfileRowAlloc(psS64 exp_id, const char *tmp_class_id, const char *uri)
     2885newImfileRow *newImfileRowAlloc(psS64 exp_id, const char *tmp_class_id, const char *uri, psTime* epoch)
    27542886{
    27552887    newImfileRow    *_object;
     
    27612893    _object->tmp_class_id = psStringCopy(tmp_class_id);
    27622894    _object->uri = psStringCopy(uri);
     2895    _object->epoch = psTimeCopy(epoch);
    27632896
    27642897    return _object;
     
    27692902    psFree(object->tmp_class_id);
    27702903    psFree(object->uri);
     2904    psFree(object->epoch);
    27712905}
    27722906
     
    27892923        return false;
    27902924    }
     2925    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, NULL)) {
     2926        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     2927        psFree(md);
     2928        return false;
     2929    }
    27912930
    27922931    bool status = psDBCreateTable(dbh, NEWIMFILE_TABLE_NAME, md);
     
    28022941}
    28032942
    2804 bool newImfileInsert(psDB * dbh, psS64 exp_id, const char *tmp_class_id, const char *uri)
     2943bool newImfileInsert(psDB * dbh, psS64 exp_id, const char *tmp_class_id, const char *uri, psTime* epoch)
    28052944{
    28062945    psMetadata *md = psMetadataAlloc();
     
    28172956    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
    28182957        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     2958        psFree(md);
     2959        return false;
     2960    }
     2961    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, epoch)) {
     2962        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
    28192963        psFree(md);
    28202964        return false;
     
    28432987bool newImfileInsertObject(psDB *dbh, newImfileRow *object)
    28442988{
    2845     return newImfileInsert(dbh, object->exp_id, object->tmp_class_id, object->uri);
     2989    return newImfileInsert(dbh, object->exp_id, object->tmp_class_id, object->uri, object->epoch);
    28462990}
    28472991
     
    29313075        return false;
    29323076    }
     3077    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, object->epoch)) {
     3078        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     3079        psFree(md);
     3080        return false;
     3081    }
    29333082
    29343083
     
    29553104        return false;
    29563105    }
    2957 
    2958     return newImfileRowAlloc(exp_id, tmp_class_id, uri);
     3106    psTime* epoch = psMetadataLookupPtr(&status, md, "epoch");
     3107    if (!status) {
     3108        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item epoch");
     3109        return false;
     3110    }
     3111
     3112    return newImfileRowAlloc(exp_id, tmp_class_id, uri, epoch);
    29593113}
    29603114psArray *newImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    30743228static void rawExpRowFree(rawExpRow *object);
    30753229
    3076 rawExpRow *rawExpRowAlloc(psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_tag, const char *exp_type, const char *filelevel, const char *workdir, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 solang, const char *hostname, psS16 fault)
     3230rawExpRow *rawExpRowAlloc(psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_tag, const char *exp_type, const char *filelevel, const char *workdir, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 solang, const char *hostname, psS16 fault, psTime* epoch)
    30773231{
    30783232    rawExpRow       *_object;
     
    31383292    _object->hostname = psStringCopy(hostname);
    31393293    _object->fault = fault;
     3294    _object->epoch = psTimeCopy(epoch);
    31403295
    31413296    return _object;
     
    31603315    psFree(object->object);
    31613316    psFree(object->hostname);
     3317    psFree(object->epoch);
    31623318}
    31633319
     
    34503606        return false;
    34513607    }
     3608    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, NULL)) {
     3609        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     3610        psFree(md);
     3611        return false;
     3612    }
    34523613
    34533614    bool status = psDBCreateTable(dbh, RAWEXP_TABLE_NAME, md);
     
    34633624}
    34643625
    3465 bool rawExpInsert(psDB * dbh, psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_tag, const char *exp_type, const char *filelevel, const char *workdir, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 solang, const char *hostname, psS16 fault)
     3626bool rawExpInsert(psDB * dbh, psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_tag, const char *exp_type, const char *filelevel, const char *workdir, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 solang, const char *hostname, psS16 fault, psTime* epoch)
    34663627{
    34673628    psMetadata *md = psMetadataAlloc();
     
    37483909    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) {
    37493910        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     3911        psFree(md);
     3912        return false;
     3913    }
     3914    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, epoch)) {
     3915        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
    37503916        psFree(md);
    37513917        return false;
     
    37743940bool rawExpInsertObject(psDB *dbh, rawExpRow *object)
    37753941{
    3776     return rawExpInsert(dbh, object->exp_id, object->exp_name, object->camera, object->telescope, object->dateobs, object->exp_tag, object->exp_type, object->filelevel, object->workdir, object->reduction, object->dvodb, object->tess_id, object->end_stage, object->filter, object->comment, object->airmass, object->ra, object->decl, object->exp_time, object->sat_pixel_frac, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->m1_x, object->m1_y, object->m1_z, object->m1_tip, object->m1_tilt, object->m2_x, object->m2_y, object->m2_z, object->m2_tip, object->m2_tilt, object->env_temperature, object->env_humidity, object->env_wind_speed, object->env_wind_dir, object->teltemp_m1, object->teltemp_m1cell, object->teltemp_m2, object->teltemp_spider, object->teltemp_truss, object->teltemp_extra, object->pon_time, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->object, object->solang, object->hostname, object->fault);
     3942    return rawExpInsert(dbh, object->exp_id, object->exp_name, object->camera, object->telescope, object->dateobs, object->exp_tag, object->exp_type, object->filelevel, object->workdir, object->reduction, object->dvodb, object->tess_id, object->end_stage, object->filter, object->comment, object->airmass, object->ra, object->decl, object->exp_time, object->sat_pixel_frac, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->m1_x, object->m1_y, object->m1_z, object->m1_tip, object->m1_tilt, object->m2_x, object->m2_y, object->m2_z, object->m2_tip, object->m2_tilt, object->env_temperature, object->env_humidity, object->env_wind_speed, object->env_wind_dir, object->teltemp_m1, object->teltemp_m1cell, object->teltemp_m2, object->teltemp_spider, object->teltemp_truss, object->teltemp_extra, object->pon_time, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->object, object->solang, object->hostname, object->fault, object->epoch);
    37773943}
    37783944
     
    41324298        return false;
    41334299    }
     4300    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, object->epoch)) {
     4301        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     4302        psFree(md);
     4303        return false;
     4304    }
    41344305
    41354306
     
    44264597        return false;
    44274598    }
    4428 
    4429     return rawExpRowAlloc(exp_id, exp_name, camera, telescope, dateobs, exp_tag, exp_type, filelevel, workdir, reduction, dvodb, tess_id, end_stage, filter, comment, airmass, ra, decl, exp_time, sat_pixel_frac, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, m1_x, m1_y, m1_z, m1_tip, m1_tilt, m2_x, m2_y, m2_z, m2_tip, m2_tilt, env_temperature, env_humidity, env_wind_speed, env_wind_dir, teltemp_m1, teltemp_m1cell, teltemp_m2, teltemp_spider, teltemp_truss, teltemp_extra, pon_time, user_1, user_2, user_3, user_4, user_5, object, solang, hostname, fault);
     4599    psTime* epoch = psMetadataLookupPtr(&status, md, "epoch");
     4600    if (!status) {
     4601        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item epoch");
     4602        return false;
     4603    }
     4604
     4605    return rawExpRowAlloc(exp_id, exp_name, camera, telescope, dateobs, exp_tag, exp_type, filelevel, workdir, reduction, dvodb, tess_id, end_stage, filter, comment, airmass, ra, decl, exp_time, sat_pixel_frac, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, m1_x, m1_y, m1_z, m1_tip, m1_tilt, m2_x, m2_y, m2_z, m2_tip, m2_tilt, env_temperature, env_humidity, env_wind_speed, env_wind_dir, teltemp_m1, teltemp_m1cell, teltemp_m2, teltemp_spider, teltemp_truss, teltemp_extra, pon_time, user_1, user_2, user_3, user_4, user_5, object, solang, hostname, fault, epoch);
    44304606}
    44314607psArray *rawExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    45454721static void rawImfileRowFree(rawImfileRow *object);
    45464722
    4547 rawImfileRow *rawImfileRowAlloc(psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *tmp_class_id, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, const char *hostname, psS16 fault)
     4723rawImfileRow *rawImfileRowAlloc(psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *tmp_class_id, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, const char *hostname, psS16 fault, psTime* epoch)
    45484724{
    45494725    rawImfileRow    *_object;
     
    46054781    _object->hostname = psStringCopy(hostname);
    46064782    _object->fault = fault;
     4783    _object->epoch = psTimeCopy(epoch);
    46074784
    46084785    return _object;
     
    46244801    psFree(object->object);
    46254802    psFree(object->hostname);
     4803    psFree(object->epoch);
    46264804}
    46274805
     
    48945072        return false;
    48955073    }
     5074    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, NULL)) {
     5075        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     5076        psFree(md);
     5077        return false;
     5078    }
    48965079
    48975080    bool status = psDBCreateTable(dbh, RAWIMFILE_TABLE_NAME, md);
     
    49075090}
    49085091
    4909 bool rawImfileInsert(psDB * dbh, psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *tmp_class_id, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, const char *hostname, psS16 fault)
     5092bool rawImfileInsert(psDB * dbh, psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *tmp_class_id, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, const char *hostname, psS16 fault, psTime* epoch)
    49105093{
    49115094    psMetadata *md = psMetadataAlloc();
     
    51725355    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) {
    51735356        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     5357        psFree(md);
     5358        return false;
     5359    }
     5360    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, epoch)) {
     5361        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
    51745362        psFree(md);
    51755363        return false;
     
    51985386bool rawImfileInsertObject(psDB *dbh, rawImfileRow *object)
    51995387{
    5200     return rawImfileInsert(dbh, object->exp_id, object->exp_name, object->camera, object->telescope, object->dateobs, object->tmp_class_id, object->class_id, object->uri, object->exp_type, object->filelevel, object->filter, object->comment, object->airmass, object->ra, object->decl, object->exp_time, object->sat_pixel_frac, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->m1_x, object->m1_y, object->m1_z, object->m1_tip, object->m1_tilt, object->m2_x, object->m2_y, object->m2_z, object->m2_tip, object->m2_tilt, object->env_temperature, object->env_humidity, object->env_wind_speed, object->env_wind_dir, object->teltemp_m1, object->teltemp_m1cell, object->teltemp_m2, object->teltemp_spider, object->teltemp_truss, object->teltemp_extra, object->pon_time, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->object, object->hostname, object->fault);
     5388    return rawImfileInsert(dbh, object->exp_id, object->exp_name, object->camera, object->telescope, object->dateobs, object->tmp_class_id, object->class_id, object->uri, object->exp_type, object->filelevel, object->filter, object->comment, object->airmass, object->ra, object->decl, object->exp_time, object->sat_pixel_frac, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->m1_x, object->m1_y, object->m1_z, object->m1_tip, object->m1_tilt, object->m2_x, object->m2_y, object->m2_z, object->m2_tip, object->m2_tilt, object->env_temperature, object->env_humidity, object->env_wind_speed, object->env_wind_dir, object->teltemp_m1, object->teltemp_m1cell, object->teltemp_m2, object->teltemp_spider, object->teltemp_truss, object->teltemp_extra, object->pon_time, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->object, object->hostname, object->fault, object->epoch);
    52015389}
    52025390
     
    55365724        return false;
    55375725    }
     5726    if (!psMetadataAdd(md, PS_LIST_TAIL, "epoch", PS_DATA_TIME, NULL, object->epoch)) {
     5727        psError(PS_ERR_UNKNOWN, false, "failed to add item epoch");
     5728        psFree(md);
     5729        return false;
     5730    }
    55385731
    55395732
     
    58106003        return false;
    58116004    }
    5812 
    5813     return rawImfileRowAlloc(exp_id, exp_name, camera, telescope, dateobs, tmp_class_id, class_id, uri, exp_type, filelevel, filter, comment, airmass, ra, decl, exp_time, sat_pixel_frac, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, m1_x, m1_y, m1_z, m1_tip, m1_tilt, m2_x, m2_y, m2_z, m2_tip, m2_tilt, env_temperature, env_humidity, env_wind_speed, env_wind_dir, teltemp_m1, teltemp_m1cell, teltemp_m2, teltemp_spider, teltemp_truss, teltemp_extra, pon_time, user_1, user_2, user_3, user_4, user_5, object, hostname, fault);
     6005    psTime* epoch = psMetadataLookupPtr(&status, md, "epoch");
     6006    if (!status) {
     6007        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item epoch");
     6008        return false;
     6009    }
     6010
     6011    return rawImfileRowAlloc(exp_id, exp_name, camera, telescope, dateobs, tmp_class_id, class_id, uri, exp_type, filelevel, filter, comment, airmass, ra, decl, exp_time, sat_pixel_frac, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, m1_x, m1_y, m1_z, m1_tip, m1_tilt, m2_x, m2_y, m2_z, m2_tip, m2_tilt, env_temperature, env_humidity, env_wind_speed, env_wind_dir, teltemp_m1, teltemp_m1cell, teltemp_m2, teltemp_spider, teltemp_truss, teltemp_extra, pon_time, user_1, user_2, user_3, user_4, user_5, object, hostname, fault, epoch);
    58146012}
    58156013psArray *rawImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
  • trunk/ippdb/src/ippdb.h

    r17833 r17872  
    134134    char            *telescope;
    135135    char            *uri;
     136    psTime*         epoch;
    136137} pzDataStoreRow;
    137138
     
    144145    const char      *camera,
    145146    const char      *telescope,
    146     const char      *uri
     147    const char      *uri,
     148    psTime*         epoch
    147149);
    148150
     
    176178    const char      *camera,
    177179    const char      *telescope,
    178     const char      *uri
     180    const char      *uri,
     181    psTime*         epoch
    179182);
    180183
     
    340343    psS32           imfiles;
    341344    psS16           fault;
     345    psTime*         epoch;
    342346} summitExpRow;
    343347
     
    355359    const char      *uri,
    356360    psS32           imfiles,
    357     psS16           fault
     361    psS16           fault,
     362    psTime*         epoch
    358363);
    359364
     
    392397    const char      *uri,
    393398    psS32           imfiles,
    394     psS16           fault
     399    psS16           fault,
     400    psTime*         epoch
    395401);
    396402
     
    557563    char            *class_id;
    558564    char            *uri;
     565    psTime*         epoch;
    559566} summitImfileRow;
    560567
     
    573580    const char      *class,
    574581    const char      *class_id,
    575     const char      *uri
     582    const char      *uri,
     583    psTime*         epoch
    576584);
    577585
     
    611619    const char      *class,
    612620    const char      *class_id,
    613     const char      *uri
     621    const char      *uri,
     622    psTime*         epoch
    614623);
    615624
     
    771780    char            *telescope;
    772781    char            *state;
     782    psTime*         epoch;
    773783} pzDownloadExpRow;
    774784
     
    782792    const char      *camera,
    783793    const char      *telescope,
    784     const char      *state
     794    const char      *state,
     795    psTime*         epoch
    785796);
    786797
     
    815826    const char      *camera,
    816827    const char      *telescope,
    817     const char      *state
     828    const char      *state,
     829    psTime*         epoch
    818830);
    819831
     
    978990    char            *uri;
    979991    psS16           fault;
     992    psTime*         epoch;
    980993} pzDownloadImfileRow;
    981994
     
    9921005    const char      *class_id,
    9931006    const char      *uri,
    994     psS16           fault
     1007    psS16           fault,
     1008    psTime*         epoch
    9951009);
    9961010
     
    10281042    const char      *class_id,
    10291043    const char      *uri,
    1030     psS16           fault
     1044    psS16           fault,
     1045    psTime*         epoch
    10311046);
    10321047
     
    11961211    char            *end_stage;
    11971212    char            *label;
     1213    psTime*         epoch;
    11981214} newExpRow;
    11991215
     
    12151231    const char      *tess_id,
    12161232    const char      *end_stage,
    1217     const char      *label
     1233    const char      *label,
     1234    psTime*         epoch
    12181235);
    12191236
     
    12561273    const char      *tess_id,
    12571274    const char      *end_stage,
    1258     const char      *label
     1275    const char      *label,
     1276    psTime*         epoch
    12591277);
    12601278
     
    14151433    char            *tmp_class_id;
    14161434    char            *uri;
     1435    psTime*         epoch;
    14171436} newImfileRow;
    14181437
     
    14251444    psS64           exp_id,
    14261445    const char      *tmp_class_id,
    1427     const char      *uri
     1446    const char      *uri,
     1447    psTime*         epoch
    14281448);
    14291449
     
    14571477    psS64           exp_id,
    14581478    const char      *tmp_class_id,
    1459     const char      *uri
     1479    const char      *uri,
     1480    psTime*         epoch
    14601481);
    14611482
     
    16701691    char            *hostname;
    16711692    psS16           fault;
     1693    psTime*         epoch;
    16721694} rawExpRow;
    16731695
     
    17341756    psF32           solang,
    17351757    const char      *hostname,
    1736     psS16           fault
     1758    psS16           fault,
     1759    psTime*         epoch
    17371760);
    17381761
     
    18201843    psF32           solang,
    18211844    const char      *hostname,
    1822     psS16           fault
     1845    psS16           fault,
     1846    psTime*         epoch
    18231847);
    18241848
     
    20292053    char            *hostname;
    20302054    psS16           fault;
     2055    psTime*         epoch;
    20312056} rawImfileRow;
    20322057
     
    20892114    const char      *object,
    20902115    const char      *hostname,
    2091     psS16           fault
     2116    psS16           fault,
     2117    psTime*         epoch
    20922118);
    20932119
     
    21712197    const char      *object,
    21722198    const char      *hostname,
    2173     psS16           fault
     2199    psS16           fault,
     2200    psTime*         epoch
    21742201);
    21752202
  • trunk/ippdb/tests/alloc.c

    r17833 r17872  
    1111        pzDataStoreRow  *object;
    1212
    13         object = pzDataStoreRowAlloc("a string", "a string", "a string"    );
     13        object = pzDataStoreRowAlloc("a string", "a string", "a string", "0001-01-01T00:00:00Z"    );
    1414
    1515        if (!object) {
     
    2929            exit(EXIT_FAILURE);
    3030        }
     31            psFree(object);
     32            exit(EXIT_FAILURE);
     33        }
    3134
    3235        psFree(object);
     
    3639        summitExpRow    *object;
    3740
    38         object = summitExpRowAlloc("a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", -32, -16    );
     41        object = summitExpRowAlloc("a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", -32, -16, "0001-01-01T00:00:00Z"    );
    3942
    4043        if (!object) {
     
    7376            exit(EXIT_FAILURE);
    7477        }
     78            psFree(object);
     79            exit(EXIT_FAILURE);
     80        }
    7581
    7682        psFree(object);
     
    8086        summitImfileRow *object;
    8187
    82         object = summitImfileRowAlloc("a string", "a string", "a string", "a string", -32, "a string", "a string", "a string", "a string"    );
     88        object = summitImfileRowAlloc("a string", "a string", "a string", "a string", -32, "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z"    );
    8389
    8490        if (!object) {
     
    122128            exit(EXIT_FAILURE);
    123129        }
     130            psFree(object);
     131            exit(EXIT_FAILURE);
     132        }
    124133
    125134        psFree(object);
     
    129138        pzDownloadExpRow *object;
    130139
    131         object = pzDownloadExpRowAlloc("a string", "a string", "a string", "a string"    );
     140        object = pzDownloadExpRowAlloc("a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z"    );
    132141
    133142        if (!object) {
     
    151160            exit(EXIT_FAILURE);
    152161        }
     162            psFree(object);
     163            exit(EXIT_FAILURE);
     164        }
    153165
    154166        psFree(object);
     
    158170        pzDownloadImfileRow *object;
    159171
    160         object = pzDownloadImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", -16    );
     172        object = pzDownloadImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", -16, "0001-01-01T00:00:00Z"    );
    161173
    162174        if (!object) {
     
    192204            exit(EXIT_FAILURE);
    193205        }
     206            psFree(object);
     207            exit(EXIT_FAILURE);
     208        }
    194209
    195210        psFree(object);
     
    199214        newExpRow       *object;
    200215
    201         object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string"    );
     216        object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z"    );
    202217
    203218        if (!object) {
     
    253268            exit(EXIT_FAILURE);
    254269        }
     270            psFree(object);
     271            exit(EXIT_FAILURE);
     272        }
    255273
    256274        psFree(object);
     
    260278        newImfileRow    *object;
    261279
    262         object = newImfileRowAlloc(-64, "a string", "a string"    );
     280        object = newImfileRowAlloc(-64, "a string", "a string", "0001-01-01T00:00:00Z"    );
    263281
    264282        if (!object) {
     
    278296            exit(EXIT_FAILURE);
    279297        }
     298            psFree(object);
     299            exit(EXIT_FAILURE);
     300        }
    280301
    281302        psFree(object);
     
    285306        rawExpRow       *object;
    286307
    287         object = rawExpRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, "a string", -16    );
     308        object = rawExpRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, "a string", -16, "0001-01-01T00:00:00Z"    );
    288309
    289310        if (!object) {
     
    518539            exit(EXIT_FAILURE);
    519540        }
     541            psFree(object);
     542            exit(EXIT_FAILURE);
     543        }
    520544
    521545        psFree(object);
     
    525549        rawImfileRow    *object;
    526550
    527         object = rawImfileRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16    );
     551        object = rawImfileRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16, "0001-01-01T00:00:00Z"    );
    528552
    529553        if (!object) {
     
    739763        }
    740764        if (!object->fault == -16) {
     765            psFree(object);
     766            exit(EXIT_FAILURE);
     767        }
    741768            psFree(object);
    742769            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/insert.c

    r17833 r17872  
    1313        }
    1414
    15         if (!pzDataStoreInsert(dbh, "a string", "a string", "a string")) {
    16             exit(EXIT_FAILURE);
    17         }
    18 
    19         psDBCleanup(dbh);
    20     }
    21 
    22     {
    23         psDB            *dbh;
    24 
    25         dbh = psDBInit("localhost", "test", NULL, "test");
    26         if (!dbh) {
    27             exit(EXIT_FAILURE);
    28         }
    29 
    30         if (!summitExpInsert(dbh, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", -32, -16)) {
    31             exit(EXIT_FAILURE);
    32         }
    33 
    34         psDBCleanup(dbh);
    35     }
    36 
    37     {
    38         psDB            *dbh;
    39 
    40         dbh = psDBInit("localhost", "test", NULL, "test");
    41         if (!dbh) {
    42             exit(EXIT_FAILURE);
    43         }
    44 
    45         if (!summitImfileInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", "a string", "a string", "a string")) {
    46             exit(EXIT_FAILURE);
    47         }
    48 
    49         psDBCleanup(dbh);
    50     }
    51 
    52     {
    53         psDB            *dbh;
    54 
    55         dbh = psDBInit("localhost", "test", NULL, "test");
    56         if (!dbh) {
    57             exit(EXIT_FAILURE);
    58         }
    59 
    60         if (!pzDownloadExpInsert(dbh, "a string", "a string", "a string", "a string")) {
    61             exit(EXIT_FAILURE);
    62         }
    63 
    64         psDBCleanup(dbh);
    65     }
    66 
    67     {
    68         psDB            *dbh;
    69 
    70         dbh = psDBInit("localhost", "test", NULL, "test");
    71         if (!dbh) {
    72             exit(EXIT_FAILURE);
    73         }
    74 
    75         if (!pzDownloadImfileInsert(dbh, "a string", "a string", "a string", "a string", "a string", "a string", -16)) {
    76             exit(EXIT_FAILURE);
    77         }
    78 
    79         psDBCleanup(dbh);
    80     }
    81 
    82     {
    83         psDB            *dbh;
    84 
    85         dbh = psDBInit("localhost", "test", NULL, "test");
    86         if (!dbh) {
    87             exit(EXIT_FAILURE);
    88         }
    89 
    90         if (!newExpInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string")) {
    91             exit(EXIT_FAILURE);
    92         }
    93 
    94         psDBCleanup(dbh);
    95     }
    96 
    97     {
    98         psDB            *dbh;
    99 
    100         dbh = psDBInit("localhost", "test", NULL, "test");
    101         if (!dbh) {
    102             exit(EXIT_FAILURE);
    103         }
    104 
    105         if (!newImfileInsert(dbh, -64, "a string", "a string")) {
    106             exit(EXIT_FAILURE);
    107         }
    108 
    109         psDBCleanup(dbh);
    110     }
    111 
    112     {
    113         psDB            *dbh;
    114 
    115         dbh = psDBInit("localhost", "test", NULL, "test");
    116         if (!dbh) {
    117             exit(EXIT_FAILURE);
    118         }
    119 
    120         if (!rawExpInsert(dbh, -64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, "a string", -16)) {
    121             exit(EXIT_FAILURE);
    122         }
    123 
    124         psDBCleanup(dbh);
    125     }
    126 
    127     {
    128         psDB            *dbh;
    129 
    130         dbh = psDBInit("localhost", "test", NULL, "test");
    131         if (!dbh) {
    132             exit(EXIT_FAILURE);
    133         }
    134 
    135         if (!rawImfileInsert(dbh, -64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16)) {
     15        if (!pzDataStoreInsert(dbh, "a string", "a string", "a string", "0001-01-01T00:00:00Z")) {
     16            exit(EXIT_FAILURE);
     17        }
     18
     19        psDBCleanup(dbh);
     20    }
     21
     22    {
     23        psDB            *dbh;
     24
     25        dbh = psDBInit("localhost", "test", NULL, "test");
     26        if (!dbh) {
     27            exit(EXIT_FAILURE);
     28        }
     29
     30        if (!summitExpInsert(dbh, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", -32, -16, "0001-01-01T00:00:00Z")) {
     31            exit(EXIT_FAILURE);
     32        }
     33
     34        psDBCleanup(dbh);
     35    }
     36
     37    {
     38        psDB            *dbh;
     39
     40        dbh = psDBInit("localhost", "test", NULL, "test");
     41        if (!dbh) {
     42            exit(EXIT_FAILURE);
     43        }
     44
     45        if (!summitImfileInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z")) {
     46            exit(EXIT_FAILURE);
     47        }
     48
     49        psDBCleanup(dbh);
     50    }
     51
     52    {
     53        psDB            *dbh;
     54
     55        dbh = psDBInit("localhost", "test", NULL, "test");
     56        if (!dbh) {
     57            exit(EXIT_FAILURE);
     58        }
     59
     60        if (!pzDownloadExpInsert(dbh, "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z")) {
     61            exit(EXIT_FAILURE);
     62        }
     63
     64        psDBCleanup(dbh);
     65    }
     66
     67    {
     68        psDB            *dbh;
     69
     70        dbh = psDBInit("localhost", "test", NULL, "test");
     71        if (!dbh) {
     72            exit(EXIT_FAILURE);
     73        }
     74
     75        if (!pzDownloadImfileInsert(dbh, "a string", "a string", "a string", "a string", "a string", "a string", -16, "0001-01-01T00:00:00Z")) {
     76            exit(EXIT_FAILURE);
     77        }
     78
     79        psDBCleanup(dbh);
     80    }
     81
     82    {
     83        psDB            *dbh;
     84
     85        dbh = psDBInit("localhost", "test", NULL, "test");
     86        if (!dbh) {
     87            exit(EXIT_FAILURE);
     88        }
     89
     90        if (!newExpInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z")) {
     91            exit(EXIT_FAILURE);
     92        }
     93
     94        psDBCleanup(dbh);
     95    }
     96
     97    {
     98        psDB            *dbh;
     99
     100        dbh = psDBInit("localhost", "test", NULL, "test");
     101        if (!dbh) {
     102            exit(EXIT_FAILURE);
     103        }
     104
     105        if (!newImfileInsert(dbh, -64, "a string", "a string", "0001-01-01T00:00:00Z")) {
     106            exit(EXIT_FAILURE);
     107        }
     108
     109        psDBCleanup(dbh);
     110    }
     111
     112    {
     113        psDB            *dbh;
     114
     115        dbh = psDBInit("localhost", "test", NULL, "test");
     116        if (!dbh) {
     117            exit(EXIT_FAILURE);
     118        }
     119
     120        if (!rawExpInsert(dbh, -64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, "a string", -16, "0001-01-01T00:00:00Z")) {
     121            exit(EXIT_FAILURE);
     122        }
     123
     124        psDBCleanup(dbh);
     125    }
     126
     127    {
     128        psDB            *dbh;
     129
     130        dbh = psDBInit("localhost", "test", NULL, "test");
     131        if (!dbh) {
     132            exit(EXIT_FAILURE);
     133        }
     134
     135        if (!rawImfileInsert(dbh, -64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16, "0001-01-01T00:00:00Z")) {
    136136            exit(EXIT_FAILURE);
    137137        }
  • trunk/ippdb/tests/insertobject.c

    r17833 r17872  
    1414        }
    1515
    16         object = pzDataStoreRowAlloc("a string", "a string", "a string");
     16        object = pzDataStoreRowAlloc("a string", "a string", "a string", "0001-01-01T00:00:00Z");
    1717        if (!object) {
    1818            exit(EXIT_FAILURE);
     
    3636        }
    3737
    38         object = summitExpRowAlloc("a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", -32, -16);
     38        object = summitExpRowAlloc("a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", -32, -16, "0001-01-01T00:00:00Z");
    3939        if (!object) {
    4040            exit(EXIT_FAILURE);
     
    5858        }
    5959
    60         object = summitImfileRowAlloc("a string", "a string", "a string", "a string", -32, "a string", "a string", "a string", "a string");
     60        object = summitImfileRowAlloc("a string", "a string", "a string", "a string", -32, "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
    6161        if (!object) {
    6262            exit(EXIT_FAILURE);
     
    8080        }
    8181
    82         object = pzDownloadExpRowAlloc("a string", "a string", "a string", "a string");
     82        object = pzDownloadExpRowAlloc("a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
    8383        if (!object) {
    8484            exit(EXIT_FAILURE);
     
    102102        }
    103103
    104         object = pzDownloadImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", -16);
     104        object = pzDownloadImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", -16, "0001-01-01T00:00:00Z");
    105105        if (!object) {
    106106            exit(EXIT_FAILURE);
     
    124124        }
    125125
    126         object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
     126        object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
    127127        if (!object) {
    128128            exit(EXIT_FAILURE);
     
    146146        }
    147147
    148         object = newImfileRowAlloc(-64, "a string", "a string");
     148        object = newImfileRowAlloc(-64, "a string", "a string", "0001-01-01T00:00:00Z");
    149149        if (!object) {
    150150            exit(EXIT_FAILURE);
     
    168168        }
    169169
    170         object = rawExpRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, "a string", -16);
     170        object = rawExpRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, "a string", -16, "0001-01-01T00:00:00Z");
    171171        if (!object) {
    172172            exit(EXIT_FAILURE);
     
    190190        }
    191191
    192         object = rawImfileRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16);
     192        object = rawImfileRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16, "0001-01-01T00:00:00Z");
    193193        if (!object) {
    194194            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/metadatafromobject.c

    r17833 r17872  
    1313        bool            status;
    1414
    15         object = pzDataStoreRowAlloc("a string", "a string", "a string");
     15        object = pzDataStoreRowAlloc("a string", "a string", "a string", "0001-01-01T00:00:00Z");
    1616        if (!object) {
    1717            exit(EXIT_FAILURE);
     
    3737            exit(EXIT_FAILURE);
    3838        }
     39            psFree(md);
     40            exit(EXIT_FAILURE);
     41        }
    3942
    4043        psFree(md);
     
    4649        bool            status;
    4750
    48         object = summitExpRowAlloc("a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", -32, -16);
     51        object = summitExpRowAlloc("a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", -32, -16, "0001-01-01T00:00:00Z");
    4952        if (!object) {
    5053            exit(EXIT_FAILURE);
     
    8891            exit(EXIT_FAILURE);
    8992        }
     93            psFree(md);
     94            exit(EXIT_FAILURE);
     95        }
    9096
    9197        psFree(md);
     
    97103        bool            status;
    98104
    99         object = summitImfileRowAlloc("a string", "a string", "a string", "a string", -32, "a string", "a string", "a string", "a string");
     105        object = summitImfileRowAlloc("a string", "a string", "a string", "a string", -32, "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
    100106        if (!object) {
    101107            exit(EXIT_FAILURE);
     
    145151            exit(EXIT_FAILURE);
    146152        }
     153            psFree(md);
     154            exit(EXIT_FAILURE);
     155        }
    147156
    148157        psFree(md);
     
    154163        bool            status;
    155164
    156         object = pzDownloadExpRowAlloc("a string", "a string", "a string", "a string");
     165        object = pzDownloadExpRowAlloc("a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
    157166        if (!object) {
    158167            exit(EXIT_FAILURE);
     
    182191            exit(EXIT_FAILURE);
    183192        }
     193            psFree(md);
     194            exit(EXIT_FAILURE);
     195        }
    184196
    185197        psFree(md);
     
    191203        bool            status;
    192204
    193         object = pzDownloadImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", -16);
     205        object = pzDownloadImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", -16, "0001-01-01T00:00:00Z");
    194206        if (!object) {
    195207            exit(EXIT_FAILURE);
     
    230242            exit(EXIT_FAILURE);
    231243        }
     244            psFree(md);
     245            exit(EXIT_FAILURE);
     246        }
    232247
    233248        psFree(md);
     
    239254        bool            status;
    240255
    241         object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
     256        object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
    242257        if (!object) {
    243258            exit(EXIT_FAILURE);
     
    298313            exit(EXIT_FAILURE);
    299314        }
     315            psFree(md);
     316            exit(EXIT_FAILURE);
     317        }
    300318
    301319        psFree(md);
     
    307325        bool            status;
    308326
    309         object = newImfileRowAlloc(-64, "a string", "a string");
     327        object = newImfileRowAlloc(-64, "a string", "a string", "0001-01-01T00:00:00Z");
    310328        if (!object) {
    311329            exit(EXIT_FAILURE);
     
    330348            exit(EXIT_FAILURE);
    331349        }
     350            psFree(md);
     351            exit(EXIT_FAILURE);
     352        }
    332353
    333354        psFree(md);
     
    339360        bool            status;
    340361
    341         object = rawExpRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, "a string", -16);
     362        object = rawExpRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, "a string", -16, "0001-01-01T00:00:00Z");
    342363        if (!object) {
    343364            exit(EXIT_FAILURE);
     
    576597            exit(EXIT_FAILURE);
    577598        }
     599            psFree(md);
     600            exit(EXIT_FAILURE);
     601        }
    578602
    579603        psFree(md);
     
    585609        bool            status;
    586610
    587         object = rawImfileRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16);
     611        object = rawImfileRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16, "0001-01-01T00:00:00Z");
    588612        if (!object) {
    589613            exit(EXIT_FAILURE);
     
    800824        }
    801825        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     826            psFree(md);
     827            exit(EXIT_FAILURE);
     828        }
    802829            psFree(md);
    803830            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/objectfrommetadata.c

    r17833 r17872  
    2525            exit(EXIT_FAILURE);
    2626        }
     27            psFree(md);
     28            exit(EXIT_FAILURE);
     29        }
    2730
    2831        object = pzDataStoreObjectFromMetadata(md);
     
    4346        }
    4447        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     48            psFree(object);
     49            exit(EXIT_FAILURE);
     50        }
    4551            psFree(object);
    4652            exit(EXIT_FAILURE);
     
    8591            exit(EXIT_FAILURE);
    8692        }
     93            psFree(md);
     94            exit(EXIT_FAILURE);
     95        }
    8796
    8897        object = summitExpObjectFromMetadata(md);
     
    118127        }
    119128        if (!object->imfiles == -32) {
     129            psFree(object);
     130            exit(EXIT_FAILURE);
     131        }
    120132            psFree(object);
    121133            exit(EXIT_FAILURE);
     
    169181            exit(EXIT_FAILURE);
    170182        }
     183            psFree(md);
     184            exit(EXIT_FAILURE);
     185        }
    171186
    172187        object = summitImfileObjectFromMetadata(md);
     
    211226        }
    212227        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     228            psFree(object);
     229            exit(EXIT_FAILURE);
     230        }
    213231            psFree(object);
    214232            exit(EXIT_FAILURE);
     
    239257            exit(EXIT_FAILURE);
    240258        }
     259            psFree(md);
     260            exit(EXIT_FAILURE);
     261        }
    241262
    242263        object = pzDownloadExpObjectFromMetadata(md);
     
    261282        }
    262283        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     284            psFree(object);
     285            exit(EXIT_FAILURE);
     286        }
    263287            psFree(object);
    264288            exit(EXIT_FAILURE);
     
    300324            exit(EXIT_FAILURE);
    301325        }
     326            psFree(md);
     327            exit(EXIT_FAILURE);
     328        }
    302329
    303330        object = pzDownloadImfileObjectFromMetadata(md);
     
    330357        }
    331358        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     359            psFree(object);
     360            exit(EXIT_FAILURE);
     361        }
    332362            psFree(object);
    333363            exit(EXIT_FAILURE);
     
    392422            exit(EXIT_FAILURE);
    393423        }
     424            psFree(md);
     425            exit(EXIT_FAILURE);
     426        }
    394427
    395428        object = newExpObjectFromMetadata(md);
     
    445478        }
    446479        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     480            psFree(object);
     481            exit(EXIT_FAILURE);
     482        }
    447483            psFree(object);
    448484            exit(EXIT_FAILURE);
     
    468504            exit(EXIT_FAILURE);
    469505        }
     506            psFree(md);
     507            exit(EXIT_FAILURE);
     508        }
    470509
    471510        object = newImfileObjectFromMetadata(md);
     
    485524        }
    486525        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     526            psFree(object);
     527            exit(EXIT_FAILURE);
     528        }
    487529            psFree(object);
    488530            exit(EXIT_FAILURE);
     
    722764            exit(EXIT_FAILURE);
    723765        }
     766            psFree(md);
     767            exit(EXIT_FAILURE);
     768        }
    724769
    725770        object = rawExpObjectFromMetadata(md);
     
    950995        }
    951996        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     997            psFree(object);
     998            exit(EXIT_FAILURE);
     999        }
    9521000            psFree(object);
    9531001            exit(EXIT_FAILURE);
     
    11741222            exit(EXIT_FAILURE);
    11751223        }
     1224            psFree(md);
     1225            exit(EXIT_FAILURE);
     1226        }
    11761227
    11771228        object = rawImfileObjectFromMetadata(md);
     
    13861437        }
    13871438        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     1439            psFree(object);
     1440            exit(EXIT_FAILURE);
     1441        }
    13881442            psFree(object);
    13891443            exit(EXIT_FAILURE);
Note: See TracChangeset for help on using the changeset viewer.