Skip to content

Commit 864a9d3

Browse files
committed
Updating work in progress. A number of SQL query changes.
1 parent 44ad1c7 commit 864a9d3

14 files changed

+236
-73
lines changed

function/ap/gettaxaindatasets.sql

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
1-
CREATE OR REPLACE FUNCTION ap.gettaxaindatasets()
2-
RETURNS TABLE(taxonid integer,
3-
taxonname character varying,
4-
taxagroupid character varying,
5-
datasettypeid integer)
6-
LANGUAGE sql
1+
CREATE OR REPLACE FUNCTION ap.gettaxaindatasets()
2+
RETURNS TABLE(taxonid integer,
3+
taxonname character varying,
4+
taxagroupid character varying,
5+
datasettypeid jsonb)
6+
LANGUAGE sql
77
AS $function$
8-
SELECT t.taxonid, t.taxonname, t.taxagroupid, dtgt.datasettypeid
9-
FROM ndb.taxa AS t LEFT JOIN
10-
ndb.datasettaxagrouptypes AS dtgt ON t.taxagroupid = dtgt.taxagroupid INNER JOIN
11-
ndb.variables AS v ON t.taxonid = v.taxonid
12-
WHERE t.valid = True
13-
GROUP BY t.taxonid, t.taxonname, dtgt.datasettypeid, t.taxagroupid
14-
ORDER BY t.taxonname, dtgt.datasettypeid
15-
$function$
8+
SELECT t.taxonid,
9+
t.taxonname,
10+
t.taxagroupid,
11+
dtgt.datasettypeid
12+
FROM ndb.taxa AS t
13+
LEFT JOIN ndb.datasettaxagrouptypes AS dtgt ON t.taxagroupid = dtgt.taxagroupid
14+
INNER JOIN ndb.variables AS v ON t.taxonid = v.taxonid
15+
WHERE t.valid = True
16+
GROUP BY t.taxonid, t.taxonname, dtgt.datasettypeid, t.taxagroupid
17+
ORDER BY t.taxonname, dtgt.datasettypeid
18+
$function$

function/doi/01_datasetinfo.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ siteobj AS (
1414
FROM
1515
ap.siteobject((SELECT array_agg(siteid) FROM siteid))
1616
)
17-
SELECT dts.datasetid,
17+
SELECT DISTINCT dts.datasetid,
1818
sts.site ||
1919
jsonb_build_object('collectionunit', json_build_object('collectionunitid', clu.collectionunitid,
2020
'depositionalenvironment', dvt.depenvt,
@@ -73,7 +73,7 @@ siteobj AS (
7373
FROM
7474
ap.siteobject((SELECT siteid FROM siteid))
7575
)
76-
SELECT dts.datasetid,
76+
SELECT DISTINCT dts.datasetid,
7777
sts.site ||
7878
jsonb_build_object('collectionunit', json_build_object('collectionunitid', clu.collectionunitid,
7979
'depositionalenvironment', dvt.depenvt,

function/doi/doifreeze.sql

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,4 @@ FROM
2121
datameta AS dt
2222
JOIN chronmeta AS chr ON dt.datasetid = chr.datasetid
2323
JOIN ids AS ids ON ids.dsid = dt.datasetid
24-
2524
$function$

function/geo/sitegeospatial.sql

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
CREATE INDEX gadm_geom_idx
2+
ON gadm404
3+
USING GIST (geom);
4+
5+
CREATE MATERIALIZED VIEW IF NOT EXISTS public.geositename AS
6+
SELECT st.siteid,
7+
st.sitename,
8+
uid,
9+
name_0,
10+
name_1,
11+
name_2,
12+
name_3,
13+
name_4,
14+
concat_ws(' ', name_0, varname_0, name_1, varname_1,
15+
nl_name_1, name_2, varname_2, nl_name_2, name_3,
16+
varname_3, nl_name_3, name_4, varname_4, name_5) AS names,
17+
array_agg(ds.datasetid)
18+
FROM ndb.sites AS st
19+
LEFT OUTER JOIN gadm404 ON ST_Intersects(st.geog::geometry, gadm404.geom)
20+
LEFT JOIN ndb.collectionunits AS cu ON cu.siteid = st.siteid
21+
LEFT JOIN ndb.datasets AS ds on ds.collectionunitid = cu.collectionunitid
22+
GROUP BY st.siteid, st.sitename, uid, name_0, name_1, name_2, name_3, name_4, name_5,
23+
varname_0, varname_1, varname_2, varname_3, varname_4,
24+
nl_name_1, nl_name_2, nl_name_3;
25+
26+
CREATE INDEX pglocation_idx ON geositename USING GIN (to_tsvector('english', names));

function/ndb/datasetconstitdb.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ AS $function$
99
WHERE EXTRACT(year from AGE(NOW(), dss.submissiondate))*12 +
1010
EXTRACT(month from AGE(NOW(), dss.submissiondate)) BETWEEN startperiod and endperiod
1111
GROUP BY cdb.databasename
12-
$function$
12+
$function$;

function/ndb/datasetcontribs.sql

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CREATE OR REPLACE FUNCTION ndb.datasetcontribs(startperiod integer DEFAULT 0, endperiod integer DEFAULT 1)
2+
RETURNS TABLE(databasename character varying, counts bigint)
3+
LANGUAGE sql
4+
AS $function$
5+
SELECT ct.contactname, count(*)
6+
FROM ndb.datasets AS ds
7+
JOIN ndb.datasetsubmissions AS dss ON dss.datasetid = ds.datasetid
8+
JOIN ndb.contacts AS ct ON ct.contactid = dss.contactid
9+
WHERE EXTRACT(year from AGE(NOW(), dss.submissiondate))*12 +
10+
EXTRACT(month from AGE(NOW(), dss.submissiondate)) BETWEEN startperiod and endperiod
11+
GROUP BY ct.contactname
12+
$function$;

function/ndb/datasettypecontrib.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ AS $function$
99
WHERE EXTRACT(year from AGE(NOW(), dss.submissiondate))*12 +
1010
EXTRACT(month from AGE(NOW(), dss.submissiondate)) BETWEEN startperiod and endperiod
1111
GROUP BY dst.datasettype
12-
$function$
12+
$function$;

function/ts/insertsteward.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ AS $function$
1414
values ((select stewardid from ti.stewards AS stw where (stw.contactid = _contactid)), _databaseid)
1515
RETURNING stewardid
1616
$function$
17+

function/working/dataupload.sql

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
CREATE OR REPLACE FUNCTION ts.upload(uploadobject jsonb)
2+
RETURNS INTEGER
3+
LANGUAGE pgsql
4+
AS $function$
5+
/* YAML shows that we often first insert variables */
6+
siteid := (SELECT ts.insertsite(_sitename := (SELECT uploadobject #>> '{data,0,site,sitename}'),
7+
_altitude := (SELECT uploadobject #> '{data,0,site,altitude}'),
8+
_area := (SELECT uploadobject #> '{data,0,site,area}'),
9+
_descript := (SELECT uploadobject #> '{data,0,site,sitedescription}'),
10+
_notes := (SELECT uploadobject #> '{data,0,site,notes}')))
11+
/* SELECT ts.insertcontact() */
12+
/* YAML shows insert lake parameters */
13+
/* YAML shows insert sitegeopol */
14+
collinutid := SELECT ts.insertcollectionunit(_handle := (SELECT uploadobject #>> '{data,0,site,collectionunit, handle}'),
15+
_siteid := siteid,
16+
_colltypeid integer DEFAULT NULL::integer,
17+
_depenvtid integer DEFAULT NULL::integer,
18+
_collunitname character varying DEFAULT NULL::character varying,
19+
_colldate date DEFAULT NULL::date,
20+
_colldevice := (SELECT uploadobject #>> '{data,0,site,collectionunit, collectiondevice}'),
21+
_gpslatitude double precision DEFAULT NULL::double precision,
22+
_gpslongitude double precision DEFAULT NULL::double precision,
23+
_gpsaltitude double precision DEFAULT NULL::double precision,
24+
_gpserror double precision DEFAULT NULL::double precision,
25+
_waterdepth := (SELECT uploadobject #>> '{data,0,site,collectionunit, waterdepth}'),
26+
_watertabledepth double precision DEFAULT NULL::double precision,
27+
_substrateid integer DEFAULT NULL::integer,
28+
_slopeaspect integer DEFAULT NULL::integer,
29+
_slopeangle integer DEFAULT NULL::integer,
30+
_location := (SELECT uploadobject #>> '{data,0,site,collectionunit, location}'),
31+
_notes := (SELECT uploadobject #>> '{data,0,site,collectionunit, notes}'))
32+
/* Have to do this for the set of collectors */
33+
SELECT ts.insertcollector(_collunitid := collunitid,
34+
_contactid integer,
35+
_collectororder integer)
36+
/* Add the set of analysis units */
37+
/* Add the set of chronologies */
38+
/* With the chronology id, add the chron controls */
39+
/* Add the dataset info */
40+
/* Link to the dataset database */
41+
/* Add the dataset PI info */
42+
/* Add the data processor info */
43+
/* Add dataset publication information */
44+
/* Add dataset repository information */
45+
/* Add any (dataset level) synonymys */
46+
/* Add samples */
47+
/* Add sample analyst */
48+
/* add sample age */
49+
/* Insert data */
50+
/* Insert dataset submission */
51+
$function$

function/working/tesingapi.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SELECT '{"status":"success","data":[{"site":{"area":null,"notes":null,"siteid":970,"altitude":690,"sitename":"Hail Lake","geography":"{\"type\":\"Point\",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"EPSG:4326\"}},\"coordinates\":[-129.01667,60.03333]}","geopolitical":["Canada","Yukon Territory"],"collectionunit":{"notes":null,"handle":"HAIL","colldate":null,"location":null,"waterdepth":7.39,"gpslocation":{"gpserror":null,"latitude":null,"longitude":null,"gpsaltitude":null},"collunittype":"Core","collectionunit":null,"collectiondevice":"Wright square-rod piston corer (5cm)","collectionunitid":969,"depositionalenvironment":"Glacial Origin Lake","dataset":{"doi":["10.21233/n31d9w","10.21233/n3f91j"],"agerange":[{"units":null,"ageold":null,"ageyoung":null}],"database":"North American Pollen Database","datasetid":1001,"datasetpi":[{"initials":"L.C.","contactid":129,"firstname":"Les C.","familyname":"Cwynar","contactname":"Cwynar, Les C."}],"datasetname":null,"datasettype":"pollen","datasetnotes":null,"samples":[{"ages":[{"age":null,"agetype":null,"ageolder":null,"ageyounger":null,"chronologyid":null,"chronologyname":null}],"igsn":null,"datum":[{"units":null,"value":null,"context":null,"element":null,"taxonid":null,"symmetry":null,"taxongroup":null,"elementtype":null,"variablename":null,"ecologicalgroup":null}],"depth":null,"sampleid":null,"thickness":null,"samplename":null,"sampleanalyst":[{"initials":null,"contactid":null,"firstname":null,"familyname":null,"contactname":null}],"analysisunitid":null,"analysisunitname":null}]},"chronologies":[{"chronology":{"chronology":{"notes":"Chron excludes three oldest ages and the reversed level at 457 cm","contact":[{"contactid":971,"givenname":"Mathieu L.","familyname":"Duvall","contactname":"Duvall, Mathieu L.","leadinginitial":"M.L."}],"agemodel":"linear interpolation","agerange":{"ageboundolder":9950,"ageboundyounger":60},"isdefault":true,"dateprepared":"1998-03-06","modelagetype":"Radiocarbon years BP","chronologyname":"PALE 1"},"chronologyid":485,"chroncontrols":[{"depth":0,"geochron":{"agetype":null,"delta13c":null,"delta15n":null,"infinite":null,"percentc":null,"percentn":null,"labnumber":null,"reservoir":null,"geochronid":null,"geochronage":null,"geochrontype":null,"geochronnotes":null,"percentcollagen":null,"radiocarbonmethod":null,"geochronerrorolder":null,"geochronerroryounger":null,"geochronmaterialdated":null},"thickness":null,"agelimitolder":0,"chroncontrolid":2818,"agelimityounger":0,"chroncontrolage":0,"chroncontroltype":"Core top"},{"depth":128,"geochron":{"agetype":"Radiocarbon years BP","delta13c":null,"delta15n":null,"infinite":false,"percentc":null,"percentn":null,"labnumber":"TO-1152","reservoir":null,"geochronid":1648,"geochronage":2870,"geochrontype":"Carbon-14","geochronnotes":"asal three dates >30,000 rejected. Probably redeposited wood.","percentcollagen":null,"radiocarbonmethod":"accelerator mass spectrometry","geochronerrorolder":50,"geochronerroryounger":50,"geochronmaterialdated":"Carbonized twigs and wood frag"},"thickness":4,"agelimitolder":2920,"chroncontrolid":2819,"agelimityounger":2820,"chroncontrolage":2870,"chroncontroltype":"Radiocarbon"},{"depth":204,"geochron":{"agetype":"Radiocarbon years BP","delta13c":null,"delta15n":null,"infinite":false,"percentc":null,"percentn":null,"labnumber":"TO-1153","reservoir":null,"geochronid":1649,"geochronage":4840,"geochrontype":"Carbon-14","geochronnotes":null,"percentcollagen":null,"radiocarbonmethod":"accelerator mass spectrometry","geochronerrorolder":50,"geochronerroryounger":50,"geochronmaterialdated":"Carbonized spruce needle, inse"},"thickness":4,"agelimitolder":4930,"chroncontrolid":2820,"agelimityounger":4830,"chroncontrolage":4840,"chroncontroltype":"Radiocarbon"},{"depth":236,"geochron":{"agetype":"Radiocarbon years BP","delta13c":null,"delta15n":null,"infinite":false,"percentc":null,"percentn":null,"labnumber":"TO-1154","reservoir":null,"geochronid":1650,"geochronage":5860,"geochrontype":"Carbon-14","geochronnotes":null,"percentcollagen":null,"radiocarbonmethod":"accelerator mass spectrometry","geochronerrorolder":410,"geochronerroryounger":410,"geochronmaterialdated":"Carbonized spruce needle, inse"},"thickness":4,"agelimitolder":6270,"chroncontrolid":2821,"agelimityounger":5450,"chroncontrolage":5860,"chroncontroltype":"Radiocarbon"},{"depth":358,"geochron":{"agetype":"Radiocarbon years BP","delta13c":null,"delta15n":null,"infinite":false,"percentc":null,"percentn":null,"labnumber":"TO-1155","reservoir":null,"geochronid":1651,"geochronage":8440,"geochrontype":"Carbon-14","geochronnotes":null,"percentcollagen":null,"radiocarbonmethod":"accelerator mass spectrometry","geochronerrorolder":70,"geochronerroryounger":70,"geochronmaterialdated":"Spruce needles and wood frags"},"thickness":5,"agelimitolder":8510,"chroncontrolid":2822,"agelimityounger":8370,"chroncontrolage":8440,"chroncontroltype":"Radiocarbon"},{"depth":398,"geochron":{"agetype":"Radiocarbon years BP","delta13c":null,"delta15n":null,"infinite":false,"percentc":null,"percentn":null,"labnumber":"TO-1156","reservoir":null,"geochronid":1652,"geochronage":8820,"geochrontype":"Carbon-14","geochronnotes":null,"percentcollagen":null,"radiocarbonmethod":"accelerator mass spectrometry","geochronerrorolder":70,"geochronerroryounger":70,"geochronmaterialdated":"Spruce needles and wood frags"},"thickness":4,"agelimitolder":8890,"chroncontrolid":2823,"agelimityounger":8750,"chroncontrolage":8820,"chroncontroltype":"Radiocarbon"},{"depth":423,"geochron":{"agetype":"Radiocarbon years BP","delta13c":null,"delta15n":null,"infinite":false,"percentc":null,"percentn":null,"labnumber":"TO-1157","reservoir":null,"geochronid":1653,"geochronage":8930,"geochrontype":"Carbon-14","geochronnotes":null,"percentcollagen":null,"radiocarbonmethod":"accelerator mass spectrometry","geochronerrorolder":70,"geochronerroryounger":70,"geochronmaterialdated":"Spruce needles and wood frags"},"thickness":10,"agelimitolder":9000,"chroncontrolid":2824,"agelimityounger":8860,"chroncontrolage":8930,"chroncontroltype":"Radiocarbon"},{"depth":482,"geochron":{"agetype":"Radiocarbon years BP","delta13c":null,"delta15n":null,"infinite":false,"percentc":null,"percentn":null,"labnumber":"TO-1159","reservoir":null,"geochronid":1655,"geochronage":9500,"geochrontype":"Carbon-14","geochronnotes":null,"percentcollagen":null,"radiocarbonmethod":"accelerator mass spectrometry","geochronerrorolder":80,"geochronerroryounger":80,"geochronmaterialdated":"Monocot frags"},"thickness":4,"agelimitolder":9580,"chroncontrolid":2825,"agelimityounger":9420,"chroncontrolage":9500,"chroncontroltype":"Radiocarbon"}]}}],"defaultchronology":485},"sitedescription":"Small lake. Surrounding vegetation: Picea mariana, P. glauca, Pinus contorta."}}],"message":"Retrieved all tables" }'::jsonb #>> '{data,0,site,sitename}';

0 commit comments

Comments
 (0)