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 2898 about 12 years Aaron Marcuse-Kubitza bin/map: connect_db(): Only use autocommit mode...
  config 272 over 12 years Aaron Marcuse-Kubitza Moved bien_password to new config dir
  inputs 2891 about 12 years Aaron Marcuse-Kubitza input.Makefile: Staging tables: import/install-...
  lib 2913 about 12 years Aaron Marcuse-Kubitza sql.py: Added function_exists()
  mappings 2529 about 12 years Aaron Marcuse-Kubitza mappings/DwC2-VegBIEN.specimens.csv: Removed _t...
  schemas 2888 about 12 years Aaron Marcuse-Kubitza schemas/vegbien.sql: method: Changed indexes to...
  to_do 2547 about 12 years Aaron Marcuse-Kubitza to_do/timeline.doc: Updated to reflect the mont...
Makefile 10.1 KB 2901 about 12 years Aaron Marcuse-Kubitza main Makefile: schemas/rotate: Fixed bug where ...
README.TXT 2.7 KB 1967 about 12 years Aaron Marcuse-Kubitza main Makefile: VegBIEN DB: Install public schem...
map 978 Bytes 1979 about 12 years Aaron Marcuse-Kubitza root map: Fill in defaults for inputs from VegB...

Latest revisions

# Date Author Comment
2913 06/18/2012 03:49 PM Aaron Marcuse-Kubitza

sql.py: Added function_exists()

2912 06/18/2012 03:49 PM Aaron Marcuse-Kubitza

sql_gen.py: Made Function an alias of Table so that isinstance(..., Function) will always work correctly

2911 06/18/2012 03:45 PM Aaron Marcuse-Kubitza

sql_gen.py: Added as_Function()

2910 06/15/2012 06:16 AM Aaron Marcuse-Kubitza

sql.py: put_table(): Lock the output table in EXCLUSIVE mode before getting its pkey so that an ACCESS SHARE lock is not acquired before EXCLUSIVE (causing a lock upgrade and deadlock). This race condition may not have been previously noticeable because pkey() is cached, so calling it doesn't necessarily execute a query or acquire an ACCESS SHARE lock.

2909 06/15/2012 05:52 AM Aaron Marcuse-Kubitza

sql.py: put_table(): Document that must be run at the beginning of a transaction

2908 06/15/2012 05:49 AM Aaron Marcuse-Kubitza

sql.py: put_table(), mk_select(): Switched back to having put_table() acquire the EXCLUSIVE locks, but right at the beginning of the transaction, in order to avoid lock upgrades which cause deadlocks

2907 06/15/2012 05:35 AM Aaron Marcuse-Kubitza

sql.py: with_autocommit(): Only allow turning autocommit on, because the opposite is not meaningful and may conflict with the session-global isolation level

2906 06/15/2012 05:33 AM Aaron Marcuse-Kubitza

sql.py: DbConn: Set the transaction isolation level to READ COMMITTED using set_isolation_level() so that the isolation level affects all transactions in the session, not just the current one

2905 06/15/2012 05:21 AM Aaron Marcuse-Kubitza

sql.py: DbConn: Always set the transaction isolation level to READ COMMITTED so that when a table is locked for update, its contents are frozen at that point rather than earlier. This ensures that no concurrent duplicate keys were inserted between the time the table was snapshotted (at the beginning of the transaction for SERIALIZABLE) and the time it was locked for update.

2904 06/15/2012 05:02 AM Aaron Marcuse-Kubitza

sql.py: put_table(): Removed locking output tables to prevent concurrent duplicate keys because that is now done automatically by mk_select()

View all revisions | View revisions

Also available in: Atom