Marcus Börger wrote:
> ATM i have a patch doing the following:
> Connect:
> If PQprotocolVersion() is available and >= 3 PQparameterStatus() is available
> then i check the server version. Else i check the lib version (*).
> If the version to check is >= 7.2 ido one of the following:
> - If one of PQprotocolVersion() and PQtransactionStatus() is unavailable or
> protocol version < 3:
> "BEGIN;COMMIT;RESET ALL;"
>
> - If protocol version >= 3 and transaction status == PQTRANS_IDLE:
> "RESET ALL;"
> - If protocol version >= 3 and transaction status != PQTRANS_IDLE:
> "COMMIT;RESET ALL;"
Shouldn't that be
ROLLBACK; RESET ALL;
and the other one "BEGIN; ROLLBACK; RESET ALL;" ?
I don't want to have the possibly partial transaction from a crashed PHP
script to be committed by default. At least it would be a significant
difference between persistent and non-persistent connections, because we
rollback if we loose the connection.
Jan
>
> Disconnect:
> - When PQprotocolVersion() And PQtransactionStatus() are available then
> i check whether status is PQTRANS_IDLE. If so i do:
> "ROLLBACK;"
> - If the functions are not available in the client libs i do:
> "BEGIN;ROLLBACK;"
>
> Does this sound the correct behavior?
>
> And would "select split_part(version(), ' ', 2);" be too much of a slowdown to
> do the version detection in the startup sequence completely correct?
>
>
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck@Yahoo.com #