Project

General

Profile

« Previous | Next » 

Revision 6531

schemas/vegbien.sql: Merged darwin_core into analytical_stem

View differences:

vegbien.sql
928 928
ALTER TABLE analytical_stem ALTER COLUMN "institutionCode" SET NOT NULL;
929 929
ALTER TABLE analytical_stem ALTER COLUMN "plotName" SET NOT NULL;
930 930

  
931
CREATE INDEX ON analytical_stem ("institutionCode", "plotName", "dateCollected" );
931
CREATE INDEX ON analytical_stem ("institutionCode", "occurrenceID" );
932
CREATE INDEX ON analytical_stem ("institutionCode", "subInstitutionCode", "collectionCode", "catalogNumber" );
933
CREATE INDEX ON analytical_stem ("institutionCode", "projectID", "plotName", "dateCollected" );
932 934
$$;
933 935

  
934 936

  
......
1462 1464
    "coordinateUncertaintyInMeters" double precision,
1463 1465
    geovalid boolean,
1464 1466
    "isNewWorld" boolean,
1465
    "distanceToCountry_km" double precision,
1466
    "distanceToStateProvince_km" double precision,
1467 1467
    "plotName" text NOT NULL,
1468 1468
    "elevationInMeters" double precision,
1469 1469
    "plotArea_ha" double precision,
......
1495 1495

  
1496 1496
CREATE TABLE analytical_stem (
1497 1497
    "institutionCode" text NOT NULL,
1498
    "subInstitutionCode" text,
1499
    "collectionCode" text,
1500
    "catalogNumber" text,
1501
    "occurrenceID" text,
1498 1502
    country text,
1499 1503
    "stateProvince" text,
1500 1504
    county text,
......
1503 1507
    "coordinateUncertaintyInMeters" double precision,
1504 1508
    geovalid boolean,
1505 1509
    "isNewWorld" boolean,
1506
    "distanceToCountry_km" double precision,
1507
    "distanceToStateProvince_km" double precision,
1510
    "projectID" integer,
1508 1511
    "plotName" text NOT NULL,
1509 1512
    "elevationInMeters" double precision,
1510 1513
    "plotArea_ha" double precision,
......
1516 1519
    "speciesBinomial" text,
1517 1520
    "scientificName" text,
1518 1521
    "scientificNameAuthorship" text,
1522
    "speciesBinomialWithMorphospecies" text,
1519 1523
    "scientificNameWithMorphospecies" text,
1520 1524
    threatened boolean,
1521 1525
    "identifiedBy" text,
1522 1526
    "growthForm" growthform,
1523 1527
    cultivated boolean,
1524 1528
    "cultivatedBasis" text,
1529
    "recordedBy" text,
1530
    "recordNumber" text,
1525 1531
    "coverPercent" double precision,
1526 1532
    "diameterBreastHeight_cm" double precision,
1527 1533
    height_m double precision,
1528 1534
    tag text,
1529 1535
    "organismX_m" double precision,
1530 1536
    "organismY_m" double precision,
1531
    "recordedBy" text,
1532
    "recordNumber" text
1537
    "taxonOccurrenceID" text,
1538
    "authorTaxonCode" text,
1539
    "individualID" text,
1540
    "authorStemCode" text
1533 1541
);
1534 1542

  
1535 1543

  
......
1538 1546
--
1539 1547

  
1540 1548
CREATE VIEW analytical_aggregate_view AS
1541
    SELECT analytical_stem."institutionCode", analytical_stem.country, analytical_stem."stateProvince", analytical_stem.county, analytical_stem."decimalLatitude", analytical_stem."decimalLongitude", analytical_stem."coordinateUncertaintyInMeters", analytical_stem.geovalid, analytical_stem."isNewWorld", analytical_stem."distanceToCountry_km", analytical_stem."distanceToStateProvince_km", analytical_stem."plotName", analytical_stem."elevationInMeters", analytical_stem."plotArea_ha", analytical_stem."samplingProtocol", analytical_stem."dateCollected", analytical_stem."higherPlantGroup", analytical_stem.family, analytical_stem.genus, analytical_stem."speciesBinomial", analytical_stem."scientificName", analytical_stem."scientificNameAuthorship", analytical_stem."scientificNameWithMorphospecies", analytical_stem.threatened, analytical_stem."identifiedBy", analytical_stem."growthForm", analytical_stem.cultivated, analytical_stem."cultivatedBasis", sum(analytical_stem."coverPercent") AS "coverPercent", count(analytical_stem."diameterBreastHeight_cm") AS "individualCount", count((analytical_stem."diameterBreastHeight_cm" >= _cm_to_m((1)::double precision))) AS "individualCount_1cm_or_more", count((analytical_stem."diameterBreastHeight_cm" >= _cm_to_m((2.5)::double precision))) AS "individualCount_2_5cm_or_more", count((analytical_stem."diameterBreastHeight_cm" >= _cm_to_m((10)::double precision))) AS "individualCount_10cm_or_more" FROM analytical_stem GROUP BY analytical_stem."institutionCode", analytical_stem.country, analytical_stem."stateProvince", analytical_stem.county, analytical_stem."decimalLatitude", analytical_stem."decimalLongitude", analytical_stem."coordinateUncertaintyInMeters", analytical_stem.geovalid, analytical_stem."isNewWorld", analytical_stem."distanceToCountry_km", analytical_stem."distanceToStateProvince_km", analytical_stem."plotName", analytical_stem."elevationInMeters", analytical_stem."plotArea_ha", analytical_stem."samplingProtocol", analytical_stem."dateCollected", analytical_stem."higherPlantGroup", analytical_stem.family, analytical_stem.genus, analytical_stem."speciesBinomial", analytical_stem."scientificName", analytical_stem."scientificNameAuthorship", analytical_stem."scientificNameWithMorphospecies", analytical_stem.threatened, analytical_stem."identifiedBy", analytical_stem."growthForm", analytical_stem.cultivated, analytical_stem."cultivatedBasis";
1549
    SELECT analytical_stem."institutionCode", analytical_stem.country, analytical_stem."stateProvince", analytical_stem.county, analytical_stem."decimalLatitude", analytical_stem."decimalLongitude", analytical_stem."coordinateUncertaintyInMeters", analytical_stem.geovalid, analytical_stem."isNewWorld", analytical_stem."plotName", analytical_stem."elevationInMeters", analytical_stem."plotArea_ha", analytical_stem."samplingProtocol", analytical_stem."dateCollected", analytical_stem."higherPlantGroup", analytical_stem.family, analytical_stem.genus, analytical_stem."speciesBinomial", analytical_stem."scientificName", analytical_stem."scientificNameAuthorship", analytical_stem."scientificNameWithMorphospecies", analytical_stem.threatened, analytical_stem."identifiedBy", analytical_stem."growthForm", analytical_stem.cultivated, analytical_stem."cultivatedBasis", sum(analytical_stem."coverPercent") AS "coverPercent", count(analytical_stem."diameterBreastHeight_cm") AS "individualCount", count((analytical_stem."diameterBreastHeight_cm" >= _cm_to_m((1)::double precision))) AS "individualCount_1cm_or_more", count((analytical_stem."diameterBreastHeight_cm" >= _cm_to_m((2.5)::double precision))) AS "individualCount_2_5cm_or_more", count((analytical_stem."diameterBreastHeight_cm" >= _cm_to_m((10)::double precision))) AS "individualCount_10cm_or_more" FROM analytical_stem GROUP BY analytical_stem."institutionCode", analytical_stem.country, analytical_stem."stateProvince", analytical_stem.county, analytical_stem."decimalLatitude", analytical_stem."decimalLongitude", analytical_stem."coordinateUncertaintyInMeters", analytical_stem.geovalid, analytical_stem."isNewWorld", analytical_stem."plotName", analytical_stem."elevationInMeters", analytical_stem."plotArea_ha", analytical_stem."samplingProtocol", analytical_stem."dateCollected", analytical_stem."higherPlantGroup", analytical_stem.family, analytical_stem.genus, analytical_stem."speciesBinomial", analytical_stem."scientificName", analytical_stem."scientificNameAuthorship", analytical_stem."scientificNameWithMorphospecies", analytical_stem.threatened, analytical_stem."identifiedBy", analytical_stem."growthForm", analytical_stem.cultivated, analytical_stem."cultivatedBasis";
1542 1550

  
1543 1551

  
1544 1552
--
......
2013 2021

  
2014 2022

  
2015 2023
--
2024
-- Name: project; Type: TABLE; Schema: public; Owner: -; Tablespace: 
2025
--
2026

  
2027
CREATE TABLE project (
2028
    project_id integer NOT NULL,
2029
    source_id integer NOT NULL,
2030
    sourceaccessioncode text,
2031
    projectname text,
2032
    projectdescription text,
2033
    startdate date,
2034
    stopdate date,
2035
    accessioncode text,
2036
    CONSTRAINT project_required_key CHECK (((sourceaccessioncode IS NOT NULL) OR (projectname IS NOT NULL)))
2037
);
2038

  
2039

  
2040
--
2016 2041
-- Name: source; Type: TABLE; Schema: public; Owner: -; Tablespace: 
2017 2042
--
2018 2043

  
......
2052 2077

  
2053 2078

  
2054 2079
--
2080
-- Name: sourcename; Type: TABLE; Schema: public; Owner: -; Tablespace: 
2081
--
2082

  
2083
CREATE TABLE sourcename (
2084
    sourcename_id integer NOT NULL,
2085
    source_id integer NOT NULL,
2086
    system text,
2087
    name text NOT NULL,
2088
    matched_source_id integer
2089
);
2090

  
2091

  
2092
--
2093
-- Name: specimenreplicate; Type: TABLE; Schema: public; Owner: -; Tablespace: 
2094
--
2095

  
2096
CREATE TABLE specimenreplicate (
2097
    specimenreplicate_id integer NOT NULL,
2098
    source_id integer NOT NULL,
2099
    sourceaccessioncode text,
2100
    plantobservation_id integer,
2101
    institution_id integer,
2102
    collectioncode_dwc text,
2103
    catalognumber_dwc text,
2104
    description text,
2105
    specimen_id integer,
2106
    accessioncode text,
2107
    CONSTRAINT specimenreplicate_required_key CHECK ((((plantobservation_id IS NOT NULL) OR (sourceaccessioncode IS NOT NULL)) OR (catalognumber_dwc IS NOT NULL)))
2108
);
2109

  
2110

  
2111
--
2112
-- Name: TABLE specimenreplicate; Type: COMMENT; Schema: public; Owner: -
2113
--
2114

  
2115
COMMENT ON TABLE specimenreplicate IS 'A herbarium''s replicate of a specimen. Contains Darwin Core specimen data.';
2116

  
2117

  
2118
--
2119
-- Name: COLUMN specimenreplicate.institution_id; Type: COMMENT; Schema: public; Owner: -
2120
--
2121

  
2122
COMMENT ON COLUMN specimenreplicate.institution_id IS 'The institution (such as a museum) that the specimenreplicate is from.';
2123

  
2124

  
2125
--
2126
-- Name: COLUMN specimenreplicate.collectioncode_dwc; Type: COMMENT; Schema: public; Owner: -
2127
--
2128

  
2129
COMMENT ON COLUMN specimenreplicate.collectioncode_dwc IS 'The code for the collection that the specimenreplicate is from.';
2130

  
2131

  
2132
--
2055 2133
-- Name: stemobservation; Type: TABLE; Schema: public; Owner: -; Tablespace: 
2056 2134
--
2057 2135

  
......
2273 2351
--
2274 2352

  
2275 2353
CREATE VIEW analytical_stem_view AS
2276
    SELECT source.shortname AS "institutionCode", canon_place.country, canon_place.stateprovince AS "stateProvince", datasource_place.county, coordinates.latitude_deg AS "decimalLatitude", coordinates.longitude_deg AS "decimalLongitude", coordinates.coordsaccuracy_m AS "coordinateUncertaintyInMeters", canon_place.geovalid, "newWorldCountries"."isNewWorld", _m_to_km(canon_place.distance_to_country_m) AS "distanceToCountry_km", _m_to_km(canon_place.distance_to_state_m) AS "distanceToStateProvince_km", COALESCE(location.sourceaccessioncode, location.authorlocationcode) AS "plotName", location.elevation_m AS "elevationInMeters", _m2_to_ha(location.area_m2) AS "plotArea_ha", method.name AS "samplingProtocol", COALESCE(locationevent.obsstartdate, parent_plot_event.obsstartdate, aggregateoccurrence.collectiondate) AS "dateCollected", family_higher_plant_group.higher_plant_group AS "higherPlantGroup", accepted_taxonverbatim.family, accepted_taxonverbatim.genus, ((accepted_taxonverbatim.genus || ' '::text) || accepted_taxonverbatim.specific_epithet) AS "speciesBinomial", COALESCE(accepted_taxonverbatim.taxonomicname, accepted_taxonverbatim.taxonname) AS "scientificName", accepted_taxonverbatim.author AS "scientificNameAuthorship", NULLIF(array_to_string(ARRAY[COALESCE(accepted_taxonverbatim.genus, accepted_taxonverbatim.family), COALESCE(accepted_taxonverbatim.specific_epithet, parsed_taxonverbatim.morphospecies)], ' '::text), ''::text) AS "scientificNameWithMorphospecies", (threatened_taxonlabel.taxonlabel_id IS NOT NULL) AS threatened, identifiedby.fullname AS "identifiedBy", taxonoccurrence.growthform AS "growthForm", ((cultivated_family_locations.country IS NOT NULL) OR _or(taxonoccurrence.iscultivated, location.iscultivated)) AS cultivated, CASE WHEN (taxonoccurrence.iscultivated IS NOT NULL) THEN taxonoccurrence.cultivatedbasis WHEN (location.iscultivated IS NOT NULL) THEN NULL::text ELSE NULL::text END AS "cultivatedBasis", _fraction_to_percent(aggregateoccurrence.cover_fraction) AS "coverPercent", _m_to_cm(stemobservation.diameterbreastheight_m) AS "diameterBreastHeight_cm", stemobservation.height_m, stemobservation.tag, stemobservation.xposition_m AS "organismX_m", stemobservation.yposition_m AS "organismY_m", collector.fullname AS "recordedBy", NULLIF(array_to_string(ARRAY[taxonoccurrence.sourceaccessioncode, taxonoccurrence.authortaxoncode, plantobservation.sourceaccessioncode, plantobservation.collectionnumber, stemobservation.sourceaccessioncode, stemobservation.authorstemcode, stemobservation.tag], '; '::text), ''::text) AS "recordNumber" FROM ((((((((((((((((((((((((((source JOIN location USING (source_id)) LEFT JOIN locationplace USING (location_id)) LEFT JOIN place datasource_place USING (place_id)) LEFT JOIN place canon_place ON ((canon_place.place_id = datasource_place.canon_place_id))) LEFT JOIN coordinates ON ((coordinates.coordinates_id = canon_place.coordinates_id))) LEFT JOIN "newWorld".iso_code_gadm ON ((iso_code_gadm."GADM country" = canon_place.country))) LEFT JOIN "newWorld"."newWorldCountries" ON (("newWorldCountries"."isoCode" = iso_code_gadm."2-digit iso code"))) LEFT JOIN locationevent USING (location_id)) LEFT JOIN method USING (method_id)) LEFT JOIN taxonoccurrence USING (locationevent_id)) LEFT JOIN locationevent parent_plot_event ON ((parent_plot_event.locationevent_id = locationevent.parent_id))) LEFT JOIN party collector ON ((collector.party_id = taxonoccurrence.collector_id))) LEFT JOIN taxondetermination USING (taxonoccurrence_id)) LEFT JOIN party identifiedby ON ((identifiedby.party_id = taxondetermination.party_id))) LEFT JOIN taxonverbatim datasource_taxonverbatim USING (taxonverbatim_id)) LEFT JOIN taxonlabel datasource_taxonlabel USING (taxonlabel_id)) LEFT JOIN taxonlabel parsed_taxonlabel ON ((parsed_taxonlabel.taxonlabel_id = datasource_taxonlabel.matched_label_id))) LEFT JOIN taxonverbatim parsed_taxonverbatim ON ((parsed_taxonverbatim.taxonlabel_id = parsed_taxonlabel.taxonlabel_id))) LEFT JOIN taxonlabel accepted_taxonlabel ON ((accepted_taxonlabel.taxonlabel_id = datasource_taxonlabel.canon_label_id))) LEFT JOIN taxonverbatim accepted_taxonverbatim ON ((accepted_taxonverbatim.taxonlabel_id = accepted_taxonlabel.taxonlabel_id))) LEFT JOIN threatened_taxonlabel ON ((threatened_taxonlabel.taxonlabel_id = accepted_taxonlabel.taxonlabel_id))) LEFT JOIN aggregateoccurrence USING (taxonoccurrence_id)) LEFT JOIN family_higher_plant_group ON ((family_higher_plant_group.family = accepted_taxonverbatim.family))) LEFT JOIN cultivated_family_locations ON (((cultivated_family_locations.family = accepted_taxonverbatim.family) AND (cultivated_family_locations.country = canon_place.country)))) LEFT JOIN plantobservation USING (aggregateoccurrence_id)) LEFT JOIN stemobservation USING (plantobservation_id)) WHERE taxondetermination.iscurrent;
2354
    SELECT source.shortname AS "institutionCode", sourcename.name AS "subInstitutionCode", specimenreplicate.collectioncode_dwc AS "collectionCode", specimenreplicate.catalognumber_dwc AS "catalogNumber", specimenreplicate.sourceaccessioncode AS "occurrenceID", canon_place.country, canon_place.stateprovince AS "stateProvince", datasource_place.county, coordinates.latitude_deg AS "decimalLatitude", coordinates.longitude_deg AS "decimalLongitude", coordinates.coordsaccuracy_m AS "coordinateUncertaintyInMeters", canon_place.geovalid, "newWorldCountries"."isNewWorld", locationevent.project_id AS "projectID", COALESCE(location.sourceaccessioncode, location.authorlocationcode) AS "plotName", location.elevation_m AS "elevationInMeters", _m2_to_ha(location.area_m2) AS "plotArea_ha", method.name AS "samplingProtocol", COALESCE(locationevent.obsstartdate, aggregateoccurrence.collectiondate) AS "dateCollected", family_higher_plant_group.higher_plant_group AS "higherPlantGroup", accepted_taxonverbatim.family, accepted_taxonverbatim.genus, ((accepted_taxonverbatim.genus || ' '::text) || accepted_taxonverbatim.specific_epithet) AS "speciesBinomial", COALESCE(accepted_taxonverbatim.taxonomicname, accepted_taxonverbatim.taxonname) AS "scientificName", accepted_taxonverbatim.author AS "scientificNameAuthorship", NULLIF(array_to_string(ARRAY[COALESCE(accepted_taxonverbatim.genus, accepted_taxonverbatim.family), COALESCE(accepted_taxonverbatim.specific_epithet, parsed_taxonverbatim.morphospecies)], ' '::text), ''::text) AS "speciesBinomialWithMorphospecies", NULLIF(array_to_string(ARRAY[accepted_taxonverbatim.taxonomicname, parsed_taxonverbatim.morphospecies], ' '::text), ''::text) AS "scientificNameWithMorphospecies", (threatened_taxonlabel.taxonlabel_id IS NOT NULL) AS threatened, identifiedby.fullname AS "identifiedBy", taxonoccurrence.growthform AS "growthForm", ((cultivated_family_locations.country IS NOT NULL) OR _or(taxonoccurrence.iscultivated, location.iscultivated)) AS cultivated, CASE WHEN (taxonoccurrence.iscultivated IS NOT NULL) THEN taxonoccurrence.cultivatedbasis WHEN (location.iscultivated IS NOT NULL) THEN NULL::text ELSE NULL::text END AS "cultivatedBasis", collector.fullname AS "recordedBy", plantobservation.collectionnumber AS "recordNumber", _fraction_to_percent(aggregateoccurrence.cover_fraction) AS "coverPercent", _m_to_cm(stemobservation.diameterbreastheight_m) AS "diameterBreastHeight_cm", stemobservation.height_m, stemobservation.tag, stemobservation.xposition_m AS "organismX_m", stemobservation.yposition_m AS "organismY_m", taxonoccurrence.sourceaccessioncode AS "taxonOccurrenceID", taxonoccurrence.authortaxoncode AS "authorTaxonCode", plantobservation.sourceaccessioncode AS "individualID", stemobservation.authorstemcode AS "authorStemCode" FROM ((((((((((((((((((((((((((((source JOIN location USING (source_id)) LEFT JOIN locationplace USING (location_id)) LEFT JOIN place datasource_place USING (place_id)) LEFT JOIN place canon_place ON ((canon_place.place_id = datasource_place.canon_place_id))) LEFT JOIN coordinates ON ((coordinates.coordinates_id = canon_place.coordinates_id))) LEFT JOIN "newWorld".iso_code_gadm ON ((iso_code_gadm."GADM country" = canon_place.country))) LEFT JOIN "newWorld"."newWorldCountries" ON (("newWorldCountries"."isoCode" = iso_code_gadm."2-digit iso code"))) LEFT JOIN locationevent USING (location_id)) LEFT JOIN project USING (project_id)) LEFT JOIN method USING (method_id)) LEFT JOIN taxonoccurrence USING (locationevent_id)) LEFT JOIN party collector ON ((collector.party_id = taxonoccurrence.collector_id))) LEFT JOIN taxondetermination USING (taxonoccurrence_id)) LEFT JOIN party identifiedby ON ((identifiedby.party_id = taxondetermination.party_id))) LEFT JOIN taxonverbatim datasource_taxonverbatim USING (taxonverbatim_id)) LEFT JOIN taxonlabel datasource_taxonlabel USING (taxonlabel_id)) LEFT JOIN taxonlabel parsed_taxonlabel ON ((parsed_taxonlabel.taxonlabel_id = datasource_taxonlabel.matched_label_id))) LEFT JOIN taxonverbatim parsed_taxonverbatim ON ((parsed_taxonverbatim.taxonlabel_id = parsed_taxonlabel.taxonlabel_id))) LEFT JOIN taxonlabel accepted_taxonlabel ON ((accepted_taxonlabel.taxonlabel_id = datasource_taxonlabel.canon_label_id))) LEFT JOIN taxonverbatim accepted_taxonverbatim ON ((accepted_taxonverbatim.taxonlabel_id = accepted_taxonlabel.taxonlabel_id))) LEFT JOIN threatened_taxonlabel ON ((threatened_taxonlabel.taxonlabel_id = accepted_taxonlabel.taxonlabel_id))) LEFT JOIN aggregateoccurrence USING (taxonoccurrence_id)) LEFT JOIN family_higher_plant_group ON ((family_higher_plant_group.family = accepted_taxonverbatim.family))) LEFT JOIN cultivated_family_locations ON (((cultivated_family_locations.family = accepted_taxonverbatim.family) AND (cultivated_family_locations.country = canon_place.country)))) LEFT JOIN plantobservation USING (aggregateoccurrence_id)) LEFT JOIN stemobservation USING (plantobservation_id)) LEFT JOIN specimenreplicate USING (plantobservation_id)) LEFT JOIN sourcename ON ((sourcename.sourcename_id = specimenreplicate.institution_id)));
2277 2355

  
2278 2356

  
2279 2357
--
......
2799 2877

  
2800 2878

  
2801 2879
--
2802
-- Name: project; Type: TABLE; Schema: public; Owner: -; Tablespace: 
2803
--
2804

  
2805
CREATE TABLE project (
2806
    project_id integer NOT NULL,
2807
    source_id integer NOT NULL,
2808
    sourceaccessioncode text,
2809
    projectname text,
2810
    projectdescription text,
2811
    startdate date,
2812
    stopdate date,
2813
    accessioncode text,
2814
    CONSTRAINT project_required_key CHECK (((sourceaccessioncode IS NOT NULL) OR (projectname IS NOT NULL)))
2815
);
2816

  
2817

  
2818
--
2819
-- Name: sourcename; Type: TABLE; Schema: public; Owner: -; Tablespace: 
2820
--
2821

  
2822
CREATE TABLE sourcename (
2823
    sourcename_id integer NOT NULL,
2824
    source_id integer NOT NULL,
2825
    system text,
2826
    name text NOT NULL,
2827
    matched_source_id integer
2828
);
2829

  
2830

  
2831
--
2832
-- Name: specimenreplicate; Type: TABLE; Schema: public; Owner: -; Tablespace: 
2833
--
2834

  
2835
CREATE TABLE specimenreplicate (
2836
    specimenreplicate_id integer NOT NULL,
2837
    source_id integer NOT NULL,
2838
    sourceaccessioncode text,
2839
    plantobservation_id integer,
2840
    institution_id integer,
2841
    collectioncode_dwc text,
2842
    catalognumber_dwc text,
2843
    description text,
2844
    specimen_id integer,
2845
    accessioncode text,
2846
    CONSTRAINT specimenreplicate_required_key CHECK ((((plantobservation_id IS NOT NULL) OR (sourceaccessioncode IS NOT NULL)) OR (catalognumber_dwc IS NOT NULL)))
2847
);
2848

  
2849

  
2850
--
2851
-- Name: TABLE specimenreplicate; Type: COMMENT; Schema: public; Owner: -
2852
--
2853

  
2854
COMMENT ON TABLE specimenreplicate IS 'A herbarium''s replicate of a specimen. Contains Darwin Core specimen data.';
2855

  
2856

  
2857
--
2858
-- Name: COLUMN specimenreplicate.institution_id; Type: COMMENT; Schema: public; Owner: -
2859
--
2860

  
2861
COMMENT ON COLUMN specimenreplicate.institution_id IS 'The institution (such as a museum) that the specimenreplicate is from.';
2862

  
2863

  
2864
--
2865
-- Name: COLUMN specimenreplicate.collectioncode_dwc; Type: COMMENT; Schema: public; Owner: -
2866
--
2867

  
2868
COMMENT ON COLUMN specimenreplicate.collectioncode_dwc IS 'The code for the collection that the specimenreplicate is from.';
2869

  
2870

  
2871
--
2872 2880
-- Name: darwin_core_view; Type: VIEW; Schema: public; Owner: -
2873 2881
--
2874 2882

  
......
6038 6046

  
6039 6047

  
6040 6048
--
6041
-- Name: analytical_stem_institutionCode_plotName_dateCollected_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 
6049
-- Name: analytical_stem_institutionCode_occurrenceID_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 
6042 6050
--
6043 6051

  
6044
CREATE INDEX "analytical_stem_institutionCode_plotName_dateCollected_idx" ON analytical_stem USING btree ("institutionCode", "plotName", "dateCollected");
6052
CREATE INDEX "analytical_stem_institutionCode_occurrenceID_idx" ON analytical_stem USING btree ("institutionCode", "occurrenceID");
6045 6053

  
6046 6054

  
6047 6055
--
6056
-- Name: analytical_stem_institutionCode_projectID_plotName_dateColl_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 
6057
--
6058

  
6059
CREATE INDEX "analytical_stem_institutionCode_projectID_plotName_dateColl_idx" ON analytical_stem USING btree ("institutionCode", "projectID", "plotName", "dateCollected");
6060

  
6061

  
6062
--
6063
-- Name: analytical_stem_institutionCode_subInstitutionCode_collecti_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 
6064
--
6065

  
6066
CREATE INDEX "analytical_stem_institutionCode_subInstitutionCode_collecti_idx" ON analytical_stem USING btree ("institutionCode", "subInstitutionCode", "collectionCode", "catalogNumber");
6067

  
6068

  
6069
--
6048 6070
-- Name: commclass_accessioncode_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
6049 6071
--
6050 6072

  
......
7778 7800

  
7779 7801

  
7780 7802
--
7803
-- Name: project; Type: ACL; Schema: public; Owner: -
7804
--
7805

  
7806
REVOKE ALL ON TABLE project FROM PUBLIC;
7807
REVOKE ALL ON TABLE project FROM bien;
7808
GRANT ALL ON TABLE project TO bien;
7809
GRANT SELECT ON TABLE project TO bien_read;
7810

  
7811

  
7812
--
7781 7813
-- Name: source; Type: ACL; Schema: public; Owner: -
7782 7814
--
7783 7815

  
......
7788 7820

  
7789 7821

  
7790 7822
--
7823
-- Name: sourcename; Type: ACL; Schema: public; Owner: -
7824
--
7825

  
7826
REVOKE ALL ON TABLE sourcename FROM PUBLIC;
7827
REVOKE ALL ON TABLE sourcename FROM bien;
7828
GRANT ALL ON TABLE sourcename TO bien;
7829
GRANT SELECT ON TABLE sourcename TO bien_read;
7830

  
7831

  
7832
--
7833
-- Name: specimenreplicate; Type: ACL; Schema: public; Owner: -
7834
--
7835

  
7836
REVOKE ALL ON TABLE specimenreplicate FROM PUBLIC;
7837
REVOKE ALL ON TABLE specimenreplicate FROM bien;
7838
GRANT ALL ON TABLE specimenreplicate TO bien;
7839
GRANT SELECT ON TABLE specimenreplicate TO bien_read;
7840

  
7841

  
7842
--
7791 7843
-- Name: stemobservation; Type: ACL; Schema: public; Owner: -
7792 7844
--
7793 7845

  
......
7958 8010

  
7959 8011

  
7960 8012
--
7961
-- Name: project; Type: ACL; Schema: public; Owner: -
7962
--
7963

  
7964
REVOKE ALL ON TABLE project FROM PUBLIC;
7965
REVOKE ALL ON TABLE project FROM bien;
7966
GRANT ALL ON TABLE project TO bien;
7967
GRANT SELECT ON TABLE project TO bien_read;
7968

  
7969

  
7970
--
7971
-- Name: sourcename; Type: ACL; Schema: public; Owner: -
7972
--
7973

  
7974
REVOKE ALL ON TABLE sourcename FROM PUBLIC;
7975
REVOKE ALL ON TABLE sourcename FROM bien;
7976
GRANT ALL ON TABLE sourcename TO bien;
7977
GRANT SELECT ON TABLE sourcename TO bien_read;
7978

  
7979

  
7980
--
7981
-- Name: specimenreplicate; Type: ACL; Schema: public; Owner: -
7982
--
7983

  
7984
REVOKE ALL ON TABLE specimenreplicate FROM PUBLIC;
7985
REVOKE ALL ON TABLE specimenreplicate FROM bien;
7986
GRANT ALL ON TABLE specimenreplicate TO bien;
7987
GRANT SELECT ON TABLE specimenreplicate TO bien_read;
7988

  
7989

  
7990
--
7991 8013
-- Name: definedvalue; Type: ACL; Schema: public; Owner: -
7992 8014
--
7993 8015

  

Also available in: Unified diff