[ 
https://issues.apache.org/jira/browse/DERBY-2487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12701305#action_12701305
 ] 

Bryan Pendleton commented on DERBY-2487:
----------------------------------------

I'm concerned about the patch's proposed modification to 
iapi.sql.execute.RunTimeStatistics.
The patch proposes to add a reference to 
impl.sql.execute.rts.ResultSetStatistics.

This seems like an indication of a layering problem; the internal 
ResultSetStatistics
class should not need to be visible through this high-level interface.

The newly-added method getTopRSS() is only used in one place, in the 
XPLAINSystemTableVisitor.
I'm going to investigate whether I can change this API so that it doesn't 
expose the implementation class.

One idea was to replace the current API with a new one, something like:

  public void acceptFromTopRSS(XPLAINVisitor v)

which would be implemented in RunTimeStatisticsImpl.java roughly as:

  if (topResultSetStatistics != null)
    topResultSetStatistics.accept(v);

Then the external iapi.sql.execute.RunTimeStatistics interface would only need 
to be aware of
the iapi.sql.execute.xplain.XPLAINVisitor interface, which keeps the layering 
cleaner, I think.

I'll give this a try and see if it works.

> Enhance Derby with EXPLAIN Functionality
> ----------------------------------------
>
>                 Key: DERBY-2487
>                 URL: https://issues.apache.org/jira/browse/DERBY-2487
>             Project: Derby
>          Issue Type: New Feature
>          Components: SQL
>    Affects Versions: 10.2.2.0
>            Reporter: Felix Beyer
>            Assignee: Bryan Pendleton
>            Priority: Minor
>         Attachments: Derby physical XPLAIN schema.png, 
> incorporateTrunkChanges.diff, refactorVisitor.diff, refactorVisitor.diff, 
> removeSourceDepth.diff, RSProtocolNew.pdf, rts.xls, small logical xplain 
> schema.pdf, startRegressionTest.diff, startRegressionTest.diff, 
> startUpgradeTests.diff, updateRegressionTests.diff, 
> updateRegressionTests.diff, usage.txt, userSchemaPrototyping.diff, 
> userSchemaPrototyping.diff, userSchemaPrototyping.diff, xplain_patch_v1.txt, 
> xplainClasses.pdf
>
>
> This enhancement extends Derby with EXPLAIN functions. Users want to have 
> more feedback than they`re getting with the current RuntimeStatistics 
> facility. This extension is based on the 
> RuntimeStatistics/ResultSetStatistics functions / classes. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to