com php-src: basic fixes to ext/pdo_pgsql: ext/pdo_pgsq l/pgsql_driver.c ext/pdo_pgsql/pgsql_statement.c ext/pdo_pgsql/php_pdo_pgsql_int.h

From: Date: Tue, 03 Dec 2013 08:53:22 +0000
Subject: com php-src: basic fixes to ext/pdo_pgsql: ext/pdo_pgsq l/pgsql_driver.c ext/pdo_pgsql/pgsql_statement.c ext/pdo_pgsql/php_pdo_pgsql_int.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-74216@lists.php.net to get a copy of this message
Commit: e23b051be0fe19e338a71eecc0df44afdc44a84e Author: Anatol Belski <ab@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;
« previous php.cvs (#74216) next »