> > I would be fine with changing the lifetime if an EXECUTE failure did
not
> > abort the current transaction. Then I could simply watch the return
> > code of the statement execution and prepare the statement on
> > demand...from my point of view, this would actually be the most
elegant
> > scenario.
>
> BEGIN;
> ... do something ... ;
> SUBBEGIN;
> EXECUTE ...;
> -- if it fails:
> -- SUBABORT;
> -- PREPARE ...;
> -- SUBBEGIN;
> -- EXECUTE ...;
> -- can continue as if nothing happened
> SUBCOMMIT;
> COMMIT;
This is not an option: this requires that every EXECUTE be wrapped with
a subtransaction. This is a performance killer because it (at minimum)
triples my statement turnaround latency.
With the current behavior, you can guarantee certain behaviors by
wrapping PREPARE/DEALLOCATE... and I was eagerly anticipating your work
to do this. I would much rather do that than be required to wrap every
single EXECUTE (recall that most of my I/O goes through prepared
statements).
Merlin