From 8bb463c82da29a8dcbb09f1f31a0dd0cdb59b84f Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Fri, 8 Jun 2007 08:44:26 +0000 Subject: [PATCH] enable statement cache for non-persistent connections (patch by Chris Jones) --- ext/oci8/oci8.c | 2 +- ext/oci8/oci8_statement.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ext/oci8/oci8.c b/ext/oci8/oci8.c index 375511c080..8f45f9153b 100644 --- a/ext/oci8/oci8.c +++ b/ext/oci8/oci8.c @@ -1417,7 +1417,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))); diff --git a/ext/oci8/oci8_statement.c b/ext/oci8/oci8_statement.c index 6069a277f0..1cc811362f 100644 --- a/ext/oci8/oci8_statement.c +++ b/ext/oci8/oci8_statement.c @@ -82,7 +82,7 @@ php_oci_statement *php_oci_statement_create (php_oci_connection *connection, zst 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)); @@ -746,7 +746,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)); } -- 2.50.1