sniper          Mon Jul 14 12:13:30 2003 EDT

  Modified files:              (Branch: PHP_4_3)
    /php-src/ext/odbc   birdstep.c config.m4 php_birdstep.h php_odbc.c 
                        php_odbc.h php_odbc_includes.h 
  Log:
  - Sync with HEAD. (php_error -> php_error_docref, proto fixes, code cleanup)
  
  
Index: php-src/ext/odbc/birdstep.c
diff -u php-src/ext/odbc/birdstep.c:1.3.4.1 php-src/ext/odbc/birdstep.c:1.3.4.2
--- php-src/ext/odbc/birdstep.c:1.3.4.1 Tue Dec 31 11:35:04 2002
+++ php-src/ext/odbc/birdstep.c Mon Jul 14 12:13:30 2003
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: birdstep.c,v 1.3.4.1 2002/12/31 16:35:04 sebastian Exp $ */
+/* $Id: birdstep.c,v 1.3.4.2 2003/07/14 16:13:30 sniper Exp $ */
 
 /*
  * TODO:
@@ -103,6 +103,10 @@
 THREAD_LS birdstep_module php_birdstep_module;
 THREAD_LS static HENV henv;
 
+#define PHP_GET_BIRDSTEP_RES_IDX(id) convert_to_long_ex(id); if (!(res = 
birdstep_find_result(list, Z_LVAL_PP(id)))) { php_error_docref(NULL TSRMLS_CC, 
E_WARNING, "Birdstep: Not result index (%d)", Z_LVAL_PP(id)); RETURN_FALSE; } 
+#define PHP_BIRDSTEP_CHK_LNK(id) convert_to_long_ex(id); if (!(conn = 
birdstep_find_conn(list,Z_LVAL_PP(id)))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, 
"Birdstep: Not connection index (%d)", Z_LVAL_PP(id)); RETURN_FALSE; }
+                                                        
+
 static void _close_birdstep_link(zend_rsrc_list_entry *rsrc TSRMLS_DC)
 {
        VConn *conn = (VConn *)rsrc->ptr;
@@ -222,11 +226,11 @@
 
 /* Users functions */
 
-/* {{{ proto int birdstep_connect(string server, string user, sting pass)
+/* {{{ proto int birdstep_connect(string server, string user, string pass)
  */
 PHP_FUNCTION(birdstep_connect)
 {
-       pval *serv,*user,*pass;
+       zval **serv,**user,**pass;
        char *Serv = NULL;
        char *User = NULL;
        char *Pass = NULL;
@@ -236,35 +240,30 @@
        long ind;
 
        if ( php_birdstep_module.max_links != -1 && php_birdstep_module.num_links == 
php_birdstep_module.max_links ) {
-               php_error(E_WARNING,"Birdstep: Too many open connections 
(%d)",php_birdstep_module.num_links);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: Too many open 
connections (%d)",php_birdstep_module.num_links);
                RETURN_FALSE;
        }
-       if (ZEND_NUM_ARGS() != 3 || getParameters(ht,3,&serv,&user,&pass) == FAILURE ) 
{
+       if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &serv, &user, &pass) == 
FAILURE ) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_string(serv);
-       convert_to_string(user);
-       convert_to_string(pass);
-       Serv = Z_STRVAL_P(serv);
-       User = Z_STRVAL_P(user);
-       Pass = Z_STRVAL_P(pass);
+       convert_to_string_ex(serv);
+       convert_to_string_ex(user);
+       convert_to_string_ex(pass);
+       Serv = Z_STRVAL_PP(serv);
+       User = Z_STRVAL_PP(user);
+       Pass = Z_STRVAL_PP(pass);
        stat = SQLAllocConnect(henv,&hdbc);
        if ( stat != SQL_SUCCESS ) {
-               php_error(E_WARNING,"Birdstep: Could not allocate connection handle");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: Could not 
allocate connection handle");
                RETURN_FALSE;
        }
        stat = SQLConnect(hdbc,Serv,SQL_NTS,User,SQL_NTS,Pass,SQL_NTS);
        if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) {
-               php_error(E_WARNING,"Birdstep: Could not connect to server \"%s\" for 
%s",Serv,User);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: Could not 
connect to server \"%s\" for %s",Serv,User);
                SQLFreeConnect(hdbc);
                RETURN_FALSE;
        }
        new = (VConn *)emalloc(sizeof(VConn));
-       if ( new == NULL ) {
-               php_error(E_WARNING,"Birdstep: Out of memory for store connection");
-               SQLFreeConnect(hdbc);
-               RETURN_FALSE;
-       }
        ind = birdstep_add_conn(list,new,hdbc);
        php_birdstep_module.num_links++;
        RETURN_LONG(ind);
@@ -275,21 +274,17 @@
  */
 PHP_FUNCTION(birdstep_close)
 {
-       pval *id;
+       zval **id;
        VConn *conn;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht,1,&id) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(id);
-       conn = birdstep_find_conn(list,Z_LVAL_P(id));
-       if ( !conn ) {
-               php_error(E_WARNING,"Birdstep: Not connection index 
(%d)",Z_LVAL_P(id));
-               RETURN_FALSE;
-       }
+       PHP_BIRDSTEP_CHK_LNK(id);
+
        SQLDisconnect(conn->hdbc);
        SQLFreeConnect(conn->hdbc);
-       birdstep_del_conn(list,Z_LVAL_P(id));
+       birdstep_del_conn(list,Z_LVAL_PP(id));
        php_birdstep_module.num_links--;
        RETURN_TRUE;
 }
@@ -299,7 +294,7 @@
  */
 PHP_FUNCTION(birdstep_exec)
 {
-       pval *ind,*exec_str;
+       zval **ind, **exec_str;
        char *query = NULL;
        int indx;
        VConn *conn;
@@ -308,32 +303,24 @@
        SWORD cols,i,colnamelen;
        SDWORD rows,coldesc;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht,2,&ind,&exec_str) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &ind, &exec_str) == 
FAILURE) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(ind);
-       conn = birdstep_find_conn(list,Z_LVAL_P(ind));
-       if ( !conn ) {
-               php_error(E_WARNING,"Birdstep: Not connection index 
(%d)",Z_LVAL_P(ind));
-               RETURN_FALSE;
-       }
-       convert_to_string(exec_str);
-       query = Z_STRVAL_P(exec_str);
+       PHP_BIRDSTEP_CHK_LNK(ind);
+
+       convert_to_string_ex(exec_str);
+       query = Z_STRVAL_PP(exec_str);
 
        res = (Vresult *)emalloc(sizeof(Vresult));
-       if ( res == NULL ) {
-               php_error(E_WARNING,"Birdstep: Out of memory for result");
-               RETURN_FALSE;
-       }
        stat = SQLAllocStmt(conn->hdbc,&res->hstmt);
        if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) {
-               php_error(E_WARNING,"Birdstep: SQLAllocStmt return %d",stat);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: SQLAllocStmt 
return %d",stat);
                efree(res);
                RETURN_FALSE;
        }
        stat = SQLExecDirect(res->hstmt,query,SQL_NTS);
        if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) {
-               php_error(E_WARNING,"Birdstep: Can not execute \"%s\" query",query);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: Can not execute 
\"%s\" query",query);
                SQLFreeStmt(res->hstmt,SQL_DROP);
                efree(res);
                RETURN_FALSE;
@@ -341,7 +328,7 @@
        /* Success query */
        stat = SQLNumResultCols(res->hstmt,&cols);
        if ( stat != SQL_SUCCESS ) {
-               php_error(E_WARNING,"Birdstep: SQLNumResultCols return %d",stat);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: 
SQLNumResultCols return %d",stat);
                SQLFreeStmt(res->hstmt,SQL_DROP);
                efree(res);
                RETURN_FALSE;
@@ -349,7 +336,7 @@
        if ( !cols ) { /* Was INSERT, UPDATE, DELETE, etc. query */
                stat = SQLRowCount(res->hstmt,&rows);
                if ( stat != SQL_SUCCESS ) {
-                       php_error(E_WARNING,"Birdstep: SQLNumResultCols return 
%d",stat);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: 
SQLNumResultCols return %d",stat);
                        SQLFreeStmt(res->hstmt,SQL_DROP);
                        efree(res);
                        RETURN_FALSE;
@@ -359,12 +346,6 @@
                RETURN_LONG(rows);
        } else {  /* Was SELECT query */
                res->values = (VResVal *)emalloc(sizeof(VResVal)*cols);
-               if ( res->values == NULL ) {
-                       php_error(E_WARNING,"Birdstep: Out of memory for result 
columns");
-                       SQLFreeStmt(res->hstmt,SQL_DROP);
-                       efree(res);
-                       RETURN_FALSE;
-               }
                res->numcols = cols;
                for ( i = 0; i < cols; i++ ) {
                        SQLColAttributes(res->hstmt,i+1,SQL_COLUMN_NAME,
@@ -383,11 +364,7 @@
                        SQLColAttributes(res->hstmt,i+1,SQL_COLUMN_DISPLAY_SIZE,
                           NULL,0,NULL,&coldesc);
                        res->values[i].value = (char *)emalloc(coldesc+1);
-                       if ( res->values[i].value != NULL ) {
-                               SQLBindCol(res->hstmt,i+1,SQL_C_CHAR,
-                                  res->values[i].value,coldesc+1,
-                                  &res->values[i].vallen);
-                       }
+                       SQLBindCol(res->hstmt,i+1,SQL_C_CHAR, 
res->values[i].value,coldesc+1, &res->values[i].vallen);
                }
        }
        res->fetched = 0;
@@ -400,31 +377,27 @@
  */
 PHP_FUNCTION(birdstep_fetch)
 {
-       pval *ind;
+       zval **ind;
        Vresult *res;
        RETCODE stat;
        UDWORD  row;
        UWORD   RowStat[1];
 
-       if ( ZEND_NUM_ARGS() != 1 || getParameters(ht,1,&ind) == FAILURE ) {
+       if ( ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &ind) == FAILURE ) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(ind);
-       res = birdstep_find_result(list,Z_LVAL_P(ind));
-       if ( !res ) {
-               php_error(E_WARNING,"Birdstep: Not result index (%d)",Z_LVAL_P(ind));
-               RETURN_FALSE;
-       }
+       PHP_GET_BIRDSTEP_RES_IDX(ind);
+
        stat = SQLExtendedFetch(res->hstmt,SQL_FETCH_NEXT,1,&row,RowStat);
        if ( stat == SQL_NO_DATA_FOUND ) {
                SQLFreeStmt(res->hstmt,SQL_DROP);
-               birdstep_del_result(list,Z_LVAL_P(ind));
+               birdstep_del_result(list,Z_LVAL_PP(ind));
                RETURN_FALSE;
        }
        if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) {
-               php_error(E_WARNING,"Birdstep: SQLFetch return error");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: SQLFetch return 
error");
                SQLFreeStmt(res->hstmt,SQL_DROP);
-               birdstep_del_result(list,Z_LVAL_P(ind));
+               birdstep_del_result(list,Z_LVAL_PP(ind));
                RETURN_FALSE;
        }
        res->fetched = 1;
@@ -436,7 +409,7 @@
  */
 PHP_FUNCTION(birdstep_result)
 {
-       pval *ind,*col;
+       zval **ind, **col;
        Vresult *res;
        RETCODE stat;
        int i,sql_c_type;
@@ -445,20 +418,16 @@
        SWORD indx = -1;
        char *field = NULL;
 
-       if ( ZEND_NUM_ARGS() != 2 || getParameters(ht,2,&ind,&col) == FAILURE ) {
+       if ( ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &ind, &col) == FAILURE 
) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(ind);
-       res = birdstep_find_result(list,Z_LVAL_P(ind));
-       if ( !res ) {
-               php_error(E_WARNING,"Birdstep: Not result index (%d),Z_LVAL_P(ind)");
-               RETURN_FALSE;
-       }
-       if ( Z_TYPE_P(col) == IS_STRING ) {
-               field = Z_STRVAL_P(col);
+       PHP_GET_BIRDSTEP_RES_IDX(ind);
+
+       if ( Z_TYPE_PP(col) == IS_STRING ) {
+               field = Z_STRVAL_PP(col);
        } else {
-               convert_to_long(col);
-               indx = Z_LVAL_P(col);
+               convert_to_long_ex(col);
+               indx = Z_LVAL_PP(col);
        }
        if ( field ) {
                for ( i = 0; i < res->numcols; i++ ) {
@@ -468,12 +437,12 @@
                        }
                }
                if ( indx < 0 ) {
-                       php_error(E_WARNING, "Field %s not found",field);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING,  "Field %s not 
found",field);
                        RETURN_FALSE;
                }
        } else {
                if ( indx < 0 || indx >= res->numcols ) {
-                       php_error(E_WARNING,"Birdstep: Field index not in range");
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: Field 
index not in range");
                        RETURN_FALSE;
                }
        }
@@ -481,13 +450,13 @@
                stat = SQLExtendedFetch(res->hstmt,SQL_FETCH_NEXT,1,&row,RowStat);
                if ( stat == SQL_NO_DATA_FOUND ) {
                        SQLFreeStmt(res->hstmt,SQL_DROP);
-                       birdstep_del_result(list,Z_LVAL_P(ind));
+                       birdstep_del_result(list,Z_LVAL_PP(ind));
                        RETURN_FALSE;
                }
                if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) {
-                       php_error(E_WARNING,"Birdstep: SQLFetch return error");
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: 
SQLFetch return error");
                        SQLFreeStmt(res->hstmt,SQL_DROP);
-                       birdstep_del_result(list,Z_LVAL_P(ind));
+                       birdstep_del_result(list,Z_LVAL_PP(ind));
                        RETURN_FALSE;
                }
                res->fetched = 1;
@@ -501,22 +470,18 @@
 l1:
                        if ( !res->values[indx].value ) {
                                res->values[indx].value = emalloc(4096);
-                               if ( !res->values[indx].value ) {
-                                       php_error(E_WARNING,"Out of memory");
-                                       RETURN_FALSE;
-                               }
                        }
                        stat = SQLGetData(res->hstmt,indx+1,sql_c_type,
                                
res->values[indx].value,4095,&res->values[indx].vallen);
                        if ( stat == SQL_NO_DATA_FOUND ) {
                                SQLFreeStmt(res->hstmt,SQL_DROP);
-                               birdstep_del_result(list,Z_LVAL_P(ind));
+                               birdstep_del_result(list,Z_LVAL_PP(ind));
                                RETURN_FALSE;
                        }
                        if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) {
-                               php_error(E_WARNING,"Birdstep: SQLGetData return 
error");
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: 
SQLGetData return error");
                                SQLFreeStmt(res->hstmt,SQL_DROP);
-                               birdstep_del_result(list,Z_LVAL_P(ind));
+                               birdstep_del_result(list,Z_LVAL_PP(ind));
                                RETURN_FALSE;
                        }
                        if ( res->values[indx].valtype == SQL_LONGVARCHAR ) {
@@ -536,20 +501,16 @@
  */
 PHP_FUNCTION(birdstep_freeresult)
 {
-       pval *ind;
+       zval **ind;
        Vresult *res;
 
-       if ( ZEND_NUM_ARGS() != 1 || getParameters(ht,1,&ind) == FAILURE ) {
+       if ( ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &ind) == FAILURE ) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(ind);
-       res = birdstep_find_result(list,Z_LVAL_P(ind));
-       if ( !res ) {
-               php_error(E_WARNING,"Birdstep: Not result index (%d)",Z_LVAL_P(ind));
-               RETURN_FALSE;
-       }
+       PHP_GET_BIRDSTEP_RES_IDX(ind);
+
        SQLFreeStmt(res->hstmt,SQL_DROP);
-       birdstep_del_result(list,Z_LVAL_P(ind));
+       birdstep_del_result(list,Z_LVAL_PP(ind));
        RETURN_TRUE;
 }
 /* }}} */
@@ -558,22 +519,18 @@
  */
 PHP_FUNCTION(birdstep_autocommit)
 {
-       pval *id;
+       zval **id;
        RETCODE stat;
        VConn *conn;
 
-       if ( ZEND_NUM_ARGS() != 1 || getParameters(ht,1,&id) == FAILURE ) {
+       if ( ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE ) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(id);
-       conn = birdstep_find_conn(list,Z_LVAL_P(id));
-       if ( !conn ) {
-               php_error(E_WARNING,"Birdstep: Not connection index 
(%d)",Z_LVAL_P(id));
-               RETURN_FALSE;
-       }
+       PHP_BIRDSTEP_CHK_LNK(id);
+
        stat = SQLSetConnectOption(conn->hdbc,SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_ON);
        if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) {
-               php_error(E_WARNING,"Birdstep: Set autocommit_on option failure");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: Set 
autocommit_on option failure");
                RETURN_FALSE;
        }
        RETURN_TRUE;
@@ -584,22 +541,18 @@
  */
 PHP_FUNCTION(birdstep_off_autocommit)
 {
-       pval *id;
+       zval **id;
        RETCODE stat;
        VConn *conn;
 
-       if ( ZEND_NUM_ARGS() != 1 || getParameters(ht,1,&id) == FAILURE ) {
+       if ( ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE ) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(id);
-       conn = birdstep_find_conn(list,Z_LVAL_P(id));
-       if ( !conn ) {
-               php_error(E_WARNING,"Birdstep: Not connection index 
(%d)",Z_LVAL_P(id));
-               RETURN_FALSE;
-       }
+       PHP_BIRDSTEP_CHK_LNK(id);
+
        stat = SQLSetConnectOption(conn->hdbc,SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF);
        if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) {
-               php_error(E_WARNING,"Birdstep: Set autocommit_off option failure");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: Set 
autocommit_off option failure");
                RETURN_FALSE;
        }
        RETURN_TRUE;
@@ -610,22 +563,18 @@
  */
 PHP_FUNCTION(birdstep_commit)
 {
-       pval *id;
+       zval **id;
        RETCODE stat;
        VConn *conn;
 
-       if ( ZEND_NUM_ARGS() != 1 || getParameters(ht,1,&id) == FAILURE ) {
+       if ( ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE ) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(id);
-       conn = birdstep_find_conn(list,Z_LVAL_P(id));
-       if ( !conn ) {
-               php_error(E_WARNING,"Birdstep: Not connection index 
(%d)",Z_LVAL_P(id));
-               RETURN_FALSE;
-       }
+       PHP_BIRDSTEP_CHK_LNK(id)
+
        stat = SQLTransact(NULL,conn->hdbc,SQL_COMMIT);
        if ( stat != SQL_SUCCESS ) {
-               php_error(E_WARNING,"Birdstep: Commit failure");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: Commit 
failure");
                RETURN_FALSE;
        }
        RETURN_TRUE;
@@ -636,22 +585,18 @@
  */
 PHP_FUNCTION(birdstep_rollback)
 {
-       pval *id;
+       zval **id;
        RETCODE stat;
        VConn *conn;
 
-       if ( ZEND_NUM_ARGS() != 1 || getParameters(ht,1,&id) == FAILURE ) {
+       if ( ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE ) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(id);
-       conn = birdstep_find_conn(list,Z_LVAL_P(id));
-       if ( !conn ) {
-               php_error(E_WARNING,"Birdstep: Not connection index 
(%d)",Z_LVAL_P(id));
-               RETURN_FALSE;
-       }
+       PHP_BIRDSTEP_CHK_LNK(id);
+
        stat = SQLTransact(NULL,conn->hdbc,SQL_ROLLBACK);
        if ( stat != SQL_SUCCESS ) {
-               php_error(E_WARNING,"Birdstep: Rollback failure");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: Rollback 
failure");
                RETURN_FALSE;
        }
        RETURN_TRUE;
@@ -662,23 +607,19 @@
  */
 PHP_FUNCTION(birdstep_fieldname)
 {
-       pval *ind,*col;
+       zval **ind, **col;
        Vresult *res;
        SWORD indx;
 
-       if ( ZEND_NUM_ARGS() != 2 || getParameters(ht,2,&ind,&col) == FAILURE ) {
+       if ( ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &ind, &col) == FAILURE 
) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(ind);
-       res = birdstep_find_result(list,Z_LVAL_P(ind));
-       if ( !res ) {
-               php_error(E_WARNING,"Birdstep: Not result index (%d),Z_LVAL_P(ind)");
-               RETURN_FALSE;
-       }
-       convert_to_long(col);
-       indx = Z_LVAL_P(col);
+       PHP_GET_BIRDSTEP_RES_IDX(ind);
+
+       convert_to_long_ex(col);
+       indx = Z_LVAL_PP(col);
        if ( indx < 0 || indx >= res->numcols ) {
-               php_error(E_WARNING,"Birdstep: Field index not in range");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Birdstep: Field index not 
in range");
                RETURN_FALSE;
        }
        RETURN_STRING(res->values[indx].name,TRUE);
@@ -689,18 +630,14 @@
  */
 PHP_FUNCTION(birdstep_fieldnum)
 {
-       pval *ind;
+       zval **ind;
        Vresult *res;
 
-       if ( ZEND_NUM_ARGS() != 1 || getParameters(ht,1,&ind) == FAILURE ) {
+       if ( ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &ind) == FAILURE ) {
                WRONG_PARAM_COUNT;
        }
-       convert_to_long(ind);
-       res = birdstep_find_result(list,Z_LVAL_P(ind));
-       if ( !res ) {
-               php_error(E_WARNING,"Birdstep: Not result index (%d),Z_LVAL_P(ind)");
-               RETURN_FALSE;
-       }
+       PHP_GET_BIRDSTEP_RES_IDX(ind);
+
        RETURN_LONG(res->numcols);
 }
 /* }}} */
Index: php-src/ext/odbc/config.m4
diff -u php-src/ext/odbc/config.m4:1.55.2.4 php-src/ext/odbc/config.m4:1.55.2.5
--- php-src/ext/odbc/config.m4:1.55.2.4 Thu May  1 20:40:35 2003
+++ php-src/ext/odbc/config.m4  Mon Jul 14 12:13:30 2003
@@ -1,5 +1,5 @@
 dnl
-dnl $Id: config.m4,v 1.55.2.4 2003/05/02 00:40:35 sniper Exp $
+dnl $Id: config.m4,v 1.55.2.5 2003/07/14 16:13:30 sniper Exp $
 dnl
 
 dnl
@@ -373,6 +373,7 @@
     ODBC_LFLAGS=-L$withval/lib
     ODBC_LIBS=-liodbc
     AC_DEFINE(HAVE_IODBC,1,[ ])
+    AC_DEFINE(HAVE_ODBC2,1,[ ])
     AC_MSG_RESULT(yes)
   else
     AC_MSG_RESULT(no)
@@ -429,38 +430,6 @@
     ODBC_TYPE=unixODBC
     AC_DEFINE(HAVE_UNIXODBC,1,[ ])
     AC_MSG_RESULT(yes)
-  else
-    AC_MSG_RESULT(no)
-  fi
-],[
-  AC_MSG_RESULT(no)
-])
-fi
-
-if test -z "$ODBC_TYPE"; then
-AC_MSG_CHECKING(for OpenLink ODBC support)
-AC_ARG_WITH(openlink,
-[  --with-openlink[=DIR]   Include OpenLink ODBC support.  DIR is the
-                          OpenLink base install directory, defaults to
-                          /usr/local.  This is the same as iODBC.],
-[
-  PHP_WITH_SHARED
-  if test "$withval" = "yes"; then
-    withval=/usr/local
-  fi
-  if test "$withval" != "no"; then
-    PHP_ADD_LIBRARY_WITH_PATH(iodbc, $withval/lib)
-    PHP_ADD_INCLUDE($withval/include, 1)
-    ODBC_TYPE=iodbc
-    ODBC_INCLUDE=-I$withval/include
-    ODBC_LFLAGS=-L$withval/lib
-    ODBC_LIBS=-liodbc
-    AC_DEFINE(HAVE_IODBC,1,[ ])
-    AC_MSG_RESULT(yes)
-    echo "****************************************************************"
-    echo "  --with-openlink will not be valid in future releases.  Please "
-    echo " update your configure script to use --with-iodbc instead.      "
-    echo "****************************************************************"
   else
     AC_MSG_RESULT(no)
   fi
Index: php-src/ext/odbc/php_birdstep.h
diff -u php-src/ext/odbc/php_birdstep.h:1.1.8.1 php-src/ext/odbc/php_birdstep.h:1.1.8.2
--- php-src/ext/odbc/php_birdstep.h:1.1.8.1     Tue Dec 31 11:35:04 2002
+++ php-src/ext/odbc/php_birdstep.h     Mon Jul 14 12:13:30 2003
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_birdstep.h,v 1.1.8.1 2002/12/31 16:35:04 sebastian Exp $ */
+/* $Id: php_birdstep.h,v 1.1.8.2 2003/07/14 16:13:30 sniper Exp $ */
 
 #ifndef PHP_BIRDSTEP_H
 #define PHP_BIRDSTEP_H
Index: php-src/ext/odbc/php_odbc.c
diff -u php-src/ext/odbc/php_odbc.c:1.143.2.12 php-src/ext/odbc/php_odbc.c:1.143.2.13
--- php-src/ext/odbc/php_odbc.c:1.143.2.12      Fri Jun 13 23:37:30 2003
+++ php-src/ext/odbc/php_odbc.c Mon Jul 14 12:13:30 2003
@@ -12,7 +12,7 @@
    | obtain it through the world-wide-web, please send a note to          |
    | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
-   | Authors: Stig Sæther Bakken <[EMAIL PROTECTED]>                            |
+   | Authors: Stig Sæther Bakken <[EMAIL PROTECTED]>                            |
    |          Andreas Karajannis <[EMAIL PROTECTED]>              |
    |          Frank M. Kromann <[EMAIL PROTECTED]>  Support for DB/2 CLI |
    |          Kevin N. Shallow <[EMAIL PROTECTED]> Birdstep Support|
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_odbc.c,v 1.143.2.12 2003/06/14 03:37:30 fmk Exp $ */
+/* $Id: php_odbc.c,v 1.143.2.13 2003/07/14 16:13:30 sniper Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -590,9 +590,9 @@
        memcpy(ODBCG(laststate), state, sizeof(state));
        memcpy(ODBCG(lasterrormsg), errormsg, sizeof(errormsg));
        if (func) {
-               php_error(E_WARNING, "SQL error: %s, SQL state %s in %s", errormsg, 
state, func);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "SQL error: %s, SQL state 
%s in %s", errormsg, state, func);
        } else {
-               php_error(E_WARNING, "SQL error: %s, SQL state %s", errormsg, state);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "SQL error: %s, SQL state 
%s", errormsg, state);
        }
        /*              
                } while (SQL_SUCCEEDED(rc));
@@ -638,12 +638,6 @@
 
        result->values = (odbc_result_value *) 
emalloc(sizeof(odbc_result_value)*result->numcols);
 
-       if (result->values == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               SQLFreeStmt(result->stmt, SQL_DROP);
-               return 0;
-       }
-
        result->longreadlen = ODBCG(defaultlrl);
        result->binmode = ODBCG(defaultbinmode);
 
@@ -747,17 +741,17 @@
        ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", 
le_result);
 
        if (result->numcols == 0) {
-               php_error(E_WARNING, "No tuples available at this result index");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No tuples available at 
this result index");
                RETURN_FALSE;
        }
 
        if (Z_LVAL_PP(pv_num) > result->numcols) {
-               php_error(E_WARNING, "Field index larger than number of fields");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field index larger than 
number of fields");
                RETURN_FALSE;
        }
 
        if (Z_LVAL_PP(pv_num) < 1) {
-               php_error(E_WARNING, "Field numbering starts at 1");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field numbering starts at 
1");
                RETURN_FALSE;
        }
 
@@ -813,7 +807,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_binmode(int result_id, int mode)
+/* {{{ proto bool odbc_binmode(int result_id, int mode)
    Handle binary column data */
 PHP_FUNCTION(odbc_binmode)
 {
@@ -821,7 +815,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_longreadlen(int result_id, int length)
+/* {{{ proto bool odbc_longreadlen(int result_id, int length)
    Handle LONG columns */
 PHP_FUNCTION(odbc_longreadlen)
 {
@@ -829,7 +823,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_prepare(int connection_id, string query)
+/* {{{ proto resource odbc_prepare(resource connection_id, string query)
    Prepares a statement for execution */
 PHP_FUNCTION(odbc_prepare)
 {
@@ -852,10 +846,6 @@
        query = Z_STRVAL_PP(pv_query);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        result->numparams = 0;
        
@@ -929,7 +919,7 @@
  * Execute prepared SQL statement. Supports only input parameters.
  */
 
-/* {{{ proto int odbc_execute(int result_id [, array parameters_array])
+/* {{{ proto bool odbc_execute(resource result_id [, array parameters_array])
    Execute a prepared statement */
 PHP_FUNCTION(odbc_execute)
 { 
@@ -970,13 +960,13 @@
        
        /* XXX check for already bound parameters*/
        if (result->numparams > 0 && numArgs == 1) {
-               php_error(E_WARNING, "No parameters to SQL statement given");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No parameters to SQL 
statement given");
                RETURN_FALSE;
        }
 
        if (result->numparams > 0) {
                if ((ne = zend_hash_num_elements(Z_ARRVAL_PP(pv_param_arr))) < 
result->numparams) {
-                       php_error(E_WARNING,"Not enough parameters (%d should be %d) 
given", ne, result->numparams);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING,"Not enough 
parameters (%d should be %d) given", ne, result->numparams);
                        RETURN_FALSE;
                }
 
@@ -985,7 +975,7 @@
                
                for(i = 1; i <= result->numparams; i++) {
                        if (zend_hash_get_current_data(Z_ARRVAL_PP(pv_param_arr), 
(void **) &tmp) == FAILURE) {
-                               php_error(E_WARNING,"Error getting parameter");
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING,"Error 
getting parameter");
                                SQLFreeStmt(result->stmt,SQL_RESET_PARAMS);
                                efree(params);
                                RETURN_FALSE;
@@ -994,7 +984,7 @@
                        otype = (*tmp)->type;
                        convert_to_string(*tmp);
                        if (Z_TYPE_PP(tmp) != IS_STRING) {
-                               php_error(E_WARNING,"Error converting parameter");
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING,"Error 
converting parameter");
                                SQLFreeStmt(result->stmt, SQL_RESET_PARAMS);
                                efree(params);
                                RETURN_FALSE;
@@ -1027,7 +1017,7 @@
                                }
 
                                if ((params[i-1].fp = open(filename,O_RDONLY)) == -1) {
-                                       php_error(E_WARNING,"Can't open file %s", 
filename);
+                                       php_error_docref(NULL TSRMLS_CC, 
E_WARNING,"Can't open file %s", filename);
                                        SQLFreeStmt(result->stmt, SQL_RESET_PARAMS);
                                        for(i = 0; i < result->numparams; i++) {
                                                if (params[i].fp != -1) {
@@ -1125,7 +1115,7 @@
 }
 /* }}} */
 
-/* {{{ proto string odbc_cursor(int result_id)
+/* {{{ proto string odbc_cursor(resource result_id)
    Get cursor name */
 PHP_FUNCTION(odbc_cursor)
 {
@@ -1149,10 +1139,6 @@
        
        if (max_len > 0) {
                cursorname = emalloc(max_len + 1);
-               if (cursorname == NULL) {
-                       php_error(E_WARNING,"Out of memory");
-                       RETURN_FALSE;
-               }
                rc = SQLGetCursorName(result->stmt,cursorname,(SWORD)max_len,&len);
                if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
                        char    state[6];     /* Not used */
@@ -1172,7 +1158,7 @@
                                        RETVAL_STRING(cursorname,1);
                                }
                        } else {
-                               php_error(E_WARNING, "SQL error: %s, SQL state %s", 
errormsg, state);
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "SQL 
error: %s, SQL state %s", errormsg, state);
                                RETVAL_FALSE;
                        }
                } else {
@@ -1186,7 +1172,7 @@
 /* }}} */
 
 #ifdef HAVE_SQLDATASOURCES
-/* {{{ proto array odbc_data_source(int connection_id, int fetch_type)
+/* {{{ proto array odbc_data_source(resource connection_id, int fetch_type)
    Return information about the currently connected data source */
 PHP_FUNCTION(odbc_data_source)
 {
@@ -1203,7 +1189,7 @@
        }
 
        if (zend_get_parameters_ex(2, &zv_conn, &zv_fetch_type) == FAILURE) {
-               php_error(E_WARNING, "%s(): Unable to get parameters", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to get 
parameters");
                RETURN_FALSE;
        }
 
@@ -1248,7 +1234,7 @@
 /* }}} */
 #endif /* HAVE_SQLDATASOURCES *
 
-/* {{{ proto int odbc_exec(int connection_id, string query [, int flags])
+/* {{{ proto resource odbc_exec(resource connection_id, string query [, int flags])
    Prepare and execute an SQL statement */
 /* XXX Use flags */
 PHP_FUNCTION(odbc_exec)
@@ -1279,10 +1265,6 @@
        query = Z_STRVAL_PP(pv_query);
        
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
 
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -1396,7 +1378,7 @@
        ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", 
le_result);
 
        if (result->numcols == 0) {
-               php_error(E_WARNING, "No tuples available at this result index");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No tuples available at 
this result index");
                RETURN_FALSE;
        }
 
@@ -1506,7 +1488,7 @@
 /* }}} */
 #endif
 
-/* {{{ proto int odbc_fetch_into(int result_id, array result_array, [, int rownumber])
+/* {{{ proto int odbc_fetch_into(resource result_id, array result_array, [, int 
rownumber])
    Fetch one result row into an array */ 
 PHP_FUNCTION(odbc_fetch_into)
 {
@@ -1548,15 +1530,12 @@
        ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", 
le_result);
        
        if (result->numcols == 0) {
-               php_error(E_WARNING, "No tuples available at this result index");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No tuples available at 
this result index");
                RETURN_FALSE;
        }
        
        if (Z_TYPE_PP(pv_res_arr) != IS_ARRAY) {
-               if (array_init(*pv_res_arr) == FAILURE) {
-                       php_error(E_WARNING, "Can't convert to type Array");
-                       RETURN_FALSE;
-               }
+               array_init(*pv_res_arr);
        }
 
 #ifdef HAVE_SQL_EXTENDED_FETCH
@@ -1637,7 +1616,8 @@
 }
 /* }}} */
 
-/* {{{ solid_fetch_prev */
+/* {{{ proto bool solid_fetch_prev(resource result_id)
+   */ 
 #if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) || defined(HAVE_SOLID_35)
 PHP_FUNCTION(solid_fetch_prev)
 {
@@ -1651,7 +1631,7 @@
        
        ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", 
le_result);
        if (result->numcols == 0) {
-               php_error(E_WARNING, "No tuples available at this result index");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No tuples available at 
this result index");
                RETURN_FALSE;
        }
        rc = SQLFetchPrev(result->stmt);
@@ -1667,7 +1647,7 @@
 #endif
 /* }}} */
 
-/* {{{ proto int odbc_fetch_row(int result_id [, int row_number])
+/* {{{ proto bool odbc_fetch_row(resource result_id [, int row_number])
    Fetch a row */
 PHP_FUNCTION(odbc_fetch_row)
 {
@@ -1700,7 +1680,7 @@
        ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", 
le_result);
        
        if (result->numcols == 0) {
-               php_error(E_WARNING, "No tuples available at this result index");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No tuples available at 
this result index");
                RETURN_FALSE;
        }
 
@@ -1728,7 +1708,7 @@
 }      
 /* }}} */
 
-/* {{{ proto string odbc_result(int result_id, mixed field)
+/* {{{ proto mixed odbc_result(resource result_id, mixed field)
    Get result data */ 
 PHP_FUNCTION(odbc_result)
 {
@@ -1762,14 +1742,14 @@
        ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", 
le_result);
        
        if ((result->numcols == 0)) {
-               php_error(E_WARNING, "No tuples available at this result index");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No tuples available at 
this result index");
                RETURN_FALSE;
        }
        
        /* get field index if the field parameter was a string */
        if (field != NULL) {
                if (result->values == NULL) {
-                       php_error(E_WARNING, "Result set contains no data");
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Result set 
contains no data");
                        RETURN_FALSE;
                }
 
@@ -1781,13 +1761,13 @@
                }
 
                if (field_ind < 0) {
-                       php_error(E_WARNING, "Field %s not found", field);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field %s not 
found", field);
                        RETURN_FALSE;
                }
        } else {
                /* check for limits of field_ind if the field parameter was an int */
                if (field_ind >= result->numcols || field_ind < 0) {
-                       php_error(E_WARNING, "Field index is larger than the number of 
fields");
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field index is 
larger than the number of fields");
                        RETURN_FALSE;
                }
        }
@@ -1828,10 +1808,6 @@
                        /* For char data, the length of the returned string will be 
longreadlen - 1 */
                        fieldsize = (result->longreadlen <= 0) ? 4096 : 
result->longreadlen;
                        field = emalloc(fieldsize);
-                       if (!field) {
-                               php_error(E_WARNING, "Out of memory");
-                               RETURN_FALSE;
-                       }
 
                /* SQLGetData will truncate CHAR data to fieldsize - 1 bytes and 
append \0.
                 * For binary data it is truncated to fieldsize bytes. 
@@ -1875,10 +1851,7 @@
        
        /* We emalloc 1 byte more for SQL_C_CHAR (trailing \0) */
        fieldsize = (sql_c_type == SQL_C_CHAR) ? 4096 : 4095;
-       if ((field = emalloc(fieldsize)) == NULL) {
-               php_error(E_WARNING,"Out of memory");
-               RETURN_FALSE;
-       }
+       field = emalloc(fieldsize);
        
        /* Call SQLGetData() until SQL_SUCCESS is returned */
        while(1) {
@@ -1908,7 +1881,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_result_all(int result_id [, string format])
+/* {{{ proto int odbc_result_all(resource result_id [, string format])
    Print result as HTML table */
 PHP_FUNCTION(odbc_result_all)
 {
@@ -1935,7 +1908,7 @@
        ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", 
le_result);
        
        if (result->numcols == 0) {
-               php_error(E_WARNING, "No tuples available at this result index");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No tuples available at 
this result index");
                RETURN_FALSE;
        }
 #ifdef HAVE_SQL_EXTENDED_FETCH
@@ -2031,7 +2004,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_free_result(int result_id)
+/* {{{ proto bool odbc_free_result(resource result_id)
    Free resources associated with a result */
 PHP_FUNCTION(odbc_free_result)
 {
@@ -2060,7 +2033,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_connect(string DSN, string user, string password [, int 
cursor_option])
+/* {{{ proto resource odbc_connect(string DSN, string user, string password [, int 
cursor_option])
    Connect to a datasource */
 PHP_FUNCTION(odbc_connect)
 {
@@ -2068,7 +2041,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_pconnect(string DSN, string user, string password [, int 
cursor_option])
+/* {{{ proto resource odbc_pconnect(string DSN, string user, string password [, int 
cursor_option])
    Establish a persistent connection to a datasource */
 PHP_FUNCTION(odbc_pconnect)
 {
@@ -2092,7 +2065,7 @@
 #endif
 #ifdef HAVE_OPENLINK
        {
-               char dsnbuf[300];
+               char dsnbuf[1024];
                short dsnbuflen;
 
                rc = SQLDriverConnect((*conn)->hdbc, NULL, db, SQL_NTS,
@@ -2133,13 +2106,16 @@
                        }
                }
 
-               if (direct)
-                       rc = SQLDriverConnect((*conn)->hdbc, NULL, ldb, strlen(ldb), 
dsnbuf, sizeof(dsnbuf),
-                                                                       &dsnbuflen, 
SQL_DRIVER_NOPROMPT);
-               else
+               if (direct) {
+                       rc = SQLDriverConnect((*conn)->hdbc, NULL, ldb, strlen(ldb), 
dsnbuf, 
+                                                     sizeof(dsnbuf) - 1, &dsnbuflen, 
SQL_DRIVER_NOPROMPT);
+               } else {
                        rc = SQLConnect((*conn)->hdbc, db, SQL_NTS, uid, SQL_NTS, pwd, 
SQL_NTS);
-               if (ldb)
+               }
+
+               if (ldb) {
                        efree(ldb);
+               }
        }
 #else
        rc = SQLConnect((*conn)->hdbc, db, SQL_NTS, uid, SQL_NTS, pwd, SQL_NTS);
@@ -2351,7 +2327,7 @@
 }
 /* }}} */
 
-/* {{{ proto void odbc_close(int connection_id)
+/* {{{ proto void odbc_close(resource connection_id)
    Close an ODBC connection */
 PHP_FUNCTION(odbc_close)
 {
@@ -2395,7 +2371,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_num_rows(int result_id)
+/* {{{ proto int odbc_num_rows(resource result_id)
    Get number of rows in a result */
 PHP_FUNCTION(odbc_num_rows)
 {
@@ -2413,7 +2389,7 @@
 /* }}} */
 
 #if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30)
-/* {{{ proto bool odbc_next_result(int result_id)
+/* {{{ proto bool odbc_next_result(resource result_id)
    Checks if multiple results are avaiable */
 PHP_FUNCTION(odbc_next_result)
 {
@@ -2462,7 +2438,7 @@
 /* }}} */
 #endif
 
-/* {{{ proto int odbc_num_fields(int result_id)
+/* {{{ proto int odbc_num_fields(resource result_id)
    Get number of columns in a result */
 PHP_FUNCTION(odbc_num_fields)
 {
@@ -2477,7 +2453,7 @@
 }
 /* }}} */
 
-/* {{{ proto string odbc_field_name(int result_id, int field_number)
+/* {{{ proto string odbc_field_name(resource result_id, int field_number)
    Get a column name */
 PHP_FUNCTION(odbc_field_name)
 {
@@ -2493,17 +2469,17 @@
        ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", 
le_result);
        
        if (result->numcols == 0) {
-               php_error(E_WARNING, "No tuples available at this result index");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No tuples available at 
this result index");
                RETURN_FALSE;
        }
        
        if (Z_LVAL_PP(pv_num) > result->numcols) {
-               php_error(E_WARNING, "Field index larger than number of fields");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field index larger than 
number of fields");
                RETURN_FALSE;
        }
        
        if (Z_LVAL_PP(pv_num) < 1) {
-               php_error(E_WARNING, "Field numbering starts at 1");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field numbering starts at 
1");
                RETURN_FALSE;
        }
        
@@ -2511,7 +2487,7 @@
 }
 /* }}} */
 
-/* {{{ proto string odbc_field_type(int result_id, int field_number)
+/* {{{ proto string odbc_field_type(resource result_id, int field_number)
    Get the datatype of a column */
 PHP_FUNCTION(odbc_field_type)
 {
@@ -2529,17 +2505,17 @@
        ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", 
le_result);
 
        if (result->numcols == 0) {
-               php_error(E_WARNING, "No tuples available at this result index");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No tuples available at 
this result index");
                RETURN_FALSE;
        }
        
        if (Z_LVAL_PP(pv_num) > result->numcols) {
-               php_error(E_WARNING, "Field index larger than number of fields");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field index larger than 
number of fields");
                RETURN_FALSE;
        }
 
        if (Z_LVAL_PP(pv_num) < 1) {
-               php_error(E_WARNING, "Field numbering starts at 1");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field numbering starts at 
1");
                RETURN_FALSE;
        }
 
@@ -2549,7 +2525,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_field_len(int result_id, int field_number)
+/* {{{ proto int odbc_field_len(resource result_id, int field_number)
    Get the length (precision) of a column */
 PHP_FUNCTION(odbc_field_len)
 {
@@ -2557,7 +2533,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_field_scale(int result_id, int field_number)
+/* {{{ proto int odbc_field_scale(resource result_id, int field_number)
    Get the scale of a column */
 PHP_FUNCTION(odbc_field_scale)
 {
@@ -2565,7 +2541,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_field_num(int result_id, string field_name)
+/* {{{ proto int odbc_field_num(resource result_id, string field_name)
    Return column number */
 PHP_FUNCTION(odbc_field_num)
 {
@@ -2582,7 +2558,7 @@
        ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", 
le_result);
        
        if (result->numcols == 0) {
-               php_error(E_WARNING, "No tuples available at this result index");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No tuples available at 
this result index");
                RETURN_FALSE;
        }
 
@@ -2601,7 +2577,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_autocommit(int connection_id [, int OnOff])
+/* {{{ proto mixed odbc_autocommit(resource connection_id [, int OnOff])
    Toggle autocommit mode or get status */
 /* There can be problems with pconnections!*/
 PHP_FUNCTION(odbc_autocommit)
@@ -2649,7 +2625,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_commit(int connection_id)
+/* {{{ proto bool odbc_commit(resource connection_id)
    Commit an ODBC transaction */
 PHP_FUNCTION(odbc_commit)
 {
@@ -2657,7 +2633,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_rollback(int connection_id)
+/* {{{ proto bool odbc_rollback(resource connection_id)
    Rollback a transaction */
 PHP_FUNCTION(odbc_rollback)
 {
@@ -2703,7 +2679,7 @@
 }
 /* }}} */
 
-/* {{{ proto string odbc_error([int connection_id])
+/* {{{ proto string odbc_error([resource connection_id])
    Get the last error code */
 PHP_FUNCTION(odbc_error)
 {
@@ -2711,7 +2687,7 @@
 }
 /* }}} */
 
-/* {{{ proto string odbc_errormsg([int connection_id])
+/* {{{ proto string odbc_errormsg([resource connection_id])
    Get the last error message */
 PHP_FUNCTION(odbc_errormsg)
 {
@@ -2719,7 +2695,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_setoption(int conn_id|result_id, int which, int option, int 
value)
+/* {{{ proto bool odbc_setoption(resource conn_id|result_id, int which, int option, 
int value)
    Sets connection or statement options */
 /* This one has to be used carefully. We can't allow to set connection options for
    persistent connections. I think that SetStmtOption is of little use, since most
@@ -2746,7 +2722,7 @@
                case 1:         /* SQLSetConnectOption */
                        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_handle, -1, 
"ODBC-Link", le_conn, le_pconn);
                        if (conn->persistent) {
-                               php_error(E_WARNING, "Unable to set option for 
persistent connection");
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to 
set option for persistent connection");
                                RETURN_FALSE;
                        }
                        rc = SQLSetConnectOption(conn->hdbc, (unsigned 
short)(Z_LVAL_PP(pv_opt)), Z_LVAL_PP(pv_val));
@@ -2779,7 +2755,7 @@
  * metadata functions
  */
 
-/* {{{ proto int odbc_tables(int connection_id [, string qualifier, string owner, 
string name, string table_types])
+/* {{{ proto resource odbc_tables(resource connection_id [, string qualifier, string 
owner, string name, string table_types])
    Call the SQLTables function */
 PHP_FUNCTION(odbc_tables)
 {
@@ -2812,10 +2788,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -2862,7 +2834,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_columns(int connection_id, string qualifier, string owner, 
string table_name, string column_name)
+/* {{{ proto resource odbc_columns(resource connection_id, string qualifier, string 
owner, string table_name, string column_name)
    Returns a result identifier that can be used to fetch a list of column names in 
specified tables */
 PHP_FUNCTION(odbc_columns)
 {
@@ -2900,10 +2872,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -2921,9 +2889,7 @@
        /* 
         * Needed to make MS Access happy
         */
-       if (table && strlen(table) && schema && !strlen(schema)) {
-               schema = NULL;
-       }
+       if (table && strlen(table) && schema && !strlen(schema)) schema = NULL;
 
        rc = SQLColumns(result->stmt, 
                        cat, cat_len,
@@ -2955,7 +2921,7 @@
 /* }}} */
 
 #if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && 
!defined(HAVE_SOLID_35) && !defined(HAVE_BIRDSTEP)
-/* {{{ proto int odbc_columnprivileges(int connection_id, string catalog, string 
schema, string table, string column)
+/* {{{ proto resource odbc_columnprivileges(resource connection_id, string catalog, 
string schema, string table, string column)
    Returns a result identifier that can be used to fetch a list of columns and 
associated privileges for the specified table */
 PHP_FUNCTION(odbc_columnprivileges)
 {
@@ -2986,10 +2952,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -3035,7 +2997,7 @@
 #endif /* HAVE_DBMAKER || HAVE_SOLID*/
 
 #if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35)
-/* {{{ proto int odbc_foreignkeys(int connection_id, string pk_qualifier, string 
pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table)
+/* {{{ proto resource odbc_foreignkeys(resource connection_id, string pk_qualifier, 
string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string 
fk_table)
    Returns a result identifier to either a list of foreign keys in the specified 
table or a list of foreign keys in other tables that refer to the primary key in the 
specified table */
 PHP_FUNCTION(odbc_foreignkeys)
 {
@@ -3084,10 +3046,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -3134,7 +3092,7 @@
 /* }}} */
 #endif /* HAVE_SOLID */
 
-/* {{{ proto int odbc_gettypeinfo(int connection_id [, int data_type])
+/* {{{ proto resource odbc_gettypeinfo(resource connection_id [, int data_type])
    Returns a result identifier containing information about data types supported by 
the data source */
 PHP_FUNCTION(odbc_gettypeinfo)
 {
@@ -3163,10 +3121,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -3206,7 +3160,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_primarykeys(int connection_id, string qualifier, string owner, 
string table)
+/* {{{ proto resource odbc_primarykeys(resource connection_id, string qualifier, 
string owner, string table)
    Returns a result identifier listing the column names that comprise the primary key 
for a table */
 PHP_FUNCTION(odbc_primarykeys)
 {
@@ -3235,10 +3189,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -3282,7 +3232,7 @@
 /* }}} */
 
 #if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) && 
!defined(HAVE_BIRDSTEP)
-/* {{{ proto int odbc_procedurecolumns(int connection_id [, string qualifier, string 
owner, string proc, string column])
+/* {{{ proto resource odbc_procedurecolumns(resource connection_id [, string 
qualifier, string owner, string proc, string column])
    Returns a result identifier containing the list of input and output parameters, as 
well as the columns that make up the result set for the specified procedures */
 PHP_FUNCTION(odbc_procedurecolumns)
 {
@@ -3317,10 +3267,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -3366,7 +3312,7 @@
 #endif /* HAVE_SOLID */
 
 #if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35)
-/* {{{ proto int odbc_procedures(int connection_id [, string qualifier, string owner, 
string name])
+/* {{{ proto resource odbc_procedures(resource connection_id [, string qualifier, 
string owner, string name])
    Returns a result identifier containg the list of procedure names in a datasource */
 PHP_FUNCTION(odbc_procedures)
 {
@@ -3399,10 +3345,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -3446,7 +3388,7 @@
 /* }}} */
 #endif /* HAVE_SOLID */
 
-/* {{{ proto int odbc_specialcolumns(int connection_id, int type, string qualifier, 
string owner, string table, int scope, int nullable)
+/* {{{ proto resource odbc_specialcolumns(resource connection_id, int type, string 
qualifier, string owner, string table, int scope, int nullable)
    Returns a result identifier containing either the optimal set of columns that 
uniquely identifies a row in the table or columns that are automatically updated when 
any value in the row is updated by a transaction */
 PHP_FUNCTION(odbc_specialcolumns)
 {
@@ -3485,10 +3427,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -3534,7 +3472,7 @@
 }
 /* }}} */
 
-/* {{{ proto int odbc_statistics(int connection_id, string qualifier, string owner, 
string name, int unique, int accuracy)
+/* {{{ proto resource odbc_statistics(resource connection_id, string qualifier, 
string owner, string name, int unique, int accuracy)
    Returns a result identifier that contains statistics about a single table and the 
indexes associated with the table */
 PHP_FUNCTION(odbc_statistics)
 {
@@ -3570,10 +3508,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
@@ -3619,7 +3553,7 @@
 /* }}} */
 
 #if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && 
!defined(HAVE_SOLID_35) && !defined(HAVE_BIRDSTEP)
-/* {{{ proto int odbc_tableprivileges(int connection_id, string qualifier, string 
owner, string name)
+/* {{{ proto resource odbc_tableprivileges(resource connection_id, string qualifier, 
string owner, string name)
    Returns a result identifier containing a list of tables and the privileges 
associated with each table */
 PHP_FUNCTION(odbc_tableprivileges)
 {
@@ -3648,10 +3582,6 @@
        ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", 
le_conn, le_pconn);
 
        result = (odbc_result *)emalloc(sizeof(odbc_result));
-       if (result == NULL) {
-               php_error(E_WARNING, "Out of memory");
-               RETURN_FALSE;
-       }
        
        rc = SQLAllocStmt(conn->hdbc, &(result->stmt));
        if (rc == SQL_INVALID_HANDLE) {
Index: php-src/ext/odbc/php_odbc.h
diff -u php-src/ext/odbc/php_odbc.h:1.48.4.4 php-src/ext/odbc/php_odbc.h:1.48.4.5
--- php-src/ext/odbc/php_odbc.h:1.48.4.4        Thu May  1 20:40:35 2003
+++ php-src/ext/odbc/php_odbc.h Mon Jul 14 12:13:30 2003
@@ -12,13 +12,13 @@
    | obtain it through the world-wide-web, please send a note to          |
    | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
-   | Authors: Stig Sæther Bakken <[EMAIL PROTECTED]>                            |
+   | Authors: Stig Sæther Bakken <[EMAIL PROTECTED]>                            |
    |          Andreas Karajannis <[EMAIL PROTECTED]>              |
-   |           Kevin N. Shallow <[EMAIL PROTECTED]> Birdstep Support |
+   |         Kevin N. Shallow <[EMAIL PROTECTED]> (Birdstep)      |
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_odbc.h,v 1.48.4.4 2003/05/02 00:40:35 sniper Exp $ */
+/* $Id: php_odbc.h,v 1.48.4.5 2003/07/14 16:13:30 sniper Exp $ */
 
 #ifndef PHP_ODBC_H
 #define PHP_ODBC_H
Index: php-src/ext/odbc/php_odbc_includes.h
diff -u php-src/ext/odbc/php_odbc_includes.h:1.2.4.1 
php-src/ext/odbc/php_odbc_includes.h:1.2.4.2
--- php-src/ext/odbc/php_odbc_includes.h:1.2.4.1        Tue Dec 31 11:35:05 2002
+++ php-src/ext/odbc/php_odbc_includes.h        Mon Jul 14 12:13:30 2003
@@ -4,21 +4,21 @@
    +----------------------------------------------------------------------+
    | Copyright (c) 1997-2003 The PHP Group                                |
    +----------------------------------------------------------------------+
-   | This source file is subject to version 2.02 of the PHP license,      |
+   | This source file is subject to version 3.0 of the PHP license,       |
    | that is bundled with this package in the file LICENSE, and is        |
-   | available at through the world-wide-web at                           |
-   | http://www.php.net/license/2_02.txt.                                 |
+   | available through the world-wide-web at the following url:           |
+   | http://www.php.net/license/3_0.txt.                                  |
    | If you did not receive a copy of the PHP license and are unable to   |
    | obtain it through the world-wide-web, please send a note to          |
    | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
-   | Authors: Stig Sæther Bakken <[EMAIL PROTECTED]>                              |
+   | Authors: Stig Sæther Bakken <[EMAIL PROTECTED]>                            |
    |          Andreas Karajannis <[EMAIL PROTECTED]>              |
-   |         Kevin N. Shallow <[EMAIL PROTECTED]> Birdstep Support|
+   |         Kevin N. Shallow <[EMAIL PROTECTED]> (Birdstep)      |
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_odbc_includes.h,v 1.2.4.1 2002/12/31 16:35:05 sebastian Exp $ */
+/* $Id: php_odbc_includes.h,v 1.2.4.2 2003/07/14 16:13:30 sniper Exp $ */
 
 #ifndef PHP_ODBC_INCLUDES_H
 #define PHP_ODBC_INCLUDES_H

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

Reply via email to