[teiid-dev] XML as a source

John Doyle jdoyle at redhat.com
Thu Sep 17 14:59:52 EDT 2009


That SQL doesn't make any sense you say.  Right you are.  :)  But it does get to my point.

How do we create SQL for this:

Get all PO.Numbers where any of the items has a quantity greater than 10.

~jd

----- "John Doyle" <jdoyle at redhat.com> wrote:

> I'm not really arguing against XPath as the syntax to express the
> mapping, it's a good solution.  I'm describing a higher level problem
> that I don't see the solution for.  
> 
> Lets say we have a virtual view we have created for a purchase order
> document and we have defined three tables with the proposed new
> functions: PO, Address, and Item.  POs have both BillTo and ShipTo
> Addresses as well as a list of Items.  Now we query this view with the
> following:
> 
> Select PO.Number from PO, Item where Item.Quantity > 10;
> 
> If our virtual tables defined by our functions are just returning row
> sets, how does this join get resolved?  How does the engine know?  In
> the XML-Relational implementation we create keyed relations in the
> model and then insert keys into the document as it is parsed so that
> we engine can resolve the join across the result sets we produce.
> 
> ~jd
> 
> ----- "Ramesh Reddy" <rareddy at redhat.com> wrote:
> 
> > I see that in the current source model's table and column property
> > "NameInSource" already contains a xpath expression to get to column
> > information from a given XML document. How is proposed function
> based
> > model is different, than just making a what is source model now to
> a
> > virtual model in future. However, this forces the XML --> Table
> > mappings
> > will be done at the engine level, thus pushes relational issues to
> > engine. Am I interpreting the scenario correctly?
> > 
> > On Thu, 2009-09-17 at 12:05 -0400, John Doyle wrote:
> > > I wanted to pick up the discussion started in TEIID_817 around
> > improvements/alternatives to the current implementation of the XML
> > Connectors (https://jira.jboss.org/jira/browse/TEIID-817). 
> > Specifically I want to get a better understanding of the idea Steve
> > presented.
> > > ___
> > > ...
> > > The alternative we've talked about before is to treat the source
> > access and table extraction as primary and separate functions of
> > Teiid. Executing a web service could have a procedure like xml
> > getDoc(xml param) - which is essentially the approach of the XML
> > Source logic. On top of that there can be helper SQL/XML like
> > functions to map a rowset to xml, such as xmlforest, and the result
> > xml to "tables" - something like extract(xml param, xpath as col1,
> > xpath as col2....). At the very least adding a rowset or table
> type.
> > > __
> > > 
> > > 
> > > How do you envision exposing the functions, specifically
> functions
> > that turn XML into a rowset or table, to users?  Would they be
> > available in Transformations that define virtual tables?  This
> would
> > retain the central value of the XML-Relational connectors, and
> remove
> > much of the complexity of how it does it.
> > > 
> > > One of the challenges in this is that we need to be able to
> extract
> > multiple virtual tables from a single XML document, and retain
> > (create) the relationships between them.  For instance, if we
> extract
> > PO, Address and Item tables from a Purchase Order xml document, we
> > need to be able to map the item to the purchase order that it came
> > from.  We do this currently by adding id's to the xml document and
> > exposing them in the model we generate.
> > > 
> > > One thing I'll note is that passing around XML has it's limits. 
> > Some of our customers are handling very large XML.
> > > 
> > > ~jd
> > 
> > _______________________________________________
> > teiid-dev mailing list
> > teiid-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/teiid-dev
> _______________________________________________
> teiid-dev mailing list
> teiid-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/teiid-dev


More information about the teiid-dev mailing list