Commit:    e23b051be0fe19e338a71eecc0df44afdc44a84e
Author:    Anatol Belski <a...@php.net>         Tue, 3 Dec 2013 09:53:22 +0100
Parents:   7193efebed2bef8f79770dc43fd6b1dbfd0fdecc
Branches:  str_size_and_int64

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=e23b051be0fe19e338a71eecc0df44afdc44a84e

Log:
basic fixes to ext/pdo_pgsql

Changed paths:
  M  ext/pdo_pgsql/pgsql_driver.c
  M  ext/pdo_pgsql/pgsql_statement.c
  M  ext/pdo_pgsql/php_pdo_pgsql_int.h

diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c
index cb89809..8bcabc2 100644
--- a/ext/pdo_pgsql/pgsql_driver.c
+++ b/ext/pdo_pgsql/pgsql_driver.c
@@ -152,8 +152,8 @@ static int pgsql_lob_flush(php_stream *stream TSRMLS_DC)
        return 0;
 }
 
-static int pgsql_lob_seek(php_stream *stream, off_t offset, int whence,
-               off_t *newoffset TSRMLS_DC)
+static int pgsql_lob_seek(php_stream *stream, zend_off_t offset, int whence,
+               zend_off_t *newoffset TSRMLS_DC)
 {
        struct pdo_pgsql_lob_self *self = (struct 
pdo_pgsql_lob_self*)stream->abstract;
        int pos = lo_lseek(self->conn, self->lfd, offset, whence);
@@ -215,7 +215,7 @@ static int pgsql_handle_closer(pdo_dbh_t *dbh TSRMLS_DC) /* 
{{{ */
 }
 /* }}} */
 
-static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long 
sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)
+static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char *sql, 
zend_str_size sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)
 {
        pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data;
        pdo_pgsql_stmt *S = ecalloc(1, sizeof(pdo_pgsql_stmt));
@@ -223,7 +223,7 @@ static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char 
*sql, long sql_len,
 #if HAVE_PQPREPARE
        int ret;
        char *nsql = NULL;
-       int nsql_len = 0;
+       zend_str_size_int nsql_len = 0;
        int emulate = 0;
 #endif
 
@@ -285,11 +285,11 @@ static int pgsql_handle_preparer(pdo_dbh_t *dbh, const 
char *sql, long sql_len,
        return 1;
 }
 
-static long pgsql_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len 
TSRMLS_DC)
+static php_int_t pgsql_handle_doer(pdo_dbh_t *dbh, const char *sql, 
zend_str_size sql_len TSRMLS_DC)
 {
        pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data;
        PGresult *res;
-       long ret = 1;
+       php_int_t ret = 1;
        ExecStatusType qs;
        
        if (!(res = PQexec(H->server, sql))) {
@@ -304,13 +304,17 @@ static long pgsql_handle_doer(pdo_dbh_t *dbh, const char 
*sql, long sql_len TSRM
                return -1;
        }
        H->pgoid = PQoidValue(res);
-       ret = (qs == PGRES_COMMAND_OK) ? atol(PQcmdTuples(res)) : 0L;
+       if (qs == PGRES_COMMAND_OK) {
+               ZEND_ATOI(ret, PQcmdTuples(res));
+       } else {
+               ret = 0L;
+       }
        PQclear(res);
 
        return ret;
 }
 
-static int pgsql_handle_quoter(pdo_dbh_t *dbh, const char *unquoted, int 
unquotedlen, char **quoted, int *quotedlen, enum pdo_param_type paramtype 
TSRMLS_DC)
+static int pgsql_handle_quoter(pdo_dbh_t *dbh, const char *unquoted, 
zend_str_size_int unquotedlen, char **quoted, zend_str_size_int *quotedlen, 
enum pdo_param_type paramtype TSRMLS_DC)
 {
        unsigned char *escaped;
        pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data;
@@ -347,7 +351,7 @@ static int pgsql_handle_quoter(pdo_dbh_t *dbh, const char 
*unquoted, int unquote
        return 1;
 }
 
-static char *pdo_pgsql_last_insert_id(pdo_dbh_t *dbh, const char *name, 
unsigned int *len TSRMLS_DC)
+static char *pdo_pgsql_last_insert_id(pdo_dbh_t *dbh, const char *name, 
zend_str_size_uint *len TSRMLS_DC)
 {
        pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data;
        char *id = NULL;
@@ -356,7 +360,7 @@ static char *pdo_pgsql_last_insert_id(pdo_dbh_t *dbh, const 
char *name, unsigned
                if (H->pgoid == InvalidOid) {
                        return NULL;
                }
-               *len = spprintf(&id, 0, "%ld", (long) H->pgoid);
+               *len = spprintf(&id, 0, ZEND_INT_FMT, (php_int_t) H->pgoid);
        } else {
                PGresult *res;
                ExecStatusType status;
@@ -379,7 +383,7 @@ static char *pdo_pgsql_last_insert_id(pdo_dbh_t *dbh, const 
char *name, unsigned
        return id;
 }
 
-static int pdo_pgsql_get_attribute(pdo_dbh_t *dbh, long attr, zval 
*return_value TSRMLS_DC)
+static int pdo_pgsql_get_attribute(pdo_dbh_t *dbh, php_int_t attr, zval 
*return_value TSRMLS_DC)
 {
        pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data;
 
@@ -521,13 +525,13 @@ static PHP_METHOD(PDO, pgsqlCopyFromArray)
        zval *pg_rows;
 
        char *table_name, *pg_delim = NULL, *pg_null_as = NULL, *pg_fields = 
NULL;
-       int table_name_len, pg_delim_len = 0, pg_null_as_len = 0, pg_fields_len;
+       zend_str_size_int table_name_len, pg_delim_len = 0, pg_null_as_len = 0, 
pg_fields_len;
        char *query;
 
        PGresult *pgsql_result;
        ExecStatusType status;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s/a|sss",
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S/a|SSS",
                                        &table_name, &table_name_len, &pg_rows,
                                        &pg_delim, &pg_delim_len, &pg_null_as, 
&pg_null_as_len, &pg_fields, &pg_fields_len) == FAILURE) {
                return;
@@ -575,15 +579,15 @@ static PHP_METHOD(PDO, pgsqlCopyFromArray)
                PQclear(pgsql_result);
                zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(pg_rows), &pos);
                while (zend_hash_get_current_data_ex(Z_ARRVAL_P(pg_rows), (void 
**) &tmp, &pos) == SUCCESS) {
-                       int query_len;
+                       zend_str_size_int query_len;
                        convert_to_string_ex(tmp);
                
-                       if (buffer_len < Z_STRLEN_PP(tmp)) {
-                               buffer_len = Z_STRLEN_PP(tmp);
+                       if (buffer_len < Z_STRSIZE_PP(tmp)) {
+                               buffer_len = Z_STRSIZE_PP(tmp);
                                query = erealloc(query, buffer_len + 2); /* 
room for \n\0 */
                        }
-                       memcpy(query, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp));
-                       query_len = Z_STRLEN_PP(tmp);
+                       memcpy(query, Z_STRVAL_PP(tmp), Z_STRSIZE_PP(tmp));
+                       query_len = Z_STRSIZE_PP(tmp);
                        if (query[query_len - 1] != '\n') {
                                query[query_len++] = '\n';
                        }
@@ -633,13 +637,13 @@ static PHP_METHOD(PDO, pgsqlCopyFromFile)
        pdo_pgsql_db_handle *H;
 
        char *table_name, *filename, *pg_delim = NULL, *pg_null_as = NULL, 
*pg_fields = NULL;
-       int  table_name_len, filename_len, pg_delim_len = 0, pg_null_as_len = 
0, pg_fields_len;
+       zend_str_size_int  table_name_len, filename_len, pg_delim_len = 0, 
pg_null_as_len = 0, pg_fields_len;
        char *query;
        PGresult *pgsql_result;
        ExecStatusType status;
        php_stream *stream;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sp|sss",
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SP|SSS",
                                &table_name, &table_name_len, &filename, 
&filename_len,
                                &pg_delim, &pg_delim_len, &pg_null_as, 
&pg_null_as_len, &pg_fields, &pg_fields_len) == FAILURE) {
                return;
@@ -732,7 +736,7 @@ static PHP_METHOD(PDO, pgsqlCopyToFile)
        pdo_pgsql_db_handle *H;
 
        char *table_name, *pg_delim = NULL, *pg_null_as = NULL, *pg_fields = 
NULL, *filename = NULL;
-       int table_name_len, pg_delim_len = 0, pg_null_as_len = 0, 
pg_fields_len, filename_len;
+       zend_str_size_int table_name_len, pg_delim_len = 0, pg_null_as_len = 0, 
pg_fields_len, filename_len;
        char *query;
 
        PGresult *pgsql_result;
@@ -740,7 +744,7 @@ static PHP_METHOD(PDO, pgsqlCopyToFile)
 
        php_stream *stream;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sp|sss",
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SP|SSS",
                                        &table_name, &table_name_len, 
&filename, &filename_len,
                                        &pg_delim, &pg_delim_len, &pg_null_as, 
&pg_null_as_len, &pg_fields, &pg_fields_len) == FAILURE) {
                return;
@@ -827,13 +831,13 @@ static PHP_METHOD(PDO, pgsqlCopyToArray)
        pdo_pgsql_db_handle *H;
 
        char *table_name, *pg_delim = NULL, *pg_null_as = NULL, *pg_fields = 
NULL;
-       int table_name_len, pg_delim_len = 0, pg_null_as_len = 0, pg_fields_len;
+       zend_str_size_int table_name_len, pg_delim_len = 0, pg_null_as_len = 0, 
pg_fields_len;
        char *query;
 
        PGresult *pgsql_result;
        ExecStatusType status;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|sss",
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|SSS",
                &table_name, &table_name_len,
                &pg_delim, &pg_delim_len, &pg_null_as, &pg_null_as_len, 
&pg_fields, &pg_fields_len) == FAILURE) {
                return;
@@ -913,7 +917,7 @@ static PHP_METHOD(PDO, pgsqlLOBCreate)
 
        if (lfd != InvalidOid) {
                char *buf;
-               spprintf(&buf, 0, "%lu", (long) lfd);
+               spprintf(&buf, 0, ZEND_UINT_FMT, (php_int_t) lfd);
                RETURN_STRING(buf, 0);
        }
 
@@ -932,13 +936,13 @@ static PHP_METHOD(PDO, pgsqlLOBOpen)
        Oid oid;
        int lfd;
        char *oidstr;
-       int oidstrlen;
+       zend_str_size_int oidstrlen;
        char *modestr = "rb";
-       int modestrlen;
+       zend_str_size_int modestrlen;
        int mode = INV_READ;
        char *end_ptr;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s",
+       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|S",
                                &oidstr, &oidstrlen, &modestr, &modestrlen)) {
                RETURN_FALSE;
        }
@@ -983,9 +987,9 @@ static PHP_METHOD(PDO, pgsqlLOBUnlink)
        pdo_pgsql_db_handle *H;
        Oid oid;
        char *oidstr, *end_ptr;
-       int oidlen;
+       zend_str_size_int oidlen;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
+       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S",
                                &oidstr, &oidlen)) {
                RETURN_FALSE;
        }
@@ -1017,11 +1021,11 @@ static PHP_METHOD(PDO, pgsqlGetNotify)
 {
        pdo_dbh_t *dbh;
        pdo_pgsql_db_handle *H;
-       long result_type = PDO_FETCH_USE_DEFAULT;
-       long ms_timeout = 0;
+       php_int_t result_type = PDO_FETCH_USE_DEFAULT;
+       php_int_t ms_timeout = 0;
        PGnotify *pgsql_notify;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|ll",
+       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|ii",
                                &result_type, &ms_timeout)) {
                RETURN_FALSE;
        }
@@ -1113,7 +1117,7 @@ static const zend_function_entry 
*pdo_pgsql_get_driver_methods(pdo_dbh_t *dbh, i
        }
 }
 
-static int pdo_pgsql_set_attr(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_DC)
+static int pdo_pgsql_set_attr(pdo_dbh_t *dbh, php_int_t attr, zval *val 
TSRMLS_DC)
 {
        pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data;
 
@@ -1155,7 +1159,7 @@ static int pdo_pgsql_handle_factory(pdo_dbh_t *dbh, zval 
*driver_options TSRMLS_
        pdo_pgsql_db_handle *H;
        int ret = 0;
        char *conn_str, *p, *e;
-       long connect_timeout = 30;
+       php_int_t connect_timeout = 30;
 
        H = pecalloc(1, sizeof(pdo_pgsql_db_handle), dbh->is_persistent);
        dbh->driver_data = H;
diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c
index 792ad27..3567f11 100644
--- a/ext/pdo_pgsql/pgsql_statement.c
+++ b/ext/pdo_pgsql/pgsql_statement.c
@@ -226,10 +226,10 @@ stmt_retry:
        }
 
        if (status == PGRES_COMMAND_OK) {
-               stmt->row_count = (long)atoi(PQcmdTuples(S->result));
+               ZEND_ATOI(stmt->row_count, PQcmdTuples(S->result));
                H->pgoid = PQoidValue(S->result);
        } else {
-               stmt->row_count = (long)PQntuples(S->result);
+               stmt->row_count = (php_int_t)PQntuples(S->result);
        }
 
        return 1;
@@ -253,13 +253,14 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct 
pdo_bound_param_data *
                                /* decode name from $1, $2 into 0, 1 etc. */
                                if (param->name) {
                                        if (param->name[0] == '$') {
-                                               param->paramno = 
atoi(param->name + 1);
+                                               ZEND_ATOI(param->paramno, 
param->name + 1);
                                        } else {
                                                /* resolve parameter name to 
rewritten name */
                                                char *nameptr;
                                                if (stmt->bound_param_map && 
SUCCESS == zend_hash_find(stmt->bound_param_map,
                                                                param->name, 
param->namelen + 1, (void**)&nameptr)) {
-                                                       param->paramno = 
atoi(nameptr + 1) - 1;
+                                                       
ZEND_ATOI(param->paramno, nameptr + 1);
+                                                       param->paramno--;
                                                } else {
                                                        
pdo_raise_impl_error(stmt->dbh, stmt, "HY093", param->name TSRMLS_CC);
                                                        return 0;
@@ -325,7 +326,7 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct 
pdo_bound_param_data *
                                                                
Z_TYPE_P(param->parameter) = IS_STRING;
                                                                
                                                                if ((len = 
php_stream_copy_to_mem(stm, &Z_STRVAL_P(param->parameter), PHP_STREAM_COPY_ALL, 
0)) > 0) {
-                                                                       
Z_STRLEN_P(param->parameter) = len;
+                                                                       
Z_STRSIZE_P(param->parameter) = len;
                                                                } else {
                                                                        
ZVAL_EMPTY_STRING(param->parameter);
                                                                }
@@ -349,7 +350,7 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct 
pdo_bound_param_data *
                                                
SEPARATE_ZVAL_IF_NOT_REF(&param->parameter);
                                                
convert_to_string(param->parameter);
                                                S->param_values[param->paramno] 
= Z_STRVAL_P(param->parameter);
-                                               
S->param_lengths[param->paramno] = Z_STRLEN_P(param->parameter);
+                                               
S->param_lengths[param->paramno] = Z_STRSIZE_P(param->parameter);
                                                
S->param_formats[param->paramno] = 0;
                                        }
 
@@ -380,7 +381,7 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct 
pdo_bound_param_data *
 }
 
 static int pgsql_stmt_fetch(pdo_stmt_t *stmt,
-       enum pdo_fetch_orientation ori, long offset TSRMLS_DC)
+       enum pdo_fetch_orientation ori, php_int_t offset TSRMLS_DC)
 {
        pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data;
 
@@ -471,7 +472,7 @@ static int pgsql_stmt_describe(pdo_stmt_t *stmt, int colno 
TSRMLS_DC)
                        break;
 
                case INT8OID:
-                       if (sizeof(long)>=8) {
+                       if (sizeof(php_int_t)>=8) {
                                cols[colno].param_type = PDO_PARAM_INT;
                        } else {
                                cols[colno].param_type = PDO_PARAM_STR;
@@ -489,7 +490,7 @@ static int pgsql_stmt_describe(pdo_stmt_t *stmt, int colno 
TSRMLS_DC)
        return 1;
 }
 
-static int pgsql_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, 
unsigned long *len, int *caller_frees  TSRMLS_DC)
+static int pgsql_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, 
php_uint_t *len, int *caller_frees  TSRMLS_DC)
 {
        pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data;
        struct pdo_column_data *cols = stmt->columns;
@@ -510,9 +511,9 @@ static int pgsql_stmt_get_col(pdo_stmt_t *stmt, int colno, 
char **ptr, unsigned
                switch(cols[colno].param_type) {
 
                        case PDO_PARAM_INT:
-                               S->cols[colno].intval = atol(*ptr);
+                               ZEND_ATOI(S->cols[colno].intval, *ptr);
                                *ptr = (char *) &(S->cols[colno].intval);
-                               *len = sizeof(long);
+                               *len = sizeof(php_int_t);
                                break;
 
                        case PDO_PARAM_BOOL:
@@ -568,7 +569,7 @@ static int pgsql_stmt_get_col(pdo_stmt_t *stmt, int colno, 
char **ptr, unsigned
        return 1;
 }
 
-static int pgsql_stmt_get_column_meta(pdo_stmt_t *stmt, long colno, zval 
*return_value TSRMLS_DC)
+static int pgsql_stmt_get_column_meta(pdo_stmt_t *stmt, php_int_t colno, zval 
*return_value TSRMLS_DC)
 {
        pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data;
        PGresult *res;
diff --git a/ext/pdo_pgsql/php_pdo_pgsql_int.h 
b/ext/pdo_pgsql/php_pdo_pgsql_int.h
index 5600a92..3a215c2 100644
--- a/ext/pdo_pgsql/php_pdo_pgsql_int.h
+++ b/ext/pdo_pgsql/php_pdo_pgsql_int.h
@@ -56,7 +56,7 @@ typedef struct {
 typedef struct {
        char         *def;
        Oid          pgsql_type;
-       long         intval;
+       php_int_t         intval;
        zend_bool    boolval;
 } pdo_pgsql_column;
-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to