Excerpts from David Fetter's message of vie sep 03 10:21:00 -0400 2010:
> > How about using a SAVEPOINT before the cast? Wouldn't fail your
> > transaction..
>
> For unattended operation, there are some issues:
>
> * Generating appropriate SAVEPOINT names
> * Keeping track of same
> * Detecting errors
> * Issuing ROLLBACKs to the aforementioned SAVEPOINT
>
> None of this works super well for a bulk load.
Why do you need any of this? The logic is pretty simple:
SAVEPOINT my_savepoint;
select ...::regclass;
-- if it works
RELEASE my_savepoint;
-- if it fails
ROLLBACK TO my_savepoint;
RELEASE my_savepoint;
Granted, it's not super-performant ...
--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support