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 "Bryan Pendleton (JIRA)" <ji...@apache.org> on 2007/10/08 03:21:50 UTC

[jira] Updated: (DERBY-3097) Unnecessary if statement can be removed from BaseActivation.getColumnFromNow

     [ https://issues.apache.org/jira/browse/DERBY-3097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bryan Pendleton updated DERBY-3097:
-----------------------------------

    Attachment: checkNumOpens.diff

Attached is checkNumOpens.diff, a patch proposal.
This patch:
 - removes the defensive "if" statement from getColumnFromRow
 - removes the code which caught and recovered from the NPE
   in TableScanResultSet.printPosition, and replaces it with code
  which checks numOpens == 0 and uses that to decide if the
  positioning information should be printed or not.
 - adds the script from Beetle 4736 as a new regression case in
  subqueryFlattening.sql
 - updates predicatePushdown.out to reflect the new positioning output.

I think this patch is worthy of review; any feedback would be welcome.


> Unnecessary if statement can be removed from BaseActivation.getColumnFromNow
> ----------------------------------------------------------------------------
>
>                 Key: DERBY-3097
>                 URL: https://issues.apache.org/jira/browse/DERBY-3097
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 10.4.0.0
>            Reporter: Bryan Pendleton
>            Assignee: Bryan Pendleton
>            Priority: Minor
>         Attachments: checkNumOpens.diff
>
>
> In BaseActivation.java there is the following code:
> protected final DataValueDescriptor getColumnFromRow(int rsNumber, int colId)
> throws StandardException {
>         if( row[rsNumber] == null)
>         {
>             /* This actually happens. NoPutResultSetImpl.clearOrderableCache attempts to prefetch invariant values
>              * into a cache. This fails in some deeply nested joins. See Beetle 4736 and 4880.
>              */
>             return null;
>         }
> return row[rsNumber].getColumn(colId);
> }
> During the investigation of DERBY-3033, I came to the conclusion that this "if" statement is no longer necessary, and in fact is counter-productive, for it makes diagnosing other problems harder by delaying the point at which data structure problems are exposed as errors in the code.
> This JIRA issue requests that this code be evaluated, to determine whether or not it truly is necessary, and, if it is not necessary, suggests that it should be removed, to result in simpler, clearer code.

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