[
https://issues.jboss.org/browse/TEIID-5542?page=com.atlassian.jira.plugin...
]
Steven Hawkins resolved TEIID-5542.
-----------------------------------
Resolution: Done
It's a little easier to read prior to the downward reduction:
//root
{code}
ancestor-or-self document-node()
descendant element(Q{}root)
{code}
root()/root
{code}
ancestor-or-self element()
descendant element()
childelement(Q{}root)
{code}
Note that the arc when using the root function is looking for an ancestor element - not
specifically the document node - and then any descendant. That is what is causing the
path map filter to accept all elements.
So there were two choices for a fix here. Either scan the path map arcs for something
that looks like this and disable projection or attempt to repair (effectively trying to
replace root()/ with //). Or scan the expressions for the root function and disable
projection. The latter was simpler to implement. So for now document projection will not
be allowed when root() is used.
XMLTable path assumptions
-------------------------
Key: TEIID-5542
URL:
https://issues.jboss.org/browse/TEIID-5542
Project: Teiid
Issue Type: Quality Risk
Components: Query Engine
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Priority: Major
Fix For: 12.0
By the spec, and for example with Postgresql, a column PATH that begins with / or // is
not relative to the context item. Teiid modeled its initial implementation on Oracle
where that is the case. For greater compliance we should add an option to change the
handling to be spec compliant.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)