[
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.