]> granicus.if.org Git - php/commitdiff
MFH: enable statement cache for non-persistent connections (patch by Chris Jones)
authorAntony Dovgal <tony2001@php.net>
Fri, 8 Jun 2007 08:44:39 +0000 (08:44 +0000)
committerAntony Dovgal <tony2001@php.net>
Fri, 8 Jun 2007 08:44:39 +0000 (08:44 +0000)
ext/oci8/oci8.c
ext/oci8/oci8_statement.c

index cf4c3210662dbfaf9b81a39d01681a3278ad281a..ccfe6cd269bf42549ab3a11daf25f8c45ec2a9de 100644 (file)
@@ -1374,7 +1374,7 @@ open:
        }
 
 #if HAVE_OCI_STMT_PREPARE2
-       if (connection->is_persistent) {
+       {
                ub4 statement_cache_size = (OCI_G(statement_cache_size) > 0) ? OCI_G(statement_cache_size) : 0;
 
                PHP_OCI_CALL_RETURN(OCI_G(errcode), OCIAttrSet, ((dvoid *) connection->svc, (ub4) OCI_HTYPE_SVCCTX, (ub4 *) &statement_cache_size, 0, (ub4) OCI_ATTR_STMTCACHESIZE, OCI_G(err)));
index 672d72f34e9a4ea04bc2f4bee35c05b32e0b5cf4..c28ca8216b1bf975ff21e0855358739d028cded7 100644 (file)
@@ -82,7 +82,7 @@ php_oci_statement *php_oci_statement_create (php_oci_connection *connection, cha
                        php_oci_error(connection->err, connection->errcode TSRMLS_CC);
 
 #if HAVE_OCI_STMT_PREPARE2
-                       PHP_OCI_CALL(OCIStmtRelease, (statement->stmt, statement->err, NULL, 0, OCI_DEFAULT));
+                       PHP_OCI_CALL(OCIStmtRelease, (statement->stmt, statement->err, NULL, 0, statement->errcode ? OCI_STRLS_CACHE_DELETE : OCI_DEFAULT));
                        PHP_OCI_CALL(OCIHandleFree,(statement->err, OCI_HTYPE_ERROR));
 #else
                        PHP_OCI_CALL(OCIHandleFree,(statement->stmt, OCI_HTYPE_STMT));
@@ -733,7 +733,7 @@ void php_oci_statement_free(php_oci_statement *statement TSRMLS_DC)
        if (statement->stmt) {
 #if HAVE_OCI_STMT_PREPARE2
                if (statement->last_query_len) { /* FIXME: magical */
-                       PHP_OCI_CALL(OCIStmtRelease, (statement->stmt, statement->err, NULL, 0, OCI_DEFAULT));
+                       PHP_OCI_CALL(OCIStmtRelease, (statement->stmt, statement->err, NULL, 0, statement->errcode ? OCI_STRLS_CACHE_DELETE : OCI_DEFAULT));
                } else {
                        PHP_OCI_CALL(OCIHandleFree, (statement->stmt, OCI_HTYPE_STMT));
                }