[teiid-issues] [JBoss JIRA] (TEIID-5566) Outer join prevents dependent join creation

Steven Hawkins (Jira) issues at jboss.org
Fri Dec 7 09:27:00 EST 2018


     [ https://issues.jboss.org/browse/TEIID-5566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Hawkins updated TEIID-5566:
----------------------------------
               Component/s: Query Engine
    Workaround Description: 
Use a preserve hint to prevent the manipulation of the join ordering.  In this example it can be applied around the top level join:

{code}... FROM /*+ preserve */ (meds_owner.compound ...) WHERE MEDS_OWNER... {code}


> Outer join prevents dependent join creation
> -------------------------------------------
>
>                 Key: TEIID-5566
>                 URL: https://issues.jboss.org/browse/TEIID-5566
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 11.0.1
>            Reporter: Mike Higgins
>            Assignee: Steven Hawkins
>            Priority: Major
>         Attachments: missing_dep_debugplan.txt, missing_dep_inner_debugplan.txt, missing_dep_inner_plan.txt, missing_dep_plan.txt
>
>
> This query:
> SELECT MEDS_OWNER.COMPOUND."COMPOUND_SEQ_ID", MEDS_OWNER.COMPOUND."COMPOUND_NUMBER", MEDS_OWNER.PARENT_EQUIV_V."COMPOUND_PARENT", 
> SCR_BATCH_INFO."PARENT_ID", SCR_BATCH_INFO."BATCH_NUMBER", SCR_EVT."COMPOUND_NUMBER", SCR_EVT."BATCH_TRACKING_ID", 
> SCR_PRJ."PGRD_THRPC_AREA_CHAR_TYPE", SCR_PRJ."PGRD_PROJ_SHORT_DESC", SCR_EVT."PGRD_PROJECT_CODE", 
> SCR_SITE."RSCH_SITE_SHORT_DESC", SCR_EVT."RSCH_SITE_CODE", SCR_EVT."CMPD_BATCH_EVENT_CODE", 
> SCR_EVT."CMPD_BTCH_SCR_EVENT_TS", SCR_SCREEN_INFO."SCR_PRTCL_SHORT_DESC", SCR_SCREEN_INFO."SCR_PRTCL_SHORT_NAME", 
> SCR_EVT."CMPD_BTCH_SCR_EVT_KEY" 
> FROM meds_owner.compound 
> LEFT OUTER JOIN meds_owner.parent AllParentCompounds ON (MEDS_OWNER.COMPOUND."PARENT_SEQ_ID" = AllParentCompounds."PARENT_SEQ_ID") LEFT OUTER JOIN meds_owner.parent_equiv_v 
> ON (AllParentCompounds."PARENT_SEQ_ID_EQV" = MEDS_OWNER.PARENT_EQUIV_V."PARENT_SEQ_ID") 
> LEFT OUTER /* inner join works */ JOIN (rifdm4.dmf_cet_cmpd_btch_scr_events SCR_EVT LEFT OUTER JOIN rifdwn_wp.dwn_pgrd_projects_v SCR_PRJ 
> ON (SCR_EVT."PGRD_PROJECT_CODE" = SCR_PRJ."PGRD_PROJECT_CODE") 
> LEFT OUTER JOIN rifods.ods_research_sites SCR_SITE ON (SCR_EVT."RSCH_SITE_CODE" = SCR_SITE."RSCH_SITE_CODE") 
> LEFT OUTER JOIN rifdwh.dw_screen_protocols SCR_SCREEN_INFO ON (SCR_EVT."SCREEN_PROTOCOL_ID" = SCR_SCREEN_INFO."SCR_PRTCL_ID")) 
> ON (((MEDS_OWNER.COMPOUND."COMPOUND_NUMBER" = SCR_EVT."COMPOUND_NUMBER") 
> AND (SCR_EVT."CMPD_BATCH_EVENT_CODE" 
> IN ('EXPSTART', 'EXPEND', 'EXPPUB'))) 
> AND ((SCR_EVT."CBTCH_EVENT_SRC_DEL_IND" = 'N') 
> AND ((SCR_EVT."CMPD_BATCH_EVENT_CODE" = 'EXPSTART') 
> OR (SCR_EVT."CMPD_BATCH_EVENT_CODE" = 'EXPEND') 
> OR (SCR_EVT."CMPD_BATCH_EVENT_CODE" = 'EXPPUB')))) 
> LEFT OUTER JOIN rifdm1.cpm_compound_batch SCR_BATCH_INFO ON (SCR_EVT."BATCH_TRACKING_ID" = SCR_BATCH_INFO."BATCH_TRACKING_NO") 
> WHERE MEDS_OWNER.COMPOUND."COMPOUND_SEQ_ID" IN (21475535)
>  option makedep SCR_EVT, SCR_BATCH_INFO
> does not create a dependent join on the SCR_EVT table.  If you change the join to SCR_EVT to inner, it does.  
> Plans and debug plans for both cases are attached.  As a note, an older version of Teiid that we are also using (9.3.4) always creates the dependent join.  11.0.1 and 10.2.3 do not create the dependent join if the table is outer joined.



--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the teiid-issues mailing list