iliaa Tue Feb 4 13:34:01 2003 EDT
Modified files:
/php4/ext/pgsql pgsql.c
Log:
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().
Index: php4/ext/pgsql/pgsql.c
diff -u php4/ext/pgsql/pgsql.c:1.257 php4/ext/pgsql/pgsql.c:1.258
--- php4/ext/pgsql/pgsql.c:1.257 Sat Jan 18 14:28:08 2003
+++ php4/ext/pgsql/pgsql.c Tue Feb 4 13:34:00 2003
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pgsql.c,v 1.257 2003/01/18 19:28:08 iliaa Exp $ */
+/* $Id: pgsql.c,v 1.258 2003/02/04 18:34:00 iliaa Exp $ */
#include <stdlib.h>
@@ -1437,23 +1437,18 @@
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;
}
/* }}} */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php