[teiid-issues] [JBoss JIRA] (TEIID-5541) Incorrect parsing of xml with XmlTable

Steven Hawkins (Jira) issues at jboss.org
Thu Nov 15 10:12:00 EST 2018


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

Steven Hawkins resolved TEIID-5541.
-----------------------------------
    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.



> Incorrect parsing of xml with XmlTable
> --------------------------------------
>
>                 Key: TEIID-5541
>                 URL: https://issues.jboss.org/browse/TEIID-5541
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 11.1
>         Environment: teiid-11.1.0 (from 01.09.2018) on WildFly Full 11.0.0.Final (WildFly Core 3.0.8.Final)
>            Reporter: dalex dalex
>            Assignee: Steven Hawkins
>            Priority: Blocker
>
> Running the query:
> {code:sql}
> Begin
> 	Declare xml xcontent = '<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> 	<report>
> 		<data>
> 			<year xsi:type="decimal">2018</year>
> 		</data>
> 	</report>
> 	<waitSeconds xsi:type="decimal">13</waitSeconds>
>      </root>' ;
> 	Select *
> 	From 
> 		XmlTable(
> 			XmlNamespaces ('http://www.w3.org/2001/XMLSchema-instance' as xsi),
> 			'/root/report/data' 
> 			PASSING xcontent 
> 			Columns 
> 				"year" integer,
> 				waitSeconds xml Path 'root()/root/waitSeconds',
> 				waitSecondsStr string Path 'root()/root/waitSeconds'
> 	)a ;
> End ;;
> {code}
> and having a look at the structure we can see that the value 13 should be returned, while the value is not picked from xml for result.



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


More information about the teiid-issues mailing list