diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2007-11-22 00:17:28 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2007-11-22 00:17:28 +0000 |
commit | 969f81a49ebb3399a81e3439e195ef658dbb19df (patch) | |
tree | 3ac93da7a6561b4e9fba0dc73dfe3f4c88a55ef2 /ext/pgsql/pgsql.c | |
parent | 6cfced8eff9437ba3c8ffe45cbc19d63939b2e4f (diff) | |
download | php-git-969f81a49ebb3399a81e3439e195ef658dbb19df.tar.gz |
Fixed bug #43041 (micro-optimizations in pgsql data retrieval) Initial patch
by andy at petdance dot com
Diffstat (limited to 'ext/pgsql/pgsql.c')
-rw-r--r-- | ext/pgsql/pgsql.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index f18e859e6b..bf5ecbd481 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -1996,8 +1996,7 @@ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, long result_type, pgsql_result_handle *pg_result; int i, num_fields, pgsql_row, use_row; long row = -1; - char *element, *field_name; - uint element_len; + char *field_name; zval *ctor_params = NULL; zend_class_entry *ce = NULL; @@ -2068,12 +2067,12 @@ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, long result_type, add_assoc_null(return_value, field_name); } } else { - element = PQgetvalue(pgsql_result, pgsql_row, i); - element_len = (element ? strlen(element) : 0); + char *element = PQgetvalue(pgsql_result, pgsql_row, i); if (element) { char *data; int data_len; int should_copy=0; + const uint element_len = strlen(element); if (PG(magic_quotes_runtime)) { data = php_addslashes(element, element_len, &data_len, 0 TSRMLS_CC); @@ -5743,8 +5742,8 @@ PHP_FUNCTION(pg_delete) PHP_PGSQL_API int php_pgsql_result2array(PGresult *pg_result, zval *ret_array TSRMLS_DC) { zval *row; - char *field_name, *element, *data; - size_t num_fields, element_len, data_len; + char *field_name; + size_t num_fields; int pg_numrows, pg_row; uint i; assert(Z_TYPE_P(ret_array) == IS_ARRAY); @@ -5761,9 +5760,12 @@ PHP_PGSQL_API int php_pgsql_result2array(PGresult *pg_result, zval *ret_array TS field_name = PQfname(pg_result, i); add_assoc_null(row, field_name); } else { - element = PQgetvalue(pg_result, pg_row, i); - element_len = (element ? strlen(element) : 0); + char *element = PQgetvalue(pg_result, pg_row, i); if (element) { + char *data; + size_t data_len; + const size_t element_len = strlen(element); + if (PG(magic_quotes_runtime)) { data = php_addslashes(element, element_len, &data_len, 0 TSRMLS_CC); } else { |