]
Steven Hawkins commented on TEIID-5864:
---------------------------------------
This takes a certain structure containing 3 left outer joins, such that the logic things
there's still something to be gained by reorganizing the joins, but really it's
just shuffling the same three. It will take a little more logic to detect this terminal
condition.
Teiid Query Join Plan Infinite Loop
-----------------------------------
Key: TEIID-5864
URL:
https://issues.redhat.com/browse/TEIID-5864
Project: Teiid
Issue Type: Bug
Components: Query Engine
Reporter: Mark Tawk
Assignee: Steven Hawkins
Priority: Major
Fix For: 13.0, 12.2.2, 12.3.1
Original Estimate: 4 hours
Time Spent: 1 hour
Remaining Estimate: 3 hours
We are getting an infinite loop when executing the below SQL:
{code:java}
SELECT c._COMPTE,
u.CalculatedField,
cl.CHAMPSFCP__VALEUR,
ch_41.CH41__VALEUR,
ch_5.CH5__VALEUR
FROM OmgModel_Z1rP.OMG.dbo.CPARTFCP c
LEFT JOIN BInv6BusinessModel.FREPACCOUNTUNION u
ON u.FREP_AFAINB = c._USERNAME
AND u.CalculatedField6 = 'B'
LEFT JOIN BInv6BusinessModel.ClientTypeCode cl
ON c._COMPTE = cl.CHAMPSFCP__COMPTE
LEFT JOIN (SELECT ch._COMPTE AS CH41__COMPTE,
ch._VALEUR AS CH41__VALEUR
FROM OmgModel_Z1rP.OMG.dbo.CHAMPSFCP ch
WHERE ch._NUMCHAMPS = 41) ch_41
ON c._COMPTE = ch_41.CH41__COMPTE
LEFT JOIN (SELECT ch._COMPTE AS CH5__COMPTE,
ch._VALEUR AS CH5__VALEUR
FROM OmgModel_Z1rP.OMG.dbo.CHAMPSFCP ch
WHERE ch._NUMCHAMPS = 5) ch_5
ON c._COMPTE = ch_5.CH5__COMPTE LIMIT 0, 10
{code}
After debugging, find out that the issue is coming from the class RulePlanOuterJoins
method planLeftOuterJoinAssociativityBeforePlanning.
the issue is coming from the below code line, if removed the issue is not reproduced:
{code:java}
changedAny |= val;
{code}