You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Richard N. Hillegas (Jira)" <ji...@apache.org> on 2020/07/02 22:56:00 UTC

[jira] [Commented] (DERBY-7082) A rotten comment in IndexStatisticsDaemonImpl.java

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

Richard N. Hillegas commented on DERBY-7082:
--------------------------------------------

The comment seem appropriate to me. It references an issue which, in turn, references another issue which has a repro to verify the affected functionality. That seems like valuable information and I appreciate it being preserved in a source code comment.

> A rotten comment in IndexStatisticsDaemonImpl.java
> --------------------------------------------------
>
>                 Key: DERBY-7082
>                 URL: https://issues.apache.org/jira/browse/DERBY-7082
>             Project: Derby
>          Issue Type: Bug
>            Reporter: ackelcn
>            Priority: Major
>
> When I read the code of DataDictionaryImpl.java, I found a comment:
>  
> {code:java}
>  private void setHeapRowEstimate(TransactionController tc, long tableId,
>                                     long rowEstimate)
>             throws StandardException {
>         // DERBY-4116: If we know the row count, update the store estimated row
>         // count for the table.
>         ScanController sc = tc.openScan(
>     ...
> }{code}
> The comment mentions DERBY-4116. I found that DERBY-4116 modified AlterTableConstantAction.java, and the patch is as follows:
>  
>  
>  
> {code:java}
> @@ -779,6 +782,33 @@@@ -779,6 +782,33 @@  
>   } // for each leading column (c1) (c1,c2)....   
> } // for each index.
> ++ // DERBY-4116 if there were indexes we scanned, we now know the row count.
> + // Update statistics should update the store estimated row count for the table.
> + // If we didn't scan an index and don't know, numRows will still be -1 and
> + // we skip the estimatedRowCount update.
> + 
> + if (numRows == -1)
> + return;
> + 
> + ScanController heapSC = tc.openScan(td.getHeapConglomerateId(),
> + false,  // hold
> + 0,      // openMode: for read
> + TransactionController.MODE_RECORD, // locking
> + TransactionController.ISOLATION_READ_UNCOMMITTED, //isolation level
> + null,   // scancolumnlist-- want everything.
> + null,   // startkeyvalue-- start from the beginning.+ 0,
> + null,   // qualifiers, none!
> + null,   // stopkeyvalue,+ 0);
> + 
> + try { 
> + heapSC.setEstimatedRowCount(numRows);
> + } finally { 
> + heapSC.close();
> + }
> + }
> {code}
> The patch modified the updateStatistics method. However, the method is totaly rewritten by follow-up commits, and the method does not contain the above added lines any more.  
>  
>  
> I am wondering whether IndexStatisticsDaemonImpl.java mentions a rotten issue report (DERBY-4116--), in that all the modifications of this issue do not appear in the latest version.
>  
> Would you please check the problem? If it is, the reference of DERBY-4116 shall be removed from the comment of  DataDictionaryImpl.java.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)