[
https://issues.jboss.org/browse/TEIID-2688?page=com.atlassian.jira.plugin...
]
Steven Hawkins resolved TEIID-2688.
-----------------------------------
Resolution: Done
Corrected the logic that checks for the potential criteria placement by temporarily
placing the criteria in the plan.
NPE determining dependent join cost
-----------------------------------
Key: TEIID-2688
URL:
https://issues.jboss.org/browse/TEIID-2688
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 7.4
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 8.6
Given that the initial node in the cost determination is not a select node if it is
"pushed" to a point where the criteria is assumed to exist, then an NPE is
thrown:
java.lang.NullPointerException
at
org.teiid.query.optimizer.relational.rules.JoinUtil.replaceWithNullValues(JoinUtil.java:186)
at
org.teiid.query.optimizer.relational.rules.JoinUtil.isNullDependent(JoinUtil.java:141)
at
org.teiid.query.optimizer.relational.rules.JoinUtil.optimizeJoinType(JoinUtil.java:106)
at
org.teiid.query.optimizer.relational.rules.RulePushSelectCriteria.examinePath(RulePushSelectCriteria.java:356)
at
org.teiid.query.optimizer.relational.rules.NewCalculateCostUtil.determineTargets(NewCalculateCostUtil.java:1294)
at
org.teiid.query.optimizer.relational.rules.NewCalculateCostUtil.computeCostForDepJoin(NewCalculateCostUtil.java:1155)
at
org.teiid.query.optimizer.relational.rules.JoinRegion.getDepJoinCost(JoinRegion.java:373)
at
org.teiid.query.optimizer.relational.rules.JoinRegion.scoreRegion(JoinRegion.java:316)
at
org.teiid.query.optimizer.relational.rules.RulePlanJoins.findBestJoinOrder(RulePlanJoins.java:571)
at
org.teiid.query.optimizer.relational.rules.RulePlanJoins.execute(RulePlanJoins.java:173)
at
org.teiid.query.optimizer.relational.RelationalPlanner.executeRules(RelationalPlanner.java:525)
at
org.teiid.query.optimizer.relational.RelationalPlanner.optimize(RelationalPlanner.java:212)
at org.teiid.query.optimizer.QueryOptimizer.optimizePlan(QueryOptimizer.java:195)
This will occur if the prospective dependent join for example is above an outer join such
that we need to check whether pushing the criteria would alter the meaning of the join.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira