ID:               36681
 User updated by:  ce at netage dot bg
 Reported By:      ce at netage dot bg
 Status:           Verified
 Bug Type:         PDO related
 Operating System: Linux & Windows
 PHP Version:      5.1.2
 New Comment:

I tested it against 5.1.2. It looks to me as if it works! :-)


Previous Comments:
------------------------------------------------------------------------

[2006-04-09 08:24:42] [EMAIL PROTECTED]

My guess is that this patch will fix this issue, but I haven't tried
it:

Index: pgsql_driver.c
===================================================================
RCS file: /repository/php-src/ext/pdo_pgsql/pgsql_driver.c,v
retrieving revision 1.53.2.14
diff -u -p -r1.53.2.14 pgsql_driver.c
--- pgsql_driver.c      9 Apr 2006 08:17:50 -0000       1.53.2.14
+++ pgsql_driver.c      9 Apr 2006 08:23:52 -0000
@@ -470,6 +470,7 @@ static int pdo_pgsql_transaction_cmd(con

        if (PQresultStatus(res) != PGRES_COMMAND_OK) {
                ret = 0;
+               pdo_pgsql_error(dbh, PQresultStatus(res),
pdo_pgsql_sqlstate(res));
        }

        PQclear(res);



------------------------------------------------------------------------

[2006-03-10 17:52:04] [EMAIL PROTECTED]

I'm reproducing the bug on Windows XP with PHP 5.1.2.

------------------------------------------------------------------------

[2006-03-10 14:32:03] ce at netage dot bg

Description:
------------
When using deferred constraints in postgresql, the commit statement
doesn't raise exception on constraint violation

Reproduce code:
---------------
create table parent (id integer not null primary key);
create table child (parent integer not null references parent(id)
deferrable);

$dbh = new PDO('pgsql:dbname=test;host=localhost');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$dbh->beginTransaction();
$dbh->exec('SET CONSTRAINTS ALL DEFERRED');
$dbh->exec('insert into child VALUES (1)');
$dbh->commit();


Expected result:
----------------
PHP Fatal error:  Uncaught exception 'PDOException' with message
'SQLSTATE[23503]: Foreign key violation: 7 ERROR:  insert or update on
table "child" violates foreign key constraint "child_parent_fkey"


Actual result:
--------------
nothing


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=36681&edit=1

Reply via email to