From: Ilia Alshanetsky Date: Tue, 4 Feb 2003 18:34:00 +0000 (+0000) Subject: Made the row parameter in pg_result_seek() non-optional, the current X-Git-Tag: RELEASE_0_5~1274 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a89a651a46b87f39e5e966db0561cd4e6810f836;p=php Made the row parameter in pg_result_seek() non-optional, the current implementation would result in random behavior if the 2nd argument is not passed. Fixed bug #22042 (pg_result_seek() would never seek to the 1st row in the result due to always seeking to row next to the one requested). Removed dead code from pg_result_seek(). --- diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index e916542f23..7b85f7df52 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -1437,23 +1437,18 @@ PHP_FUNCTION(pg_result_seek) int row; pgsql_result_handle *pg_result; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|l", - &result, &row) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &result, &row) == FAILURE) { return; } ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, &result, -1, "PostgreSQL result", le_result); - /* Let see if we are better to have another function for this */ - /* if offset is omitted, return current position */ -/* if (ZEND_NUM_ARGS() == 1) */ -/* RETURN_LONG(pg_result->row); */ - - if (row < 0 || row >= PQntuples(pg_result->result)) + if (row < 0 || row >= PQntuples(pg_result->result)) { RETURN_FALSE; + } /* seek to offset */ - pg_result->row = row; + pg_result->row = row - 1; RETURN_TRUE; } /* }}} */