Done. Dunno if i have to put new files anywhere else other than just added them....

Surely it should be the function writer's job to document what they add?

This function should probably also be called 'pg_fetch_column' to be consistent.

Chris


Antony Dovgal wrote:
Send a patch to the docs list?

On Fri, 08 Jul 2005 15:48:38 +0800
Christopher Kings-Lynne <[EMAIL PROTECTED]> wrote:


Docs?

Ilia Alshanetsky wrote:

iliaa           Thu Jul  7 20:40:33 2005 EDT

Modified files: /php-src NEWS /php-src/ext/pgsql pgsql.c php_pgsql.h Log:
 Added pg_fetch_all_columns() function to fetch all values of a column from
 a result cursor.
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1987&r2=1.1988&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1987 php-src/NEWS:1.1988
--- php-src/NEWS:1.1987 Thu Jul  7 12:07:08 2005
+++ php-src/NEWS        Thu Jul  7 20:40:32 2005
@@ -5,6 +5,8 @@
- Added PDO_MYSQL_ATTR_USE_BUFFERED_QUERY parameter for pdo_mysql. (Ilia)
- Added date_timezone_set() function to set the timezone that the date
  functions will use. (Derick)
+- Added pg_fetch_all_columns() function to fetch all values of a column from
+  a result cursor. (Ilia)
- Implemented feature request #33452 (Year belonging to ISO week). (Derick)
- Fixed support for shared extensions on AIX. (Dmitry)
- Fixed memory corruption in pg_copy_from() in case the as_null parameter was
http://cvs.php.net/diff.php/php-src/ext/pgsql/pgsql.c?r1=1.329&r2=1.330&ty=u
Index: php-src/ext/pgsql/pgsql.c
diff -u php-src/ext/pgsql/pgsql.c:1.329 php-src/ext/pgsql/pgsql.c:1.330
--- php-src/ext/pgsql/pgsql.c:1.329     Tue Jul  5 10:49:22 2005
+++ php-src/ext/pgsql/pgsql.c   Thu Jul  7 20:40:32 2005
@@ -20,7 +20,7 @@
   +----------------------------------------------------------------------+
 */
-/* $Id: pgsql.c,v 1.329 2005/07/05 14:49:22 edink Exp $ */
+/* $Id: pgsql.c,v 1.330 2005/07/08 00:40:32 iliaa Exp $ */

#include <stdlib.h>

@@ -127,6 +127,7 @@
        PHP_FE(pg_fetch_array,  NULL)
        PHP_FE(pg_fetch_object, NULL)
        PHP_FE(pg_fetch_all,    NULL)
+       PHP_FE(pg_fetch_all_columns,    NULL)
#if HAVE_PQCMDTUPLES
        PHP_FE(pg_affected_rows,NULL)
#endif
@@ -2101,6 +2102,47 @@
}
/* }}} */

+/* {{{ proto array pg_fetch_all_columns(resource result [, int column_number])
+   Fetch all rows into array */
+PHP_FUNCTION(pg_fetch_all_columns)
+{
+       zval *result;
+       PGresult *pgsql_result;
+       pgsql_result_handle *pg_result;
+       long colno=0;
+       int pg_numrows, pg_row;
+       size_t num_fields;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &result, 
&colno) == FAILURE) {
+               RETURN_FALSE;
+       }
+
+       ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, &result, -1, 
"PostgreSQL result", le_result);
+
+       pgsql_result = pg_result->result;
+
+       num_fields = PQnfields(pgsql_result);
+       if (colno >= num_fields || colno < 0) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid column number 
'%ld'", colno);
+               RETURN_FALSE;
+       }
+
+       array_init(return_value);
+
+        if ((pg_numrows = PQntuples(pgsql_result)) <= 0) {
+               return;
+       }
+
+       for (pg_row = 0; pg_row < pg_numrows; pg_row++) {
+               if (PQgetisnull(pgsql_result, pg_row, colno)) {
+                       add_next_index_null(return_value);
+               } else {
+ add_next_index_string(return_value, PQgetvalue(pgsql_result, pg_row, colno), 1); + }
+       }
+}
+/* }}} */
+
/* {{{ proto bool pg_result_seek(resource result, int offset)
   Set internal row offset */
PHP_FUNCTION(pg_result_seek)
http://cvs.php.net/diff.php/php-src/ext/pgsql/php_pgsql.h?r1=1.71&r2=1.72&ty=u
Index: php-src/ext/pgsql/php_pgsql.h
diff -u php-src/ext/pgsql/php_pgsql.h:1.71 php-src/ext/pgsql/php_pgsql.h:1.72
--- php-src/ext/pgsql/php_pgsql.h:1.71  Wed Apr 13 17:48:33 2005
+++ php-src/ext/pgsql/php_pgsql.h       Thu Jul  7 20:40:32 2005
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
-/* $Id: php_pgsql.h,v 1.71 2005/04/13 21:48:33 derick Exp $ */
+/* $Id: php_pgsql.h,v 1.72 2005/07/08 00:40:32 iliaa Exp $ */

#ifndef PHP_PGSQL_H
#define PHP_PGSQL_H
@@ -107,6 +107,7 @@
PHP_FUNCTION(pg_fetch_result);
PHP_FUNCTION(pg_fetch_row);
PHP_FUNCTION(pg_fetch_all);
+PHP_FUNCTION(pg_fetch_all_columns);
#if HAVE_PQCMDTUPLES
PHP_FUNCTION(pg_affected_rows);
#endif


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php






--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to