]> granicus.if.org Git - php/commitdiff
- Fixed bug #61267: pdo_pgsql's PDO::exec() returns the number of SELECTed
authorGustavo André dos Santos Lopes <cataphract@php.net>
Thu, 8 Mar 2012 08:52:28 +0000 (08:52 +0000)
committerGustavo André dos Santos Lopes <cataphract@php.net>
Thu, 8 Mar 2012 08:52:28 +0000 (08:52 +0000)
  rows on postgresql >= 9

NEWS
ext/pdo_pgsql/pgsql_driver.c
ext/pdo_pgsql/tests/bug61267.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 2d1bafc51cbe4d305a71bd17d00371190bc74a4f..e87b7270b67c513ed9d30bf633193e5f6619af5b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,10 +2,6 @@ PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2012, PHP 5.3.11
 
-- Array:
-  . Fixed bug #52719 (array_walk_recursive crashes if third param of the
-    function is by reference). (Nikita Popov)
-
 - Core:
   . Fixed bug #61165 (Segfault - strip_tags()). (Laruence)
   . Improved max_input_vars directive to check nested variables (Dmitry).
@@ -25,6 +21,8 @@ PHP                                                                        NEWS
   . Fixed bug #60801 (strpbrk() mishandles NUL byte). (Adam)
   . Fixed bug #60227 (header() cannot detect the multi-line header with CR).
     (rui, Gustavo)
+  . Fixed bug #52719 (array_walk_recursive crashes if third param of the
+    function is by reference). (Nikita Popov)
   . Fixed bug #51860 (Include fails with toplevel symlink to /). (Dmitry)
 
 - Installation
@@ -45,8 +43,13 @@ PHP                                                                        NEWS
   . Fixed bug #61194 (PDO should export compression flag with myslqnd).
     (Johannes)
 
+- PDO_pgsql
+  . Fixed bug #61267 (pdo_pgsql's PDO::exec() returns the number of SELECTed
+    rows on postgresql >= 9). (ben dot pineau at gmail dot com)
+
 - Phar:
-  . Fixed bug #61184 (Phar::webPhar() generates headers with trailing NUL bytes). (Nikic)
+  . Fixed bug #61184 (Phar::webPhar() generates headers with trailing NUL
+    bytes). (Nikic)
 
 - PHP-FPM SAPI:
   . Fixed bug #60811 (php-fpm compilation problem). (rasmus)
index 8c7ff408a401ed74686ab723bb2a656d9b9b8e35..1b8e4789d81ab270cdb36825ce9e47089fe0e78b 100644 (file)
@@ -299,7 +299,7 @@ static long pgsql_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRM
                return -1;
        }
        H->pgoid = PQoidValue(res);
-       ret = atol(PQcmdTuples(res));
+       ret = (qs == PGRES_COMMAND_OK) ? atol(PQcmdTuples(res)) : 0L;
        PQclear(res);
 
        return ret;
diff --git a/ext/pdo_pgsql/tests/bug61267.phpt b/ext/pdo_pgsql/tests/bug61267.phpt
new file mode 100644 (file)
index 0000000..4214cd9
--- /dev/null
@@ -0,0 +1,22 @@
+--TEST--
+PDO::exec() returns 0 when the statement is a SELECT.
+--SKIPIF--
+<?php
+if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded');
+require_once dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
+require_once dirname(__FILE__) . '/config.inc';
+PDOTest::skip();
+?>
+--FILE--
+<?php
+require_once dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
+require_once dirname(__FILE__) . '/config.inc';
+$db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
+
+$res = $db->exec('SELECT * from generate_series(1, 42);');
+var_dump($res);
+echo "Done\n";
+?>
+--EXPECTF--
+int(0)
+Done