Author: mamta Date: Thu Dec 6 11:47:40 2007 New Revision: 601830 URL: http://svn.apache.org/viewvc?rev=601830&view=rev Log: DERBY3037 This commit makes sure that EmbeddedResultSet.close() calls Language Resultset.close rather than Language Resultset.finish. This change caused few tests to fail. The tests had runtime statistics on but the code to dump the runtime statistics was in Language Resutlset.finish and not in Language Resultset.close. To fix this, I have moved the code to dump runtime statistics from Language Resutlset.finish into Lanugage ResultSet.close This has fixed the test failures. As for the 2nd part of this jira entry which is to have activation.close() call Language Resultset.finish(). This already happens in impl.sql.execute.BaseActivation.close() and hence no work was needed for the 2nd part. Will merge this change into 10.3 codeline soon. Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/BasicNoPutResultSetImpl.java db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/NoPutResultSetImpl.java Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java?rev=601830&r1=601829&r2=601830&view=diff ============================================================================== --- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java (original) +++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java Thu Dec 6 11:47:40 2007 @@ -568,7 +568,7 @@ try { try { - theResults.finish(); // release the result set, don't just close it + theResults.close(); if (this.singleUseActivation != null) { Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/BasicNoPutResultSetImpl.java URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/BasicNoPutResultSetImpl.java?rev=601830&r1=601829&r2=601830&view=diff ============================================================================== --- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/BasicNoPutResultSetImpl.java (original) +++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/BasicNoPutResultSetImpl.java Thu Dec 6 11:47:40 2007 @@ -28,11 +28,8 @@ import org.apache.derby.iapi.reference.SQLState; import org.apache.derby.iapi.services.i18n.MessageService; import org.apache.derby.iapi.services.io.FormatableBitSet; -import org.apache.derby.iapi.services.monitor.Monitor; import org.apache.derby.iapi.services.sanity.SanityManager; -import org.apache.derby.iapi.services.stream.HeaderPrintWriter; import org.apache.derby.iapi.sql.Activation; -import org.apache.derby.iapi.sql.ResultDescription; import org.apache.derby.iapi.sql.ResultSet; import org.apache.derby.iapi.sql.Row; import org.apache.derby.iapi.sql.conn.LanguageConnectionContext; @@ -602,36 +599,6 @@ { if (!finished) { - /* - ** If run time statistics tracing is turned on, then now is the - ** time to dump out the information. - */ - if (isTopResultSet) { - - LanguageConnectionContext lcc = getLanguageConnectionContext(); - if (lcc.getRunTimeStatisticsMode()) - { - endExecutionTime = getCurrentTimeMillis(); - - lcc.setRunTimeStatisticsObject( - lcc.getExecutionContext().getResultSetStatisticsFactory().getRunTimeStatistics(activation, this, subqueryTrackingArray)); - - HeaderPrintWriter istream = lcc.getLogQueryPlan() ? Monitor.getStream() : null; - if (istream != null) - { - istream.printlnWithHeader(LanguageConnectionContext.xidStr + - lcc.getTransactionExecute().getTransactionIdString() + - "), " + - LanguageConnectionContext.lccStr + - lcc.getInstanceNumber() + - "), " + - lcc.getRunTimeStatisticsObject().getStatementText() + " ******* " + - lcc.getRunTimeStatisticsObject().getStatementExecutionPlanText()); - } - } - - } - if (!isClosed()) close(); Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/NoPutResultSetImpl.java URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/NoPutResultSetImpl.java?rev=601830&r1=601829&r2=601830&view=diff ============================================================================== --- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/NoPutResultSetImpl.java (original) +++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/NoPutResultSetImpl.java Thu Dec 6 11:47:40 2007 @@ -25,10 +25,12 @@ import org.apache.derby.iapi.reference.SQLState; import org.apache.derby.iapi.services.i18n.MessageService; import org.apache.derby.iapi.services.io.FormatableBitSet; -import org.apache.derby.iapi.services.loader.GeneratedMethod; +import org.apache.derby.iapi.services.monitor.Monitor; import org.apache.derby.iapi.services.sanity.SanityManager; +import org.apache.derby.iapi.services.stream.HeaderPrintWriter; import org.apache.derby.iapi.sql.Activation; import org.apache.derby.iapi.sql.ResultDescription; +import org.apache.derby.iapi.sql.conn.LanguageConnectionContext; import org.apache.derby.iapi.sql.execute.ExecIndexRow; import org.apache.derby.iapi.sql.execute.ExecRow; import org.apache.derby.iapi.sql.execute.NoPutResultSet; @@ -136,6 +138,32 @@ */ if (isTopResultSet) { + /* + ** If run time statistics tracing is turned on, then now is the + ** time to dump out the information. + */ + LanguageConnectionContext lcc = getLanguageConnectionContext(); + if (lcc.getRunTimeStatisticsMode()) + { + endExecutionTime = getCurrentTimeMillis(); + + lcc.setRunTimeStatisticsObject( + lcc.getExecutionContext().getResultSetStatisticsFactory().getRunTimeStatistics(activation, this, subqueryTrackingArray)); + + HeaderPrintWriter istream = lcc.getLogQueryPlan() ? Monitor.getStream() : null; + if (istream != null) + { + istream.printlnWithHeader(LanguageConnectionContext.xidStr + + lcc.getTransactionExecute().getTransactionIdString() + + "), " + + LanguageConnectionContext.lccStr + + lcc.getInstanceNumber() + + "), " + + lcc.getRunTimeStatisticsObject().getStatementText() + " ******* " + + lcc.getRunTimeStatisticsObject().getStatementExecutionPlanText()); + } + } + int staLength = (subqueryTrackingArray == null) ? 0 : subqueryTrackingArray.length;