abies           Fri Aug 15 20:58:24 2003 EDT

  Modified files:              
    /php-src/ext/interbase      interbase.c 
  Log:
  Added comment about ibase_num_rows()
  
Index: php-src/ext/interbase/interbase.c
diff -u php-src/ext/interbase/interbase.c:1.143 php-src/ext/interbase/interbase.c:1.144
--- php-src/ext/interbase/interbase.c:1.143     Fri Aug 15 12:13:51 2003
+++ php-src/ext/interbase/interbase.c   Fri Aug 15 20:58:24 2003
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: interbase.c,v 1.143 2003/08/15 16:13:51 abies Exp $ */
+/* $Id: interbase.c,v 1.144 2003/08/16 00:58:24 abies Exp $ */
 
 /*
        Changes:
@@ -727,7 +727,7 @@
 
        php_info_print_table_start();
        php_info_print_table_row(2, "Interbase Support", "enabled");
-       php_info_print_table_row(2, "Revision", "$Revision: 1.143 $");
+       php_info_print_table_row(2, "Revision", "$Revision: 1.144 $");
 #ifdef COMPILE_DL_INTERBASE
        php_info_print_table_row(2, "Dynamic Module", "Yes");
 #endif
@@ -2248,20 +2248,30 @@
 }
 /* }}} */
 
-/* {{{ proto ibase_num_rows( resource result_identifier )
-   Returns the number of rows in a result */
+/* {{{ ibase_num_rows( resource result_identifier ) */
 PHP_FUNCTION(ibase_num_rows) 
 {
        /**
-        * This function relies on the InterBase API function isc_dsql_sql_info()
-        * which has a couple of limitations (which I hope will be fixed in
-        * future releases of Firebird):
-        * - row count is always zero before the first fetch;
-        * - row count for SELECT ... FOR UPDATE is broken -> never returns a
-        *   higher number than the number of records fetched so far;
-        * - row count for other statements is merely a lower bound on the number
-        *   of records => calling ibase_num_rows() again after a couple of fetches
-        *   will most likely return a new (higher) figure for large result sets.
+        * PLEASE READ THIS FIRST before adding this function to the main PHP
+        * documentation:
+        * 
+        * As this function relies on the InterBase API function isc_dsql_sql_info()
+        * which has a couple of limitations (which I hope will be fixed in future 
+        * releases of Firebird), this function is fairly useless. I'm leaving it
+        * in place for people who can live with the limitations, which I only 
+        * found out about after I had implemented it anyway.
+        *
+        * Currently, there's no way to determine how many rows can be fetched from
+        * a cursor. The only number that _can_ be determined is the number of rows
+        * that have already been pre-fetched by the client library. 
+        * This implies the following:
+        * - num_rows() always returns zero before the first fetch;
+        * - num_rows() for SELECT ... FOR UPDATE is broken -> never returns a
+        *   higher number than the number of records fetched so far (no pre-fetch);
+        * - the result of num_rows() for other statements is merely a lower bound 
+        * on the number of records => calling ibase_num_rows() again after a couple
+        * of fetches will most likely return a new (higher) figure for large result 
+        * sets.
         *
         * 12-aug-2003 Ard Biesheuvel
         */
@@ -4088,7 +4098,7 @@
        zend_list_addref(Z_LVAL_P(return_value));
 }
 
-/* {{{ proto bool ibase_free_vevent_handler(resource event)
+/* {{{ proto bool ibase_free_event_handler(resource event)
    Frees the event handler set by ibase_set_event_handler() */
 PHP_FUNCTION(ibase_free_event_handler)
 {



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

Reply via email to