From: PHP Bug Database <php-bugs@lists.php.net>
Date: Apr 20, 2005 1:13 AM
Subject: Bug #32774: stdin handling confusion in COPY
To: volkan.yazici@gmail.com
From: volkan dot yazici at gmail dot com
Operating system: Linux 2.6.11
PHP version: 5.0.3
PHP Bug Type: PostgreSQL related
Bug description: stdin handling confusion in COPY
Description:
------------
There seems to be a confusion in handling stdin between PostgreSQL and
PHP.
Reproduce code:
---------------
<?php
$conn = pg_connect("user=knt dbname=template1")
or die("Connection failed!\n");
print "Starting query...\n";
$res = pg_query("COPY example_table FROM stdin");
/*
* If I'd not use a pg_end_copy() call just after "COPY FROM
* stdin" query, script flow will never pass through this
* line and stuck here with a 100% CPU usage.
*/
if ( pg_result_status($res) != PGSQL_COPY_IN )
die("Unexpected result status!\n");
print "At last!\n";
pg_close();
?>
/*
* The same of this script
* [http://yazicivo.fateback.com/example-copy.txt] written
* in C (with same libpq calls) works fine.
*/
Expected result:
----------------
shell$ php example-copy.php
Starting query...
At last!
shell$ _
Actual result:
--------------
shell$ php example-copy.php
Starting query...
# It enters to an endless loop with a 100% CPU usage.