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(¶m->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