summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2003-02-04 18:34:00 +0000
committerIlia Alshanetsky <iliaa@php.net>2003-02-04 18:34:00 +0000
commita89a651a46b87f39e5e966db0561cd4e6810f836 (patch)
treeb0ab5ed4f1ddb0222dac3c754449e5627855c1a5
parente1179a4d40c9ddd99eda788ac0cf9c8a3dda84c1 (diff)
downloadphp-git-a89a651a46b87f39e5e966db0561cd4e6810f836.tar.gz
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().
-rw-r--r--ext/pgsql/pgsql.c13
1 files changed, 4 insertions, 9 deletions
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;
}
/* }}} */