After the vitriolic debates I've seen between the PostgreSQL fanatics and the MySQL defenders, I thought I'd ask for clarification on the support for transactions that's supposedly provided by the use of BDB tables: Having used Oracle for a while (and given my understanding of how transactions work there), does using BDB guarantee that: * DML that's not explicitly COMMITted will be automatically ROLLedBACK if the connection is terminated prematurely? * Other connections will continue to see a perfectly consistent snapshot of the DB from before the start of the transaction, as long as the transaction is not committed? * If the DB server process crashes in the middle of a transaction, then on restart, it will present a view of the DB without any of the effects of uncommitted transactions? And *with* all the effects of all committed transactions (needless to say)? * How about locking? While a transaction is not committed, how much of the tables that it modifies is automatically locked against updates by other connections? The whole table? A page of the table? A row (dare I hope?)? * (To labor a point) If a connection dies in the middle of a transaction holding locks, will it automatically roll them changes and free the locks and unblock any other operations waiting on that lock? Just checking.. Thanks! -- Shankar Unni [EMAIL PROTECTED] (408) 434-8311