Project

General

Profile

Statistics
| Revision:

# Date Author Comment
4118 08/20/2012 08:46 PM Aaron Marcuse-Kubitza

inputs: Moved maps into subfolders, using the steps at <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/VegCSV_subfolders#Move-maps-into-subfolders>

4117 08/20/2012 07:16 PM Aaron Marcuse-Kubitza

inputs: Replaced Veg+ prefix with map on via maps, using the steps at <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/VegCSV_subfolders#Replace-Veg-prefix-with-map-on-via-maps>

4116 08/20/2012 06:39 PM Aaron Marcuse-Kubitza

strings.py: concat(): Apply length limits by shrinking max_len by new raw_extra_len() of the strings. This also fixes a bug where multi-byte characters in str0 were not properly taken into account, leading to overly long strings. Added doc comment.

4115 08/20/2012 06:29 PM Aaron Marcuse-Kubitza

strings.py: Added raw_extra_len()

4114 08/20/2012 06:17 PM Aaron Marcuse-Kubitza

sql_gen.py: NoUnderlyingTableException: Take a (required) parameter for the item that had no underlying table, and provide this wherever a NoUnderlyingTableException is created

4113 08/20/2012 06:16 PM Aaron Marcuse-Kubitza

strings.py: concat(): Perform substring operation on Unicode strings so that substring does not split Unicode characters. Still use to_raw_str() to calculate the str1 length because Unicode characters can be multi-byte, and length limits often apply to the byte length, not the character length.

4112 08/20/2012 06:13 PM Aaron Marcuse-Kubitza

exc.py: add_msg(): Fixed bug where needed to convert the Unicode string back into a raw string because Python's top-level exception handler doesn't support Unicode strings as exception messages

4111 08/20/2012 05:22 PM Aaron Marcuse-Kubitza

inputs/import.stats.xls: Updated with stats from latest import

4110 08/17/2012 07:53 PM Aaron Marcuse-Kubitza

inputs: Renamed stems table to 2.stems so import order would be inherent in the dir name, using steps at <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/VegCSV_subfolders#Rename-subfolders-with-import-order>

4109 08/17/2012 07:49 PM Aaron Marcuse-Kubitza

inputs: Renamed organisms table to 1.organisms so import order would be inherent in the dir name, using steps at <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/VegCSV_subfolders#Rename-subfolders-with-import-order>

4108 08/17/2012 07:30 PM Aaron Marcuse-Kubitza

inputs: Renamed plots table to 0.plots so import order would be inherent in the dir name, using steps at <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/VegCSV_subfolders#Rename-subfolders-with-import-order>

4107 08/17/2012 07:30 PM Aaron Marcuse-Kubitza

inputs: Renamed plots table to 0.plots so import order would be inherent in the dir name, using steps at <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/VegCSV_subfolders#Rename-subfolders-with-import-order>

4106 08/17/2012 07:00 PM Aaron Marcuse-Kubitza

input.Makefile: Mapping: If table subdir contains no input files, print warning instead of aborting. This situation occurs when renaming a version-controlled directory, whose previous version persists as an empty dir until committing.

4105 08/17/2012 06:41 PM Aaron Marcuse-Kubitza

input.Makefile: Mapping: Removed no longer used $(<in) and test for it in $(map)

4104 08/17/2012 06:37 PM Aaron Marcuse-Kubitza

input.Makefile: Mapping: $(map): Removed no longer used test for $(mapEnv)

4103 08/17/2012 05:50 PM Aaron Marcuse-Kubitza

sql.py: run_query(): Exception handling: Fixed bug where PostgreSQL 9.1 PL/Python errors have a different format than PostgreSQL 9.0 which needs to be supported separately. This format was already supported in sql_gen.plpythonu_error_handler, but also needed to be supported for exceptions that propagate back to the client.

4102 08/17/2012 05:34 PM Aaron Marcuse-Kubitza

inputs/SALVIAS-CSV/src/: Removed source files because they shouldn't be under version control. (They are synchronized via `make inputs/download`.)

4101 08/17/2012 05:15 PM Aaron Marcuse-Kubitza

inputs: Moved src files into VegCSV subfolders (https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/VegCSV#CSV-representation), with table suffixes removed, using the steps at <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/VegCSV_subfolders>

4100 08/17/2012 04:26 PM Aaron Marcuse-Kubitza

util.py: dict_subset(): Fall back to using dict when OrderedDict is not available, in order to support making the maps on nimoy

4099 08/17/2012 04:02 PM Aaron Marcuse-Kubitza

mappings/: Removed now-inaccurate ".stems" suffix from VegX-VegCore.stems.csv, which actually applied to all tables

4098 08/17/2012 03:59 PM Aaron Marcuse-Kubitza

mappings/: Removed no longer used ".specimens" suffix from maps, which is now the same for all maps

4097 08/17/2012 03:52 PM Aaron Marcuse-Kubitza

mappings/: Removed no longer used plots, organisms, and stems maps, which were copies of the specimens map

4096 08/17/2012 03:48 PM Aaron Marcuse-Kubitza

input.Makefile: Core maps: Always use the specimens "table", since there are now no longer separate mappings for different tables, and the other tables' maps in mappings/ are merely copies of the specimens table's map

4095 08/17/2012 03:30 PM Aaron Marcuse-Kubitza

input.Makefile: Removed no longer used custom via maps code, so that map files no longer need a prefix (which is always the same) specifying that they map through Veg+. Veg+ thus serves as the single gateway to VegBIEN, which avoids ever again having to maintain two copies of the mappings, as was the case when DwC and VegX XPaths were separate gateways. This will assist in untying the complex mapping logic in input.Makefile from file naming conventions in mappings/, and simplify the task of grouping each map with the CSV it maps.

4094 08/17/2012 03:14 PM Aaron Marcuse-Kubitza

input.Makefile: Removed no longer used DB inputs section, because all of our inputs are either CSV or (rarely) XML. This removes a significant amount of dead code that will make it easier to refactor input.Makefile to use custom CSV import orders.

4093 08/17/2012 02:51 PM Aaron Marcuse-Kubitza

mappings/Veg+-VegCore.specimens.csv: Added mappings for miscellaneous terms

4092 08/17/2012 02:45 PM Aaron Marcuse-Kubitza

mappings/Veg+.terms.csv: Added miscellaneous terms

4091 08/17/2012 12:52 PM Aaron Marcuse-Kubitza

to_do/: svn:ignore OpenOffice lock files

4090 08/17/2012 12:50 PM Aaron Marcuse-Kubitza

inputs/import.stats.xls: Updated with stats from latest import. The import time for SpeciesLink (the slowest datasource) went back down to 9 hours after replacing the slower _merge with _alt.

4089 08/16/2012 08:34 PM Aaron Marcuse-Kubitza

Added new autogen mappings/VegCore.self.specimens.csv (not currently used)

4088 08/16/2012 08:30 PM Aaron Marcuse-Kubitza

Merged DwC (including DwC1) and VegCSV mappings into new Veg+ schema. This involves replacing occurrences of DwC and VegCSV with Veg+ (or sometimes VegCore) everywhere, as described in <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/VegCSV-DwC_merging&gt;.

4087 08/16/2012 08:18 PM Aaron Marcuse-Kubitza

README.TXT: Schema changes: Updated filenames of PDF ERD exports

4086 08/16/2012 08:15 PM Aaron Marcuse-Kubitza

Regenerated vegbien.ERD exports

4085 08/16/2012 08:12 PM Aaron Marcuse-Kubitza

xpath.py: parse(): _value(): Support '+' as a word character that doesn't need to be quoted

4084 08/16/2012 06:54 PM Aaron Marcuse-Kubitza

intersect: Fixed bug where test for ignore option needed to be removed, because ignore is not supported by this program

4083 08/16/2012 06:45 PM Aaron Marcuse-Kubitza

util.py: list_subset(): Fixed bug where using '+' to append the rest of the list didn't work if '+' was the first index, because max() cannot be called on an empty list

4082 08/16/2012 05:14 PM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv: Added VegCSV mappings, to enable use of one VegCSV-VegBIEN mapping for specimens and plots data

4081 08/16/2012 05:12 PM Aaron Marcuse-Kubitza

inputs/XAL/maps/DwC.specimens.csv: Remapped FieldNumber to recordNumber because this historical DwC term (http://rs.tdwg.org/dwc/terms/history/index.htm#fieldNumber-2009-04-24) has close to the same meaning as recordNumber, but not the same meaning as the current fieldNumber term

4080 08/16/2012 04:55 PM Aaron Marcuse-Kubitza

inputs/SpeciesLink/maps/DwC.specimens.csv: Remapped fieldNumber to recordNumber because term usage was inconsistent with DwC definition. Datasources often confuse this term, because it seems like the collection number, but is actually the author code for the event (VegBank's authorObsCode).

4079 08/16/2012 04:28 PM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv: catalogNumber: Added additional VegCSV mappings for mergability. taxonoccurrence.authortaxoncode: Added alternative mappings from VegCSV for mergability.

4078 08/16/2012 04:21 PM Aaron Marcuse-Kubitza

xml_func.py: simplify(): Apply pass-through optimizations for _if statements with no condition (which means false). This faciliates automated testing after an _if statement has been added, because the put template provided as part of the automated test will only change for those datasources that actually have a condition entry for the _if statement, which greatly reduces the number of tests that need to be accepted. (Note that the path before the _if will still be included as an empty path if there are no other mappings to that table, because the _if statement does not surround it.)

4077 08/16/2012 02:26 PM Aaron Marcuse-Kubitza

mappings/VegCSV-VegBIEN.specimens.csv: Added DwC mappings, to enable use of one VegCSV-VegBIEN mapping for specimens and plots data

4076 08/16/2012 02:22 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: Moved collectionnumber from specimenreplicate to plantobservation to replace authorplantcode, since these terms are used analogously in plots and specimens data. This code is really the DwC recordNumber (VegBIEN collectionnumber), which "serves as a link between field notes and an Occurrence record, such as a specimen [or plots data] collector's number" (http://rs.tdwg.org/dwc/terms/#recordNumber). Also, this prevents a specimenreplicate from incorrectly being created when plots data provides an authorplantcode.

4075 08/16/2012 01:55 PM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv: Mapped individualID for mergability with VegCSV

4074 08/16/2012 01:49 PM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv, VegCSV-VegBIEN.specimens.csv: Split occurrenceID into occurrenceID and individualID, where individualID refers to the plant in plots data and occurrenceID refers to the specimen in specimens data. This prevents plant sourceaccessioncodes from being mapped to the specimenreplicate, which was messing up stems mappings for the parent plantobservation. It also avoids mapping the specimenreplicate sourceaccessioncode to additional tables where it isn't needed. (Note that occurrenceID is needed for location to ensure that each specimen gets its own location to make locationdeterminations on. Everything else is directly or indirectly scoped by location when its own sourceaccessioncode isn't specified.)

4073 08/16/2012 01:33 PM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv, VegCSV-VegBIEN.specimens.csv: taxonoccurrence: Removed catalogNumber mapping because the catalogNumber applies only to the specimen, not to the occurrence, especially in plots data

4072 08/16/2012 01:14 PM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv, VegCSV-VegBIEN.specimens.csv: taxonoccurrence: Map everything except occurrenceID (which is globally unique) to new authortaxoncode, which only needs to be unique within the locationevent

4071 08/16/2012 12:59 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonoccurrence: Renamed taxonoccurrence_locationevent_1_to_1 to taxonoccurrence_unique_within_locationevent and added new authortaxoncode to it

4070 08/16/2012 12:57 PM Aaron Marcuse-Kubitza

schemas/vegbien.sql: taxonoccurrence: Added authortaxoncode to store unique keys that are unique within the locationevent rather than within the datasource

4069 08/16/2012 12:43 PM Aaron Marcuse-Kubitza

inputs/SALVIAS-CSV/maps/VegCSV.organisms.csv: Added _alt to height_m, stem_height_m to choose between them when both are specified (rather than having bin/map choose their priority order based on their order in the map). Note that when both of the heights are specified, they are always either the same, or height_m is invalid (see <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/SALVIAS_issues#Some-organisms-have-one-stem-but-different-heights-in-the-organisms-and-stems-tables&gt;).

4068 08/16/2012 12:39 PM Aaron Marcuse-Kubitza

bin/map: collision_suffix: Setting back to _alt to test if _merge caused the SpeciesLink slowdown. SpeciesLink contains a huge number of equivalent columns due to each DwC term being present with namespaces for all versions of the DwC schema, and these columns can be combined either using _alt or _merge. _merge is only useful if the values in different versions of the same DwC field are different, which is not likely the case.

4067 08/16/2012 12:29 PM Aaron Marcuse-Kubitza

inputs/import.stats.xls: Updated with stats from latest import. The import time for SpeciesLink (the slowest datasource) doubled, to 16 hours, most likely due to replacing _alt with the slower _merge, which preserves more input data.

4066 08/15/2012 11:30 AM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv, VegCSV-VegBIEN.specimens.csv: occurrenceID: Mapped to location.authorlocationcode instead of sourceaccessioncode so that it would not override any location- or event-related IDs in location.authorlocationcode merely by being mapped to the sourceaccessioncode field (which takes precedence over the authorlocationcode when specified)

4065 08/15/2012 10:43 AM Aaron Marcuse-Kubitza

mappings/VegCSV-VegBIEN.specimens.csv: occurrenceID: Mapped to specimenreplicate.sourceaccessioncode for mergability with DwC

4064 08/15/2012 09:14 AM Aaron Marcuse-Kubitza

mappings/VegCSV-VegBIEN.specimens.csv: Mapped voucherType to indirect voucher _if statements' conditions

4063 08/15/2012 09:02 AM Aaron Marcuse-Kubitza

mappings/VegCSV-VegBIEN.specimens.csv: locationID: location.sourceaccessioncode mapping: Added /_alt suffix for mergability with DwC

4062 08/15/2012 08:53 AM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv: collectionID: Mapped to location.authorlocationcode as merge with collectionCode, the same way as it is for specimenreplicate.collectioncode_dwc

4061 08/15/2012 08:23 AM Aaron Marcuse-Kubitza

schemas/vegbien.sql: location: location_unique_within_datasource_by_authorlocationcode unique index: Added `parent_id IS NULL` condition so that an authorlocationcode is not unintentionally treated as globally unique when a parent location is available (which implies that the authorlocationcode is a subplot code)

4060 08/15/2012 08:20 AM Aaron Marcuse-Kubitza

mappings/VegCSV-VegBIEN.specimens.csv: catalogNumber: Added location.authorlocationcode mapping for mergability with DwC

4059 08/15/2012 08:13 AM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv: location.authorlocationcode mappings: Added /_alt/3 for mergability with VegCSV mappings to same field

4058 08/15/2012 08:05 AM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv: catalogNumber: Wrapped all mappings in direct voucher _if for mergability with VegCSV

4057 08/15/2012 07:57 AM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv: catalogNumber: Moved direct/indirect voucher _if inwards to wrap just the value of catalognumber_dwc, not the catalognumber_dwc field node, to match the corresponding VegCSV mapping

4056 08/15/2012 07:48 AM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv: Replaced _alt with _merge where applicable to avoid losing source data on import when multiple fields collide

4055 08/15/2012 07:46 AM Aaron Marcuse-Kubitza

mappings/VegCSV-VegBIEN.specimens.csv: Cleaned up using `make mappings/`

4054 08/15/2012 07:18 AM Aaron Marcuse-Kubitza

schemas/functions.sql: join_strs_transform(): Use STRICT optimization to avoid needing to manually check if the state value or input value is NULL (http://www.postgresql.org/docs/8.3/static/sql-createaggregate.html#AEN51596)

4053 08/15/2012 07:15 AM Aaron Marcuse-Kubitza

schemas/functions.sql: join_strs(), join_strs_transform(): Reversed order of params to enable strict optimization, which replaces the state value with the first parameter, which used to be the delimiter (http://www.postgresql.org/docs/8.3/static/sql-createaggregate.html#AEN51596)

4052 08/15/2012 07:07 AM Aaron Marcuse-Kubitza

Renamed join_strs_transform_preserve_empty() to join_strs_transform() now that there are no other join_strs_transform_...() functions

4051 08/15/2012 07:06 AM Aaron Marcuse-Kubitza

schemas/functions.sql: Removed no longer used join_strs_transform_fold_empty()

4050 08/15/2012 07:06 AM Aaron Marcuse-Kubitza

schemas/functions.sql: join_strs() aggregate: Use join_strs_transform_preserve_empty() as an optimization because all our data has already had '' replaced with NULL by sql_io.cleanup_table() in csv2db. This will help speed up _merges now that they are performed on a large scale in the slowest datasource, SpeciesLink.

4049 08/15/2012 07:02 AM Aaron Marcuse-Kubitza

bin/map: collision_suffix: Changed to use _merge instead of _alt to avoid losing source data on import when multiple fields collide

4048 08/15/2012 06:58 AM Aaron Marcuse-Kubitza

bin/map: Preventing collisions if multiple inputs mapping to same output: Made collision suffix configurable so it can easily be changed

4047 08/15/2012 06:56 AM Aaron Marcuse-Kubitza

bin/map: Preventing collisions if multiple inputs mapping to same output: Made collision suffix configurable so it can easily be changed

4046 08/15/2012 06:52 AM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv, VegCSV-VegBIEN.specimens.csv: taxonoccurrence.sourceaccessioncode mappings: Added catalogNumber mapping, which takes precendence over recordNumber and is applicable to specimens data and direct vouchers. recordNumber should only be used as a last resort (before the taxon name) because this is collector-assigned and often not unique within anything.

4045 08/15/2012 06:34 AM Aaron Marcuse-Kubitza

mappings/VegCSV-VegBIEN.specimens.csv: catalogNumber: Moved direct/indirect voucher _ifs inwards to wrap just the value of catalognumber_dwc, not the catalognumber_dwc field node, so that a future SQL function implementation of _if only needs to concern itself with returning one value or another, not with handling XML subtrees. The previous moving of the _ifs in r3942 was intended to effect this, but the _ifs weren't moved in far enough to wrap just the value.

4044 08/15/2012 06:21 AM Aaron Marcuse-Kubitza

mappings/VegCSV-VegBIEN.specimens.csv: eventDate mappings: Removed collectiondate mapping because the eventDate refers only to the plot event. Added /_alt suffixes for mergability with DwC.

4043 08/15/2012 06:15 AM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv, DwC1-DwC2.specimens.csv: Split eventDate into eventDate and dateCollected, where eventDate refers only to the date of the sampling event, but dateCollected also refers to the date the particular specimen was collected. (This distinction is important in merging with VegCSV, because in plots data, these two fields are distinct.) Remapped datasources with dateCollected-related fields to new dateCollected.

4042 08/15/2012 05:55 AM Aaron Marcuse-Kubitza

bin/map: Run new xml_func.simplify() on the root before printing the put template, so that _alts and _merges with only one element for the current datasource will be printed in their simplified form (with the _alt/_merge removed). This faciliates automated testing after an _alt/_merge suffix has been added, because the put template provided as part of the automated test will only change for those datasources that actually have an entry for both mappings, which greatly reduces the number of tests that need to be accepted.

4041 08/15/2012 05:51 AM Aaron Marcuse-Kubitza

xml_func.py: Added simplify()

4040 08/15/2012 05:45 AM Aaron Marcuse-Kubitza

xpath.py: put_obj(): Use new get_values(), so that the returned nodes are not modified by XML tree transformations, such as those performed by xml_func.process()

4039 08/15/2012 05:43 AM Aaron Marcuse-Kubitza

Added get_values()

4038 08/15/2012 05:41 AM Aaron Marcuse-Kubitza

xml_dom.py: is_empty(): Treat whitespace-only text nodes (including text nodes containing empty strings) as empty. This will also support None equivalents in text nodes, because they are isspace_none_str, which is considered whitespace.

4037 08/15/2012 05:36 AM Aaron Marcuse-Kubitza

xml_func.py: _map(): Don't remove None params, because are valid values and must be supported. This will become an issue once empty strings in text nodes are considered equivalent to None.

4036 08/15/2012 05:33 AM Aaron Marcuse-Kubitza

xml_func.py: _units(): Don't remove None params, because are valid values and must be supported. This will become an issue once empty strings in text nodes are considered equivalent to None.

4035 08/15/2012 05:25 AM Aaron Marcuse-Kubitza

xml_func.py: _name(): Fixed bug where needed to pass None values through and handle no name parts to properly support NULL propagation

4034 08/15/2012 05:08 AM Aaron Marcuse-Kubitza

xml_dom.py: value(), set_value(): Use new strings.isspace_none_str as sentinel None equivalent, to support cloning text nodes containing a sentinel None

4033 08/15/2012 05:06 AM Aaron Marcuse-Kubitza

xml_dom.py: value(), set_value(): Use new strings.isspace_none_str as sentinel None equivalent, to support cloning text nodes containing a sentinel None

4032 08/15/2012 05:04 AM Aaron Marcuse-Kubitza

strings.py: Added isspace_none_str to support clone-safe sentinel str values that pass isspace()

4031 08/15/2012 04:51 AM Aaron Marcuse-Kubitza

xml_dom.py: is_whitespace(): Also consider empty text nodes to be whitespace

4030 08/15/2012 04:47 AM Aaron Marcuse-Kubitza

xml_dom.py: is_whitespace(): Support text nodes whose value() is None by using .nodeValue instead

4029 08/15/2012 04:44 AM Aaron Marcuse-Kubitza

xml_dom.py: set_value(): Don't set the value of a text node to None by removing it, because this prevents the node from being reused. Instead use a sentinel string value to denote None, and map to and from it.

4028 08/15/2012 04:40 AM Aaron Marcuse-Kubitza

strings.py: Added none_str and helper class NonInternedStr to support sentinel str values

4027 08/15/2012 04:19 AM Aaron Marcuse-Kubitza

xml_dom.py: set_value(): Support setting the value of a text node to None, by removing it

4026 08/15/2012 03:44 AM Aaron Marcuse-Kubitza

Removed trailing whitespace on non-empty lines

4025 08/15/2012 03:40 AM Aaron Marcuse-Kubitza

sql_io.py: put_table(): DuplicateKeyException: is_literals: Fixed bug where sql.select() needed to select on just the join_cols, not the whole mapping

4024 08/15/2012 03:14 AM Aaron Marcuse-Kubitza

xml_func.py: process(): Removed support for no longer used structural functions

4023 08/15/2012 03:13 AM Aaron Marcuse-Kubitza

xml_func.py: Removed no longer used structural functions

4022 08/15/2012 03:05 AM Aaron Marcuse-Kubitza

mappings/for_review/DwC2-VegBIEN.specimens.fields.csv: input root: Removed DwC XML path info since DwC is now a CSV schema

4021 08/15/2012 02:57 AM Aaron Marcuse-Kubitza

mappings/DwC2-VegBIEN.specimens.csv: eventDate: Also map to obsstartdate/obsenddate, since the collectiondate is also the event date for specimens data, and for mergability with VegCSV

4020 08/15/2012 02:24 AM Aaron Marcuse-Kubitza

mappings/VegCSV-VegBIEN.specimens.csv: eventDate: Added mappings to obsstartdate/obsenddate, since users of this field (currently SALVIAS census_date) intend it as the plot event's date. Keep the mapping to collectiondate because a non-range plot event date is also the collectiondate of all organisms in that plot event.

4019 08/15/2012 02:05 AM Aaron Marcuse-Kubitza

schemas/py_functions.sql: parse_date_range(): Always return a value for end date, even if string is not a date range. This enables using _dateRangeEnd() as a filter function on anything intended as an end date.