--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

SET search_path = public, pg_catalog;

--
-- Name: establishmentmeans_dwc; Type: TYPE; Schema: public; Owner: bien
--

CREATE TYPE establishmentmeans_dwc AS ENUM (
    'cultivated',
    'wild',
    'native',
    'exotic',
    'invasive',
    'escaped from captivity'
);


ALTER TYPE public.establishmentmeans_dwc OWNER TO bien;

--
-- Name: TYPE establishmentmeans_dwc; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TYPE establishmentmeans_dwc IS 'See http://rs.tdwg.org/dwc/terms/#establishmentMeans';


--
-- Name: growthform; Type: TYPE; Schema: public; Owner: bien
--

CREATE TYPE growthform AS ENUM (
    'tree',
    'shrub',
    'liana',
    'vine',
    'herb',
    'hemiepiphyte',
    'epiphyte',
    'grass',
    'forb',
    'moss',
    'lichen',
    'fungus',
    'floating aquatic',
    'submerged aquatic'
);


ALTER TYPE public.growthform OWNER TO bien;

--
-- Name: occurrencestatus_dwc; Type: TYPE; Schema: public; Owner: bien
--

CREATE TYPE occurrencestatus_dwc AS ENUM (
    'present',
    'absent',
    'common',
    'irregular',
    'rare',
    'doubtful'
);


ALTER TYPE public.occurrencestatus_dwc OWNER TO bien;

--
-- Name: placerank; Type: TYPE; Schema: public; Owner: bien
--

CREATE TYPE placerank AS ENUM (
    'continent',
    'country',
    'stateProvince',
    'county',
    'municipality',
    'village',
    'site',
    'territory',
    'region',
    'waterBody',
    'island',
    'islandGroup'
);


ALTER TYPE public.placerank OWNER TO bien;

--
-- Name: TYPE placerank; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TYPE placerank IS 'county = parish, canton
municipality = city
';


--
-- Name: rankedplacename; Type: TYPE; Schema: public; Owner: bien
--

CREATE TYPE rankedplacename AS (
	rank placerank,
	verbatimrank text,
	placename text
);


ALTER TYPE public.rankedplacename OWNER TO bien;

--
-- Name: taxonrank; Type: TYPE; Schema: public; Owner: bien
--

CREATE TYPE taxonrank AS ENUM (
    'unknown',
    'suprageneric',
    'domain',
    'superkingdom',
    'kingdom',
    'subkingdom',
    'infrakingdom',
    'superphylum',
    'phylum',
    'subphylum',
    'infraphylum',
    'superclass',
    'class',
    'subclass',
    'infraclass',
    'superorder',
    'order',
    'suborder',
    'infraorder',
    'family group',
    'superfamily',
    'family',
    'subfamily',
    'infrafamily',
    'family subdivision',
    'supertribe',
    'tribe',
    'subtribe',
    'infratribe',
    'genus group',
    'genus',
    'subgenus',
    'infragenus',
    'genus subdivision',
    'section',
    'subsection',
    'series',
    'subseries',
    'infrageneric',
    'species aggregate',
    'species group',
    'species',
    'subspecies',
    'subspecific aggregate',
    'below subspecies',
    'infraspecies',
    'biovariety',
    'pathovariety',
    'variety',
    'subvariety',
    'subsubvariety',
    'forma',
    'subforma',
    'subsubforma',
    'special forma',
    'infraspecific',
    'candidate',
    'cultivated plants',
    'cultivar',
    'convar',
    'grex',
    'cultivar group',
    'graft-chimaera',
    'denomination class'
);


ALTER TYPE public.taxonrank OWNER TO bien;

--
-- Name: TYPE taxonrank; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TYPE taxonrank IS 'From <http://www.tdwg.org/standards/117/download/>';


--
-- Name: rankedtaxonname; Type: TYPE; Schema: public; Owner: bien
--

CREATE TYPE rankedtaxonname AS (
	rank taxonrank,
	verbatimrank text,
	taxonname text
);


ALTER TYPE public.rankedtaxonname OWNER TO bien;

--
-- Name: role; Type: TYPE; Schema: public; Owner: bien
--

CREATE TYPE role AS ENUM (
    'unknown',
    'collector',
    'identifier',
    'computer',
    'contributor'
);


ALTER TYPE public.role OWNER TO bien;

--
-- Name: taxonclass; Type: TYPE; Schema: public; Owner: bien
--

CREATE TYPE taxonclass AS ENUM (
    'tree',
    'shrub',
    'liana',
    'vine',
    'herb',
    'hemiepiphyte',
    'epiphyte',
    'grass',
    'forb',
    'moss',
    'lichen',
    'fungus',
    'floating aquatic',
    'submerged aquatic',
    'cultivated',
    'wild',
    'native',
    'exotic',
    'invasive',
    'escaped from captivity',
    'dominant',
    'vascular',
    'woody'
);


ALTER TYPE public.taxonclass OWNER TO bien;

--
-- Name: TYPE taxonclass; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TYPE taxonclass IS '= growthform + establishmentmeans_dwc + some others';


--
-- Name: _fraction_to_percent(double precision); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION _fraction_to_percent(value double precision) RETURNS double precision
    LANGUAGE sql IMMUTABLE STRICT
    AS $_$
SELECT $1*100.
$_$;


ALTER FUNCTION public._fraction_to_percent(value double precision) OWNER TO bien;

--
-- Name: _taxonconcept_set_matched_concept_id(integer, integer, double precision); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION _taxonconcept_set_matched_concept_id(taxonconcept_id integer, matched_concept_id integer, matched_concept_fit_fraction double precision DEFAULT NULL::double precision) RETURNS integer
    LANGUAGE sql
    AS $_$
UPDATE taxonconcept SET
  matched_concept_id = $2
, matched_concept_fit_fraction = $3
WHERE taxonconcept_id = $1
RETURNING taxonconcept_id
$_$;


ALTER FUNCTION public._taxonconcept_set_matched_concept_id(taxonconcept_id integer, matched_concept_id integer, matched_concept_fit_fraction double precision) OWNER TO bien;

--
-- Name: _taxonconcept_set_parent_id(integer, integer); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION _taxonconcept_set_parent_id(taxonconcept_id integer, parent_id integer) RETURNS integer
    LANGUAGE sql
    AS $_$
UPDATE taxonconcept SET parent_id = $2 WHERE taxonconcept_id = $1
RETURNING taxonconcept_id
$_$;


ALTER FUNCTION public._taxonconcept_set_parent_id(taxonconcept_id integer, parent_id integer) OWNER TO bien;

--
-- Name: make_analytical_db(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION make_analytical_db() RETURNS void
    LANGUAGE sql
    AS $$CREATE TABLE analytical_db AS SELECT * FROM analytical_db_view$$;


ALTER FUNCTION public.make_analytical_db() OWNER TO bien;

--
-- Name: party_creator_id_self_ref(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION party_creator_id_self_ref() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    IF new.party_id IS NULL THEN -- prepopulate party_id
        new.party_id = nextval('party_party_id_seq'::regclass);
    END IF;
    IF new.creator_id = 0 THEN -- make self-reference
        new.creator_id = new.party_id;
    END IF;
    RETURN new;
END;
$$;


ALTER FUNCTION public.party_creator_id_self_ref() OWNER TO bien;

--
-- Name: place_update_ancestors(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION place_update_ancestors() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    -- Delete existing ancestors
    DELETE FROM place_ancestor WHERE place_id = new.place_id;
    
    IF new.parent_id IS NOT NULL THEN
        -- Copy parent's ancestors to this node's ancestors
        INSERT
        INTO place_ancestor
        (place_id, ancestor_id)
        SELECT
            new.place_id, ancestor_id
        FROM place_ancestor
        WHERE place_id = new.parent_id
        ;
    END IF;
    
    -- Add "ancestor" for this node
    /* This is useful for queries, because you don't have to separately test if
    the leaf node is the one you're looking for, in addition to that leaf node's
    ancestors. */
    INSERT
    INTO place_ancestor
    (place_id, ancestor_id)
    VALUES (new.place_id, new.place_id)
    ;
    
    -- Tell immediate children to update their ancestors lists, which will
    -- recursively tell all descendants
    UPDATE place
    SET place_id = place_id -- need at least one SET statement
    -- Add COALESCE() to enable using place_unique index for lookup
    WHERE COALESCE(parent_id, 2147483647) = new.place_id
    AND place_id != new.place_id -- avoid infinite recursion
    ;
    
    /* Note: We don't need an ON DELETE trigger to update the descendants'
    ancestors when a node is deleted, because the place.place_parent_id
    foreign key is set to ON DELETE CASCADE, which just removes all the
    descendants anyway. */
    
    RETURN new;
END;
$$;


ALTER FUNCTION public.place_update_ancestors() OWNER TO bien;

--
-- Name: placepath_matched_placepath_id_self_ref(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION placepath_matched_placepath_id_self_ref() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    IF new.placepath_id IS NULL THEN -- prepopulate placepath_id
        new.placepath_id = nextval('placepath_placepath_id_seq'::regclass);
    END IF;
    IF new.matched_placepath_id = 0 THEN -- make self-reference
        new.matched_placepath_id = new.placepath_id;
    END IF;
    RETURN new;
END;
$$;


ALTER FUNCTION public.placepath_matched_placepath_id_self_ref() OWNER TO bien;

--
-- Name: plantobservation_aggregateoccurrence_count_1(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION plantobservation_aggregateoccurrence_count_1() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    UPDATE aggregateoccurrence
    SET count = GREATEST(COALESCE(count, 0), 1) -- at least 1
    WHERE aggregateoccurrence_id = new.aggregateoccurrence_id
    ;
    RETURN new;
END;
$$;


ALTER FUNCTION public.plantobservation_aggregateoccurrence_count_1() OWNER TO bien;

--
-- Name: taxonconcept_0_matched_concept_id_self_ref(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION taxonconcept_0_matched_concept_id_self_ref() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    IF new.taxonconcept_id IS NULL THEN -- prepopulate taxonconcept_id
        new.taxonconcept_id = nextval('taxonconcept_taxonconcept_id_seq'::regclass);
    END IF;
    IF new.matched_concept_id = 0 THEN -- make self-reference
        new.matched_concept_id = new.taxonconcept_id;
    END IF;
    RETURN new;
END;
$$;


ALTER FUNCTION public.taxonconcept_0_matched_concept_id_self_ref() OWNER TO bien;

--
-- Name: taxonconcept_1_matched_concept_min_fit(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION taxonconcept_1_matched_concept_min_fit() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    IF new.matched_concept_id IS NOT NULL
        AND new.matched_concept_fit_fraction < 0.8 THEN -- insufficient match
        new.matched_concept_id = NULL;
        new.matched_concept_fit_fraction = NULL;
    END IF;
    RETURN new;
END;
$$;


ALTER FUNCTION public.taxonconcept_1_matched_concept_min_fit() OWNER TO bien;

--
-- Name: taxonconcept_2_propagate_accepted_concept_id(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION taxonconcept_2_propagate_accepted_concept_id() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    IF new.matched_concept_id IS NOT NULL THEN
        IF new.matched_concept_id = new.taxonconcept_id THEN -- self-reference
            new.accepted_concept_id = new.taxonconcept_id;-- make self-reference
        ELSE -- propagate from matched concept
            new.accepted_concept_id = (
                SELECT accepted_concept_id
                FROM taxonconcept
                WHERE taxonconcept_id = new.matched_concept_id
            );
        END IF;
        
        -- Update accepted_concept_id on concepts that resolve to this concept
        UPDATE taxonconcept
        SET accepted_concept_id = new.accepted_concept_id
        WHERE matched_concept_id = new.taxonconcept_id
        AND taxonconcept_id != new.taxonconcept_id -- avoid infinite recursion
        ;
    END IF;
    RETURN new;
END;
$$;


ALTER FUNCTION public.taxonconcept_2_propagate_accepted_concept_id() OWNER TO bien;

--
-- Name: taxonconcept_3_parent_id_avoid_self_ref(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION taxonconcept_3_parent_id_avoid_self_ref() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    new.parent_id = nullif(new.parent_id, new.taxonconcept_id);
    RETURN new;
END;
$$;


ALTER FUNCTION public.taxonconcept_3_parent_id_avoid_self_ref() OWNER TO bien;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: taxonconcept; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE taxonconcept (
    taxonconcept_id integer NOT NULL,
    creator_id integer NOT NULL,
    sourceaccessioncode text,
    creationdate date,
    accepted_concept_id integer,
    matched_concept_id integer,
    matched_concept_fit_fraction double precision,
    parent_id integer,
    taxonepithet text,
    rank taxonrank,
    verbatimrank text,
    identifyingtaxonomicname text,
    taxonomicname text,
    author text,
    taxonomicnamewithauthor text,
    family text,
    genus text,
    species text,
    description text,
    accessioncode text,
    CONSTRAINT taxonconcept_matched_concept_fit_fraction_range CHECK (((matched_concept_fit_fraction >= (0)::double precision) AND (matched_concept_fit_fraction <= (1)::double precision))),
    CONSTRAINT taxonconcept_required_key CHECK (((((((sourceaccessioncode IS NOT NULL) OR (taxonepithet IS NOT NULL)) OR (identifyingtaxonomicname IS NOT NULL)) OR (taxonomicname IS NOT NULL)) OR (taxonomicnamewithauthor IS NOT NULL)) OR ((parent_id IS NOT NULL) AND ((creationdate IS NOT NULL) OR (author IS NOT NULL)))))
);


ALTER TABLE public.taxonconcept OWNER TO bien;

--
-- Name: TABLE taxonconcept; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE taxonconcept IS 'A taxon concept defined by an entity. Can be at any level in the taxonomic hierarchy. Can be either verbatim or accepted.

"A taxon (plural: taxa) is a group of one (or more) populations of organism(s), which a taxonomist adjudges to be a unit" (http://en.wikipedia.org/wiki/Taxon)

Note that taxonepithet stores only one rank (e.g. family) of the full taxonomic name. The higher-level ranks are stored in the taxon concept''s chain of parent_id ancestors.

To include a taxon name at a rank with no explicit column, create a parent taxonconcept for it and point to it using parent_id. To include multiple such names, chain the taxonconcepts together using parent_id. Note that lower-level taxa should point to higher-level taxa.

Equivalent to VegBank''s plantConcept and plantName tables, plus plantParent_ID and plantLevel from plantStatus.';


--
-- Name: COLUMN taxonconcept.creator_id; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.creator_id IS 'The entity that created the taxon concept. This is the concept reference for a taxon concept with an "according to", or the identifier''s name for a nominal concept.

Equivalent to "Name sec. x".';


--
-- Name: COLUMN taxonconcept.sourceaccessioncode; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.sourceaccessioncode IS 'The datasource''s identifier for the taxonconcept.';


--
-- Name: COLUMN taxonconcept.creationdate; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.creationdate IS 'The date the taxonconcept was created or defined. For a taxonconcept applied in a taxondetermination, this is the date the determination was made.';


--
-- Name: COLUMN taxonconcept.accepted_concept_id; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.accepted_concept_id IS 'The accepted synonym of the taxonconcept.';


--
-- Name: COLUMN taxonconcept.matched_concept_id; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.matched_concept_id IS 'The taxonconcept containing the closest match to this taxonconcept. taxonconcepts should be linked in a four-level hierarchy of datasource concept -> parsed concept -> matched concept -> accepted concept. A previously-accepted name''s concept should be further linked to the synonym that has replaced it.

To indicate a synonym between taxonconcepts of different sources, choose one taxonconcept to be authoritative and point the other taxonconcept to it using this field.

An accepted name should point to itself in this field. This will happen automatically by setting it to the special value 0.';


--
-- Name: COLUMN taxonconcept.matched_concept_fit_fraction; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.matched_concept_fit_fraction IS 'The closeness of fit of the matched_concept.';


--
-- Name: COLUMN taxonconcept.parent_id; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.parent_id IS 'The parent taxonconcept. Note that while a taxon *name* may have multiple parents, a taxon *concept* has only one, based on the creator''s opinion of where that taxonconcept goes in the taxonomic hierarchy.';


--
-- Name: COLUMN taxonconcept.taxonepithet; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.taxonepithet IS 'The epithet of the taxon within its parent taxon. This is the lowest-rank portion of this taxonconcept''s full taxonomic name, if it has one.

The morphospecies suffix goes in this field.';


--
-- Name: COLUMN taxonconcept.rank; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.rank IS 'The taxonconcept''s level in the taxonomic hierarchy, standardized to a closed list. Even if you specify a custom verbatimrank, you should also specify a closest-match rank from the taxonrank closed list.';


--
-- Name: COLUMN taxonconcept.verbatimrank; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.verbatimrank IS 'The taxonconcept''s verbatim level in the taxonomic hierarchy. Does not need to be in the taxonrank closed list.';


--
-- Name: COLUMN taxonconcept.identifyingtaxonomicname; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.identifyingtaxonomicname IS 'The taxonomic name that uniquely identifies this taxonconcept. If set, the other fields will not be used in duplicate elimination.';


--
-- Name: COLUMN taxonconcept.taxonomicname; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.taxonomicname IS 'The concatenated taxonomic name which uniquely identifies this taxon. Does not include the author of the name.

Equivalent to Darwin Core''s scientificName.';


--
-- Name: COLUMN taxonconcept.author; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.author IS 'The author of the taxonomic name.

Equivalent to Darwin Core''s scientificNameAuthorship.';


--
-- Name: COLUMN taxonconcept.taxonomicnamewithauthor; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.taxonomicnamewithauthor IS 'The concatenated taxonomic name which uniquely identifies this taxon, plus the author of that name.

Equivalent to Darwin Core''s scientificName + scientificNameAuthorship.
Equivalent to "Name sec. x".';


--
-- Name: COLUMN taxonconcept.family; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.family IS 'The family of the taxonomic name. This is a cached field for easy querying; the identifying version of this field is stored in the chain of parent_id ancestors.';


--
-- Name: COLUMN taxonconcept.genus; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.genus IS 'The genus portion of the taxonomic name. This is a cached field for easy querying; the identifying version of this field is stored in the chain of parent_id ancestors.';


--
-- Name: COLUMN taxonconcept.species; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonconcept.species IS 'The species portion of the taxonomic name. This is a cached field for easy querying; the identifying version of this field is stored in the chain of parent_id ancestors.';


--
-- Name: taxonconcept_update_ancestors(taxonconcept, integer); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION taxonconcept_update_ancestors(new taxonconcept, old_parent_id integer DEFAULT NULL::integer) RETURNS void
    LANGUAGE plpgsql
    AS $$
DECLARE
    -- Use matched_concept_id's ancestors instead if available
    parent_id_ taxonconcept.taxonconcept_id%TYPE := COALESCE(
        NULLIF(new.matched_concept_id, new.taxonconcept_id), new.parent_id);
BEGIN
    IF parent_id_ IS DISTINCT FROM old_parent_id THEN
        DECLARE
            -- These include the parent itself
            old_ancestors integer[] := (
                SELECT array_agg(ancestor_id) FROM taxonconcept_ancestor
                WHERE descendant_id = old_parent_id
            );
            new_ancestors integer[] := (
                SELECT array_agg(ancestor_id) FROM taxonconcept_ancestor
                WHERE descendant_id = parent_id_
            );
            descendant_id_ integer;
        BEGIN
            FOR descendant_id_ IN -- also includes self
                SELECT descendant_id
                FROM taxonconcept_ancestor
                WHERE ancestor_id = new.taxonconcept_id
            LOOP
                -- Delete old parent's ancestors
                DELETE FROM taxonconcept_ancestor
                WHERE descendant_id = descendant_id_
                AND ancestor_id = ANY (old_ancestors)
                ;
                
                -- Add new parent's ancestors
                INSERT INTO taxonconcept_ancestor
                (descendant_id, ancestor_id)
                SELECT descendant_id_, unnest(new_ancestors)
                ;
            END LOOP;
        END;
    END IF;
    
    /* Note: We don't need an ON DELETE trigger to update the descendants'
    ancestors when a node is deleted, because the
    taxonconcept_ancestor.ancestor_id foreign key is ON DELETE CASCADE. */
END;
$$;


ALTER FUNCTION public.taxonconcept_update_ancestors(new taxonconcept, old_parent_id integer) OWNER TO bien;

--
-- Name: taxonconcept_update_ancestors_on_insert(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION taxonconcept_update_ancestors_on_insert() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    /* Add "ancestor" for this node. This is useful for queries, because you
    don't have to separately test if the leaf node is the one you're looking
    for, in addition to that leaf node's ancestors. */
    INSERT
    INTO taxonconcept_ancestor
    (descendant_id, ancestor_id)
    VALUES (new.taxonconcept_id, new.taxonconcept_id)
    ;
    
    PERFORM taxonconcept_update_ancestors(new);
    
    RETURN new;
END;
$$;


ALTER FUNCTION public.taxonconcept_update_ancestors_on_insert() OWNER TO bien;

--
-- Name: taxonconcept_update_ancestors_on_update(); Type: FUNCTION; Schema: public; Owner: bien
--

CREATE FUNCTION taxonconcept_update_ancestors_on_update() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    PERFORM taxonconcept_update_ancestors(new, COALESCE(
        NULLIF(old.matched_concept_id, old.taxonconcept_id), old.parent_id));
    
    RETURN new;
END;
$$;


ALTER FUNCTION public.taxonconcept_update_ancestors_on_update() OWNER TO bien;

--
-- Name: concat(text); Type: AGGREGATE; Schema: public; Owner: bien
--

CREATE AGGREGATE concat(text) (
    SFUNC = textcat,
    STYPE = text,
    INITCOND = ''
);


ALTER AGGREGATE public.concat(text) OWNER TO bien;

--
-- Name: address; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE address (
    address_id integer NOT NULL,
    party_id integer NOT NULL,
    organization_id integer,
    orgposition text,
    email text,
    deliverypoint text,
    city text,
    administrativearea text,
    postalcode text,
    country text,
    currentflag boolean,
    addressstartdate date
);


ALTER TABLE public.address OWNER TO bien;

--
-- Name: address_address_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE address_address_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.address_address_id_seq OWNER TO bien;

--
-- Name: address_address_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE address_address_id_seq OWNED BY address.address_id;


--
-- Name: address_address_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('address_address_id_seq', 1, false);


--
-- Name: aggregateoccurrence; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE aggregateoccurrence (
    aggregateoccurrence_id integer NOT NULL,
    creator_id integer NOT NULL,
    sourceaccessioncode text,
    taxonoccurrence_id integer NOT NULL,
    collectiondate date,
    cover_fraction double precision,
    linecover_m double precision,
    basalarea_m2 double precision,
    biomass_kg_m2 double precision,
    inferencearea_m2 double precision,
    count integer,
    stratum_id integer,
    coverindex_id integer,
    occurrencestatus_dwc occurrencestatus_dwc DEFAULT 'present'::occurrencestatus_dwc NOT NULL,
    method_id integer,
    notes text,
    accessioncode text
);


ALTER TABLE public.aggregateoccurrence OWNER TO bien;

--
-- Name: TABLE aggregateoccurrence; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE aggregateoccurrence IS 'Equivalent to VegBank''s taxonimportance table.';


--
-- Name: COLUMN aggregateoccurrence.linecover_m; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN aggregateoccurrence.linecover_m IS 'The distance in m along which this occurrence intercepts a line subplot.';


--
-- Name: COLUMN aggregateoccurrence.occurrencestatus_dwc; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN aggregateoccurrence.occurrencestatus_dwc IS 'The extent to which the taxon is present. See <http://code.google.com/p/darwincore/wiki/Occurrence#occurrenceStatus>.';


--
-- Name: aggregateoccurrence_aggregateoccurrence_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE aggregateoccurrence_aggregateoccurrence_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.aggregateoccurrence_aggregateoccurrence_id_seq OWNER TO bien;

--
-- Name: aggregateoccurrence_aggregateoccurrence_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE aggregateoccurrence_aggregateoccurrence_id_seq OWNED BY aggregateoccurrence.aggregateoccurrence_id;


--
-- Name: aggregateoccurrence_aggregateoccurrence_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('aggregateoccurrence_aggregateoccurrence_id_seq', 1, false);


--
-- Name: location; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE location (
    location_id integer NOT NULL,
    creator_id integer NOT NULL,
    sourceaccessioncode text,
    parent_id integer,
    authorlocationcode text,
    confidentialitystatus integer DEFAULT 0 NOT NULL,
    confidentialityreason text,
    sublocationxposition_m double precision,
    sublocationyposition_m double precision,
    authorzone text,
    authordatum text,
    authorlocation text,
    locationnarrative text,
    azimuth double precision,
    shape text,
    area_m2 double precision,
    standsize text,
    placementmethod text,
    permanence boolean,
    layoutnarrative text,
    elevation_m double precision,
    elevationaccuracy_m double precision,
    elevationrange_m double precision,
    verbatimelevation text,
    slopeaspect_deg double precision,
    minslopeaspect_deg double precision,
    maxslopeaspect_deg double precision,
    slopegradient_fraction double precision,
    minslopegradient_fraction double precision,
    maxslopegradient_fraction double precision,
    topoposition text,
    landform text,
    surficialdeposits text,
    rocktype text,
    submitter_surname text,
    submitter_givenname text,
    submitter_email text,
    notespublic boolean,
    notesmgt boolean,
    revisions boolean,
    dateentered date DEFAULT now(),
    locationrationalenarrative text,
    accessioncode text,
    CONSTRAINT location_required_key CHECK (((sourceaccessioncode IS NOT NULL) OR (authorlocationcode IS NOT NULL)))
);


ALTER TABLE public.location OWNER TO bien;

--
-- Name: TABLE location; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE location IS 'Equivalent to VegBank''s plot table.';


--
-- Name: locationcoords; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE locationcoords (
    locationcoords_id integer NOT NULL,
    location_id integer NOT NULL,
    latitude_deg double precision,
    longitude_deg double precision,
    verbatimlatitude text,
    verbatimlongitude text,
    verbatimcoordinates text,
    footprintgeometry_dwc text,
    coordsaccuracy_deg double precision,
    identifier_id integer,
    determinationdate date,
    isoriginal boolean DEFAULT false NOT NULL,
    iscurrent boolean DEFAULT false NOT NULL,
    calculated boolean
);


ALTER TABLE public.locationcoords OWNER TO bien;

--
-- Name: COLUMN locationcoords.footprintgeometry_dwc; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN locationcoords.footprintgeometry_dwc IS 'DwC''s footprintWKT field. "A Well-Known Text (WKT) representation of the shape (footprint, geometry) that defines the Location" (http://rs.tdwg.org/dwc/terms/#footprintWKT).';


--
-- Name: COLUMN locationcoords.coordsaccuracy_deg; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN locationcoords.coordsaccuracy_deg IS 'Accuracy of latitude/longitude or footprint geometry, in meters. This should generally be at least 1 m, which is the accuracy of the best GPSes.';


--
-- Name: locationevent; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE locationevent (
    locationevent_id integer NOT NULL,
    creator_id integer NOT NULL,
    sourceaccessioncode text,
    parent_id integer,
    location_id integer,
    project_id integer,
    authoreventcode text,
    previous_id integer,
    obsstartdate date,
    obsenddate date,
    dateaccuracy text,
    method_id integer,
    temperature_c double precision,
    precipitation_m double precision,
    autotaxoncover boolean,
    originaldata text,
    effortlevel text,
    floristicquality text,
    bryophytequality text,
    lichenquality text,
    locationeventnarrative text,
    landscapenarrative text,
    homogeneity text,
    phenologicaspect text,
    representativeness text,
    standmaturity text,
    successionalstatus text,
    basalarea double precision,
    hydrologicregime text,
    soilmoistureregime text,
    soildrainage text,
    watersalinity text,
    waterdepth_m double precision,
    shoredistance double precision,
    soildepth double precision,
    organicdepth double precision,
    soiltaxon_id integer,
    soiltaxonsrc text,
    percentbedrock double precision,
    percentrockgravel double precision,
    percentwood double precision,
    percentlitter double precision,
    percentbaresoil double precision,
    percentwater double precision,
    percentother double precision,
    nameother text,
    treeht double precision,
    shrubht double precision,
    fieldht double precision,
    nonvascularht double precision,
    submergedht double precision,
    treecover double precision,
    shrubcover double precision,
    fieldcover double precision,
    nonvascularcover double precision,
    floatingcover double precision,
    submergedcover double precision,
    dominantstratum text,
    growthform1type text,
    growthform2type text,
    growthform3type text,
    growthform1cover double precision,
    growthform2cover double precision,
    growthform3cover double precision,
    totalcover double precision,
    notespublic boolean,
    notesmgt boolean,
    revisions boolean,
    dateentered date DEFAULT now(),
    toptaxon1name text,
    toptaxon2name text,
    toptaxon3name text,
    toptaxon4name text,
    toptaxon5name text,
    numberoftaxa integer,
    accessioncode text,
    CONSTRAINT locationevent_required_key CHECK (((sourceaccessioncode IS NOT NULL) OR (location_id IS NOT NULL)))
);


ALTER TABLE public.locationevent OWNER TO bien;

--
-- Name: TABLE locationevent; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE locationevent IS 'Equivalent to VegBank''s observation table.';


--
-- Name: locationplace; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE locationplace (
    locationplace_id integer NOT NULL,
    location_id integer NOT NULL,
    placepath_id integer NOT NULL,
    identifier_id integer
);


ALTER TABLE public.locationplace OWNER TO bien;

--
-- Name: TABLE locationplace; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE locationplace IS 'Equivalent to VegBank''s place table.';


--
-- Name: method; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE method (
    method_id integer NOT NULL,
    reference_id integer,
    name text NOT NULL,
    description text,
    diameterheight_m double precision,
    mindiameter_m double precision,
    maxdiameter_m double precision,
    minheight_m double precision,
    maxheight_m double precision,
    observationtype text,
    observationmeasure text,
    covermethod_id integer,
    samplingfactor double precision DEFAULT 1 NOT NULL,
    coverbasis text,
    stemsamplemethod text,
    shape text,
    length_m double precision,
    width_m double precision,
    radius_m double precision,
    area_m2 double precision,
    samplearea_m2 double precision,
    subplotspacing_m double precision,
    subplotmethod_id integer,
    pointsperline integer,
    accessioncode text
);


ALTER TABLE public.method OWNER TO bien;

--
-- Name: TABLE method; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE method IS 'A method for sampling and aggregating plants. Replaces VegBank''s stratummethod and stratumtype tables.

Important: *All* length- or area-related measurements throughout VegBIEN must be converted to SI base units, e.g. cm -> m, ha -> m^2.**';


--
-- Name: COLUMN method.reference_id; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.reference_id IS 'Use the reference table (e.g. reference.url) to store a link to the original plain text description.';


--
-- Name: COLUMN method.name; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.name IS 'A short name for the set of methods used. Although there is no existing standard, many names are widely used, and could be useful for finding plots with similar methodology.';


--
-- Name: COLUMN method.description; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.description IS 'Additional metadata helpful for understanding how the data were collected during the observation event.';


--
-- Name: COLUMN method.diameterheight_m; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.diameterheight_m IS 'The height in m at which the diameter is measured. e.g. 1.37 m for breast height (DBH).';


--
-- Name: COLUMN method.mindiameter_m; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.mindiameter_m IS 'Lower diameter limit in m for inclusion of a tree.';


--
-- Name: COLUMN method.maxdiameter_m; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.maxdiameter_m IS 'Upper diameter limit in m for inclusion of a tree.';


--
-- Name: COLUMN method.minheight_m; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.minheight_m IS 'Lower height limit in m for inclusion of a tree.';


--
-- Name: COLUMN method.maxheight_m; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.maxheight_m IS 'Upper height limit in m for inclusion of a tree.';


--
-- Name: COLUMN method.observationtype; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.observationtype IS 'values: aggregate, individual, both';


--
-- Name: COLUMN method.observationmeasure; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.observationmeasure IS 'e.g. count, cover, presence, points-intercepted, distance-intercepted';


--
-- Name: COLUMN method.samplingfactor; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.samplingfactor IS 'Here, we could explicitly say that we are sampling a particular area by a different size representative sample area. Simply divide the number of plants connected to this record by this value to get the extrapolated (or interpolated) number of plants in the area in question. This explicitly notes a subsample or supersample.';


--
-- Name: COLUMN method.coverbasis; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.coverbasis IS 'Were cover values for the total taxon list collected from one contiguous area or dispersed subplots?

entire: Cover based on observation of an entire plot consisting of a single contiguous area of land. subplot-contiguous: Cover based on observation of a single contiguous area of land of less spatial extent than the entire plot.

subplot-regular: Cover based on observation of multiple subplots arranged in a regular pattern within the overall plot.

subplot-random: Cover based on observation of multiple randomly dispersed subplots within the overall plot.

subplot-haphazard: Cover based on observation of multiple subplots haphazardly arranged within the overall plot.

line-intercept: Cover based on length of line touching each species present.

point-intercept: Cover based on number of points for each species present.
';


--
-- Name: COLUMN method.stemsamplemethod; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.stemsamplemethod IS 'The method used to obtain basal area or tree stem data (e.g., full census, point quarter, random pairs, Bitterlich, other).

e.g.:
Full census
Point quarter
Random pairs
Bitterlich
Other
Subsample census';


--
-- Name: COLUMN method.shape; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.shape IS 'e.g. square, rectangle, circle, line, point, other';


--
-- Name: COLUMN method.samplearea_m2; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.samplearea_m2 IS 'The total surface area used for cover estimates and for which a complete species list is provided. If subplots were used, this would be the total area of the subplots without interstitial space.';


--
-- Name: COLUMN method.subplotspacing_m; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.subplotspacing_m IS 'Spacing in m between adjacent subplots, lines (line-intercept data), or points (point-intercept data).';


--
-- Name: COLUMN method.subplotmethod_id; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.subplotmethod_id IS 'Method to use for each subplot/line/point, which will specify subplot size, line length, etc.';


--
-- Name: COLUMN method.pointsperline; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN method.pointsperline IS 'The number of points sampled on each line subplot for point-intercept data.';


--
-- Name: party; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE party (
    party_id integer NOT NULL,
    creator_id integer NOT NULL,
    fullname text,
    salutation text,
    givenname text,
    middlename text,
    surname text,
    organizationname text,
    currentname_id integer,
    contactinstructions text,
    email text,
    partytype text,
    partypublic boolean DEFAULT true,
    d_obscount integer,
    accessioncode text,
    CONSTRAINT party_required_key CHECK (((organizationname IS NOT NULL) OR ((creator_id <> party_id) AND ((fullname IS NOT NULL) OR (surname IS NOT NULL)))))
);


ALTER TABLE public.party OWNER TO bien;

--
-- Name: COLUMN party.creator_id; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN party.creator_id IS 'A datasource should point to itself in this field. This will happen automatically by setting it to the special value 0.';


--
-- Name: placepath; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE placepath (
    placepath_id integer NOT NULL,
    creator_id integer NOT NULL,
    placecode text,
    matched_placepath_id integer,
    place_id integer,
    continent text,
    country text,
    stateprovince text,
    county text,
    municipality text,
    site text,
    otherranks rankedplacename[],
    CONSTRAINT placepath_required_key CHECK (((((((placecode IS NOT NULL) OR (continent IS NOT NULL)) OR (country IS NOT NULL)) OR (stateprovince IS NOT NULL)) OR (county IS NOT NULL)) OR (otherranks IS NOT NULL)))
);


ALTER TABLE public.placepath OWNER TO bien;

--
-- Name: TABLE placepath; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE placepath IS 'The full path to a place. Can be either verbatim or accepted. For accepted names, points to the identified place.

To include a placename at a rank with no explicit column, add it to the otherranks array.';


--
-- Name: COLUMN placepath.matched_placepath_id; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN placepath.matched_placepath_id IS 'The placepath containing the accepted name of this verbatim place path.  placepaths should be linked in a two-level hierarchy of datasource name -> accepted name.

A accepted name should point to itself in this field. This will happen automatically by setting it to the special value 0.';


--
-- Name: COLUMN placepath.otherranks; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN placepath.otherranks IS 'Additional ranks which do not have a named column. Put ranks in path order, so that lower-level places come after higher-level places.';


--
-- Name: plantobservation; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE plantobservation (
    plantobservation_id integer NOT NULL,
    creator_id integer NOT NULL,
    sourceaccessioncode text,
    aggregateoccurrence_id integer NOT NULL,
    overallheight_m double precision,
    overallheightaccuracy_m double precision,
    collectionnumber text,
    stemcount integer,
    plant_id integer,
    accessioncode text
);


ALTER TABLE public.plantobservation OWNER TO bien;

--
-- Name: TABLE plantobservation; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE plantobservation IS 'Equivalent to VegBank''s stemcount table.';


--
-- Name: COLUMN plantobservation.collectionnumber; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN plantobservation.collectionnumber IS 'The number of the organism within the data collection or event.';


--
-- Name: specimenreplicate; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE specimenreplicate (
    specimenreplicate_id integer NOT NULL,
    creator_id integer NOT NULL,
    sourceaccessioncode text,
    plantobservation_id integer,
    institution_id integer,
    collectioncode_dwc text,
    catalognumber_dwc text,
    description text,
    specimen_id integer,
    accessioncode text,
    CONSTRAINT specimenreplicate_required_key CHECK ((((plantobservation_id IS NOT NULL) OR (sourceaccessioncode IS NOT NULL)) OR (catalognumber_dwc IS NOT NULL)))
);


ALTER TABLE public.specimenreplicate OWNER TO bien;

--
-- Name: TABLE specimenreplicate; Type: COMMENT; Schema: public; Owner: bien
--

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


--
-- Name: COLUMN specimenreplicate.institution_id; Type: COMMENT; Schema: public; Owner: bien
--

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


--
-- Name: COLUMN specimenreplicate.collectioncode_dwc; Type: COMMENT; Schema: public; Owner: bien
--

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


--
-- Name: taxondetermination; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE taxondetermination (
    taxondetermination_id integer NOT NULL,
    taxonoccurrence_id integer NOT NULL,
    taxonconcept_id integer NOT NULL,
    party_id integer,
    role role DEFAULT 'unknown'::role NOT NULL,
    determinationtype text,
    reference_id integer,
    isoriginal boolean DEFAULT false NOT NULL,
    iscurrent boolean DEFAULT false NOT NULL,
    taxonfit text,
    taxonconfidence text,
    grouptype text,
    notes text,
    notespublic boolean,
    notesmgt boolean,
    revisions boolean,
    determinationdate date,
    accessioncode text
);


ALTER TABLE public.taxondetermination OWNER TO bien;

--
-- Name: TABLE taxondetermination; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE taxondetermination IS 'Equivalent to VegBank''s taxoninterpretation table.';


--
-- Name: taxonoccurrence; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE taxonoccurrence (
    taxonoccurrence_id integer NOT NULL,
    creator_id integer NOT NULL,
    sourceaccessioncode text,
    locationevent_id integer,
    authortaxoncode text,
    verbatimcollectorname text,
    growthform growthform,
    iscultivated boolean,
    cultivatedbasis text,
    isnative boolean,
    accessioncode text
);


ALTER TABLE public.taxonoccurrence OWNER TO bien;

--
-- Name: TABLE taxonoccurrence; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE taxonoccurrence IS 'Equivalent to VegBank''s taxonobservation table.';


--
-- Name: COLUMN taxonoccurrence.iscultivated; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonoccurrence.iscultivated IS 'cultivated or wild';


--
-- Name: COLUMN taxonoccurrence.cultivatedbasis; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonoccurrence.cultivatedbasis IS 'The reason why a taxonoccurrence was marked as cultivated (or not).';


--
-- Name: COLUMN taxonoccurrence.isnative; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN taxonoccurrence.isnative IS 'native or exotic';


--
-- Name: analytical_db_view; Type: VIEW; Schema: public; Owner: bien
--

CREATE VIEW analytical_db_view AS
    SELECT datasource.organizationname AS "dataSourceName", accepted_taxonconcept.family, accepted_taxonconcept.genus, accepted_taxonconcept.species, COALESCE(accepted_taxonconcept.taxonomicnamewithauthor, accepted_taxonconcept.taxonomicname) AS taxon, accepted_taxonconcept.author AS "taxonAuthor", accepted_taxonconcept.taxonepithet AS "taxonMorphospecies", placepath.country, placepath.stateprovince AS "stateProvince", placepath.county AS "countyParish", taxonoccurrence.verbatimcollectorname AS collector, plantobservation.collectionnumber AS "collectionNumber", array_to_string(ARRAY[identifiedby.givenname, identifiedby.middlename, identifiedby.surname], ' '::text) AS "identifiedBy", aggregateoccurrence.collectiondate AS "observationDate", location.authorlocationcode AS "plotCode", functions._m2_to_ha(location.area_m2) AS "plotAreaHa", method.name AS "plotMethod", locationcoords.latitude_deg AS latitude, locationcoords.longitude_deg AS longitude, location.elevation_m, taxonoccurrence.iscultivated AS "isCultivated", taxonoccurrence.cultivatedbasis AS "isCultivatedReason", _fraction_to_percent(aggregateoccurrence.cover_fraction) AS "pctCover" FROM ((((((((((((((location JOIN party datasource ON (((datasource.party_id = location.creator_id) AND (datasource.organizationname IS NOT NULL)))) LEFT JOIN locationcoords USING (location_id)) LEFT JOIN locationplace USING (location_id)) LEFT JOIN placepath USING (placepath_id)) JOIN locationevent USING (location_id)) LEFT JOIN method USING (method_id)) JOIN taxonoccurrence USING (locationevent_id)) JOIN taxondetermination USING (taxonoccurrence_id)) LEFT JOIN party identifiedby ON ((identifiedby.party_id = taxondetermination.party_id))) JOIN taxonconcept datasource_taxonconcept USING (taxonconcept_id)) JOIN taxonconcept accepted_taxonconcept ON ((accepted_taxonconcept.taxonconcept_id = datasource_taxonconcept.accepted_concept_id))) LEFT JOIN aggregateoccurrence USING (taxonoccurrence_id)) LEFT JOIN plantobservation USING (aggregateoccurrence_id)) LEFT JOIN specimenreplicate USING (plantobservation_id));


ALTER TABLE public.analytical_db_view OWNER TO bien;

--
-- Name: classcontributor; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE classcontributor (
    classcontributor_id integer NOT NULL,
    commclass_id integer NOT NULL,
    party_id integer NOT NULL,
    role role
);


ALTER TABLE public.classcontributor OWNER TO bien;

--
-- Name: classcontributor_classcontributor_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE classcontributor_classcontributor_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.classcontributor_classcontributor_id_seq OWNER TO bien;

--
-- Name: classcontributor_classcontributor_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE classcontributor_classcontributor_id_seq OWNED BY classcontributor.classcontributor_id;


--
-- Name: classcontributor_classcontributor_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('classcontributor_classcontributor_id_seq', 1, false);


--
-- Name: commclass; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE commclass (
    commclass_id integer NOT NULL,
    locationevent_id integer NOT NULL,
    inspection boolean,
    tableanalysis boolean,
    multivariateanalysis boolean,
    classpublication_id integer,
    classnotes text,
    commname text,
    commcode text,
    commframework text,
    commlevel text,
    classstartdate date,
    classstopdate date,
    expertsystem text,
    accessioncode text
);


ALTER TABLE public.commclass OWNER TO bien;

--
-- Name: commclass_commclass_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE commclass_commclass_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.commclass_commclass_id_seq OWNER TO bien;

--
-- Name: commclass_commclass_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE commclass_commclass_id_seq OWNED BY commclass.commclass_id;


--
-- Name: commclass_commclass_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('commclass_commclass_id_seq', 1, false);


--
-- Name: commconcept; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE commconcept (
    commconcept_id integer NOT NULL,
    commname_id integer NOT NULL,
    reference_id integer,
    commdescription text,
    d_obscount integer,
    commname text,
    d_currentaccepted boolean,
    accessioncode text
);


ALTER TABLE public.commconcept OWNER TO bien;

--
-- Name: commconcept_commconcept_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE commconcept_commconcept_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.commconcept_commconcept_id_seq OWNER TO bien;

--
-- Name: commconcept_commconcept_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE commconcept_commconcept_id_seq OWNED BY commconcept.commconcept_id;


--
-- Name: commconcept_commconcept_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('commconcept_commconcept_id_seq', 1, false);


--
-- Name: commcorrelation; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE commcorrelation (
    commcorrelation_id integer NOT NULL,
    commstatus_id integer NOT NULL,
    commconcept_id integer NOT NULL,
    commconvergence text NOT NULL,
    correlationstart date NOT NULL,
    correlationstop date
);


ALTER TABLE public.commcorrelation OWNER TO bien;

--
-- Name: commcorrelation_commcorrelation_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE commcorrelation_commcorrelation_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.commcorrelation_commcorrelation_id_seq OWNER TO bien;

--
-- Name: commcorrelation_commcorrelation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE commcorrelation_commcorrelation_id_seq OWNED BY commcorrelation.commcorrelation_id;


--
-- Name: commcorrelation_commcorrelation_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('commcorrelation_commcorrelation_id_seq', 1, false);


--
-- Name: commdetermination; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE commdetermination (
    commdetermination_id integer NOT NULL,
    commclass_id integer NOT NULL,
    commconcept_id integer NOT NULL,
    commcode text,
    commname text,
    classfit text,
    classconfidence text,
    commauthority_id integer,
    notes text,
    type boolean,
    nomenclaturaltype boolean
);


ALTER TABLE public.commdetermination OWNER TO bien;

--
-- Name: commdetermination_commdetermination_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE commdetermination_commdetermination_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.commdetermination_commdetermination_id_seq OWNER TO bien;

--
-- Name: commdetermination_commdetermination_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE commdetermination_commdetermination_id_seq OWNED BY commdetermination.commdetermination_id;


--
-- Name: commdetermination_commdetermination_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('commdetermination_commdetermination_id_seq', 1, false);


--
-- Name: commlineage; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE commlineage (
    commlineage_id integer NOT NULL,
    parentcommstatus_id integer NOT NULL,
    childcommstatus_id integer NOT NULL
);


ALTER TABLE public.commlineage OWNER TO bien;

--
-- Name: commlineage_commlineage_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE commlineage_commlineage_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.commlineage_commlineage_id_seq OWNER TO bien;

--
-- Name: commlineage_commlineage_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE commlineage_commlineage_id_seq OWNED BY commlineage.commlineage_id;


--
-- Name: commlineage_commlineage_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('commlineage_commlineage_id_seq', 1, false);


--
-- Name: commname; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE commname (
    commname_id integer NOT NULL,
    commname text NOT NULL,
    reference_id integer,
    dateentered date DEFAULT now()
);


ALTER TABLE public.commname OWNER TO bien;

--
-- Name: commname_commname_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE commname_commname_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.commname_commname_id_seq OWNER TO bien;

--
-- Name: commname_commname_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE commname_commname_id_seq OWNED BY commname.commname_id;


--
-- Name: commname_commname_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('commname_commname_id_seq', 1, false);


--
-- Name: commstatus; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE commstatus (
    commstatus_id integer NOT NULL,
    commconcept_id integer NOT NULL,
    reference_id integer,
    commconceptstatus text NOT NULL,
    commparent_id integer,
    commlevel text,
    commpartycomments text,
    party_id integer NOT NULL,
    startdate date NOT NULL,
    stopdate date,
    accessioncode text
);


ALTER TABLE public.commstatus OWNER TO bien;

--
-- Name: commstatus_commstatus_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE commstatus_commstatus_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.commstatus_commstatus_id_seq OWNER TO bien;

--
-- Name: commstatus_commstatus_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE commstatus_commstatus_id_seq OWNED BY commstatus.commstatus_id;


--
-- Name: commstatus_commstatus_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('commstatus_commstatus_id_seq', 1, false);


--
-- Name: commusage; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE commusage (
    commusage_id integer NOT NULL,
    commname_id integer NOT NULL,
    commname text,
    commconcept_id integer,
    commnamestatus text,
    classsystem text,
    party_id integer,
    commstatus_id integer,
    usagestart date,
    usagestop date
);


ALTER TABLE public.commusage OWNER TO bien;

--
-- Name: commusage_commusage_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE commusage_commusage_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.commusage_commusage_id_seq OWNER TO bien;

--
-- Name: commusage_commusage_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE commusage_commusage_id_seq OWNED BY commusage.commusage_id;


--
-- Name: commusage_commusage_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('commusage_commusage_id_seq', 1, false);


--
-- Name: coverindex; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE coverindex (
    coverindex_id integer NOT NULL,
    covermethod_id integer NOT NULL,
    covercode text NOT NULL,
    upperlimit double precision,
    lowerlimit double precision,
    coverpercent double precision NOT NULL,
    indexdescription text
);


ALTER TABLE public.coverindex OWNER TO bien;

--
-- Name: coverindex_coverindex_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE coverindex_coverindex_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.coverindex_coverindex_id_seq OWNER TO bien;

--
-- Name: coverindex_coverindex_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE coverindex_coverindex_id_seq OWNED BY coverindex.coverindex_id;


--
-- Name: coverindex_coverindex_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('coverindex_coverindex_id_seq', 1, false);


--
-- Name: covermethod; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE covermethod (
    covermethod_id integer NOT NULL,
    reference_id integer,
    covertype text NOT NULL,
    coverestimationmethod text,
    accessioncode text
);


ALTER TABLE public.covermethod OWNER TO bien;

--
-- Name: covermethod_covermethod_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE covermethod_covermethod_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.covermethod_covermethod_id_seq OWNER TO bien;

--
-- Name: covermethod_covermethod_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE covermethod_covermethod_id_seq OWNED BY covermethod.covermethod_id;


--
-- Name: covermethod_covermethod_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('covermethod_covermethod_id_seq', 1, false);


--
-- Name: dba_preassignacccode_dba_requestnumber_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE dba_preassignacccode_dba_requestnumber_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.dba_preassignacccode_dba_requestnumber_seq OWNER TO bien;

--
-- Name: dba_preassignacccode_dba_requestnumber_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('dba_preassignacccode_dba_requestnumber_seq', 1, false);


--
-- Name: definedvalue; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE definedvalue (
    definedvalue_id integer NOT NULL,
    userdefined_id integer NOT NULL,
    tablerecord_id integer NOT NULL,
    definedvalue text
);


ALTER TABLE public.definedvalue OWNER TO bien;

--
-- Name: definedvalue_definedvalue_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE definedvalue_definedvalue_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.definedvalue_definedvalue_id_seq OWNER TO bien;

--
-- Name: definedvalue_definedvalue_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE definedvalue_definedvalue_id_seq OWNED BY definedvalue.definedvalue_id;


--
-- Name: definedvalue_definedvalue_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('definedvalue_definedvalue_id_seq', 1, false);


--
-- Name: disturbanceobs; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE disturbanceobs (
    disturbanceobs_id integer NOT NULL,
    locationevent_id integer NOT NULL,
    disturbancetype text NOT NULL,
    disturbanceintensity text,
    disturbanceage double precision,
    disturbanceextent double precision,
    disturbancecomment text
);


ALTER TABLE public.disturbanceobs OWNER TO bien;

--
-- Name: disturbanceobs_disturbanceobs_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE disturbanceobs_disturbanceobs_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.disturbanceobs_disturbanceobs_id_seq OWNER TO bien;

--
-- Name: disturbanceobs_disturbanceobs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE disturbanceobs_disturbanceobs_id_seq OWNED BY disturbanceobs.disturbanceobs_id;


--
-- Name: disturbanceobs_disturbanceobs_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('disturbanceobs_disturbanceobs_id_seq', 1, false);


--
-- Name: graphic; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE graphic (
    graphic_id integer NOT NULL,
    locationevent_id integer NOT NULL,
    graphicname text,
    graphiclocation text,
    graphicdescription text,
    graphictype text,
    graphicdata oid,
    graphicdate date,
    accessioncode text
);


ALTER TABLE public.graphic OWNER TO bien;

--
-- Name: graphic_graphic_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE graphic_graphic_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.graphic_graphic_id_seq OWNER TO bien;

--
-- Name: graphic_graphic_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE graphic_graphic_id_seq OWNED BY graphic.graphic_id;


--
-- Name: graphic_graphic_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('graphic_graphic_id_seq', 1, false);


--
-- Name: location_location_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE location_location_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.location_location_id_seq OWNER TO bien;

--
-- Name: location_location_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE location_location_id_seq OWNED BY location.location_id;


--
-- Name: location_location_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('location_location_id_seq', 68, true);


--
-- Name: locationcoords_locationcoords_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE locationcoords_locationcoords_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.locationcoords_locationcoords_id_seq OWNER TO bien;

--
-- Name: locationcoords_locationcoords_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE locationcoords_locationcoords_id_seq OWNED BY locationcoords.locationcoords_id;


--
-- Name: locationcoords_locationcoords_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('locationcoords_locationcoords_id_seq', 1, false);


--
-- Name: locationevent_locationevent_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE locationevent_locationevent_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.locationevent_locationevent_id_seq OWNER TO bien;

--
-- Name: locationevent_locationevent_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE locationevent_locationevent_id_seq OWNED BY locationevent.locationevent_id;


--
-- Name: locationevent_locationevent_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('locationevent_locationevent_id_seq', 68, true);


--
-- Name: locationeventcontributor; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE locationeventcontributor (
    locationeventcontributor_id integer NOT NULL,
    locationevent_id integer NOT NULL,
    party_id integer NOT NULL,
    role role NOT NULL,
    contributiondate date
);


ALTER TABLE public.locationeventcontributor OWNER TO bien;

--
-- Name: locationeventcontributor_locationeventcontributor_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE locationeventcontributor_locationeventcontributor_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.locationeventcontributor_locationeventcontributor_id_seq OWNER TO bien;

--
-- Name: locationeventcontributor_locationeventcontributor_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE locationeventcontributor_locationeventcontributor_id_seq OWNED BY locationeventcontributor.locationeventcontributor_id;


--
-- Name: locationeventcontributor_locationeventcontributor_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('locationeventcontributor_locationeventcontributor_id_seq', 1, false);


--
-- Name: locationeventsynonym; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE locationeventsynonym (
    locationeventsynonym_id integer NOT NULL,
    synonymlocationevent_id integer NOT NULL,
    primarylocationevent_id integer NOT NULL,
    party_id integer NOT NULL,
    role role NOT NULL,
    synonymcomment text,
    classstartdate date DEFAULT now() NOT NULL,
    classstopdate date,
    accessioncode text
);


ALTER TABLE public.locationeventsynonym OWNER TO bien;

--
-- Name: locationeventsynonym_locationeventsynonym_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE locationeventsynonym_locationeventsynonym_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.locationeventsynonym_locationeventsynonym_id_seq OWNER TO bien;

--
-- Name: locationeventsynonym_locationeventsynonym_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE locationeventsynonym_locationeventsynonym_id_seq OWNED BY locationeventsynonym.locationeventsynonym_id;


--
-- Name: locationeventsynonym_locationeventsynonym_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('locationeventsynonym_locationeventsynonym_id_seq', 1, false);


--
-- Name: locationplace_locationplace_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE locationplace_locationplace_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.locationplace_locationplace_id_seq OWNER TO bien;

--
-- Name: locationplace_locationplace_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE locationplace_locationplace_id_seq OWNED BY locationplace.locationplace_id;


--
-- Name: locationplace_locationplace_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('locationplace_locationplace_id_seq', 1, false);


--
-- Name: method_method_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE method_method_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.method_method_id_seq OWNER TO bien;

--
-- Name: method_method_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE method_method_id_seq OWNED BY method.method_id;


--
-- Name: method_method_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('method_method_id_seq', 1, false);


--
-- Name: methodtaxonclass; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE methodtaxonclass (
    methodtaxonclass_id integer NOT NULL,
    method_id integer NOT NULL,
    taxonconcept_id integer,
    included boolean NOT NULL,
    submethod_id integer,
    taxonclass taxonclass,
    CONSTRAINT methodtaxonclass_key_required CHECK (((taxonconcept_id IS NOT NULL) OR (taxonclass IS NOT NULL)))
);


ALTER TABLE public.methodtaxonclass OWNER TO bien;

--
-- Name: COLUMN methodtaxonclass.included; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN methodtaxonclass.included IS 'Whether the method includes or excludes this taxon class.';


--
-- Name: COLUMN methodtaxonclass.submethod_id; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN methodtaxonclass.submethod_id IS 'The submethod used to sample just this taxon class, distinct from the main method.';


--
-- Name: methodtaxonclass_methodtaxonclass_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE methodtaxonclass_methodtaxonclass_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.methodtaxonclass_methodtaxonclass_id_seq OWNER TO bien;

--
-- Name: methodtaxonclass_methodtaxonclass_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE methodtaxonclass_methodtaxonclass_id_seq OWNED BY methodtaxonclass.methodtaxonclass_id;


--
-- Name: methodtaxonclass_methodtaxonclass_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('methodtaxonclass_methodtaxonclass_id_seq', 1, false);


--
-- Name: note; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE note (
    note_id integer NOT NULL,
    notelink_id integer NOT NULL,
    party_id integer NOT NULL,
    role role NOT NULL,
    notetype text NOT NULL,
    notetext text NOT NULL,
    notedate date,
    accessioncode text
);


ALTER TABLE public.note OWNER TO bien;

--
-- Name: note_note_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE note_note_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.note_note_id_seq OWNER TO bien;

--
-- Name: note_note_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE note_note_id_seq OWNED BY note.note_id;


--
-- Name: note_note_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('note_note_id_seq', 1, false);


--
-- Name: notelink; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE notelink (
    notelink_id integer NOT NULL,
    tablename text NOT NULL,
    attributename text,
    tablerecord integer NOT NULL
);


ALTER TABLE public.notelink OWNER TO bien;

--
-- Name: notelink_notelink_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE notelink_notelink_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.notelink_notelink_id_seq OWNER TO bien;

--
-- Name: notelink_notelink_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE notelink_notelink_id_seq OWNED BY notelink.notelink_id;


--
-- Name: notelink_notelink_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('notelink_notelink_id_seq', 1, false);


--
-- Name: party_party_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE party_party_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.party_party_id_seq OWNER TO bien;

--
-- Name: party_party_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE party_party_id_seq OWNED BY party.party_id;


--
-- Name: party_party_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('party_party_id_seq', 36, true);


--
-- Name: partymember; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE partymember (
    partymember_id integer NOT NULL,
    parentparty_id integer NOT NULL,
    childparty_id integer NOT NULL,
    role role,
    memberstart date DEFAULT now() NOT NULL,
    memberstop date
);


ALTER TABLE public.partymember OWNER TO bien;

--
-- Name: partymember_partymember_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE partymember_partymember_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.partymember_partymember_id_seq OWNER TO bien;

--
-- Name: partymember_partymember_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE partymember_partymember_id_seq OWNED BY partymember.partymember_id;


--
-- Name: partymember_partymember_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('partymember_partymember_id_seq', 1, false);


--
-- Name: place; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE place (
    place_id integer NOT NULL,
    parent_id integer,
    rank placerank NOT NULL,
    placename text NOT NULL,
    placecode text,
    placedescription text,
    accessioncode text
);


ALTER TABLE public.place OWNER TO bien;

--
-- Name: TABLE place; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE place IS 'An official, named place. Can be at any level in the geographic hierarchy. Note that the placename stores only one rank (e.g. country) of the full path to the place. The higher-level ranks are stored in the place''s chain of parent_id ancestors.

Equivalent to VegBank''s namedPlace table.';


--
-- Name: place_ancestor; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE place_ancestor (
    place_id integer NOT NULL,
    ancestor_id integer NOT NULL
);


ALTER TABLE public.place_ancestor OWNER TO bien;

--
-- Name: TABLE place_ancestor; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE place_ancestor IS 'place''s ancestor cross link table.';


--
-- Name: place_place_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE place_place_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.place_place_id_seq OWNER TO bien;

--
-- Name: place_place_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE place_place_id_seq OWNED BY place.place_id;


--
-- Name: place_place_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('place_place_id_seq', 1, false);


--
-- Name: placecorrelation; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE placecorrelation (
    placecorrelation_id integer NOT NULL,
    parentplace_id integer NOT NULL,
    childplace_id integer NOT NULL,
    placeconvergence text NOT NULL
);


ALTER TABLE public.placecorrelation OWNER TO bien;

--
-- Name: placecorrelation_placecorrelation_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE placecorrelation_placecorrelation_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.placecorrelation_placecorrelation_id_seq OWNER TO bien;

--
-- Name: placecorrelation_placecorrelation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE placecorrelation_placecorrelation_id_seq OWNED BY placecorrelation.placecorrelation_id;


--
-- Name: placecorrelation_placecorrelation_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('placecorrelation_placecorrelation_id_seq', 1, false);


--
-- Name: placepath_placepath_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE placepath_placepath_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.placepath_placepath_id_seq OWNER TO bien;

--
-- Name: placepath_placepath_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE placepath_placepath_id_seq OWNED BY placepath.placepath_id;


--
-- Name: placepath_placepath_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('placepath_placepath_id_seq', 1, false);


--
-- Name: plant; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE plant (
    plant_id integer NOT NULL
);


ALTER TABLE public.plant OWNER TO bien;

--
-- Name: TABLE plant; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE plant IS 'A physical, tagged plant.';


--
-- Name: plant_plant_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE plant_plant_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.plant_plant_id_seq OWNER TO bien;

--
-- Name: plant_plant_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE plant_plant_id_seq OWNED BY plant.plant_id;


--
-- Name: plant_plant_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('plant_plant_id_seq', 1, false);


--
-- Name: plantobservation_plantobservation_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE plantobservation_plantobservation_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.plantobservation_plantobservation_id_seq OWNER TO bien;

--
-- Name: plantobservation_plantobservation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE plantobservation_plantobservation_id_seq OWNED BY plantobservation.plantobservation_id;


--
-- Name: plantobservation_plantobservation_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('plantobservation_plantobservation_id_seq', 1, false);


--
-- Name: project; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE project (
    project_id integer NOT NULL,
    creator_id integer NOT NULL,
    sourceaccessioncode text,
    projectname text,
    projectdescription text,
    startdate date,
    stopdate date,
    d_obscount integer,
    d_lastlocationaddeddate date,
    accessioncode text,
    CONSTRAINT project_required_key CHECK (((sourceaccessioncode IS NOT NULL) OR (projectname IS NOT NULL)))
);


ALTER TABLE public.project OWNER TO bien;

--
-- Name: project_project_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE project_project_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.project_project_id_seq OWNER TO bien;

--
-- Name: project_project_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE project_project_id_seq OWNED BY project.project_id;


--
-- Name: project_project_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('project_project_id_seq', 1, false);


--
-- Name: projectcontributor; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE projectcontributor (
    projectcontributor_id integer NOT NULL,
    project_id integer NOT NULL,
    party_id integer NOT NULL,
    role role,
    surname text,
    cheatrole text
);


ALTER TABLE public.projectcontributor OWNER TO bien;

--
-- Name: projectcontributor_projectcontributor_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE projectcontributor_projectcontributor_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.projectcontributor_projectcontributor_id_seq OWNER TO bien;

--
-- Name: projectcontributor_projectcontributor_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE projectcontributor_projectcontributor_id_seq OWNED BY projectcontributor.projectcontributor_id;


--
-- Name: projectcontributor_projectcontributor_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('projectcontributor_projectcontributor_id_seq', 1, false);


--
-- Name: reference; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE reference (
    reference_id integer NOT NULL,
    shortname text,
    fulltext text,
    referencetype text,
    title text,
    titlesuperior text,
    referencejournal_id integer,
    volume text,
    issue text,
    pagerange text,
    totalpages integer,
    publisher text,
    publicationplace text,
    isbn text,
    edition text,
    numberofvolumes integer,
    chapternumber integer,
    reportnumber integer,
    communicationtype text,
    degree text,
    url text,
    doi text,
    additionalinfo text,
    pubdate date,
    accessdate date,
    conferencedate date,
    accessioncode text
);


ALTER TABLE public.reference OWNER TO bien;

--
-- Name: reference_reference_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE reference_reference_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.reference_reference_id_seq OWNER TO bien;

--
-- Name: reference_reference_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE reference_reference_id_seq OWNED BY reference.reference_id;


--
-- Name: reference_reference_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('reference_reference_id_seq', 1, false);


--
-- Name: referencealtident; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE referencealtident (
    referencealtident_id integer NOT NULL,
    reference_id integer NOT NULL,
    system text,
    identifier text NOT NULL
);


ALTER TABLE public.referencealtident OWNER TO bien;

--
-- Name: referencealtident_referencealtident_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE referencealtident_referencealtident_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.referencealtident_referencealtident_id_seq OWNER TO bien;

--
-- Name: referencealtident_referencealtident_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE referencealtident_referencealtident_id_seq OWNED BY referencealtident.referencealtident_id;


--
-- Name: referencealtident_referencealtident_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('referencealtident_referencealtident_id_seq', 1, false);


--
-- Name: referencecontributor; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE referencecontributor (
    referencecontributor_id integer NOT NULL,
    reference_id integer NOT NULL,
    referenceparty_id integer NOT NULL,
    roletype text,
    "position" integer
);


ALTER TABLE public.referencecontributor OWNER TO bien;

--
-- Name: referencecontributor_referencecontributor_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE referencecontributor_referencecontributor_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.referencecontributor_referencecontributor_id_seq OWNER TO bien;

--
-- Name: referencecontributor_referencecontributor_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE referencecontributor_referencecontributor_id_seq OWNED BY referencecontributor.referencecontributor_id;


--
-- Name: referencecontributor_referencecontributor_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('referencecontributor_referencecontributor_id_seq', 1, false);


--
-- Name: referencejournal; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE referencejournal (
    referencejournal_id integer NOT NULL,
    journal text NOT NULL,
    issn text,
    abbreviation text,
    accessioncode text
);


ALTER TABLE public.referencejournal OWNER TO bien;

--
-- Name: referencejournal_referencejournal_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE referencejournal_referencejournal_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.referencejournal_referencejournal_id_seq OWNER TO bien;

--
-- Name: referencejournal_referencejournal_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE referencejournal_referencejournal_id_seq OWNED BY referencejournal.referencejournal_id;


--
-- Name: referencejournal_referencejournal_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('referencejournal_referencejournal_id_seq', 1, false);


--
-- Name: referenceparty; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE referenceparty (
    referenceparty_id integer NOT NULL,
    type text,
    positionname text,
    salutation text,
    givenname text,
    surname text,
    suffix text,
    organizationname text,
    currentparty_id integer,
    accessioncode text
);


ALTER TABLE public.referenceparty OWNER TO bien;

--
-- Name: referenceparty_referenceparty_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE referenceparty_referenceparty_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.referenceparty_referenceparty_id_seq OWNER TO bien;

--
-- Name: referenceparty_referenceparty_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE referenceparty_referenceparty_id_seq OWNED BY referenceparty.referenceparty_id;


--
-- Name: referenceparty_referenceparty_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('referenceparty_referenceparty_id_seq', 1, false);


--
-- Name: revision; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE revision (
    revision_id integer NOT NULL,
    tablename text NOT NULL,
    tableattribute text NOT NULL,
    tablerecord integer NOT NULL,
    previousvaluetext text NOT NULL,
    previousvaluetype text NOT NULL,
    previousrevision_id integer,
    revisiondate date NOT NULL
);


ALTER TABLE public.revision OWNER TO bien;

--
-- Name: revision_revision_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE revision_revision_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.revision_revision_id_seq OWNER TO bien;

--
-- Name: revision_revision_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE revision_revision_id_seq OWNED BY revision.revision_id;


--
-- Name: revision_revision_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('revision_revision_id_seq', 1, false);


--
-- Name: soilobs; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE soilobs (
    soilobs_id integer NOT NULL,
    locationevent_id integer NOT NULL,
    horizon text DEFAULT 'unknown'::text NOT NULL,
    description text,
    depthtop_m double precision,
    depthbottom_m double precision,
    color text,
    texture text,
    organic_fraction double precision,
    sand_fraction double precision,
    silt_fraction double precision,
    clay_fraction double precision,
    coarse_fraction double precision,
    ph double precision,
    acidity_fraction double precision,
    basesaturation_fraction double precision,
    cationexchangecapacity_cmol_kg double precision,
    conductivity double precision,
    carbon_fraction double precision,
    phosphorus_fraction double precision,
    potassium_fraction double precision,
    magnesium_fraction double precision,
    nitrogen_fraction double precision,
    calcium_fraction double precision,
    sodium_fraction double precision
);


ALTER TABLE public.soilobs OWNER TO bien;

--
-- Name: soilobs_soilobs_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE soilobs_soilobs_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.soilobs_soilobs_id_seq OWNER TO bien;

--
-- Name: soilobs_soilobs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE soilobs_soilobs_id_seq OWNED BY soilobs.soilobs_id;


--
-- Name: soilobs_soilobs_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('soilobs_soilobs_id_seq', 1, false);


--
-- Name: soiltaxon; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE soiltaxon (
    soiltaxon_id integer NOT NULL,
    soilcode text,
    soilname text,
    soillevel integer,
    soilparent_id integer,
    soilframework text,
    accessioncode text
);


ALTER TABLE public.soiltaxon OWNER TO bien;

--
-- Name: soiltaxon_soiltaxon_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE soiltaxon_soiltaxon_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.soiltaxon_soiltaxon_id_seq OWNER TO bien;

--
-- Name: soiltaxon_soiltaxon_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE soiltaxon_soiltaxon_id_seq OWNED BY soiltaxon.soiltaxon_id;


--
-- Name: soiltaxon_soiltaxon_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('soiltaxon_soiltaxon_id_seq', 1, false);


--
-- Name: specimen; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE specimen (
    specimen_id integer NOT NULL
);


ALTER TABLE public.specimen OWNER TO bien;

--
-- Name: TABLE specimen; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE specimen IS 'A physical specimen collected from a plant. Used to link replicates of the same specimen together.';


--
-- Name: specimen_specimen_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE specimen_specimen_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.specimen_specimen_id_seq OWNER TO bien;

--
-- Name: specimen_specimen_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE specimen_specimen_id_seq OWNED BY specimen.specimen_id;


--
-- Name: specimen_specimen_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('specimen_specimen_id_seq', 1, false);


--
-- Name: specimenreplicate_specimenreplicate_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE specimenreplicate_specimenreplicate_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.specimenreplicate_specimenreplicate_id_seq OWNER TO bien;

--
-- Name: specimenreplicate_specimenreplicate_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE specimenreplicate_specimenreplicate_id_seq OWNED BY specimenreplicate.specimenreplicate_id;


--
-- Name: specimenreplicate_specimenreplicate_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('specimenreplicate_specimenreplicate_id_seq', 1, false);


--
-- Name: stemobservation; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE stemobservation (
    stemobservation_id integer NOT NULL,
    creator_id integer NOT NULL,
    sourceaccessioncode text,
    plantobservation_id integer NOT NULL,
    authorstemcode text,
    tag text,
    tags text,
    xposition_m double precision,
    yposition_m double precision,
    diameterbreastheight_m double precision,
    basaldiameter_m double precision,
    diameteraccuracy_m double precision,
    height_m double precision,
    heightfirstbranch_m double precision,
    heightaccuracy_m double precision,
    health text,
    age double precision,
    accessioncode text
);


ALTER TABLE public.stemobservation OWNER TO bien;

--
-- Name: TABLE stemobservation; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE stemobservation IS 'Equivalent to VegBank''s stemlocation table.';


--
-- Name: COLUMN stemobservation.tags; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON COLUMN stemobservation.tags IS 'Stores all tags when multiple tags provided. Older tags go first.';


--
-- Name: stemobservation_stemobservation_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE stemobservation_stemobservation_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.stemobservation_stemobservation_id_seq OWNER TO bien;

--
-- Name: stemobservation_stemobservation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE stemobservation_stemobservation_id_seq OWNED BY stemobservation.stemobservation_id;


--
-- Name: stemobservation_stemobservation_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('stemobservation_stemobservation_id_seq', 1, false);


--
-- Name: stratum; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE stratum (
    stratum_id integer NOT NULL,
    locationevent_id integer NOT NULL,
    stratumheight double precision,
    stratumbase double precision,
    stratumcover double precision,
    area double precision,
    method_id integer
);


ALTER TABLE public.stratum OWNER TO bien;

--
-- Name: stratum_stratum_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE stratum_stratum_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.stratum_stratum_id_seq OWNER TO bien;

--
-- Name: stratum_stratum_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE stratum_stratum_id_seq OWNED BY stratum.stratum_id;


--
-- Name: stratum_stratum_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('stratum_stratum_id_seq', 1, false);


--
-- Name: taxonalt; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE taxonalt (
    taxonalt_id integer NOT NULL,
    taxondetermination_id integer NOT NULL,
    taxonconcept_id integer NOT NULL,
    taxonaltfit text,
    taxonaltconfidence text,
    taxonaltnotes text
);


ALTER TABLE public.taxonalt OWNER TO bien;

--
-- Name: taxonalt_taxonalt_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE taxonalt_taxonalt_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.taxonalt_taxonalt_id_seq OWNER TO bien;

--
-- Name: taxonalt_taxonalt_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE taxonalt_taxonalt_id_seq OWNED BY taxonalt.taxonalt_id;


--
-- Name: taxonalt_taxonalt_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('taxonalt_taxonalt_id_seq', 1, false);


--
-- Name: taxonconcept_ancestor; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE taxonconcept_ancestor (
    descendant_id integer NOT NULL,
    ancestor_id integer NOT NULL
);


ALTER TABLE public.taxonconcept_ancestor OWNER TO bien;

--
-- Name: TABLE taxonconcept_ancestor; Type: COMMENT; Schema: public; Owner: bien
--

COMMENT ON TABLE taxonconcept_ancestor IS 'Stores the accepted ancestors of a taxonconcept. Auto-populated, so should not be manually modified.';


--
-- Name: taxonconcept_taxonconcept_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE taxonconcept_taxonconcept_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.taxonconcept_taxonconcept_id_seq OWNER TO bien;

--
-- Name: taxonconcept_taxonconcept_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE taxonconcept_taxonconcept_id_seq OWNED BY taxonconcept.taxonconcept_id;


--
-- Name: taxonconcept_taxonconcept_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('taxonconcept_taxonconcept_id_seq', 786, true);


--
-- Name: taxoncorrelation; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE taxoncorrelation (
    taxoncorrelation_id integer NOT NULL,
    taxonstatus_id integer NOT NULL,
    taxonconcept_id integer NOT NULL,
    plantconvergence text NOT NULL,
    correlationstart date NOT NULL,
    correlationstop date
);


ALTER TABLE public.taxoncorrelation OWNER TO bien;

--
-- Name: taxoncorrelation_taxoncorrelation_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE taxoncorrelation_taxoncorrelation_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.taxoncorrelation_taxoncorrelation_id_seq OWNER TO bien;

--
-- Name: taxoncorrelation_taxoncorrelation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE taxoncorrelation_taxoncorrelation_id_seq OWNED BY taxoncorrelation.taxoncorrelation_id;


--
-- Name: taxoncorrelation_taxoncorrelation_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('taxoncorrelation_taxoncorrelation_id_seq', 1, false);


--
-- Name: taxondetermination_taxondetermination_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE taxondetermination_taxondetermination_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.taxondetermination_taxondetermination_id_seq OWNER TO bien;

--
-- Name: taxondetermination_taxondetermination_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE taxondetermination_taxondetermination_id_seq OWNED BY taxondetermination.taxondetermination_id;


--
-- Name: taxondetermination_taxondetermination_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('taxondetermination_taxondetermination_id_seq', 34, true);


--
-- Name: taxonlineage; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE taxonlineage (
    taxonlineage_id integer NOT NULL,
    childtaxonstatus_id integer NOT NULL,
    parenttaxonstatus_id integer NOT NULL
);


ALTER TABLE public.taxonlineage OWNER TO bien;

--
-- Name: taxonlineage_taxonlineage_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE taxonlineage_taxonlineage_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.taxonlineage_taxonlineage_id_seq OWNER TO bien;

--
-- Name: taxonlineage_taxonlineage_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE taxonlineage_taxonlineage_id_seq OWNED BY taxonlineage.taxonlineage_id;


--
-- Name: taxonlineage_taxonlineage_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('taxonlineage_taxonlineage_id_seq', 1, false);


--
-- Name: taxonoccurrence_taxonoccurrence_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE taxonoccurrence_taxonoccurrence_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.taxonoccurrence_taxonoccurrence_id_seq OWNER TO bien;

--
-- Name: taxonoccurrence_taxonoccurrence_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE taxonoccurrence_taxonoccurrence_id_seq OWNED BY taxonoccurrence.taxonoccurrence_id;


--
-- Name: taxonoccurrence_taxonoccurrence_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('taxonoccurrence_taxonoccurrence_id_seq', 68, true);


--
-- Name: taxonstatus; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE taxonstatus (
    taxonstatus_id integer NOT NULL,
    taxonconcept_id integer NOT NULL,
    party_id integer,
    taxonconceptstatus text DEFAULT 'undetermined'::text NOT NULL,
    reference_id integer,
    plantpartycomments text,
    startdate date,
    stopdate date,
    accessioncode text
);


ALTER TABLE public.taxonstatus OWNER TO bien;

--
-- Name: taxonstatus_taxonstatus_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE taxonstatus_taxonstatus_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.taxonstatus_taxonstatus_id_seq OWNER TO bien;

--
-- Name: taxonstatus_taxonstatus_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE taxonstatus_taxonstatus_id_seq OWNED BY taxonstatus.taxonstatus_id;


--
-- Name: taxonstatus_taxonstatus_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('taxonstatus_taxonstatus_id_seq', 1, false);


--
-- Name: taxonusage; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE taxonusage (
    taxonusage_id integer NOT NULL,
    taxonconcept_id integer NOT NULL,
    taxonstatus text,
    taxon text,
    classsystem text,
    acceptedsynonym text,
    party_id integer,
    taxonstatus_id integer,
    usagestart date,
    usagestop date
);


ALTER TABLE public.taxonusage OWNER TO bien;

--
-- Name: taxonusage_taxonusage_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE taxonusage_taxonusage_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.taxonusage_taxonusage_id_seq OWNER TO bien;

--
-- Name: taxonusage_taxonusage_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE taxonusage_taxonusage_id_seq OWNED BY taxonusage.taxonusage_id;


--
-- Name: taxonusage_taxonusage_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('taxonusage_taxonusage_id_seq', 1, false);


--
-- Name: telephone; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE telephone (
    telephone_id integer NOT NULL,
    party_id integer NOT NULL,
    phonenumber text NOT NULL,
    phonetype text NOT NULL
);


ALTER TABLE public.telephone OWNER TO bien;

--
-- Name: telephone_telephone_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE telephone_telephone_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.telephone_telephone_id_seq OWNER TO bien;

--
-- Name: telephone_telephone_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE telephone_telephone_id_seq OWNED BY telephone.telephone_id;


--
-- Name: telephone_telephone_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('telephone_telephone_id_seq', 1, false);


--
-- Name: trait; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE trait (
    trait_id integer NOT NULL,
    stemobservation_id integer NOT NULL,
    type text NOT NULL,
    value text
);


ALTER TABLE public.trait OWNER TO bien;

--
-- Name: trait_trait_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE trait_trait_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.trait_trait_id_seq OWNER TO bien;

--
-- Name: trait_trait_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE trait_trait_id_seq OWNED BY trait.trait_id;


--
-- Name: trait_trait_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('trait_trait_id_seq', 1, false);


--
-- Name: userdefined; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE userdefined (
    userdefined_id integer NOT NULL,
    userdefinedname text NOT NULL,
    userdefinedmetadata text,
    userdefinedcategory text,
    userdefinedtype text DEFAULT 'text'::text NOT NULL,
    tablename text NOT NULL,
    accessioncode text
);


ALTER TABLE public.userdefined OWNER TO bien;

--
-- Name: userdefined_userdefined_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE userdefined_userdefined_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.userdefined_userdefined_id_seq OWNER TO bien;

--
-- Name: userdefined_userdefined_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE userdefined_userdefined_id_seq OWNED BY userdefined.userdefined_id;


--
-- Name: userdefined_userdefined_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('userdefined_userdefined_id_seq', 1, false);


--
-- Name: voucher; Type: TABLE; Schema: public; Owner: bien; Tablespace: 
--

CREATE TABLE voucher (
    voucher_id integer NOT NULL,
    taxonoccurrence_id integer NOT NULL,
    specimenreplicate_id integer NOT NULL
);


ALTER TABLE public.voucher OWNER TO bien;

--
-- Name: voucher_voucher_id_seq; Type: SEQUENCE; Schema: public; Owner: bien
--

CREATE SEQUENCE voucher_voucher_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.voucher_voucher_id_seq OWNER TO bien;

--
-- Name: voucher_voucher_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: bien
--

ALTER SEQUENCE voucher_voucher_id_seq OWNED BY voucher.voucher_id;


--
-- Name: voucher_voucher_id_seq; Type: SEQUENCE SET; Schema: public; Owner: bien
--

SELECT pg_catalog.setval('voucher_voucher_id_seq', 1, false);


--
-- Name: address_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE address ALTER COLUMN address_id SET DEFAULT nextval('address_address_id_seq'::regclass);


--
-- Name: aggregateoccurrence_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE aggregateoccurrence ALTER COLUMN aggregateoccurrence_id SET DEFAULT nextval('aggregateoccurrence_aggregateoccurrence_id_seq'::regclass);


--
-- Name: classcontributor_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE classcontributor ALTER COLUMN classcontributor_id SET DEFAULT nextval('classcontributor_classcontributor_id_seq'::regclass);


--
-- Name: commclass_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE commclass ALTER COLUMN commclass_id SET DEFAULT nextval('commclass_commclass_id_seq'::regclass);


--
-- Name: commconcept_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE commconcept ALTER COLUMN commconcept_id SET DEFAULT nextval('commconcept_commconcept_id_seq'::regclass);


--
-- Name: commcorrelation_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE commcorrelation ALTER COLUMN commcorrelation_id SET DEFAULT nextval('commcorrelation_commcorrelation_id_seq'::regclass);


--
-- Name: commdetermination_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE commdetermination ALTER COLUMN commdetermination_id SET DEFAULT nextval('commdetermination_commdetermination_id_seq'::regclass);


--
-- Name: commlineage_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE commlineage ALTER COLUMN commlineage_id SET DEFAULT nextval('commlineage_commlineage_id_seq'::regclass);


--
-- Name: commname_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE commname ALTER COLUMN commname_id SET DEFAULT nextval('commname_commname_id_seq'::regclass);


--
-- Name: commstatus_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE commstatus ALTER COLUMN commstatus_id SET DEFAULT nextval('commstatus_commstatus_id_seq'::regclass);


--
-- Name: commusage_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE commusage ALTER COLUMN commusage_id SET DEFAULT nextval('commusage_commusage_id_seq'::regclass);


--
-- Name: coverindex_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE coverindex ALTER COLUMN coverindex_id SET DEFAULT nextval('coverindex_coverindex_id_seq'::regclass);


--
-- Name: covermethod_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE covermethod ALTER COLUMN covermethod_id SET DEFAULT nextval('covermethod_covermethod_id_seq'::regclass);


--
-- Name: definedvalue_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE definedvalue ALTER COLUMN definedvalue_id SET DEFAULT nextval('definedvalue_definedvalue_id_seq'::regclass);


--
-- Name: disturbanceobs_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE disturbanceobs ALTER COLUMN disturbanceobs_id SET DEFAULT nextval('disturbanceobs_disturbanceobs_id_seq'::regclass);


--
-- Name: graphic_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE graphic ALTER COLUMN graphic_id SET DEFAULT nextval('graphic_graphic_id_seq'::regclass);


--
-- Name: location_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE location ALTER COLUMN location_id SET DEFAULT nextval('location_location_id_seq'::regclass);


--
-- Name: locationcoords_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE locationcoords ALTER COLUMN locationcoords_id SET DEFAULT nextval('locationcoords_locationcoords_id_seq'::regclass);


--
-- Name: locationevent_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE locationevent ALTER COLUMN locationevent_id SET DEFAULT nextval('locationevent_locationevent_id_seq'::regclass);


--
-- Name: locationeventcontributor_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE locationeventcontributor ALTER COLUMN locationeventcontributor_id SET DEFAULT nextval('locationeventcontributor_locationeventcontributor_id_seq'::regclass);


--
-- Name: locationeventsynonym_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE locationeventsynonym ALTER COLUMN locationeventsynonym_id SET DEFAULT nextval('locationeventsynonym_locationeventsynonym_id_seq'::regclass);


--
-- Name: locationplace_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE locationplace ALTER COLUMN locationplace_id SET DEFAULT nextval('locationplace_locationplace_id_seq'::regclass);


--
-- Name: method_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE method ALTER COLUMN method_id SET DEFAULT nextval('method_method_id_seq'::regclass);


--
-- Name: methodtaxonclass_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE methodtaxonclass ALTER COLUMN methodtaxonclass_id SET DEFAULT nextval('methodtaxonclass_methodtaxonclass_id_seq'::regclass);


--
-- Name: note_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE note ALTER COLUMN note_id SET DEFAULT nextval('note_note_id_seq'::regclass);


--
-- Name: notelink_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE notelink ALTER COLUMN notelink_id SET DEFAULT nextval('notelink_notelink_id_seq'::regclass);


--
-- Name: party_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE party ALTER COLUMN party_id SET DEFAULT nextval('party_party_id_seq'::regclass);


--
-- Name: partymember_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE partymember ALTER COLUMN partymember_id SET DEFAULT nextval('partymember_partymember_id_seq'::regclass);


--
-- Name: place_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE place ALTER COLUMN place_id SET DEFAULT nextval('place_place_id_seq'::regclass);


--
-- Name: placecorrelation_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE placecorrelation ALTER COLUMN placecorrelation_id SET DEFAULT nextval('placecorrelation_placecorrelation_id_seq'::regclass);


--
-- Name: placepath_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE placepath ALTER COLUMN placepath_id SET DEFAULT nextval('placepath_placepath_id_seq'::regclass);


--
-- Name: plant_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE plant ALTER COLUMN plant_id SET DEFAULT nextval('plant_plant_id_seq'::regclass);


--
-- Name: plantobservation_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE plantobservation ALTER COLUMN plantobservation_id SET DEFAULT nextval('plantobservation_plantobservation_id_seq'::regclass);


--
-- Name: project_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE project ALTER COLUMN project_id SET DEFAULT nextval('project_project_id_seq'::regclass);


--
-- Name: projectcontributor_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE projectcontributor ALTER COLUMN projectcontributor_id SET DEFAULT nextval('projectcontributor_projectcontributor_id_seq'::regclass);


--
-- Name: reference_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE reference ALTER COLUMN reference_id SET DEFAULT nextval('reference_reference_id_seq'::regclass);


--
-- Name: referencealtident_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE referencealtident ALTER COLUMN referencealtident_id SET DEFAULT nextval('referencealtident_referencealtident_id_seq'::regclass);


--
-- Name: referencecontributor_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE referencecontributor ALTER COLUMN referencecontributor_id SET DEFAULT nextval('referencecontributor_referencecontributor_id_seq'::regclass);


--
-- Name: referencejournal_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE referencejournal ALTER COLUMN referencejournal_id SET DEFAULT nextval('referencejournal_referencejournal_id_seq'::regclass);


--
-- Name: referenceparty_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE referenceparty ALTER COLUMN referenceparty_id SET DEFAULT nextval('referenceparty_referenceparty_id_seq'::regclass);


--
-- Name: revision_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE revision ALTER COLUMN revision_id SET DEFAULT nextval('revision_revision_id_seq'::regclass);


--
-- Name: soilobs_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE soilobs ALTER COLUMN soilobs_id SET DEFAULT nextval('soilobs_soilobs_id_seq'::regclass);


--
-- Name: soiltaxon_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE soiltaxon ALTER COLUMN soiltaxon_id SET DEFAULT nextval('soiltaxon_soiltaxon_id_seq'::regclass);


--
-- Name: specimen_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE specimen ALTER COLUMN specimen_id SET DEFAULT nextval('specimen_specimen_id_seq'::regclass);


--
-- Name: specimenreplicate_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE specimenreplicate ALTER COLUMN specimenreplicate_id SET DEFAULT nextval('specimenreplicate_specimenreplicate_id_seq'::regclass);


--
-- Name: stemobservation_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE stemobservation ALTER COLUMN stemobservation_id SET DEFAULT nextval('stemobservation_stemobservation_id_seq'::regclass);


--
-- Name: stratum_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE stratum ALTER COLUMN stratum_id SET DEFAULT nextval('stratum_stratum_id_seq'::regclass);


--
-- Name: taxonalt_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE taxonalt ALTER COLUMN taxonalt_id SET DEFAULT nextval('taxonalt_taxonalt_id_seq'::regclass);


--
-- Name: taxonconcept_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE taxonconcept ALTER COLUMN taxonconcept_id SET DEFAULT nextval('taxonconcept_taxonconcept_id_seq'::regclass);


--
-- Name: taxoncorrelation_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE taxoncorrelation ALTER COLUMN taxoncorrelation_id SET DEFAULT nextval('taxoncorrelation_taxoncorrelation_id_seq'::regclass);


--
-- Name: taxondetermination_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE taxondetermination ALTER COLUMN taxondetermination_id SET DEFAULT nextval('taxondetermination_taxondetermination_id_seq'::regclass);


--
-- Name: taxonlineage_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE taxonlineage ALTER COLUMN taxonlineage_id SET DEFAULT nextval('taxonlineage_taxonlineage_id_seq'::regclass);


--
-- Name: taxonoccurrence_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE taxonoccurrence ALTER COLUMN taxonoccurrence_id SET DEFAULT nextval('taxonoccurrence_taxonoccurrence_id_seq'::regclass);


--
-- Name: taxonstatus_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE taxonstatus ALTER COLUMN taxonstatus_id SET DEFAULT nextval('taxonstatus_taxonstatus_id_seq'::regclass);


--
-- Name: taxonusage_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE taxonusage ALTER COLUMN taxonusage_id SET DEFAULT nextval('taxonusage_taxonusage_id_seq'::regclass);


--
-- Name: telephone_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE telephone ALTER COLUMN telephone_id SET DEFAULT nextval('telephone_telephone_id_seq'::regclass);


--
-- Name: trait_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE trait ALTER COLUMN trait_id SET DEFAULT nextval('trait_trait_id_seq'::regclass);


--
-- Name: userdefined_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE userdefined ALTER COLUMN userdefined_id SET DEFAULT nextval('userdefined_userdefined_id_seq'::regclass);


--
-- Name: voucher_id; Type: DEFAULT; Schema: public; Owner: bien
--

ALTER TABLE voucher ALTER COLUMN voucher_id SET DEFAULT nextval('voucher_voucher_id_seq'::regclass);


--
-- Data for Name: address; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY address (address_id, party_id, organization_id, orgposition, email, deliverypoint, city, administrativearea, postalcode, country, currentflag, addressstartdate) FROM stdin;
\.


--
-- Data for Name: aggregateoccurrence; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY aggregateoccurrence (aggregateoccurrence_id, creator_id, sourceaccessioncode, taxonoccurrence_id, collectiondate, cover_fraction, linecover_m, basalarea_m2, biomass_kg_m2, inferencearea_m2, count, stratum_id, coverindex_id, occurrencestatus_dwc, method_id, notes, accessioncode) FROM stdin;
\.


--
-- Data for Name: classcontributor; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY classcontributor (classcontributor_id, commclass_id, party_id, role) FROM stdin;
\.


--
-- Data for Name: commclass; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY commclass (commclass_id, locationevent_id, inspection, tableanalysis, multivariateanalysis, classpublication_id, classnotes, commname, commcode, commframework, commlevel, classstartdate, classstopdate, expertsystem, accessioncode) FROM stdin;
\.


--
-- Data for Name: commconcept; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY commconcept (commconcept_id, commname_id, reference_id, commdescription, d_obscount, commname, d_currentaccepted, accessioncode) FROM stdin;
\.


--
-- Data for Name: commcorrelation; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY commcorrelation (commcorrelation_id, commstatus_id, commconcept_id, commconvergence, correlationstart, correlationstop) FROM stdin;
\.


--
-- Data for Name: commdetermination; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY commdetermination (commdetermination_id, commclass_id, commconcept_id, commcode, commname, classfit, classconfidence, commauthority_id, notes, type, nomenclaturaltype) FROM stdin;
\.


--
-- Data for Name: commlineage; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY commlineage (commlineage_id, parentcommstatus_id, childcommstatus_id) FROM stdin;
\.


--
-- Data for Name: commname; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY commname (commname_id, commname, reference_id, dateentered) FROM stdin;
\.


--
-- Data for Name: commstatus; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY commstatus (commstatus_id, commconcept_id, reference_id, commconceptstatus, commparent_id, commlevel, commpartycomments, party_id, startdate, stopdate, accessioncode) FROM stdin;
\.


--
-- Data for Name: commusage; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY commusage (commusage_id, commname_id, commname, commconcept_id, commnamestatus, classsystem, party_id, commstatus_id, usagestart, usagestop) FROM stdin;
\.


--
-- Data for Name: coverindex; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY coverindex (coverindex_id, covermethod_id, covercode, upperlimit, lowerlimit, coverpercent, indexdescription) FROM stdin;
\.


--
-- Data for Name: covermethod; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY covermethod (covermethod_id, reference_id, covertype, coverestimationmethod, accessioncode) FROM stdin;
\.


--
-- Data for Name: definedvalue; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY definedvalue (definedvalue_id, userdefined_id, tablerecord_id, definedvalue) FROM stdin;
\.


--
-- Data for Name: disturbanceobs; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY disturbanceobs (disturbanceobs_id, locationevent_id, disturbancetype, disturbanceintensity, disturbanceage, disturbanceextent, disturbancecomment) FROM stdin;
\.


--
-- Data for Name: graphic; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY graphic (graphic_id, locationevent_id, graphicname, graphiclocation, graphicdescription, graphictype, graphicdata, graphicdate, accessioncode) FROM stdin;
\.


--
-- Data for Name: location; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY location (location_id, creator_id, sourceaccessioncode, parent_id, authorlocationcode, confidentialitystatus, confidentialityreason, sublocationxposition_m, sublocationyposition_m, authorzone, authordatum, authorlocation, locationnarrative, azimuth, shape, area_m2, standsize, placementmethod, permanence, layoutnarrative, elevation_m, elevationaccuracy_m, elevationrange_m, verbatimelevation, slopeaspect_deg, minslopeaspect_deg, maxslopeaspect_deg, slopegradient_fraction, minslopegradient_fraction, maxslopegradient_fraction, topoposition, landform, surficialdeposits, rocktype, submitter_surname, submitter_givenname, submitter_email, notespublic, notesmgt, revisions, dateentered, locationrationalenarrative, accessioncode) FROM stdin;
\.


--
-- Data for Name: locationcoords; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY locationcoords (locationcoords_id, location_id, latitude_deg, longitude_deg, verbatimlatitude, verbatimlongitude, verbatimcoordinates, footprintgeometry_dwc, coordsaccuracy_deg, identifier_id, determinationdate, isoriginal, iscurrent, calculated) FROM stdin;
\.


--
-- Data for Name: locationevent; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY locationevent (locationevent_id, creator_id, sourceaccessioncode, parent_id, location_id, project_id, authoreventcode, previous_id, obsstartdate, obsenddate, dateaccuracy, method_id, temperature_c, precipitation_m, autotaxoncover, originaldata, effortlevel, floristicquality, bryophytequality, lichenquality, locationeventnarrative, landscapenarrative, homogeneity, phenologicaspect, representativeness, standmaturity, successionalstatus, basalarea, hydrologicregime, soilmoistureregime, soildrainage, watersalinity, waterdepth_m, shoredistance, soildepth, organicdepth, soiltaxon_id, soiltaxonsrc, percentbedrock, percentrockgravel, percentwood, percentlitter, percentbaresoil, percentwater, percentother, nameother, treeht, shrubht, fieldht, nonvascularht, submergedht, treecover, shrubcover, fieldcover, nonvascularcover, floatingcover, submergedcover, dominantstratum, growthform1type, growthform2type, growthform3type, growthform1cover, growthform2cover, growthform3cover, totalcover, notespublic, notesmgt, revisions, dateentered, toptaxon1name, toptaxon2name, toptaxon3name, toptaxon4name, toptaxon5name, numberoftaxa, accessioncode) FROM stdin;
\.


--
-- Data for Name: locationeventcontributor; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY locationeventcontributor (locationeventcontributor_id, locationevent_id, party_id, role, contributiondate) FROM stdin;
\.


--
-- Data for Name: locationeventsynonym; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY locationeventsynonym (locationeventsynonym_id, synonymlocationevent_id, primarylocationevent_id, party_id, role, synonymcomment, classstartdate, classstopdate, accessioncode) FROM stdin;
\.


--
-- Data for Name: locationplace; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY locationplace (locationplace_id, location_id, placepath_id, identifier_id) FROM stdin;
\.


--
-- Data for Name: method; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY method (method_id, reference_id, name, description, diameterheight_m, mindiameter_m, maxdiameter_m, minheight_m, maxheight_m, observationtype, observationmeasure, covermethod_id, samplingfactor, coverbasis, stemsamplemethod, shape, length_m, width_m, radius_m, area_m2, samplearea_m2, subplotspacing_m, subplotmethod_id, pointsperline, accessioncode) FROM stdin;
\.


--
-- Data for Name: methodtaxonclass; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY methodtaxonclass (methodtaxonclass_id, method_id, taxonconcept_id, included, submethod_id, taxonclass) FROM stdin;
\.


--
-- Data for Name: note; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY note (note_id, notelink_id, party_id, role, notetype, notetext, notedate, accessioncode) FROM stdin;
\.


--
-- Data for Name: notelink; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY notelink (notelink_id, tablename, attributename, tablerecord) FROM stdin;
\.


--
-- Data for Name: party; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY party (party_id, creator_id, fullname, salutation, givenname, middlename, surname, organizationname, currentname_id, contactinstructions, email, partytype, partypublic, d_obscount, accessioncode) FROM stdin;
1	1	\N	\N	\N	\N	\N	TNRS	\N	\N	\N	\N	t	\N	\N
2	2	\N	\N	\N	\N	\N	NCBI	\N	\N	\N	\N	t	\N	\N
21	21	\N	\N	\N	\N	\N	test_taxonomic_names	\N	\N	\N	\N	t	\N	\N
\.


--
-- Data for Name: partymember; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY partymember (partymember_id, parentparty_id, childparty_id, role, memberstart, memberstop) FROM stdin;
\.


--
-- Data for Name: place; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY place (place_id, parent_id, rank, placename, placecode, placedescription, accessioncode) FROM stdin;
\.


--
-- Data for Name: place_ancestor; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY place_ancestor (place_id, ancestor_id) FROM stdin;
\.


--
-- Data for Name: placecorrelation; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY placecorrelation (placecorrelation_id, parentplace_id, childplace_id, placeconvergence) FROM stdin;
\.


--
-- Data for Name: placepath; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY placepath (placepath_id, creator_id, placecode, matched_placepath_id, place_id, continent, country, stateprovince, county, municipality, site, otherranks) FROM stdin;
\.


--
-- Data for Name: plant; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY plant (plant_id) FROM stdin;
\.


--
-- Data for Name: plantobservation; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY plantobservation (plantobservation_id, creator_id, sourceaccessioncode, aggregateoccurrence_id, overallheight_m, overallheightaccuracy_m, collectionnumber, stemcount, plant_id, accessioncode) FROM stdin;
\.


--
-- Data for Name: project; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY project (project_id, creator_id, sourceaccessioncode, projectname, projectdescription, startdate, stopdate, d_obscount, d_lastlocationaddeddate, accessioncode) FROM stdin;
\.


--
-- Data for Name: projectcontributor; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY projectcontributor (projectcontributor_id, project_id, party_id, role, surname, cheatrole) FROM stdin;
\.


--
-- Data for Name: reference; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY reference (reference_id, shortname, fulltext, referencetype, title, titlesuperior, referencejournal_id, volume, issue, pagerange, totalpages, publisher, publicationplace, isbn, edition, numberofvolumes, chapternumber, reportnumber, communicationtype, degree, url, doi, additionalinfo, pubdate, accessdate, conferencedate, accessioncode) FROM stdin;
\.


--
-- Data for Name: referencealtident; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY referencealtident (referencealtident_id, reference_id, system, identifier) FROM stdin;
\.


--
-- Data for Name: referencecontributor; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY referencecontributor (referencecontributor_id, reference_id, referenceparty_id, roletype, "position") FROM stdin;
\.


--
-- Data for Name: referencejournal; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY referencejournal (referencejournal_id, journal, issn, abbreviation, accessioncode) FROM stdin;
\.


--
-- Data for Name: referenceparty; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY referenceparty (referenceparty_id, type, positionname, salutation, givenname, surname, suffix, organizationname, currentparty_id, accessioncode) FROM stdin;
\.


--
-- Data for Name: revision; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY revision (revision_id, tablename, tableattribute, tablerecord, previousvaluetext, previousvaluetype, previousrevision_id, revisiondate) FROM stdin;
\.


--
-- Data for Name: soilobs; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY soilobs (soilobs_id, locationevent_id, horizon, description, depthtop_m, depthbottom_m, color, texture, organic_fraction, sand_fraction, silt_fraction, clay_fraction, coarse_fraction, ph, acidity_fraction, basesaturation_fraction, cationexchangecapacity_cmol_kg, conductivity, carbon_fraction, phosphorus_fraction, potassium_fraction, magnesium_fraction, nitrogen_fraction, calcium_fraction, sodium_fraction) FROM stdin;
\.


--
-- Data for Name: soiltaxon; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY soiltaxon (soiltaxon_id, soilcode, soilname, soillevel, soilparent_id, soilframework, accessioncode) FROM stdin;
\.


--
-- Data for Name: specimen; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY specimen (specimen_id) FROM stdin;
\.


--
-- Data for Name: specimenreplicate; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY specimenreplicate (specimenreplicate_id, creator_id, sourceaccessioncode, plantobservation_id, institution_id, collectioncode_dwc, catalognumber_dwc, description, specimen_id, accessioncode) FROM stdin;
\.


--
-- Data for Name: stemobservation; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY stemobservation (stemobservation_id, creator_id, sourceaccessioncode, plantobservation_id, authorstemcode, tag, tags, xposition_m, yposition_m, diameterbreastheight_m, basaldiameter_m, diameteraccuracy_m, height_m, heightfirstbranch_m, heightaccuracy_m, health, age, accessioncode) FROM stdin;
\.


--
-- Data for Name: stratum; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY stratum (stratum_id, locationevent_id, stratumheight, stratumbase, stratumcover, area, method_id) FROM stdin;
\.


--
-- Data for Name: taxonalt; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY taxonalt (taxonalt_id, taxondetermination_id, taxonconcept_id, taxonaltfit, taxonaltconfidence, taxonaltnotes) FROM stdin;
\.


--
-- Data for Name: taxonconcept; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY taxonconcept (taxonconcept_id, creator_id, sourceaccessioncode, creationdate, accepted_concept_id, matched_concept_id, matched_concept_fit_fraction, parent_id, taxonepithet, rank, verbatimrank, identifyingtaxonomicname, taxonomicname, author, taxonomicnamewithauthor, family, genus, species, description, accessioncode) FROM stdin;
2	1	\N	\N	\N	\N	\N	\N	Poaceae	family	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
4	1	\N	\N	\N	\N	\N	2	Poa	genus	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
6	1	\N	\N	\N	\N	\N	4	annua	species	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
19	2	\N	\N	\N	\N	\N	\N	Poaceae	family	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
18	1	http://www.tropicos.org/Name/25509881;http://plants.usda.gov/java/profile?symbol=POAN	\N	18	18	\N	6	\N	species	species	Poa annua L.	Poa annua	L.	\N	Poaceae	Poa	annua	\N	\N
55	1	\N	\N	\N	\N	\N	6	annua	variety	variety	\N	\N	\N	\N	\N	\N	\N	\N	\N
57	1	http://www.tropicos.org/Name/25517736	\N	57	57	\N	55	\N	variety	variety	Poa annua var. annua	Poa annua var. annua	\N	\N	Poaceae	Poa	annua	\N	\N
84	1	\N	\N	\N	\N	\N	4	infirma	species	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
96	1	http://www.tropicos.org/Name/25514158;http://plants.usda.gov/java/profile?symbol=POIN30	\N	96	96	\N	84	\N	species	species	Poa infirma Kunth	Poa infirma	Kunth	\N	Poaceae	Poa	infirma	\N	\N
135	1	http://compositae.landcareresearch.co.nz/default.aspx;http://plants.usda.gov/java/nameSearch	\N	135	135	\N	\N	\N	family	family	Asteraceae	Asteraceae	\N	\N	\N	\N	\N	\N	\N
156	1	\N	\N	135	135	1	\N	Bercht. & J. Presl	\N	\N	Asteraceae Bercht. & J. Presl	Asteraceae	\N	\N	Asteraceae	\N	\N	\N	\N
158	1	\N	\N	\N	\N	\N	\N	Compositae	family	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
175	2	\N	\N	\N	\N	\N	\N	Asteraceae	family	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
177	1	\N	\N	\N	175	\N	\N	Asteraceae	family	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
174	1	http://www.tropicos.org/Name/50255940	\N	135	156	\N	158	\N	family	family	Compositae Giseke	Compositae	Giseke	\N	Compositae	\N	\N	\N	\N
195	1	\N	\N	135	174	1	\N	indet. sp.1	\N	\N	Compositae indet. sp.1	Compositae	\N	\N	Compositae	\N	\N	\N	\N
197	1	\N	\N	\N	\N	\N	\N	Fabaceae	family	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
214	2	\N	\N	\N	\N	\N	\N	Fabaceae	family	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
213	1	http://www.tropicos.org/Name/42000184	\N	213	213	\N	197	\N	family	family	Fabaceae Lindl.	Fabaceae	Lindl.	\N	Fabaceae	\N	\N	\N	\N
234	1	\N	\N	213	213	1	\N	Boyle#6500	\N	\N	Fabaceae Boyle#6500	Fabaceae	\N	\N	Fabaceae	\N	\N	\N	\N
238	1	\N	\N	\N	\N	\N	197	Inga	genus	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
252	1	http://www.tropicos.org/Name/40031040	\N	252	252	\N	238	\N	genus	genus	Inga Mill.	Inga	Mill.	\N	Fabaceae	Inga	\N	\N	\N
273	1	\N	\N	252	252	1	\N	"fuzzy leaf"	\N	\N	Fabaceae Inga "fuzzy leaf"	Inga	\N	\N	Fabaceae	Inga	\N	\N	\N
312	1	\N	\N	252	252	1	\N	sp.3	\N	\N	Fabaceae Inga sp.3	Inga	\N	\N	Fabaceae	Inga	\N	\N	\N
351	1	\N	\N	213	213	1	\N	unknown #2	\N	\N	Fabaceae unknown #2	Fabaceae	\N	\N	Fabaceae	\N	\N	\N	\N
390	1	\N	\N	18	18	1	\N	\N	\N	\N	Poa annua	Poa annua	\N	\N	\N	Poa	annua	\N	\N
406	1	\N	\N	\N	\N	\N	6	lanuginosa	forma	forma	\N	\N	\N	\N	\N	\N	\N	\N	\N
408	1	http://www.tropicos.org/Name/50267771	\N	57	57	\N	406	\N	forma	forma	Poa annua fo. lanuginosa Sennen	Poa annua fo. lanuginosa	Sennen	\N	Poaceae	Poa	annua	\N	\N
429	1	\N	\N	57	408	1	\N	\N	\N	fo.	Poa annua fo. lanuginosa	Poa annua fo. lanuginosa	\N	\N	\N	Poa	annua	\N	\N
445	1	\N	\N	\N	\N	\N	6	exilis	subspecies	subspecies	\N	\N	\N	\N	\N	\N	\N	\N	\N
447	1	http://www.tropicos.org/Name/50063800	\N	96	96	\N	445	\N	subspecies	subspecies	Poa annua subsp. exilis (Tomm. ex Freyn) Asch. & Graebn.	Poa annua subsp. exilis	(Tomm. ex Freyn) Asch. & Graebn.	\N	Poaceae	Poa	annua	\N	\N
468	1	\N	\N	96	447	1	\N	\N	\N	subsp.	Poa annua ssp. exilis	Poa annua subsp. exilis	\N	\N	\N	Poa	annua	\N	\N
507	1	\N	\N	96	447	1	\N	\N	\N	subsp.	Poa annua subsp. exilis	Poa annua subsp. exilis	\N	\N	\N	Poa	annua	\N	\N
523	1	\N	\N	\N	\N	\N	6	minima	subvariety	subvariety	\N	\N	\N	\N	\N	\N	\N	\N	\N
525	1	http://www.tropicos.org/Name/50158097	\N	525	525	\N	523	\N	subvariety	subvariety	Poa annua subvar. minima (Schur) Asch. & Graebn.	Poa annua subvar. minima	(Schur) Asch. & Graebn.	\N	Poaceae	Poa	annua	\N	\N
546	1	\N	\N	525	525	1	\N	\N	\N	subvar.	Poa annua subvar. minima	Poa annua subvar. minima	\N	\N	\N	Poa	annua	\N	\N
562	1	\N	\N	\N	\N	\N	6	eriolepis	variety	variety	\N	\N	\N	\N	\N	\N	\N	\N	\N
564	1	http://www.tropicos.org/Name/50119145	\N	18	18	\N	562	\N	variety	variety	Poa annua var. eriolepis E. Desv.	Poa annua var. eriolepis	E. Desv.	\N	Poaceae	Poa	annua	\N	\N
585	1	\N	\N	18	564	1	\N	\N	\N	var.	Poa annua var. eriolepis	Poa annua var. eriolepis	\N	\N	\N	Poa	annua	\N	\N
587	1	\N	\N	\N	\N	\N	\N	Caryophyllaceae	family	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
589	1	\N	\N	\N	\N	\N	587	Silene	genus	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
591	1	\N	\N	\N	\N	\N	589	scouleri	species	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
601	1	\N	\N	\N	\N	\N	591	pringlei	subspecies	subspecies	\N	\N	\N	\N	\N	\N	\N	\N	\N
604	2	\N	\N	\N	\N	\N	\N	Caryophyllaceae	family	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N
603	1	http://www.tropicos.org/Name/6303627	\N	603	603	\N	601	\N	subspecies	subspecies	Silene scouleri subsp. pringlei (S. Watson) C.L. Hitchc. & Maguire	Silene scouleri subsp. pringlei	(S. Watson) C.L. Hitchc. & Maguire	\N	Caryophyllaceae	Silene	scouleri	\N	\N
624	1	\N	\N	603	603	1	\N	var. grisea	\N	subsp.	Silene scouleri Hook. subsp. pringlei (S. Watson) C.L. Hitchc. & Maguire var. grisea C.L. Hitchc. & Maguire	Silene scouleri subsp. pringlei	\N	\N	\N	Silene	scouleri	\N	\N
663	1	\N	\N	603	603	1	\N	var. grisea	\N	subsp.	Silene scouleri subsp. pringlei var. grisea C.L. Hitchc. & Maguire	Silene scouleri subsp. pringlei	\N	\N	\N	Silene	scouleri	\N	\N
681	1	\N	\N	\N	\N	\N	\N	\N	\N	\N	No suitable matches found.	No suitable matches found.	\N	\N	\N	\N	\N	\N	\N
702	1	\N	\N	\N	\N	\N	\N	\N	\N	\N	Fam_indet. Boyle#6501	No suitable matches found.	\N	\N	\N	\N	\N	\N	\N
744	21	1	\N	18	390	\N	\N	\N	\N	\N	\N	Poa annua	\N	\N	\N	\N	\N	\N	\N
747	21	2	\N	18	18	\N	\N	\N	\N	\N	\N	Poa annua L.	\N	\N	\N	\N	\N	\N	\N
750	21	3	\N	18	585	\N	\N	\N	\N	\N	\N	Poa annua var. eriolepis	\N	\N	\N	\N	\N	\N	\N
753	21	4	\N	96	507	\N	\N	\N	\N	\N	\N	Poa annua subsp. exilis	\N	\N	\N	\N	\N	\N	\N
756	21	5	\N	96	468	\N	\N	\N	\N	\N	\N	Poa annua ssp. exilis	\N	\N	\N	\N	\N	\N	\N
759	21	6	\N	525	546	\N	\N	\N	\N	\N	\N	Poa annua subvar. minima	\N	\N	\N	\N	\N	\N	\N
762	21	7	\N	57	429	\N	\N	\N	\N	\N	\N	Poa annua fo. lanuginosa	\N	\N	\N	\N	\N	\N	\N
765	21	8	\N	603	663	\N	\N	\N	\N	\N	\N	Silene scouleri subsp. pringlei var. grisea C.L. Hitchc. & Maguire	\N	\N	\N	\N	\N	\N	\N
768	21	9	\N	603	624	\N	\N	\N	\N	\N	\N	Silene scouleri Hook. subsp. pringlei (S. Watson) C.L. Hitchc. & Maguire var. grisea C.L. Hitchc. & Maguire	\N	\N	\N	\N	\N	\N	\N
771	21	10	\N	252	312	\N	\N	\N	\N	\N	\N	Fabaceae Inga sp.3	\N	\N	\N	\N	\N	\N	\N
774	21	11	\N	252	273	\N	\N	\N	\N	\N	\N	Fabaceae Inga "fuzzy leaf"	\N	\N	\N	\N	\N	\N	\N
777	21	12	\N	213	351	\N	\N	\N	\N	\N	\N	Fabaceae unknown #2	\N	\N	\N	\N	\N	\N	\N
780	21	13	\N	213	234	\N	\N	\N	\N	\N	\N	Fabaceae Boyle#6500	\N	\N	\N	\N	\N	\N	\N
783	21	14	\N	\N	702	\N	\N	\N	\N	\N	\N	Fam_indet. Boyle#6501	\N	\N	\N	\N	\N	\N	\N
786	21	15	\N	135	195	\N	\N	\N	\N	\N	\N	Compositae indet. sp.1	\N	\N	\N	\N	\N	\N	\N
\.


--
-- Data for Name: taxonconcept_ancestor; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY taxonconcept_ancestor (descendant_id, ancestor_id) FROM stdin;
2	2
4	4
4	2
6	6
6	4
6	2
18	18
18	6
18	4
18	2
19	19
55	55
55	6
55	4
55	2
57	57
57	55
57	6
57	4
57	2
84	84
84	4
84	2
96	96
96	84
96	4
96	2
135	135
156	156
156	135
158	158
174	174
175	175
177	177
177	175
174	156
174	135
195	195
195	174
195	156
195	135
197	197
213	213
213	197
214	214
234	234
234	213
234	197
238	238
238	197
252	252
252	238
252	197
273	273
273	252
273	238
273	197
312	312
312	252
312	238
312	197
351	351
351	213
351	197
390	390
390	18
390	6
390	4
390	2
406	406
406	6
406	4
406	2
408	408
408	57
408	55
408	6
408	4
408	2
429	429
429	408
429	57
429	55
429	6
429	4
429	2
445	445
445	6
445	4
445	2
447	447
447	96
447	84
447	4
447	2
468	468
468	447
468	96
468	84
468	4
468	2
507	507
507	447
507	96
507	84
507	4
507	2
523	523
523	6
523	4
523	2
525	525
525	523
525	6
525	4
525	2
546	546
546	525
546	523
546	6
546	4
546	2
562	562
562	6
562	4
562	2
564	564
564	18
564	6
564	4
564	2
585	585
585	564
585	18
585	6
585	4
585	2
587	587
589	589
589	587
591	591
591	589
591	587
601	601
601	591
601	589
601	587
603	603
603	601
603	591
603	589
603	587
604	604
624	624
624	603
624	601
624	591
624	589
624	587
663	663
663	603
663	601
663	591
663	589
663	587
681	681
702	702
744	744
744	390
744	18
744	6
744	4
744	2
747	747
747	18
747	6
747	4
747	2
750	750
750	585
750	564
750	18
750	6
750	4
750	2
753	753
753	507
753	447
753	96
753	84
753	4
753	2
756	756
756	468
756	447
756	96
756	84
756	4
756	2
759	759
759	546
759	525
759	523
759	6
759	4
759	2
762	762
762	429
762	408
762	57
762	55
762	6
762	4
762	2
765	765
765	663
765	603
765	601
765	591
765	589
765	587
768	768
768	624
768	603
768	601
768	591
768	589
768	587
771	771
771	312
771	252
771	238
771	197
774	774
774	273
774	252
774	238
774	197
777	777
777	351
777	213
777	197
780	780
780	234
780	213
780	197
783	783
783	702
786	786
786	195
786	174
786	156
786	135
\.


--
-- Data for Name: taxoncorrelation; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY taxoncorrelation (taxoncorrelation_id, taxonstatus_id, taxonconcept_id, plantconvergence, correlationstart, correlationstop) FROM stdin;
\.


--
-- Data for Name: taxondetermination; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY taxondetermination (taxondetermination_id, taxonoccurrence_id, taxonconcept_id, party_id, role, determinationtype, reference_id, isoriginal, iscurrent, taxonfit, taxonconfidence, grouptype, notes, notespublic, notesmgt, revisions, determinationdate, accessioncode) FROM stdin;
1	2	18	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
2	2	57	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
3	2	96	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
4	2	135	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
5	2	174	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
6	2	213	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
7	2	252	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
11	2	408	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
12	2	447	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
14	2	525	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
15	2	564	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
16	2	603	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
18	2	681	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
20	2	744	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
21	2	747	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
22	2	750	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
23	2	753	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
24	2	756	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
25	2	759	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
26	2	762	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
27	2	765	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
28	2	768	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
29	2	771	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
30	2	774	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
31	2	777	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
32	2	780	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
33	2	783	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
34	2	786	\N	unknown	\N	\N	f	f	\N	\N	\N	\N	\N	\N	\N	\N	\N
\.


--
-- Data for Name: taxonlineage; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY taxonlineage (taxonlineage_id, childtaxonstatus_id, parenttaxonstatus_id) FROM stdin;
\.


--
-- Data for Name: taxonoccurrence; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY taxonoccurrence (taxonoccurrence_id, creator_id, sourceaccessioncode, locationevent_id, authortaxoncode, verbatimcollectorname, growthform, iscultivated, cultivatedbasis, isnative, accessioncode) FROM stdin;
2	1	\N	\N	\N	\N	\N	\N	\N	\N	\N
\.


--
-- Data for Name: taxonstatus; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY taxonstatus (taxonstatus_id, taxonconcept_id, party_id, taxonconceptstatus, reference_id, plantpartycomments, startdate, stopdate, accessioncode) FROM stdin;
\.


--
-- Data for Name: taxonusage; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY taxonusage (taxonusage_id, taxonconcept_id, taxonstatus, taxon, classsystem, acceptedsynonym, party_id, taxonstatus_id, usagestart, usagestop) FROM stdin;
\.


--
-- Data for Name: telephone; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY telephone (telephone_id, party_id, phonenumber, phonetype) FROM stdin;
\.


--
-- Data for Name: trait; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY trait (trait_id, stemobservation_id, type, value) FROM stdin;
\.


--
-- Data for Name: userdefined; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY userdefined (userdefined_id, userdefinedname, userdefinedmetadata, userdefinedcategory, userdefinedtype, tablename, accessioncode) FROM stdin;
\.


--
-- Data for Name: voucher; Type: TABLE DATA; Schema: public; Owner: bien
--

COPY voucher (voucher_id, taxonoccurrence_id, specimenreplicate_id) FROM stdin;
\.


--
-- Name: address_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY address
    ADD CONSTRAINT address_pkey PRIMARY KEY (address_id);


--
-- Name: aggregateoccurrence_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY aggregateoccurrence
    ADD CONSTRAINT aggregateoccurrence_pkey PRIMARY KEY (aggregateoccurrence_id);


--
-- Name: classcontributor_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY classcontributor
    ADD CONSTRAINT classcontributor_pkey PRIMARY KEY (classcontributor_id);


--
-- Name: commclass_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commclass
    ADD CONSTRAINT commclass_pkey PRIMARY KEY (commclass_id);


--
-- Name: commconcept_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commconcept
    ADD CONSTRAINT commconcept_pkey PRIMARY KEY (commconcept_id);


--
-- Name: commconcept_unique; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commconcept
    ADD CONSTRAINT commconcept_unique UNIQUE (commname_id);


--
-- Name: commcorrelation_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commcorrelation
    ADD CONSTRAINT commcorrelation_pkey PRIMARY KEY (commcorrelation_id);


--
-- Name: commdetermination_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commdetermination
    ADD CONSTRAINT commdetermination_pkey PRIMARY KEY (commdetermination_id);


--
-- Name: commdetermination_unique; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commdetermination
    ADD CONSTRAINT commdetermination_unique UNIQUE (commclass_id, commconcept_id);


--
-- Name: commlineage_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commlineage
    ADD CONSTRAINT commlineage_pkey PRIMARY KEY (commlineage_id);


--
-- Name: commname_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commname
    ADD CONSTRAINT commname_pkey PRIMARY KEY (commname_id);


--
-- Name: commname_unique; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commname
    ADD CONSTRAINT commname_unique UNIQUE (commname);


--
-- Name: commstatus_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commstatus
    ADD CONSTRAINT commstatus_pkey PRIMARY KEY (commstatus_id);


--
-- Name: commusage_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY commusage
    ADD CONSTRAINT commusage_pkey PRIMARY KEY (commusage_id);


--
-- Name: coverindex_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY coverindex
    ADD CONSTRAINT coverindex_pkey PRIMARY KEY (coverindex_id);


--
-- Name: covermethod_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY covermethod
    ADD CONSTRAINT covermethod_pkey PRIMARY KEY (covermethod_id);


--
-- Name: definedvalue_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY definedvalue
    ADD CONSTRAINT definedvalue_pkey PRIMARY KEY (definedvalue_id);


--
-- Name: definedvalue_unique; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY definedvalue
    ADD CONSTRAINT definedvalue_unique UNIQUE (userdefined_id, tablerecord_id);


--
-- Name: disturbanceobs_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY disturbanceobs
    ADD CONSTRAINT disturbanceobs_pkey PRIMARY KEY (disturbanceobs_id);


--
-- Name: graphic_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY graphic
    ADD CONSTRAINT graphic_pkey PRIMARY KEY (graphic_id);


--
-- Name: location_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY location
    ADD CONSTRAINT location_pkey PRIMARY KEY (location_id);


--
-- Name: locationcoords_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY locationcoords
    ADD CONSTRAINT locationcoords_pkey PRIMARY KEY (locationcoords_id);


--
-- Name: locationevent_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY locationevent
    ADD CONSTRAINT locationevent_pkey PRIMARY KEY (locationevent_id);


--
-- Name: locationeventcontributor_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY locationeventcontributor
    ADD CONSTRAINT locationeventcontributor_pkey PRIMARY KEY (locationeventcontributor_id);


--
-- Name: locationeventsynonym_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY locationeventsynonym
    ADD CONSTRAINT locationeventsynonym_pkey PRIMARY KEY (locationeventsynonym_id);


--
-- Name: locationplace_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY locationplace
    ADD CONSTRAINT locationplace_pkey PRIMARY KEY (locationplace_id);


--
-- Name: method_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY method
    ADD CONSTRAINT method_pkey PRIMARY KEY (method_id);


--
-- Name: methodtaxonclass_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY methodtaxonclass
    ADD CONSTRAINT methodtaxonclass_pkey PRIMARY KEY (methodtaxonclass_id);


--
-- Name: methodtaxonclass_unique_description; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY methodtaxonclass
    ADD CONSTRAINT methodtaxonclass_unique_description UNIQUE (method_id, taxonclass);


--
-- Name: methodtaxonclass_unique_taxonconcept_id; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY methodtaxonclass
    ADD CONSTRAINT methodtaxonclass_unique_taxonconcept_id UNIQUE (method_id, taxonconcept_id);


--
-- Name: note_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY note
    ADD CONSTRAINT note_pkey PRIMARY KEY (note_id);


--
-- Name: notelink_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY notelink
    ADD CONSTRAINT notelink_pkey PRIMARY KEY (notelink_id);


--
-- Name: party_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY party
    ADD CONSTRAINT party_pkey PRIMARY KEY (party_id);


--
-- Name: partymember_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY partymember
    ADD CONSTRAINT partymember_pkey PRIMARY KEY (partymember_id);


--
-- Name: place_ancestor_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY place_ancestor
    ADD CONSTRAINT place_ancestor_pkey PRIMARY KEY (place_id, ancestor_id);


--
-- Name: place_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY place
    ADD CONSTRAINT place_pkey PRIMARY KEY (place_id);


--
-- Name: placecorrelation_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY placecorrelation
    ADD CONSTRAINT placecorrelation_pkey PRIMARY KEY (placecorrelation_id);


--
-- Name: placepath_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY placepath
    ADD CONSTRAINT placepath_pkey PRIMARY KEY (placepath_id);


--
-- Name: plant_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY plant
    ADD CONSTRAINT plant_pkey PRIMARY KEY (plant_id);


--
-- Name: plantobservation_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY plantobservation
    ADD CONSTRAINT plantobservation_pkey PRIMARY KEY (plantobservation_id);


--
-- Name: project_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY project
    ADD CONSTRAINT project_pkey PRIMARY KEY (project_id);


--
-- Name: project_unique; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY project
    ADD CONSTRAINT project_unique UNIQUE (creator_id, projectname);


--
-- Name: projectcontributor_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY projectcontributor
    ADD CONSTRAINT projectcontributor_pkey PRIMARY KEY (projectcontributor_id);


--
-- Name: reference_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY reference
    ADD CONSTRAINT reference_pkey PRIMARY KEY (reference_id);


--
-- Name: referencealtident_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY referencealtident
    ADD CONSTRAINT referencealtident_pkey PRIMARY KEY (referencealtident_id);


--
-- Name: referencecontributor_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY referencecontributor
    ADD CONSTRAINT referencecontributor_pkey PRIMARY KEY (referencecontributor_id);


--
-- Name: referencejournal_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY referencejournal
    ADD CONSTRAINT referencejournal_pkey PRIMARY KEY (referencejournal_id);


--
-- Name: referenceparty_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY referenceparty
    ADD CONSTRAINT referenceparty_pkey PRIMARY KEY (referenceparty_id);


--
-- Name: revision_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY revision
    ADD CONSTRAINT revision_pkey PRIMARY KEY (revision_id);


--
-- Name: soilobs_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY soilobs
    ADD CONSTRAINT soilobs_pkey PRIMARY KEY (soilobs_id);


--
-- Name: soilobs_unique; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY soilobs
    ADD CONSTRAINT soilobs_unique UNIQUE (locationevent_id);


--
-- Name: soiltaxon_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY soiltaxon
    ADD CONSTRAINT soiltaxon_pkey PRIMARY KEY (soiltaxon_id);


--
-- Name: specimen_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY specimen
    ADD CONSTRAINT specimen_pkey PRIMARY KEY (specimen_id);


--
-- Name: specimenreplicate_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY specimenreplicate
    ADD CONSTRAINT specimenreplicate_pkey PRIMARY KEY (specimenreplicate_id);


--
-- Name: stemobservation_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY stemobservation
    ADD CONSTRAINT stemobservation_pkey PRIMARY KEY (stemobservation_id);


--
-- Name: stratum_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY stratum
    ADD CONSTRAINT stratum_pkey PRIMARY KEY (stratum_id);


--
-- Name: taxonalt_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY taxonalt
    ADD CONSTRAINT taxonalt_pkey PRIMARY KEY (taxonalt_id);


--
-- Name: taxonconcept_ancestor_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY taxonconcept_ancestor
    ADD CONSTRAINT taxonconcept_ancestor_pkey PRIMARY KEY (descendant_id, ancestor_id);


--
-- Name: taxonconcept_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY taxonconcept
    ADD CONSTRAINT taxonconcept_pkey PRIMARY KEY (taxonconcept_id);


--
-- Name: taxoncorrelation_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY taxoncorrelation
    ADD CONSTRAINT taxoncorrelation_pkey PRIMARY KEY (taxoncorrelation_id);


--
-- Name: taxondetermination_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY taxondetermination
    ADD CONSTRAINT taxondetermination_pkey PRIMARY KEY (taxondetermination_id);


--
-- Name: taxonlineage_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY taxonlineage
    ADD CONSTRAINT taxonlineage_pkey PRIMARY KEY (taxonlineage_id);


--
-- Name: taxonoccurrence_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY taxonoccurrence
    ADD CONSTRAINT taxonoccurrence_pkey PRIMARY KEY (taxonoccurrence_id);


--
-- Name: taxonstatus_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY taxonstatus
    ADD CONSTRAINT taxonstatus_pkey PRIMARY KEY (taxonstatus_id);


--
-- Name: taxonstatus_unique; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY taxonstatus
    ADD CONSTRAINT taxonstatus_unique UNIQUE (taxonconcept_id, party_id);


--
-- Name: taxonusage_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY taxonusage
    ADD CONSTRAINT taxonusage_pkey PRIMARY KEY (taxonusage_id);


--
-- Name: telephone_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY telephone
    ADD CONSTRAINT telephone_pkey PRIMARY KEY (telephone_id);


--
-- Name: trait_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY trait
    ADD CONSTRAINT trait_pkey PRIMARY KEY (trait_id);


--
-- Name: userdefined_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY userdefined
    ADD CONSTRAINT userdefined_pkey PRIMARY KEY (userdefined_id);


--
-- Name: userdefined_unique; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY userdefined
    ADD CONSTRAINT userdefined_unique UNIQUE (tablename, userdefinedname);


--
-- Name: voucher_pkey; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY voucher
    ADD CONSTRAINT voucher_pkey PRIMARY KEY (voucher_id);


--
-- Name: voucher_unique; Type: CONSTRAINT; Schema: public; Owner: bien; Tablespace: 
--

ALTER TABLE ONLY voucher
    ADD CONSTRAINT voucher_unique UNIQUE (taxonoccurrence_id, specimenreplicate_id);


--
-- Name: aggregateoccurrence_taxonoccurrence; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE INDEX aggregateoccurrence_taxonoccurrence ON aggregateoccurrence USING btree (taxonoccurrence_id);


--
-- Name: aggregateoccurrence_taxonoccurrence_1_to_1; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX aggregateoccurrence_taxonoccurrence_1_to_1 ON aggregateoccurrence USING btree (taxonoccurrence_id) WHERE (sourceaccessioncode IS NULL);


--
-- Name: aggregateoccurrence_unique_within_creator; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX aggregateoccurrence_unique_within_creator ON aggregateoccurrence USING btree (creator_id, (COALESCE(sourceaccessioncode, '\\N'::text))) WHERE (sourceaccessioncode IS NOT NULL);


--
-- Name: commclass_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX commclass_accessioncode_index ON commclass USING btree (accessioncode);


--
-- Name: commclass_unique; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX commclass_unique ON commclass USING btree (locationevent_id, (COALESCE(classnotes, '\\N'::text)));


--
-- Name: commconcept_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX commconcept_accessioncode_index ON commconcept USING btree (accessioncode);


--
-- Name: commstatus_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX commstatus_accessioncode_index ON commstatus USING btree (accessioncode);


--
-- Name: covermethod_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX covermethod_accessioncode_index ON covermethod USING btree (accessioncode);


--
-- Name: graphic_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX graphic_accessioncode_index ON graphic USING btree (accessioncode);


--
-- Name: location_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX location_accessioncode_index ON location USING btree (accessioncode);


--
-- Name: location_unique_within_creator_by_authorlocationcode; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX location_unique_within_creator_by_authorlocationcode ON location USING btree (creator_id, (COALESCE(authorlocationcode, '\\N'::text))) WHERE (((authorlocationcode IS NOT NULL) AND (parent_id IS NULL)) AND (sourceaccessioncode IS NULL));


--
-- Name: location_unique_within_creator_by_sourceaccessioncode; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX location_unique_within_creator_by_sourceaccessioncode ON location USING btree (creator_id, (COALESCE(sourceaccessioncode, '\\N'::text))) WHERE (sourceaccessioncode IS NOT NULL);


--
-- Name: location_unique_within_parent; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX location_unique_within_parent ON location USING btree ((COALESCE(parent_id, 2147483647)), (COALESCE(authorlocationcode, '\\N'::text)), (COALESCE(sublocationxposition_m, 'NaN'::double precision)), (COALESCE(sublocationyposition_m, 'NaN'::double precision))) WHERE ((parent_id IS NOT NULL) AND (sourceaccessioncode IS NULL));


--
-- Name: locationcoords_unique; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX locationcoords_unique ON locationcoords USING btree (location_id, (COALESCE(identifier_id, 2147483647)));


--
-- Name: locationevent_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX locationevent_accessioncode_index ON locationevent USING btree (accessioncode);


--
-- Name: locationevent_location; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE INDEX locationevent_location ON locationevent USING btree (location_id);


--
-- Name: locationevent_unique_within_creator; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX locationevent_unique_within_creator ON locationevent USING btree (creator_id, (COALESCE(sourceaccessioncode, '\\N'::text))) WHERE (sourceaccessioncode IS NOT NULL);


--
-- Name: locationevent_unique_within_location; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX locationevent_unique_within_location ON locationevent USING btree (location_id, (COALESCE(authoreventcode, '\\N'::text)), (COALESCE(obsstartdate, 'infinity'::date))) WHERE ((parent_id IS NULL) AND (sourceaccessioncode IS NULL));


--
-- Name: locationevent_unique_within_parent_by_authoreventcode; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX locationevent_unique_within_parent_by_authoreventcode ON locationevent USING btree ((COALESCE(parent_id, 2147483647)), (COALESCE(authoreventcode, '\\N'::text))) WHERE ((parent_id IS NOT NULL) AND (authoreventcode IS NOT NULL));


--
-- Name: locationevent_unique_within_parent_by_location; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX locationevent_unique_within_parent_by_location ON locationevent USING btree ((COALESCE(parent_id, 2147483647)), location_id) WHERE (parent_id IS NOT NULL);


--
-- Name: locationevent_unique_within_project; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX locationevent_unique_within_project ON locationevent USING btree ((COALESCE(project_id, 2147483647)), (COALESCE(authoreventcode, '\\N'::text)), (COALESCE(obsstartdate, 'infinity'::date))) WHERE ((((parent_id IS NULL) AND (project_id IS NOT NULL)) AND (authoreventcode IS NOT NULL)) AND (obsstartdate IS NOT NULL));


--
-- Name: locationeventsynonym_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX locationeventsynonym_accessioncode_index ON locationeventsynonym USING btree (accessioncode);


--
-- Name: locationplace_unique; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX locationplace_unique ON locationplace USING btree (location_id, placepath_id, (COALESCE(identifier_id, 2147483647)));


--
-- Name: method_accessioncode; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX method_accessioncode ON method USING btree (accessioncode);


--
-- Name: method_unique; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX method_unique ON method USING btree (name, (COALESCE(description, '\\N'::text)));


--
-- Name: note_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX note_accessioncode_index ON note USING btree (accessioncode);


--
-- Name: party_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX party_accessioncode_index ON party USING btree (accessioncode);


--
-- Name: party_unique_root; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX party_unique_root ON party USING btree ((COALESCE(organizationname, '\\N'::text))) WHERE (creator_id = party_id);


--
-- Name: party_unique_within_creator; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX party_unique_within_creator ON party USING btree (creator_id, (COALESCE(organizationname, '\\N'::text)), (COALESCE(fullname, '\\N'::text)), (COALESCE(surname, '\\N'::text)), (COALESCE(givenname, '\\N'::text)), (COALESCE(middlename, '\\N'::text)));


--
-- Name: place_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX place_accessioncode_index ON place USING btree (accessioncode);


--
-- Name: place_unique; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX place_unique ON place USING btree ((COALESCE(parent_id, 2147483647)), placename, rank);


--
-- Name: placepath_unique_within_creator_by_code; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX placepath_unique_within_creator_by_code ON placepath USING btree (creator_id, (COALESCE(placecode, '\\N'::text))) WHERE (placecode IS NOT NULL);


--
-- Name: placepath_unique_within_creator_by_name; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX placepath_unique_within_creator_by_name ON placepath USING btree (creator_id, (COALESCE(continent, '\\N'::text)), (COALESCE(country, '\\N'::text)), (COALESCE(stateprovince, '\\N'::text)), (COALESCE(county, '\\N'::text)), (COALESCE(municipality, '\\N'::text)), (COALESCE(site, '\\N'::text)), (COALESCE(otherranks, ARRAY[]::rankedplacename[]))) WHERE (placecode IS NULL);


--
-- Name: plantobservation_aggregateoccurrence_1_to_1; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX plantobservation_aggregateoccurrence_1_to_1 ON plantobservation USING btree (aggregateoccurrence_id);


--
-- Name: plantobservation_unique_within_creator; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX plantobservation_unique_within_creator ON plantobservation USING btree (creator_id, (COALESCE(sourceaccessioncode, '\\N'::text))) WHERE (sourceaccessioncode IS NOT NULL);


--
-- Name: project_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX project_accessioncode_index ON project USING btree (accessioncode);


--
-- Name: project_unique_name_date; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX project_unique_name_date ON project USING btree (creator_id, (COALESCE(projectname, '\\N'::text)), (COALESCE(startdate, 'infinity'::date))) WHERE (sourceaccessioncode IS NULL);


--
-- Name: project_unique_within_creator; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX project_unique_within_creator ON project USING btree (creator_id, (COALESCE(sourceaccessioncode, '\\N'::text))) WHERE (sourceaccessioncode IS NOT NULL);


--
-- Name: reference_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX reference_accessioncode_index ON reference USING btree (accessioncode);


--
-- Name: referencejournal_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX referencejournal_accessioncode_index ON referencejournal USING btree (accessioncode);


--
-- Name: referenceparty_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX referenceparty_accessioncode_index ON referenceparty USING btree (accessioncode);


--
-- Name: soiltaxon_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX soiltaxon_accessioncode_index ON soiltaxon USING btree (accessioncode);


--
-- Name: specimenreplicate_plantobservation; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE INDEX specimenreplicate_plantobservation ON specimenreplicate USING btree (plantobservation_id);


--
-- Name: specimenreplicate_plantobservation_1_to_1; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX specimenreplicate_plantobservation_1_to_1 ON specimenreplicate USING btree ((COALESCE(plantobservation_id, 2147483647))) WHERE (((plantobservation_id IS NOT NULL) AND (sourceaccessioncode IS NULL)) AND (catalognumber_dwc IS NULL));


--
-- Name: specimenreplicate_unique_catalognumber; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX specimenreplicate_unique_catalognumber ON specimenreplicate USING btree (creator_id, (COALESCE(institution_id, 2147483647)), (COALESCE(collectioncode_dwc, '\\N'::text)), (COALESCE(catalognumber_dwc, '\\N'::text)), (COALESCE(plantobservation_id, 2147483647))) WHERE ((catalognumber_dwc IS NOT NULL) AND (sourceaccessioncode IS NULL));


--
-- Name: specimenreplicate_unique_within_creator; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX specimenreplicate_unique_within_creator ON specimenreplicate USING btree (creator_id, (COALESCE(sourceaccessioncode, '\\N'::text))) WHERE (sourceaccessioncode IS NOT NULL);


--
-- Name: stemobservation_plantobservation_1_to_1; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX stemobservation_plantobservation_1_to_1 ON stemobservation USING btree (plantobservation_id) WHERE ((sourceaccessioncode IS NULL) AND (authorstemcode IS NULL));


--
-- Name: stemobservation_unique_within_creator; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX stemobservation_unique_within_creator ON stemobservation USING btree (creator_id, (COALESCE(sourceaccessioncode, '\\N'::text))) WHERE (sourceaccessioncode IS NOT NULL);


--
-- Name: stemobservation_unique_within_plantobservation; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX stemobservation_unique_within_plantobservation ON stemobservation USING btree (plantobservation_id, (COALESCE(authorstemcode, '\\N'::text)), (COALESCE(tag, '\\N'::text))) WHERE (sourceaccessioncode IS NULL);


--
-- Name: taxonconcept_0_unique_identifying_name; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX taxonconcept_0_unique_identifying_name ON taxonconcept USING btree (creator_id, (COALESCE(identifyingtaxonomicname, '\\N'::text))) WHERE (identifyingtaxonomicname IS NOT NULL);


--
-- Name: taxonconcept_1_unique_sourceaccessioncode; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX taxonconcept_1_unique_sourceaccessioncode ON taxonconcept USING btree (creator_id, (COALESCE(sourceaccessioncode, '\\N'::text))) WHERE (sourceaccessioncode IS NOT NULL);


--
-- Name: taxonconcept_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX taxonconcept_accessioncode_index ON taxonconcept USING btree (accessioncode);


--
-- Name: taxonconcept_ancestor_descendants; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE INDEX taxonconcept_ancestor_descendants ON taxonconcept_ancestor USING btree (ancestor_id, descendant_id);


--
-- Name: taxonconcept_matched_concept_id_idx; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE INDEX taxonconcept_matched_concept_id_idx ON taxonconcept USING btree (matched_concept_id);


--
-- Name: taxonconcept_unique; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX taxonconcept_unique ON taxonconcept USING btree ((COALESCE(parent_id, 2147483647)), (COALESCE(taxonepithet, '\\N'::text)), (COALESCE(rank, 'unknown'::taxonrank)), creator_id, (COALESCE(sourceaccessioncode, '\\N'::text)), (COALESCE(creationdate, 'infinity'::date)), (COALESCE(identifyingtaxonomicname, '\\N'::text)), (COALESCE(taxonomicname, '\\N'::text)), (COALESCE(author, '\\N'::text)), (COALESCE(taxonomicnamewithauthor, '\\N'::text)));


--
-- Name: taxondetermination_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX taxondetermination_accessioncode_index ON taxondetermination USING btree (accessioncode);


--
-- Name: taxondetermination_unique; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX taxondetermination_unique ON taxondetermination USING btree (taxonoccurrence_id, isoriginal, role, (COALESCE(party_id, 2147483647)), taxonconcept_id);


--
-- Name: taxonoccurrence_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX taxonoccurrence_accessioncode_index ON taxonoccurrence USING btree (accessioncode);


--
-- Name: taxonoccurrence_locationevent; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE INDEX taxonoccurrence_locationevent ON taxonoccurrence USING btree (locationevent_id);


--
-- Name: taxonoccurrence_unique_within_creator; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX taxonoccurrence_unique_within_creator ON taxonoccurrence USING btree (creator_id, (COALESCE(sourceaccessioncode, '\\N'::text))) WHERE (sourceaccessioncode IS NOT NULL);


--
-- Name: taxonoccurrence_unique_within_locationevent; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX taxonoccurrence_unique_within_locationevent ON taxonoccurrence USING btree ((COALESCE(locationevent_id, 2147483647)), (COALESCE(authortaxoncode, '\\N'::text))) WHERE (sourceaccessioncode IS NULL);


--
-- Name: taxonstatus_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX taxonstatus_accessioncode_index ON taxonstatus USING btree (accessioncode);


--
-- Name: userdefined_accessioncode_index; Type: INDEX; Schema: public; Owner: bien; Tablespace: 
--

CREATE UNIQUE INDEX userdefined_accessioncode_index ON userdefined USING btree (accessioncode);


--
-- Name: party_creator_id_self_ref; Type: TRIGGER; Schema: public; Owner: bien
--

CREATE TRIGGER party_creator_id_self_ref BEFORE INSERT OR UPDATE ON party FOR EACH ROW EXECUTE PROCEDURE party_creator_id_self_ref();


--
-- Name: place_update_ancestors; Type: TRIGGER; Schema: public; Owner: bien
--

CREATE CONSTRAINT TRIGGER place_update_ancestors AFTER INSERT OR UPDATE ON place DEFERRABLE INITIALLY DEFERRED FOR EACH ROW EXECUTE PROCEDURE place_update_ancestors();


--
-- Name: placepath_matched_placepath_id_self_ref; Type: TRIGGER; Schema: public; Owner: bien
--

CREATE TRIGGER placepath_matched_placepath_id_self_ref BEFORE INSERT OR UPDATE ON placepath FOR EACH ROW EXECUTE PROCEDURE placepath_matched_placepath_id_self_ref();


--
-- Name: plantobservation_aggregateoccurrence_count_1; Type: TRIGGER; Schema: public; Owner: bien
--

CREATE TRIGGER plantobservation_aggregateoccurrence_count_1 AFTER INSERT OR UPDATE ON plantobservation FOR EACH ROW EXECUTE PROCEDURE plantobservation_aggregateoccurrence_count_1();


--
-- Name: taxonconcept_0_matched_concept_id_self_ref; Type: TRIGGER; Schema: public; Owner: bien
--

CREATE TRIGGER taxonconcept_0_matched_concept_id_self_ref BEFORE INSERT OR UPDATE ON taxonconcept FOR EACH ROW EXECUTE PROCEDURE taxonconcept_0_matched_concept_id_self_ref();


--
-- Name: taxonconcept_1_matched_concept_min_fit; Type: TRIGGER; Schema: public; Owner: bien
--

CREATE TRIGGER taxonconcept_1_matched_concept_min_fit BEFORE INSERT OR UPDATE ON taxonconcept FOR EACH ROW EXECUTE PROCEDURE taxonconcept_1_matched_concept_min_fit();


--
-- Name: taxonconcept_2_propagate_accepted_concept_id; Type: TRIGGER; Schema: public; Owner: bien
--

CREATE TRIGGER taxonconcept_2_propagate_accepted_concept_id BEFORE INSERT OR UPDATE ON taxonconcept FOR EACH ROW EXECUTE PROCEDURE taxonconcept_2_propagate_accepted_concept_id();


--
-- Name: taxonconcept_3_parent_id_avoid_self_ref; Type: TRIGGER; Schema: public; Owner: bien
--

CREATE TRIGGER taxonconcept_3_parent_id_avoid_self_ref BEFORE INSERT OR UPDATE ON taxonconcept FOR EACH ROW EXECUTE PROCEDURE taxonconcept_3_parent_id_avoid_self_ref();


--
-- Name: taxonconcept_update_ancestors_on_insert; Type: TRIGGER; Schema: public; Owner: bien
--

CREATE TRIGGER taxonconcept_update_ancestors_on_insert AFTER INSERT ON taxonconcept FOR EACH ROW EXECUTE PROCEDURE taxonconcept_update_ancestors_on_insert();


--
-- Name: taxonconcept_update_ancestors_on_update; Type: TRIGGER; Schema: public; Owner: bien
--

CREATE TRIGGER taxonconcept_update_ancestors_on_update AFTER UPDATE ON taxonconcept FOR EACH ROW EXECUTE PROCEDURE taxonconcept_update_ancestors_on_update();


--
-- Name: address_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY address
    ADD CONSTRAINT address_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: address_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY address
    ADD CONSTRAINT address_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: aggregateoccurrence_coverindex_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY aggregateoccurrence
    ADD CONSTRAINT aggregateoccurrence_coverindex_id_fkey FOREIGN KEY (coverindex_id) REFERENCES coverindex(coverindex_id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: aggregateoccurrence_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY aggregateoccurrence
    ADD CONSTRAINT aggregateoccurrence_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: aggregateoccurrence_method_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY aggregateoccurrence
    ADD CONSTRAINT aggregateoccurrence_method_id_fkey FOREIGN KEY (method_id) REFERENCES method(method_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: aggregateoccurrence_stratum_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY aggregateoccurrence
    ADD CONSTRAINT aggregateoccurrence_stratum_id_fkey FOREIGN KEY (stratum_id) REFERENCES stratum(stratum_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: aggregateoccurrence_taxonoccurrence_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY aggregateoccurrence
    ADD CONSTRAINT aggregateoccurrence_taxonoccurrence_id_fkey FOREIGN KEY (taxonoccurrence_id) REFERENCES taxonoccurrence(taxonoccurrence_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: classcontributor_commclass_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY classcontributor
    ADD CONSTRAINT classcontributor_commclass_id_fkey FOREIGN KEY (commclass_id) REFERENCES commclass(commclass_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: classcontributor_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY classcontributor
    ADD CONSTRAINT classcontributor_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commclass_classpublication_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commclass
    ADD CONSTRAINT commclass_classpublication_id_fkey FOREIGN KEY (classpublication_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commclass_locationevent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commclass
    ADD CONSTRAINT commclass_locationevent_id_fkey FOREIGN KEY (locationevent_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commconcept_commname_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commconcept
    ADD CONSTRAINT commconcept_commname_id_fkey FOREIGN KEY (commname_id) REFERENCES commname(commname_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commconcept_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commconcept
    ADD CONSTRAINT commconcept_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commcorrelation_commconcept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commcorrelation
    ADD CONSTRAINT commcorrelation_commconcept_id_fkey FOREIGN KEY (commconcept_id) REFERENCES commconcept(commconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commcorrelation_commstatus_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commcorrelation
    ADD CONSTRAINT commcorrelation_commstatus_id_fkey FOREIGN KEY (commstatus_id) REFERENCES commstatus(commstatus_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commdetermination_commauthority_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commdetermination
    ADD CONSTRAINT commdetermination_commauthority_id_fkey FOREIGN KEY (commauthority_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commdetermination_commclass_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commdetermination
    ADD CONSTRAINT commdetermination_commclass_id_fkey FOREIGN KEY (commclass_id) REFERENCES commclass(commclass_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commdetermination_commconcept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commdetermination
    ADD CONSTRAINT commdetermination_commconcept_id_fkey FOREIGN KEY (commconcept_id) REFERENCES commconcept(commconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commlineage_childcommstatus_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commlineage
    ADD CONSTRAINT commlineage_childcommstatus_id_fkey FOREIGN KEY (childcommstatus_id) REFERENCES commstatus(commstatus_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commlineage_parentcommstatus_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commlineage
    ADD CONSTRAINT commlineage_parentcommstatus_id_fkey FOREIGN KEY (parentcommstatus_id) REFERENCES commstatus(commstatus_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commname_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commname
    ADD CONSTRAINT commname_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commstatus_commconcept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commstatus
    ADD CONSTRAINT commstatus_commconcept_id_fkey FOREIGN KEY (commconcept_id) REFERENCES commconcept(commconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commstatus_commparent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commstatus
    ADD CONSTRAINT commstatus_commparent_id_fkey FOREIGN KEY (commparent_id) REFERENCES commconcept(commconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commstatus_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commstatus
    ADD CONSTRAINT commstatus_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commstatus_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commstatus
    ADD CONSTRAINT commstatus_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commusage_commconcept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commusage
    ADD CONSTRAINT commusage_commconcept_id_fkey FOREIGN KEY (commconcept_id) REFERENCES commconcept(commconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commusage_commname_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commusage
    ADD CONSTRAINT commusage_commname_id_fkey FOREIGN KEY (commname_id) REFERENCES commname(commname_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commusage_commstatus_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commusage
    ADD CONSTRAINT commusage_commstatus_id_fkey FOREIGN KEY (commstatus_id) REFERENCES commstatus(commstatus_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: commusage_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY commusage
    ADD CONSTRAINT commusage_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: coverindex_covermethod_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY coverindex
    ADD CONSTRAINT coverindex_covermethod_id_fkey FOREIGN KEY (covermethod_id) REFERENCES covermethod(covermethod_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: covermethod_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY covermethod
    ADD CONSTRAINT covermethod_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: definedvalue_userdefined_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY definedvalue
    ADD CONSTRAINT definedvalue_userdefined_id_fkey FOREIGN KEY (userdefined_id) REFERENCES userdefined(userdefined_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: disturbanceobs_locationevent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY disturbanceobs
    ADD CONSTRAINT disturbanceobs_locationevent_id_fkey FOREIGN KEY (locationevent_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: graphic_locationevent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY graphic
    ADD CONSTRAINT graphic_locationevent_id_fkey FOREIGN KEY (locationevent_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: location_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY location
    ADD CONSTRAINT location_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: location_parent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY location
    ADD CONSTRAINT location_parent_id_fkey FOREIGN KEY (parent_id) REFERENCES location(location_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationcoords_identifier_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationcoords
    ADD CONSTRAINT locationcoords_identifier_id_fkey FOREIGN KEY (identifier_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationcoords_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationcoords
    ADD CONSTRAINT locationcoords_location_id_fkey FOREIGN KEY (location_id) REFERENCES location(location_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationevent_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationevent
    ADD CONSTRAINT locationevent_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationevent_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationevent
    ADD CONSTRAINT locationevent_location_id_fkey FOREIGN KEY (location_id) REFERENCES location(location_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationevent_method_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationevent
    ADD CONSTRAINT locationevent_method_id_fkey FOREIGN KEY (method_id) REFERENCES method(method_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationevent_parent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationevent
    ADD CONSTRAINT locationevent_parent_id_fkey FOREIGN KEY (parent_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationevent_previous_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationevent
    ADD CONSTRAINT locationevent_previous_id_fkey FOREIGN KEY (previous_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationevent_project_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationevent
    ADD CONSTRAINT locationevent_project_id_fkey FOREIGN KEY (project_id) REFERENCES project(project_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationevent_soiltaxon_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationevent
    ADD CONSTRAINT locationevent_soiltaxon_id_fkey FOREIGN KEY (soiltaxon_id) REFERENCES soiltaxon(soiltaxon_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationeventcontributor_locationevent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationeventcontributor
    ADD CONSTRAINT locationeventcontributor_locationevent_id_fkey FOREIGN KEY (locationevent_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationeventcontributor_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationeventcontributor
    ADD CONSTRAINT locationeventcontributor_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationeventsynonym_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationeventsynonym
    ADD CONSTRAINT locationeventsynonym_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationeventsynonym_primarylocationevent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationeventsynonym
    ADD CONSTRAINT locationeventsynonym_primarylocationevent_id_fkey FOREIGN KEY (primarylocationevent_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationeventsynonym_synonymlocationevent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationeventsynonym
    ADD CONSTRAINT locationeventsynonym_synonymlocationevent_id_fkey FOREIGN KEY (synonymlocationevent_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationplace_identifier_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationplace
    ADD CONSTRAINT locationplace_identifier_id_fkey FOREIGN KEY (identifier_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationplace_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationplace
    ADD CONSTRAINT locationplace_location_id_fkey FOREIGN KEY (location_id) REFERENCES location(location_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: locationplace_placepath_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY locationplace
    ADD CONSTRAINT locationplace_placepath_id_fkey FOREIGN KEY (placepath_id) REFERENCES placepath(placepath_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: method_covermethod_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY method
    ADD CONSTRAINT method_covermethod_id_fkey FOREIGN KEY (covermethod_id) REFERENCES covermethod(covermethod_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: method_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY method
    ADD CONSTRAINT method_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: method_subplotmethod_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY method
    ADD CONSTRAINT method_subplotmethod_id_fkey FOREIGN KEY (subplotmethod_id) REFERENCES method(method_id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: methodtaxonclass_method_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY methodtaxonclass
    ADD CONSTRAINT methodtaxonclass_method_id_fkey FOREIGN KEY (method_id) REFERENCES method(method_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: methodtaxonclass_submethod_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY methodtaxonclass
    ADD CONSTRAINT methodtaxonclass_submethod_id_fkey FOREIGN KEY (submethod_id) REFERENCES method(method_id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: methodtaxonclass_taxonconcept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY methodtaxonclass
    ADD CONSTRAINT methodtaxonclass_taxonconcept_id_fkey FOREIGN KEY (taxonconcept_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: note_notelink_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY note
    ADD CONSTRAINT note_notelink_id_fkey FOREIGN KEY (notelink_id) REFERENCES notelink(notelink_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: note_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY note
    ADD CONSTRAINT note_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: party_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY party
    ADD CONSTRAINT party_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: party_currentname_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY party
    ADD CONSTRAINT party_currentname_id_fkey FOREIGN KEY (currentname_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: partymember_childparty_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY partymember
    ADD CONSTRAINT partymember_childparty_id_fkey FOREIGN KEY (childparty_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: partymember_parentparty_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY partymember
    ADD CONSTRAINT partymember_parentparty_id_fkey FOREIGN KEY (parentparty_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: place_ancestor_ancestor_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY place_ancestor
    ADD CONSTRAINT place_ancestor_ancestor_id_fkey FOREIGN KEY (ancestor_id) REFERENCES place(place_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: place_ancestor_place_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY place_ancestor
    ADD CONSTRAINT place_ancestor_place_id_fkey FOREIGN KEY (place_id) REFERENCES place(place_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: place_parent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY place
    ADD CONSTRAINT place_parent_id_fkey FOREIGN KEY (parent_id) REFERENCES place(place_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: placecorrelation_childplace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY placecorrelation
    ADD CONSTRAINT placecorrelation_childplace_id_fkey FOREIGN KEY (childplace_id) REFERENCES place(place_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: placecorrelation_parentplace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY placecorrelation
    ADD CONSTRAINT placecorrelation_parentplace_id_fkey FOREIGN KEY (parentplace_id) REFERENCES place(place_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: placepath_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY placepath
    ADD CONSTRAINT placepath_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: placepath_matched_placepath_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY placepath
    ADD CONSTRAINT placepath_matched_placepath_id_fkey FOREIGN KEY (matched_placepath_id) REFERENCES placepath(placepath_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: placepath_place_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY placepath
    ADD CONSTRAINT placepath_place_id_fkey FOREIGN KEY (place_id) REFERENCES place(place_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: plantobservation_aggregateoccurrence_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY plantobservation
    ADD CONSTRAINT plantobservation_aggregateoccurrence_id_fkey FOREIGN KEY (aggregateoccurrence_id) REFERENCES aggregateoccurrence(aggregateoccurrence_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: plantobservation_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY plantobservation
    ADD CONSTRAINT plantobservation_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: plantobservation_plant_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY plantobservation
    ADD CONSTRAINT plantobservation_plant_id_fkey FOREIGN KEY (plant_id) REFERENCES plant(plant_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: project_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY project
    ADD CONSTRAINT project_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: projectcontributor_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY projectcontributor
    ADD CONSTRAINT projectcontributor_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: projectcontributor_project_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY projectcontributor
    ADD CONSTRAINT projectcontributor_project_id_fkey FOREIGN KEY (project_id) REFERENCES project(project_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: reference_referencejournal_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY reference
    ADD CONSTRAINT reference_referencejournal_id_fkey FOREIGN KEY (referencejournal_id) REFERENCES referencejournal(referencejournal_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: referencealtident_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY referencealtident
    ADD CONSTRAINT referencealtident_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: referencecontributor_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY referencecontributor
    ADD CONSTRAINT referencecontributor_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: referencecontributor_referenceparty_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY referencecontributor
    ADD CONSTRAINT referencecontributor_referenceparty_id_fkey FOREIGN KEY (referenceparty_id) REFERENCES referenceparty(referenceparty_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: referenceparty_currentparty_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY referenceparty
    ADD CONSTRAINT referenceparty_currentparty_id_fkey FOREIGN KEY (currentparty_id) REFERENCES referenceparty(referenceparty_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: revision_previousrevision_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY revision
    ADD CONSTRAINT revision_previousrevision_id_fkey FOREIGN KEY (previousrevision_id) REFERENCES revision(revision_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: soilobs_locationevent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY soilobs
    ADD CONSTRAINT soilobs_locationevent_id_fkey FOREIGN KEY (locationevent_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: soiltaxon_soilparent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY soiltaxon
    ADD CONSTRAINT soiltaxon_soilparent_id_fkey FOREIGN KEY (soilparent_id) REFERENCES soiltaxon(soiltaxon_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: specimenreplicate_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY specimenreplicate
    ADD CONSTRAINT specimenreplicate_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: specimenreplicate_institution_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY specimenreplicate
    ADD CONSTRAINT specimenreplicate_institution_id_fkey FOREIGN KEY (institution_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: specimenreplicate_plantobservation_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY specimenreplicate
    ADD CONSTRAINT specimenreplicate_plantobservation_id_fkey FOREIGN KEY (plantobservation_id) REFERENCES plantobservation(plantobservation_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: specimenreplicate_specimen_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY specimenreplicate
    ADD CONSTRAINT specimenreplicate_specimen_id_fkey FOREIGN KEY (specimen_id) REFERENCES specimen(specimen_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: stemobservation_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY stemobservation
    ADD CONSTRAINT stemobservation_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: stemobservation_plantobservation_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY stemobservation
    ADD CONSTRAINT stemobservation_plantobservation_id_fkey FOREIGN KEY (plantobservation_id) REFERENCES plantobservation(plantobservation_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: stratum_locationevent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY stratum
    ADD CONSTRAINT stratum_locationevent_id_fkey FOREIGN KEY (locationevent_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: stratum_method_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY stratum
    ADD CONSTRAINT stratum_method_id_fkey FOREIGN KEY (method_id) REFERENCES method(method_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonalt_taxonconcept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonalt
    ADD CONSTRAINT taxonalt_taxonconcept_id_fkey FOREIGN KEY (taxonconcept_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonalt_taxondetermination_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonalt
    ADD CONSTRAINT taxonalt_taxondetermination_id_fkey FOREIGN KEY (taxondetermination_id) REFERENCES taxondetermination(taxondetermination_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonconcept_accepted_concept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonconcept
    ADD CONSTRAINT taxonconcept_accepted_concept_id_fkey FOREIGN KEY (accepted_concept_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonconcept_ancestor_ancestor_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonconcept_ancestor
    ADD CONSTRAINT taxonconcept_ancestor_ancestor_id_fkey FOREIGN KEY (ancestor_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonconcept_ancestor_descendant_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonconcept_ancestor
    ADD CONSTRAINT taxonconcept_ancestor_descendant_id_fkey FOREIGN KEY (descendant_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonconcept_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonconcept
    ADD CONSTRAINT taxonconcept_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonconcept_matched_concept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonconcept
    ADD CONSTRAINT taxonconcept_matched_concept_id_fkey FOREIGN KEY (matched_concept_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonconcept_parent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonconcept
    ADD CONSTRAINT taxonconcept_parent_id_fkey FOREIGN KEY (parent_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxoncorrelation_taxonconcept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxoncorrelation
    ADD CONSTRAINT taxoncorrelation_taxonconcept_id_fkey FOREIGN KEY (taxonconcept_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxoncorrelation_taxonstatus_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxoncorrelation
    ADD CONSTRAINT taxoncorrelation_taxonstatus_id_fkey FOREIGN KEY (taxonstatus_id) REFERENCES taxonstatus(taxonstatus_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxondetermination_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxondetermination
    ADD CONSTRAINT taxondetermination_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxondetermination_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxondetermination
    ADD CONSTRAINT taxondetermination_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxondetermination_taxonconcept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxondetermination
    ADD CONSTRAINT taxondetermination_taxonconcept_id_fkey FOREIGN KEY (taxonconcept_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxondetermination_taxonoccurrence_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxondetermination
    ADD CONSTRAINT taxondetermination_taxonoccurrence_id_fkey FOREIGN KEY (taxonoccurrence_id) REFERENCES taxonoccurrence(taxonoccurrence_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonlineage_childtaxonstatus_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonlineage
    ADD CONSTRAINT taxonlineage_childtaxonstatus_id_fkey FOREIGN KEY (childtaxonstatus_id) REFERENCES taxonstatus(taxonstatus_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonlineage_parenttaxonstatus_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonlineage
    ADD CONSTRAINT taxonlineage_parenttaxonstatus_id_fkey FOREIGN KEY (parenttaxonstatus_id) REFERENCES taxonstatus(taxonstatus_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonoccurrence_creator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonoccurrence
    ADD CONSTRAINT taxonoccurrence_creator_id_fkey FOREIGN KEY (creator_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonoccurrence_locationevent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonoccurrence
    ADD CONSTRAINT taxonoccurrence_locationevent_id_fkey FOREIGN KEY (locationevent_id) REFERENCES locationevent(locationevent_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonstatus_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonstatus
    ADD CONSTRAINT taxonstatus_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonstatus_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonstatus
    ADD CONSTRAINT taxonstatus_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonstatus_taxonconcept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonstatus
    ADD CONSTRAINT taxonstatus_taxonconcept_id_fkey FOREIGN KEY (taxonconcept_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonusage_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonusage
    ADD CONSTRAINT taxonusage_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonusage_taxonconcept_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonusage
    ADD CONSTRAINT taxonusage_taxonconcept_id_fkey FOREIGN KEY (taxonconcept_id) REFERENCES taxonconcept(taxonconcept_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: taxonusage_taxonstatus_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY taxonusage
    ADD CONSTRAINT taxonusage_taxonstatus_id_fkey FOREIGN KEY (taxonstatus_id) REFERENCES taxonstatus(taxonstatus_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: telephone_party_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY telephone
    ADD CONSTRAINT telephone_party_id_fkey FOREIGN KEY (party_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: trait_stemobservation_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY trait
    ADD CONSTRAINT trait_stemobservation_id_fkey FOREIGN KEY (stemobservation_id) REFERENCES stemobservation(stemobservation_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: voucher_specimenreplicate_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY voucher
    ADD CONSTRAINT voucher_specimenreplicate_id_fkey FOREIGN KEY (specimenreplicate_id) REFERENCES specimenreplicate(specimenreplicate_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: voucher_taxonoccurrence_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: bien
--

ALTER TABLE ONLY voucher
    ADD CONSTRAINT voucher_taxonoccurrence_id_fkey FOREIGN KEY (taxonoccurrence_id) REFERENCES taxonoccurrence(taxonoccurrence_id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- PostgreSQL database dump complete
--

