Re: cvs: php-src / NEWS /ext/pgsql pgsql.c php_pgsql.h
| From: | Christopher Kings-Lynne | Date: | Sun, 10 Jul 2005 09:07:30 +0000 |
| Subject: | Re: cvs: php-src / NEWS /ext/pgsql pgsql.c php_pgsql.h | ||
| References: | 1 2 3 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-32852@lists.php.net to get a copy of this message | ||
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 <chriskl@familyhealth.com.au> wrote:Docs? Ilia Alshanetsky wrote:iliaa Thu Jul 7 20:40:33 2005 EDT-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.phpModified 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