I have to checkpoint this because I'm trying to get a very complicated multi-layered SQL query for inserting version history into the database and I need to improve it iteratively I've got a new binary that I can use to directly test complex stored procedures. This is to shorted my testing loop.
93 lines
3 KiB
SQL
93 lines
3 KiB
SQL
-- Table definition for fieldseeker.Pool
|
|
-- Includes versioning for tracking changes
|
|
|
|
CREATE SCHEMA IF NOT EXISTS fieldseeker;
|
|
|
|
CREATE TYPE fieldseeker.pool_notinuit_f_enum AS ENUM (
|
|
'1',
|
|
'0'
|
|
);
|
|
|
|
CREATE TYPE fieldseeker.pool_pool_testmethod_670efbfba86d41ba8e2d3cab5d749e7f_enum AS ENUM (
|
|
'RT-PCR'
|
|
);
|
|
|
|
CREATE TYPE fieldseeker.pool_pool_diseasetested_0f02232949c04c7e8de820b9b515ed97_enum AS ENUM (
|
|
'WNV',
|
|
'SLEV',
|
|
'WEEV',
|
|
'DENV',
|
|
'ZIKV',
|
|
'CHIKV'
|
|
);
|
|
|
|
CREATE TYPE fieldseeker.pool_pool_diseasepos_6889f8dd00074874aa726907e78497fa_enum AS ENUM (
|
|
'WNV',
|
|
'SLEV',
|
|
'WEEV',
|
|
'DENV',
|
|
'ZIKV',
|
|
'CHIKV',
|
|
'WNV/SLEV'
|
|
);
|
|
|
|
CREATE TYPE fieldseeker.pool_mosquitolabname_enum AS ENUM (
|
|
'Internal Lab',
|
|
'State Lab'
|
|
);
|
|
|
|
CREATE TABLE fieldseeker.pool (
|
|
objectid BIGSERIAL NOT NULL,
|
|
trapdata_id UUID,
|
|
datesent TIMESTAMP,
|
|
survtech VARCHAR(25),
|
|
datetested TIMESTAMP,
|
|
testtech VARCHAR(25),
|
|
comments VARCHAR(250),
|
|
sampleid VARCHAR(50),
|
|
processed fieldseeker.pool_notinuit_f_enum,
|
|
lab_id UUID,
|
|
testmethod fieldseeker.pool_pool_testmethod_670efbfba86d41ba8e2d3cab5d749e7f_enum,
|
|
diseasetested fieldseeker.pool_pool_diseasetested_0f02232949c04c7e8de820b9b515ed97_enum,
|
|
diseasepos fieldseeker.pool_pool_diseasepos_6889f8dd00074874aa726907e78497fa_enum,
|
|
globalid UUID,
|
|
created_user VARCHAR(255),
|
|
created_date TIMESTAMP,
|
|
last_edited_user VARCHAR(255),
|
|
last_edited_date TIMESTAMP,
|
|
lab fieldseeker.pool_mosquitolabname_enum,
|
|
poolyear SMALLINT,
|
|
gatewaysync SMALLINT,
|
|
vectorsurvcollectionid VARCHAR(50),
|
|
vectorsurvpoolid VARCHAR(50),
|
|
vectorsurvtrapdataid VARCHAR(50),
|
|
creationdate TIMESTAMP,
|
|
creator VARCHAR(128),
|
|
editdate TIMESTAMP,
|
|
editor VARCHAR(128),
|
|
VERSION INTEGER NOT NULL DEFAULT 1,
|
|
PRIMARY KEY (objectid, VERSION)
|
|
);
|
|
|
|
COMMENT ON COLUMN fieldseeker.pool.VERSION IS 'Tracks version changes to the row. Increases when data is modified.';
|
|
|
|
COMMENT ON COLUMN fieldseeker.pool.trapdata_id IS 'Trap Data ID';
|
|
COMMENT ON COLUMN fieldseeker.pool.datesent IS 'Date Sent';
|
|
COMMENT ON COLUMN fieldseeker.pool.survtech IS 'Survey Tech';
|
|
COMMENT ON COLUMN fieldseeker.pool.datetested IS 'Date Tested';
|
|
COMMENT ON COLUMN fieldseeker.pool.testtech IS 'Test Tech';
|
|
COMMENT ON COLUMN fieldseeker.pool.comments IS 'Comments';
|
|
COMMENT ON COLUMN fieldseeker.pool.sampleid IS 'Sample ID';
|
|
COMMENT ON COLUMN fieldseeker.pool.processed IS 'Processed';
|
|
COMMENT ON COLUMN fieldseeker.pool.testmethod IS 'Test Methods';
|
|
COMMENT ON COLUMN fieldseeker.pool.diseasetested IS 'Diseases Tested';
|
|
COMMENT ON COLUMN fieldseeker.pool.diseasepos IS 'Diseases Positive';
|
|
COMMENT ON COLUMN fieldseeker.pool.poolyear IS 'Pool Year';
|
|
COMMENT ON COLUMN fieldseeker.pool.gatewaysync IS 'Gateway Sync';
|
|
|
|
-- See insert/insert_pool_versioned.sql for prepared insert statement
|
|
|
|
-- Usage notes for versioning:
|
|
-- When inserting a new row, VERSION defaults to 1
|
|
-- When updating a row, insert a new row with the same ID but incremented VERSION
|
|
-- The most recent version of a row has the highest VERSION value
|