From:             
Operating system: OSX, Linux, likely all
PHP version:      5.3.6
Package:          PDO related
Bug Type:         Bug
Bug description:The pdo_pgsql specific implementation of inTransaction doesn't 
work as expected

Description:
------------
PHP 5.3.3 supposedly brought PDO::inTransaction() with a special
implementation 

for PostgreSQL wich uses libpq's PQtransactionStatus instead of internal 

bookkeeping.



According to the test attached with the revision where this was added 

(is_in_transaction.phpt, revision 300351), inTransaction() is supposed to
return 

any of the PGSQL_TRANSACTION_* constants.



Unfortunately that's not the case and inTransaction(), even when used in 

conjunction with PostgreSQL only returns boolean and doesn't use the actual


transaction status of the connection but just returns true or false
depending on 

whether PDO::beginTransaction() has been called or not.



PHP's own test runner illustrates the problem, which is why I don't bother


adding an additional test script - the included is_in_transaction.phpt is 

enough:



http://gcov.php.net/viewer.php?

version=PHP_5_3&func=tests&file=ext%2Fpdo_pgsql%2Ftests%2Fis_in_transaction.phpt

Expected result:
----------------
When running the phpt file, I expect the following output:



Test PDO::PGSQL_TRANSACTION_INTRANS

int(2)

Test PDO::PGSQL_TRANSACTION_IDLE

int(0)

Test PDO::PGSQL_TRANSACTION_INERROR

int(3)

Test PDO::PGSQL_TRANSACTION_IDLE

int(0)



Actual result:
--------------
When running the phpt file, I (and PHP's webbased test runner) is getting





Test PDO::PGSQL_TRANSACTION_INTRANS

int(1)

Test PDO::PGSQL_TRANSACTION_IDLE

int(0)

Test PDO::PGSQL_TRANSACTION_INERROR

int(1)

Test PDO::PGSQL_TRANSACTION_IDLE

int(0)



-- 
Edit bug report at http://bugs.php.net/bug.php?id=54478&edit=1
-- 
Try a snapshot (PHP 5.2):            
http://bugs.php.net/fix.php?id=54478&r=trysnapshot52
Try a snapshot (PHP 5.3):            
http://bugs.php.net/fix.php?id=54478&r=trysnapshot53
Try a snapshot (trunk):              
http://bugs.php.net/fix.php?id=54478&r=trysnapshottrunk
Fixed in SVN:                        
http://bugs.php.net/fix.php?id=54478&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=54478&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=54478&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=54478&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=54478&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=54478&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=54478&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=54478&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=54478&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=54478&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=54478&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=54478&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=54478&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=54478&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=54478&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=54478&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=54478&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=54478&r=mysqlcfg

Reply via email to