|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2016-08-05 09:20 UTC] yunosh@php.net
Description: ------------ Around ten days ago some change was implemented in the PDO_pgsql code that made some of our unit test starting to fail: https://travis-ci.org/horde/horde/jobs/148029445#L2160 Tests from July 26 succeeded, while they failed from July 28 on. Not sure how quick Travis is with updating the nightlies. Interestingly, the Horde_SessionHandler tests are the only test with PDO_pgsql support that fail. Yes, I know, you now want a small reproduceable test. But maybe we can further narrow down the possible changes in php-src so that I know where to start looking. Patchesbug72759.patch (last revision 2016-08-10 21:55 UTC by ab@php.net)Pull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Nov 06 22:00:01 2025 UTC |
Yes, I was able to trim this down today. It's about transactions. Commenting out the transaction statements in the following example makes the script work again: <?php $pdo = new PDO('pgsql:dbname=test', 'vagrant', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); $pdo->query('DROP TABLE IF EXISTS "horde_sessionhandler"'); $pdo->query('CREATE TABLE "horde_sessionhandler" ( "session_id" character varying(32) NOT NULL, "session_lastmodified" integer NOT NULL, "session_data" bytea, PRIMARY KEY("session_id") )'); $pdo->query('CREATE INDEX "index_horde_sessionhandler_on_session_lastmodified" ON "horde_sessionhandler" ("session_lastmodified")'); $pdo->beginTransaction(); $pdo->query('INSERT INTO "horde_sessionhandler" ("session_id", "session_data", "session_lastmodified") VALUES (\'sessionid\', E\'\\\\x73657373696f6e64617461\', 1470745222)'); var_dump($pdo->lastInsertId(null)); $pdo->commit(); $stmt = $pdo->query('SELECT * FROM "horde_sessionhandler"'); var_dump($stmt); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));