mappings/Makefile: Run simplify_xpath on VegX-VegBIEN.organisms.csv
simplify_xpath: Be case sensitive to handle VegX correctly
VegX-VegBIEN mapping: Avoid using a dummy taxondetermination with role=collector
VegX-VegBIEN mapping: Map stem count to new stemcount field
VegX-VegBIEN mapping: Take advantage of aggregateoccurrence.count being optional
vegbien.sql: Made aggregateoccurrence.count to handle individuals data (for which count should be dynamically determined from # individual plants inside the aggregateoccurrence)
NYBG-VegBIEN mapping: Don't map dummy values to locationcode, etc. (e.g. in specimens data) because these tables are no longer required
vegbien.sql: Made several pointers to parent elements optional to deal with specimens data that might not have a location, etc.
vegbien.sql: Added taxondetermination UNIQUE constraint
VegX-VegBIEN mapping: Took advantage of location.confidentialitystatus being optional
VegX-VegBIEN mapping: Took advantage of userdefined.userdefinedtype being optional
vegbien.sql: Gave userdefined.userdefinedtype a default value
VegX-VegBIEN mappings: Took advantage of plantconcept.reference_id becoming optional
vegbien.sql: Made plantconcept.reference_id optional. Merge plantconcepts with no reference_id when eliminating duplicates.
PostgreSQL-MySQL.csv: Deal with all non-NOT NULL timestamp fields
vegbien.sql: Removed confusing plantconcept.plantname field since we are using plantname.plantname instead
VegBIEN: Renamed aux_role to role
VegX-VegBIEN mappings: Took advantage of several fields becoming optional
Regenerated vegbien.ERD exports
vegbien.sql: taxonbinmethod points to stratumtype instead of stratum because stratumtype is a method table, but stratum is a measurements table. stratum does not point directly to stratummethod because it points to it via stratumtype.
vegbien.sql: Made taxondetermination.determinationdate optional because some determinations might not have a date
vegbien.sql: Added specimen.authorspecimencode
Adjusted vegbien.ERD.mwb
VegBIEN: Renamed sourceaccessionnumber to sourceaccessioncode to show that they are the data source's analog of accessioncode. Added sourceaccessioncode to all applicable tables because this is the database pkey, which is distinct from any author*code applied by the collector.
vegbien.sql: Changed taxonbinmethod_keys to UNIQUE INDEX to take advantage of COALESCE for dealing with NULL values
vegbien.sql: Renamed taxonbin to taxonbinmethod to reflect that it does not contain actual organisms (those go in aggregateoccurrence), but rather defined a method of aggregating organisms
vegbien.sql: Removed taxonbin.count because that belongs in aggregateoccurrence and taxonbin is more similar to a sampling method. Added taxonbin UNIQUE constraint.
vegbien.sql: Do location duplicate elimination independently on code or lat/long, allowing duplicate entries with NULLs to exist when a location is incompletely specified
vegbien.sql: Require location to have either an authorlocationcode or a lat/long. Distinguish between regular and subplots in UNIQUE constraint.
vegbien.sql: Renamed location.latitude and longitude to publiclatitude, publiclongitude to reflect that they are not the actual lat/long. Switched to requiring reallatitude/reallongitude.
Added inputs/TurboVeg
vegbien.ERD.mwb: Deal with MySQL assuming that a timestamp field is NOT NULL
PostgreSQL-MySQL.csv: Deal with MySQL assuming that a timestamp field is NOT NULL
vegbien.sql: Made specimen.taxonoccurrence_id required
vegbien.sql: Made several fields optional, adding defaults where needed
PostgreSQL-MySQL.csv: Deal with PostgreSQL-style :: casts
NYBG mappings: Add mapping for CollectorNumber to specimen.collectornumber_dwc
vegbien.sql: Added specimen.collectornumber_dwc
VegBIEN: Renamed sourceid to author*code
mappings: Map ScientificNameAuthor to plantconcept with rank author
vegbien.sql: Removed sizeclass.*precision fields
vegbien.sql: Added count field to taxonBin
VegBIEN: Renamed place to locationplace
vegbien.sql.make: Exclude 'CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql' to avoid restore errors
repl: When matching words, treat _ as word boundary and ignore case.
VegBIEN: Renamed individualplant.height to overallheight
PostgreSQL-MySQL.csv: Convert double quotes to backticks (`)
vegbien.for_ERD.sql: Fixed syntax error in stratum table
vegbien.sql: Renamed sizeclass.*accuracy to *precision to reflect intended purpose
vegbien.sql: Added stem.diameteraccuracy
vegbien.sql: Removed taxonoccurrence.currentdetermination_id and originaldetermination_id because it's not possible to create a two-way pointer when the child-to-parent pointer is required (chicken-and-egg problem)
README.TXT: Added make empty_db
vegbien.sql: Added taxonoccurrence.currentdetermination_id and originaldetermination_id
vegbien.ERD.mwb: Added stratum and place tables
Added vegbien.ERD.png
Added vegbien.ERD.svg
Added vegbien.ERD.pdf
Added vegbien ERD
Ignore *.bak in schemas
VegBIEN: specimen links directly to taxonoccurrence rather than indirectly via individualplant
vegbien.sql: Made voucher fields NOT NULL
vegbien.sql: Added voucher table
Create schemas/vegbien.for_wiki.sql from schemas/vegbien.for_ERD.sql
Added lib/ERD-wiki.csv to convert ERD SQL to human-readable wiki format
schemas/vegbien.for_ERD.sql: Removed VegBank-internal fields from taxonoccurrence
Removed no longer needed schemas/vegbien.my.sql
PostgreSQL-MySQL.csv: Use \g<0> instead of \0 in replacements because \0 not supported. Replace fulltext with fulltext__ (note fulltext_ doesn't work).
Added schemas/vegbien.for_ERD.sql and generated MySQL
Regenerated schemas/vegbien.for_ERD.sql
PostgreSQL-MySQL.csv: Deal with serial NOT NULL fields
Generate MySQL DDL schemas/vegbien.my.sql from vegbien.sql
Added repl spreadsheet to map PostgreSQL DDL to MySQL
Ignore src subdirectories in inputs
VegBIEN: Use stem instead of individualplant to store diameter/dbh
vegbien.sql: Removed no longer needed taxondetermination.plantname_id
VegBIEN: Made taxondetermination.plantconcept_id required and plantname_id optional
vegbien.sql: Added specimen.taxonoccurrence_id fkey
vegbien.sql: Removed no longer needed taxondetermination.individualplant_id, specimen_id fields
VegBIEN: Renamed plot to location to reflect that a location can also be used for specimens
vegbien.sql: Added individualplant.stemcount
vegbien.sql: Added accessioncode fields to existing, modified tables
vegbien.sql: Added accessioncode fields to new tables
vegbien.sql: Removed no longer needed individualplant.taxonarea
VegBIEN: Moved taxondetermination.sourceaccessionnumber and museum_id to specimen
vegbien.sql: Split taxondetermination UNIQUE CONSTRAINT into one constraint for each main key (taxonoccurrence_id, specimen_id, individualplant_id) to deal with Postgres treating a row with NULL in any of those columns as distinct. Added CHECK constraint to require one of taxonoccurrence_id, specimen_id, individualplant_id to be NOT NULL.
VegBIEN: Renamed museumaccessionnumber to sourceaccessionnumber
VegBIEN: Renamed authorcode to sourceid
vegbien.sql: Updated sizeclass to use ranges for parameters and remove taxonarea
input.Makefile: Fixed verify by making %.out: % rule use %.make instead
input.Makefile: Moved verifications into one set of verify.* files
input.Makefile: All tests are run in the same transaction, with output to test.out