  length integer,
  is_protein boolean
 );
-#COPY job_md5s (version,job,md5,abundance,evals,exp_avg,exp_stdv,len_avg,len_stdv,ident_avg,ident_stdv,seek,length,is_protein) FROM 'FILE' WITH NULL AS '';
+-- COPY job_md5s (version,job,md5,abundance,evals,exp_avg,exp_stdv,len_avg,len_stdv,ident_avg,ident_stdv,seek,length,is_protein) FROM 'FILE' WITH NULL AS '';
 CREATE UNIQUE INDEX job_md5s_key ON job_md5s (version, job, md5);
 CREATE INDEX job_md5s_job_protein ON job_md5s (job, is_protein);
 CREATE INDEX job_md5s_seek_length ON job_md5s (seek, length);

 md5s char(32)[],
 source text NOT NULL
);
#COPY job_ontologies (version,job,id,abundance,exp_avg,exp_stdv,len_avg,len_stdv,ident_avg,ident_stdv,md5s,source) FROM 'FILE' WITH NULL AS '';
CREATE UNIQUE INDEX job_ontologies_key ON job_ontologies (version, job, id, source);

DROP TABLE IF EXISTS job_lcas;

-- index notes:
-- for md5 table
-- 1. param / cutoff lookup: version, job, exp_avg, len_avg, ident_avg
-- for annotation tables
-- 1. param / cutoff lookup: version, job, exp_avg, len_avg, ident_avg, source
-- 2. annotation searching: version, name, source

CREATE OR REPLACE FUNCTION update_timestamp()
RETURNS TRIGGER AS $$
