Hackers, While playing with code to enable subtransactions in the storage manager, I run across this strangeness:
alvherre=# begin; begin; -- start a subtransaction BEGIN BEGIN alvherre=# drop table foo; -- no such table ERROR: no existe la tabla "foo" alvherre=# commit; ERROR: cannot drop active portal alvherre=# This happens while PortalDrop() tries to drop an active portal. In this state, I can't do anything else short of closing the connection. But this doesn't happen if I try to run a non-utility bogus statement ("SELECT foo"); the system then allows me to rollback the transaction. Why is a portal kept active after a utility statement fails? I've been reading tcop/postgres.c but I can't find what's different between utility and non-utility. Any clues? -- Alvaro Herrera (<alvherre[a]dcc.uchile.cl>) "People get annoyed when you try to debug them." (Larry Wall) ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])