LD 8.1 SP2 - Join on xf:contains not pushed to database - CR178819 (Doc ID 775182.1)

Last updated on MAY 06, 2017

Applies to:

AquaLogic Data Services Platform (ALDSP) / Liquid Data / 8.1
Information in this document applies to any platform

Goal

DESCRIPTION:
Queries that contain xf:contains(value1, value2) where value2 is not a string constant, LD cannot push this to the
database. LD will push a string constant, but not 'value2'. This could be the cause of a performance bottleneck.

A sample query that falls in this category would be something like this
namespace cs = "<http://cs.mtn.lmco.com/cs_XML.xsd>;
 <cs:cs_XML> 
<cs:Response>
 <cs:DataQueryResponse>
 <cs:DataList>
 { 
for $COURSE_ORA.COURSES_PROF_28 in document("COURSE_ORA")/db/COURSES_PROF 
let $xf:string_length_29 := xf:string-length( treat as xs:string(xf:data($COURSE_ORA.COURSES_PROF_28/EX_COURSE))) 
let $gt_30 := $xf:string_length_29 gt 0 
return 
<cs:DataElement :type={xfext:if-then-else( treat as xs:boolean($gt_30), "COURS_INFO", " ")}>

{
 for $COURSE_ORA.STUDENTS_32 in document("COURSE_ORA")/db/STUDENTS 
for $COURSE_ORA.COURSES_33 in document("COURSE_ORA")/db/COURSES 
for $COURSE_ORA.PROFESSORS_34 in document("COURSE_ORA")/db/PROFESSORS 
for $COURSE_ORA.PROF_COURSE_35 in document("COURSE_ORA")/db/PROF_COURSE 
where ($COURSE_ORA.COURSES_33/COURSEID eq $COURSE_ORA.PROFESSORS_34/COURSEID) 
and ($COURSE_ORA.PROFESSORS_34/PROFESSORID eq $COURSE_ORA.PROF_COURSE_35/PROFESSORID) 
and ($COURSE_ORA.STUDENTS_32/STUDENTID eq $COURSE_ORA.PROF_COURSE_35/STUDENTID) 
and xf:contains( treat as xs:string(xf:data($COURSE_ORA.COURSES_PROF_28/EX_COURSE)), treat as
xs:string(xf:data($COURSE_ORA.COURSES_33/COURSENAME))) 
return 
<cs:StringAttribute :type={"STUDENT_NAME"}>{ xf:data($COURSE_ORA.STUDENTS_32/FULLNAME)
}</cs:StringAttribute> 
} 
</cs:DataElement>
 }
 </cs:DataList>
 </cs:DataQueryResponse>
 </cs:Response> 
</cs:cs_XML> 

CONFIGURATION:
Liquid Data 8.1

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms