Project

General

Profile

Statistics
| Revision:

# Date Author Comment
9852 06/12/2013 02:52 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.pg.sql: regenerated from installed schema. a Linux bug that caused constraints to be output in reverse order has now been fixed, as of 12.04.2 (broken in 12.04.1).

9851 06/12/2013 02:48 AM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/_MySQL/MySQL_schema, MySQL_data: sed: put {} commands on their own line to work on Mac

9850 06/12/2013 02:11 AM Aaron Marcuse-Kubitza

lib/sh/util.sh: .(): put echo_func on its own line for clarity

9849 06/12/2013 02:10 AM Aaron Marcuse-Kubitza

lib/sh/util.sh: .(): added echo_func (2 log_levels up because it's internal)

9848 06/12/2013 02:06 AM Aaron Marcuse-Kubitza

schemas/VegCore/mk_derived: use new lib/sh/local.sh instead of lib/import.sh (a precursor to util.sh, etc. still used by inputs/FIA/)

9847 06/11/2013 07:50 PM Aaron Marcuse-Kubitza

bugfix: load_data(): verbosity_min: use verbosity_min='' so that csv2db's default verbosity (3) is used, instead of setting the verbosity directly to 3, which caused the log++ logging output from bin/make to be echoed at verbosity 3, creating cluttered output

9846 06/11/2013 07:43 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: verbosity_min(): support value '', which sets verbosity=''

9845 06/11/2013 06:40 PM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/raw_occurrence_record_plants/postprocess.sql: updated column names to match the renamings in map.csv, which are now performed on the staging table itself

9844 06/11/2013 06:38 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: run_args_cmd(): time the command so that the runtime of the outer runscript target (i.e. the command run from the shell) is printed at the end of the output, like in bin/make

9843 06/11/2013 05:56 PM Aaron Marcuse-Kubitza

bugfix: inputs/input.Makefile: %/install: don't run $(cleanup) if it has already been run by $(import_install_), so that it doesn't run twice

9842 06/11/2013 05:54 PM Aaron Marcuse-Kubitza

inputs/input.Makefile: %/postprocess: don't run postprocess.sql if it is supposed to be run by a runscript, because postprocess.sql may then depend on additional steps the runscript runs before it

9841 06/11/2013 05:25 PM Aaron Marcuse-Kubitza

lib/runscripts/table.run: import(): use self_make on load_data so that the remake status determines whether the table is reinstalled

9840 06/11/2013 05:23 PM Aaron Marcuse-Kubitza

bugfix: lib/runscripts/mysql.table.run: import(): added missing set_make_vars, needed by self_make

9839 06/11/2013 05:21 PM Aaron Marcuse-Kubitza

bugfix: lib/runscripts/table.run: load_data(): need to use $_remake instead of $remake when using set_make_vars

9838 06/11/2013 05:20 PM Aaron Marcuse-Kubitza

lib/runscripts/table.run: added set_make_vars to all make targets so $remake would be propagated appropriately

9837 06/11/2013 05:18 PM Aaron Marcuse-Kubitza

lib/runscripts/table.run: load_data(): also clobber install log if remaking, because the table will be reinstalled

9836 06/11/2013 05:12 PM Aaron Marcuse-Kubitza

lib/runscripts/table.run: load_data(): automatically select noclobber mode depending on whether the install log already exists. this removes the need for a separate load_data_first_run() function.

9835 06/11/2013 04:59 PM Aaron Marcuse-Kubitza

bugfix: lib/runscripts/table.run: load_data(): ignore errors if table already exists

9834 06/11/2013 04:52 PM Aaron Marcuse-Kubitza

lib/runscripts/table.run: load_data(): use noclobber=1 to avoid overwriting the install log when re-running the install target idempotently. load_data_first_run() is now available to preserve the output in the log on the first run.

9833 06/11/2013 04:51 PM Aaron Marcuse-Kubitza

inputs/input.Makefile: Staging tables installation: $(logInstall): don't output to the install log if $noclobber flag is set, to prevent overwriting the log when re-running the install target idempotently

9832 06/11/2013 04:18 PM Aaron Marcuse-Kubitza

bugfix: lib/runscripts/mysql.table.run: import(): move previous versions of table.tsv out of the main dir before loading staging tables, to prevent them from being considered a TSV segment file and prepended to table.tsv

9831 06/11/2013 04:15 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: added mv2dir(), mv_glob which wrap mv

9830 06/11/2013 04:14 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: added mkdir alias which adds -p to prevent errors if the dir already exists

9829 06/11/2013 03:45 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: added wildcard alias, similar to make's $(wildcard) function

9828 06/11/2013 03:29 PM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/raw_occurrence_record_plants/postprocess.sql: institution_code index: create it idempotently using create_if_not_exists() and an explicit index name, so that a duplicate index doesn't get added each time postprocess.sql is run

9827 06/11/2013 03:27 PM Aaron Marcuse-Kubitza

lib/sh/local.sh: psql(): don't put util in the search_path because psql scripts now add it themselves if they need it, using `SELECT util.search_path_append(util);`

9826 06/11/2013 03:22 PM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/postprocess.sql: add util to the search_path so that postprocess.sql will also work when run by inputs/input.Makefile, which only puts the datasource (GBIF) in the search_path

9825 06/11/2013 03:18 PM Aaron Marcuse-Kubitza

schemas/util.sql: added search_path_append()

9824 06/11/2013 03:12 PM Aaron Marcuse-Kubitza

schemas/util.sql: added eval() to allow running EXECUTE outside of a function (and to echo the command that is run)

9823 06/11/2013 09:04 AM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/run: added import() runtime (5 h)

9822 06/10/2013 11:58 PM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/run: table.tsv.gz/make() runtime: noted that this excludes the upload time

9821 06/10/2013 11:58 PM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/run: added table.tsv.gz/upload() runtime (15 min)

9820 06/10/2013 11:48 PM Aaron Marcuse-Kubitza

added lib/runscripts/mysql.table.run (general to all MySQL datasources) and use it in inputs/GBIF/table.run

9819 06/10/2013 11:13 PM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/run: table.tsv/make(): to view runtime when using `screen`: keys used to scroll: added Ctrl-B/Ctrl-F for page-at-a-time scrolling (there are a lot of pages of output for the import() target!)

9818 06/09/2013 09:21 PM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/table.run: table.tsv.gz/make(): don't run table.tsv.gz/upload in test mode, to avoid clobbering the backup of a full table.tsv with a partial, testing table.tsv

9817 06/09/2013 09:18 PM Aaron Marcuse-Kubitza

lib/sh/db.sh: set test mode when using limited # rows

9816 06/09/2013 09:08 PM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/table.run: table.tsv.gz/upload(): don't use inplace mode because it leaves a newer mtime when aborted, causing rsync to think that the partial upload is actually newer than the source. note that rsync's --partial-dir mode is just as capable of resuming an aborted upload (it will just use a file in .rsync-tmp instead). inplace mode is primarily designed for fixed-offset files which don't change much between edits, but this is not true for exports (or the gzips of them), which will change the file offsets of most data if even one row or column is added or removed.

9815 06/09/2013 09:01 PM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/table.run: table.tsv.gz/make(): run table.tsv.gz/upload here instead of in table.tsv/make() because it should not run until table.tsv.gz is finished being made, which is not the case in table.tsv/make() because table.tsv.gz/make is run in the background

9814 06/09/2013 08:59 PM Aaron Marcuse-Kubitza

inputs/GBIF/table.run: table.tsv.gz/upload(): moved before table.tsv.gz/make() so it can be used by it

9813 06/09/2013 08:39 PM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/table.run: table.tsv.gz/upload(): need overwrite=1 because the mtime of an aborted inplace upload is newer

9812 06/09/2013 08:32 PM Aaron Marcuse-Kubitza

inputs/GBIF/table.run: table.tsv*/upload(): renamed to table.tsv.gz/upload() to upload only table.tsv.gz, not table.tsv, in order to save bandwidth

9811 06/09/2013 08:28 PM Aaron Marcuse-Kubitza

bugfix: lib/sh/sync.sh: also need to --include parent dirs for each --include path

9810 06/09/2013 08:27 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: added path_parents()

9809 06/09/2013 08:01 PM Aaron Marcuse-Kubitza

*{.sh,run}: in comments, use ${array[@]} instead of @array for clarity

9808 06/09/2013 07:54 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: foreach_arg(): moved `local a` to same line as for loop that uses it

9807 06/09/2013 07:00 PM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/table.run: table.tsv*/upload(): need to run put in live mode (live=1)

9806 06/09/2013 06:53 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: foreach_arg(): echo_run the cmd at a log_level up so it isn't printed as if it were an external command (log_level 1)

9805 06/09/2013 06:33 PM Aaron Marcuse-Kubitza

lib/sh/sync.sh: removed `pf upload` debug statement

9804 06/09/2013 06:32 PM Aaron Marcuse-Kubitza

bugfix: lib/sh/util.sh: set_fds(): localize $i so it doesn't overwrite any previous value

9803 06/09/2013 06:30 PM Aaron Marcuse-Kubitza

inputs/GBIF/table.run: table.tsv/make(): run table.tsv*/upload when the file make is done so that the file is backed up to jupiter

9802 06/09/2013 06:29 PM Aaron Marcuse-Kubitza

inputs/GBIF/table.run: added table.tsv*/upload()

9801 06/09/2013 06:27 PM Aaron Marcuse-Kubitza

lib/sh/local.sh: added sync_upload(), sync_download() with $sync_local_dir, $sync_remote_url config vars

9800 06/09/2013 06:26 PM Aaron Marcuse-Kubitza

added lib/sh/sync.sh with upload(), download()

9799 06/09/2013 06:25 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: added foreach_arg()

9798 06/09/2013 06:06 PM Aaron Marcuse-Kubitza

bugfix: lib/sh/util.sh: need to use `declare -p` instead of ${var+isset} because ${var+isset} returns not set for empty arrays

9797 06/09/2013 06:05 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: added echo_vars() stub

9796 06/09/2013 05:43 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: added echo_run() stub

9795 06/09/2013 05:39 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: set_fds(): don't run (or echo) exec if no redirections are being made

9794 06/09/2013 05:37 PM Aaron Marcuse-Kubitza

bugfix: lib/sh/util.sh: added missing stub for indent alias (used by echo_func alias, which is a stub). without the stub, /usr/bin/indent would be used instead on Mac.

9793 06/09/2013 04:01 PM Aaron Marcuse-Kubitza

bugfix: lib/sh/local.sh: root_rel_path(): added echo_func

9792 06/09/2013 04:01 PM Aaron Marcuse-Kubitza

bugfix: lib/sh/local.sh: root_rel_path(): use canon_rel_path instead of rel_path because $1 may be absolute rather than relative to the current dir, so $root_dir needs to be absoluted (which requires $1 to be absoluted as well)

9791 06/09/2013 03:56 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: support custom $base_dir, which will be run through realpath() to match $path ($PWD, which was used before, did not need to be realpath'd because it was already absolute)

9790 06/09/2013 03:34 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: moved echo_func alias to stub because it must be embedded in its expanded alias form to work properly

9789 06/09/2013 03:29 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: declare echo_func as a stub before it's defined, so that functions can use it even if they are defined before it (and its logging functionality will be enabled as soon as it's defined)

9788 06/09/2013 03:26 PM Aaron Marcuse-Kubitza

lib/sh/util.sh: rel_path(): don't log++ it, and instead only log++ applicable calls of it or its callers. this allows non-internal calls of rel_path() to be logged at the usual log_level.

9787 06/09/2013 01:00 PM Aaron Marcuse-Kubitza

lib/sh/local.sh: added root_rel_path()

9786 06/09/2013 12:39 PM Aaron Marcuse-Kubitza

lib/Firefox_bookmarks.reformat.csv: unescape HTML in page's description, such as links to more info. this is necessary to properly render the persistent shells link in the screen > scrollback folder description.

9785 06/09/2013 12:37 PM Aaron Marcuse-Kubitza

bin/repl: added unescape_html() filter function, which can be specified as the replacement string

9784 06/09/2013 12:35 PM Aaron Marcuse-Kubitza

bin/repl: support Unicode characters in the matched portion of the string

9783 06/09/2013 11:52 AM Aaron Marcuse-Kubitza

web/links/index.htm: updated to Firefox bookmarks. `screen`: scrollback: added link to our wiki page on persistent shells, which are a better way to support reconnecting.

9782 06/09/2013 11:36 AM Aaron Marcuse-Kubitza

web/links/index.htm: updated to Firefox bookmarks. added bookmarks about the `screen` command, especially how to access the scrollback. resorted several folders alphabetically.

9781 06/09/2013 11:13 AM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/run: table.tsv/make(): documented how to view the runtime when using `screen` (press Ctrl-A [ , use up-arrow, and then press Esc to leave copy mode)

9780 06/09/2013 11:12 AM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/run: herbaria_filter/make(): use new ih_herbarium table instead of the herbaria_filter.ih.csv_ file directly

9779 06/08/2013 12:23 PM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/run: added ih_herbarium/make(), which stores the IH herbaria

9778 06/08/2013 11:50 AM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/raw_occurrence_record_plants/run: table/make(): also filter out rows with a non-plant family (as described at http://vegpath.org/wiki/2013-06-06_conference_call#GBIF-subsetting-fix-raw_occurrence_record-filter-formula), since some institutions have both animal and plant rows, even though they are in IH or in the 80% list. (note that NULL families are OK.)

9777 06/08/2013 04:12 AM Aaron Marcuse-Kubitza

*{.sh,run}: use mysql instead of mysql_ANSI because mysql is now an alias to mysql_ANSI (since ANSI mode still supports key MySQL features, like `` quotes)

9776 06/08/2013 04:09 AM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/run: table.tsv/make(): documented that incremental output is provided right away with --quick (unbuffered), but takes awhile to become visible in Macfusion sshfs. this can be tested with `while true; do stat inputs/GBIF/raw_occurrence_record_plants/table.tsv; sleep 2; done` running concurrently with `./inputs/GBIF/raw_occurrence_record_plants/run table.tsv/make` on vegbiendev:/home/bien/svn .

9775 06/08/2013 04:00 AM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/run: table.tsv/make(): use new raw_occurrence_record_plants view from table/make()

9774 06/08/2013 03:15 AM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/raw_occurrence_record_plants/run: table/make(): added make of prerequisites

9773 06/08/2013 03:14 AM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/raw_occurrence_record_plants/run: table/make(): don't reset $table to plant_fraction_for_herbaria_filter for commands that use $table

9772 06/08/2013 03:10 AM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record_plants/run: added table/make(), which makes the filter view

9771 06/08/2013 02:14 AM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record/: renamed to raw_occurrence_record_plants because it's actually only the plants in raw_occurrence_record, not all of raw_occurrence_record. also, this will allow us to create a separate raw_occurrence_record_plants view whose name matches the folder and does not collide with the raw_occurrence_record table.

9770 06/08/2013 12:44 AM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record/run: herbaria_filter/make(): added runtime, which is ~0 since it just needs to do CSV import and index scans

9769 06/08/2013 12:43 AM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record/run: herbaria_filter/make(): time the population of herbaria_filter

9768 06/07/2013 11:47 PM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record/run: plant_fraction/make(): updated runtime. added rows affected count to runtime so if the number of rows it's related to (in this case, institution_code) changes, the runtime can be expected to change accordingly.

9767 06/06/2013 04:54 PM Aaron Marcuse-Kubitza

inputs/.TNRS/schema.sql: tnrs_populate_fields(): documented runtime (17 min)

9766 06/06/2013 04:49 PM Aaron Marcuse-Kubitza

bugfix: inputs/GBIF/raw_occurrence_record/run: plant_fraction/make(): plant_fraction column: COUNT counts non-NULL rather than true values (which counter-intuitively includes false, because it's non-NULL), so need to add NULLIF around the boolean expression to turn it into a NULL-or-not expression. see http://vegpath.org/wiki/2013-06-06_conference_call#GBIF-subsetting-fix-plant_fraction-SQL-bug .

9765 06/06/2013 04:29 PM Aaron Marcuse-Kubitza

inputs/.TNRS/schema.sql: tnrs_populate_fields(): documented that when changing this function, you must regenerate the derived cols using `UPDATE tnrs SET "Name_submitted" = "Name_submitted"`

9764 06/06/2013 04:21 PM Aaron Marcuse-Kubitza

inputs/.TNRS/schema.sql: tnrs_populate_fields(): Is_plant: must match family as Family_score = 1 (as discussed during conference call vegpath.org/wiki/2013-05-30_conference_call#postprocess-TNRS-results-to-exclude-animals-with-genus-homonyms) instead of as Family_matched IS NOT NULL (as listed in Brad's formula at vegpath.org/wiki/Result_filtering#TNRS-results) because TNRS transforms animal to plant families via fuzzy matching, necessitating a Family_score check to ensure an exact match to a plant family that was not transformed from an animal family

9763 06/06/2013 03:29 PM Aaron Marcuse-Kubitza

inputs/.TNRS/schema.sql: added Is_plant derived field, which is populated using the formula at vegpath.org/wiki/Result_filtering#TNRS-results . note that the homonym filtering is currently excluded until we determine whether we can get direct access to the IRMNG homonyms database (http://www.cmar.csiro.au/datacentre/irmng/homonyms.htm). note also that changes to the TNRS schema cannot be fully tested until any TNRS client bugs are fixed, because the data.sql updater requires a working TNRS client to regenerate the sample data.

9762 06/06/2013 02:42 PM Aaron Marcuse-Kubitza

inputs/.TNRS/schema.sql: updated for current TSV schema: renamed Accepted_species->Accepted_name_species, Accepted_family->Accepted_name_family

9761 06/06/2013 02:27 PM Aaron Marcuse-Kubitza

bugfix: schemas/vegbien.sql: tnrs_input_name: must anti-join against MatchedTaxon rather than ValidMatchedTaxon to ensure that all of TNRS.tnrs is excluded from the input names. this prevents duplicates from appearing in the TNRS results, which would break the TSV import into TNRS.tnrs. it also prevents no-match names from being scrubbed repeatedly because they were not properly filtered out of the input names.

9760 06/06/2013 02:17 PM Aaron Marcuse-Kubitza

inputs/.TNRS/schema.sql: fixed whitespace

9759 06/06/2013 02:15 PM Aaron Marcuse-Kubitza

inputs/.TNRS/schema.sql: added MatchedTaxon view, which now just renames the columns but does not filter the results, and use it in ValidMatchedTaxon

9758 06/06/2013 02:11 PM Aaron Marcuse-Kubitza

inputs/.TNRS/schema.sql: MatchedTaxon: renamed to ValidMatchedTaxon since this view actually contains only the names with a valid match

9757 06/06/2013 12:59 PM Aaron Marcuse-Kubitza

bugfix: lib/sql.py: parse_exception(): make_DuplicateKeyException(): handle nested exceptions (which should never be generated, but may be in case of sql.py bugs such as wiki.vegpath.org/To_Do#Fixes > #1) by printing the nested exception and then rethrowing the original exception, so that the original exception does not get lost and still ends up at the end of the program's output, to enable debugging

9756 06/06/2013 11:08 AM Aaron Marcuse-Kubitza

inputs/.TNRS/schema.sql: tnrs: documented that when changing this table's schema, you must regenerate data.sql using `inputs/test_taxonomic_names/test_scrub`

9755 06/06/2013 08:09 AM Aaron Marcuse-Kubitza

inputs/GBIF/raw_occurrence_record/run: table.tsv.gz/make(): documented runtime (35 min)

9754 06/06/2013 07:52 AM Aaron Marcuse-Kubitza

bugfix: schemas/vegbien.sql: analytical_stem_view: speciesBinomialWithMorphospecies: if accepted name not specified, use matched name (matched*) or Name_submitted (concatenatedScientificName), as described at http://wiki.vegpath.org/2013-05-30_conference_call#fix-TNRS-speciesBinomialWithMorphospecies-to-include-alternatives-when-no-accepted-name

9753 06/06/2013 07:24 AM Aaron Marcuse-Kubitza

lib/sh/make.sh: make(): time all invocations of make