Project

General

Profile

Statistics
| Revision:
Name Size Revision Age Author Comment
  _archive 1598 over 12 years Aaron Marcuse-Kubitza Moved _archive/tapir2flatClient/trunk/client/ t...
  bin 2982 over 12 years Aaron Marcuse-Kubitza vegbien_dest: Added temp to schemas list so the...
  config 272 almost 13 years Aaron Marcuse-Kubitza Moved bien_password to new config dir
  inputs 3013 over 12 years Aaron Marcuse-Kubitza import.stats.xls: Changed \/row (ms)" to "ms/row"
  lib 3019 over 12 years Aaron Marcuse-Kubitza sql.py: mk_insert_select(): INSERT IGNORE: Use ...
  mappings 2529 over 12 years Aaron Marcuse-Kubitza mappings/DwC2-VegBIEN.specimens.csv: Removed _t...
  schemas 2980 over 12 years Aaron Marcuse-Kubitza Added temp schema to store intermediate tables ...
  to_do 2547 over 12 years Aaron Marcuse-Kubitza to_do/timeline.doc: Updated to reflect the mont...
Makefile 10.2 KB 2983 over 12 years Aaron Marcuse-Kubitza main Makefile: Added explicit schemas/temp/rein...
README.TXT 2.76 KB 2976 over 12 years Aaron Marcuse-Kubitza README.TXT: Changed documentation to use make s...
map 978 Bytes 1979 over 12 years Aaron Marcuse-Kubitza root map: Fill in defaults for inputs from VegB...

Latest revisions

# Date Author Comment
3019 06/22/2012 02:30 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): INSERT IGNORE: Use an EXCEPTION block for each individual row because "When an error is caught by an EXCEPTION clause, [...] all changes to persistent database state within the block are rolled back." (http://www.postgresql.org/docs/8.3/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING). Documented that cursor stays at current position in spite of automatic ROLLBACK on EXCEPTION.

3018 06/22/2012 02:11 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): INSERT IGNORE: Use RETURN QUERY on the insert query instead of RETURN NEXT on a local var to forward the RETURNING value

3017 06/22/2012 02:08 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): INSERT IGNORE: Support RETURNING clause. Always return something to set the correct rowcount.

3016 06/22/2012 02:06 PM Aaron Marcuse-Kubitza

sql_gen.py: Use an as_*() function instead of manually checking the type wherever possible

3015 06/22/2012 01:18 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): INSERT IGNORE: Added duplicate key handling by using EXCEPTION block to catch unique_violation

3014 06/22/2012 12:58 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): INSERT IGNORE: Fixed bug where user-defined types were not supported correctly, by referencing the column's type directly in PL/pgSQL instead of retrieving it from the information_schema. Use a row variable of the output table's row type to store the select query data, so that you don't need to create a separate local var for each output column.

3013 06/21/2012 10:24 PM Aaron Marcuse-Kubitza

import.stats.xls: Changed \/row (ms)" to "ms/row"

3012 06/21/2012 09:52 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): INSERT IGNORE: Used typed vars to store each column of the select query because the select query's column names are not known, so it would be unknown which record var column to use for each output column. (Add types so there are no unknown-type values that PostgreSQL will say can't be cast.)

3011 06/21/2012 09:21 PM Aaron Marcuse-Kubitza

sql.py: insert_select(): In ignore mode, always recover from errors

3010 06/21/2012 09:14 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): INSERT IGNORE: Implemented simple cursor loop that just inserts each row, without ignoring duplicate keys

View all revisions | View revisions

Also available in: Atom