com php-src: Fixed Bug #66875 (Improve performance of multi-row OCI_RETURN_LOB queries): NEWS UPGRADING ext/oci 8/oci8.c ext/oci8/oci8_lob.c
ext/oci8/oci 8_statement.c ext/oci8/package.xml ext/oci8/php _oci8.h ext/oci8/php_oci8_int.h

From: Date: Mon, 10 Mar 2014 23:33:35 +0000
Subject: com php-src: Fixed Bug #66875 (Improve performance of multi-row OCI_RETURN_LOB queries): NEWS UPGRADING ext/oci 8/oci8.c ext/oci8/oci8_lob.c
ext/oci8/oci 8_statement.c ext/oci8/package.xml ext/oci8/php _oci8.h ext/oci8/php_oci8_int.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-76429@lists.php.net to get a copy of this message
Commit: 601367ee75c570b52ac8f28c7b26d5166cad2989 Author: Christopher Jones <sixd@php.net> Mon, 10 Mar 2014 16:33:35 -0700 Parents: 8bda4c685a3342428334c286884ef73955146af1 Branches: PHP-5.6 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=601367ee75c570b52ac8f28c7b26d5166cad2989 Log: Fixed Bug #66875 (Improve performance of multi-row OCI_RETURN_LOB queries) Bugs: https://bugs.php.net/66875 Changed paths: M NEWS M UPGRADING M ext/oci8/oci8.c M ext/oci8/oci8_lob.c M ext/oci8/oci8_statement.c M ext/oci8/package.xml M ext/oci8/php_oci8.h M ext/oci8/php_oci8_int..h Diff: diff --git a/NEWS b/NEWS index 0ff30c8..915120c 100644 --- a/NEWS +++ b/NEWS @@ -35,9 +35,13 @@ PHP NEWS (Nikita) - MySQLi: - . Fixed bug #66762i (Segfault in mysqli_stmt::bind_result() when link closed) + . Fixed bug #66762 (Segfault in mysqli_stmt::bind_result() when link closed) (Remi) +- OCI8 + . Fixed Bug #66875 (Improve performance of multi-row OCI_RETURN_LOB queries) + (Perrier, Chris Jones) + - OpenSSL: . Fixed memory leak in windows cert verification on verify failure. (Chris Wright) diff --git a/UPGRADING b/UPGRADING index e662de5..40d30fd 100755 --- a/UPGRADING +++ b/UPGRADING @@ -225,6 +225,7 @@ PHP 5.6 UPGRADE NOTES - Using 'oci_execute($s, OCI_NO_AUTO_COMMIT)' for a SELECT no longer unnecessarily initiates an internal ROLLBACK during connection close. + - Multi-row OCI_RETURN_LOB queries require fewer "round trips" to the database. - Added DTrace probes enabled with PHP's generic --enable-dtrace - The oci_internal_debug() function is now a no-op. - The phpinfo() output format for OCI8 has changed. diff --git a/ext/oci8/oci8.c b/ext/oci8/oci8..c index a890c94..03927e6 100644 --- a/ext/oci8/oci8.c +++ b/ext/oci8/oci8.c @@ -2578,7 +2578,11 @@ int php_oci_column_to_zval(php_oci_out_column *column, zval *value, int mode TSR if (column->data_type != SQLT_RDD && (mode & PHP_OCI_RETURN_LOBS)) { /* PHP_OCI_RETURN_LOBS means that we want the content of the LOB back instead of the locator */ + if (column->chunk_size) + descriptor->chunk_size = column->chunk_size; lob_fetch_status = php_oci_lob_read(descriptor, -1, 0, &lob_buffer, &lob_length TSRMLS_CC); + if (descriptor->chunk_size) /* Cache the chunk_size to avoid recalling OCILobGetChunkSize */ + column->chunk_size = descriptor->chunk_size; php_oci_temp_lob_close(descriptor TSRMLS_CC); if (lob_fetch_status) { ZVAL_FALSE(value); diff --git a/ext/oci8/oci8_lob.c b/ext/oci8/oci8_lob.c index 4587e4c..4982d0f 100644 --- a/ext/oci8/oci8_lob.c +++ b/ext/oci8/oci8_lob.c @@ -92,6 +92,7 @@ php_oci_descriptor *php_oci_lob_create (php_oci_connection *connection, long typ descriptor->charset_form = SQLCS_IMPLICIT; /* default value */ descriptor->charset_id = connection->charset; descriptor->is_open = 0; + descriptor->chunk_size = 0; if (descriptor->type == OCI_DTYPE_LOB || descriptor->type == OCI_DTYPE_FILE) { /* add Lobs & Files to hash. we'll flush them at the end */ diff --git a/ext/oci8/oci8_statement.c b/ext/oci8/oci8_statement.c index 520809c..3ea7935 100644 --- a/ext/oci8/oci8_statement.c +++ b/ext/oci8/oci8_statement.c @@ -713,6 +713,7 @@ int php_oci_statement_execute(php_oci_statement *statement, ub4 mode TSRMLS_DC) outcol->is_descr = 1; outcol->statement->has_descr = 1; outcol->storage_size4 = -1; + outcol->chunk_size = 0; dynamic = OCI_DYNAMIC_FETCH; break; diff --git a/ext/oci8/package.xml b/ext/oci8/package.xml index 553b273..c4530bd 100644 --- a/ext/oci8/package.xml +++ b/ext/oci8/package.xml @@ -45,12 +45,12 @@ libraries are available. <active>no</active> </lead> - <date>2014-02-10</date> + <date>2014-03-11</date> <time>12:00:00</time> <version> - <release>2.0.7</release> - <api>2.0.7</api> + <release>2.0.8</release> + <api>2.0.8</api> </version> <stability> <release>stable</release> @@ -58,8 +58,7 @@ libraries are available. </stability> <license uri="http://www.php.net/license">PHP</license> <notes> -Added oci_bind_by_name() support for PL/SQL BOOLEAN type -Build change: Fix source variable definition for C89 compatibility +Enhancement - Improve performance of multi-row OCI_RETURN_LOB queries (Bug #66875) </notes> <contents> <dir name="/"> @@ -463,6 +462,22 @@ Build change: Fix source variable definition for C89 compatibility <changelog> <release> + <version> + <release>2.0.7</release> + <api>2.0.7</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <license uri="http://www.php.net/license">PHP</license> + <notes> +Added oci_bind_by_name() support for PL/SQL BOOLEAN type +Build change: Fix source variable definition for C89 compatibility + </notes> +</release> + +<release> <version> <release>2.0.6</release> <api>2.0.6</api> diff --git a/ext/oci8/php_oci8.h b/ext/oci8/php_oci8.h index 1706106..5c78faa 100644 --- a/ext/oci8/php_oci8.h +++ b/ext/oci8/php_oci8.h @@ -45,7 +45,7 @@ */ #undef PHP_OCI8_VERSION #endif -#define PHP_OCI8_VERSION "2.0.7" +#define PHP_OCI8_VERSION "2.0.8" extern zend_module_entry oci8_module_entry; #define phpext_oci8_ptr &oci8_module_entry diff --git a/ext/oci8/php_oci8_int.h b/ext/oci8/php_oci8_int.h index 5da3ea5..b9d5467 100644 --- a/ext/oci8/php_oci8_int.h +++ b/ext/oci8/php_oci8_int.h @@ -283,6 +283,7 @@ typedef struct { sb2 precision; /* column precision */ ub1 charset_form; /* charset form, required for NCLOBs */ ub2 charset_id; /* charset ID */ + ub4 chunk_size; /* LOB chunk size */ } php_oci_out_column; /* }}} */

« previous php.cvs (#76429) next »