Is Teiid using XML Streaming for this View definition
jrod2016 Nov 15, 2016 4:50 PMMy view definition is as follows:
CREATE VIEW TestADFView (Product_name VARCHAR(102), Date_ TIMESTAMP, Unit_price DOUBLE) AS SELECT A.Product_name, A.Date_, A.Unit_price FROM (EXEC AdfcoreSource.executeProfile(52)) AS f, XMLTABLE('/*[local-name()=''dataset'']/*[local-name()=''data'']/*[local-name()=''row'']' PASSING XMLPARSE(DOCUMENT f.result WELLFORMED) COLUMNS Product_name VARCHAR(102) PATH '*[local-name()=''value''][1]/text()', Date_ TIMESTAMP PATH '*[local-name()=''value''][2]/text()', Unit_price DOUBLE PATH '*[local-name()=''value''][3]/text()') AS A
Is Teiid using streaming for processing or loading the entire document into memory? I'm getting the following OOM exception:
java.lang.OutOfMemoryError: Java heap space at net.sf.saxon.tree.tiny.TinyTree.ensureNodeCapacity(TinyTree.java:258) ~[saxon9ee.jar:na] at net.sf.saxon.tree.tiny.TinyTree.addNode(TinyTree.java:377) ~[saxon9ee.jar:na] at net.sf.saxon.tree.tiny.TinyBuilder.startElement(TinyBuilder.java:245) ~[saxon9ee.jar:na] at net.sf.saxon.event.NamespaceReducer.startElement(NamespaceReducer.java:73) ~[saxon9ee.jar:na] at net.sf.saxon.event.ProxyReceiver.startElement(ProxyReceiver.java:129) ~[saxon9ee.jar:na] at org.teiid.query.xquery.saxon.PathMapFilter.startElement(PathMapFilter.java:126) ~[teiid-engine-9.0.1.jar:9.0.1] at net.sf.saxon.event.ReceivingContentHandler.startElement(ReceivingContentHandler.java:292) ~[saxon9ee.jar:na] at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) ~[xercesImpl-2.10.0.jar:na] at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) ~[xercesImpl-2.10.0.jar:na] at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) ~[xercesImpl-2.10.0.jar:na] at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) ~[xercesImpl-2.10.0.jar:na] at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[xercesImpl-2.10.0.jar:na] at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[xercesImpl-2.10.0.jar:na] at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) ~[xercesImpl-2.10.0.jar:na] at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) ~[xercesImpl-2.10.0.jar:na] at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) ~[xercesImpl-2.10.0.jar:na] at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:428) ~[saxon9ee.jar:na] at net.sf.saxon.event.Sender.send(Sender.java:170) ~[saxon9ee.jar:na] at net.sf.saxon.Configuration.buildDocument(Configuration.java:3361) ~[saxon9ee.jar:na] at net.sf.saxon.Configuration.buildDocument(Configuration.java:3303) ~[saxon9ee.jar:na] at org.teiid.query.xquery.saxon.XQueryEvaluator.evaluateXQuery(XQueryEvaluator.java:159) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.query.processor.relational.XMLTableNode.evaluate(XMLTableNode.java:295) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.query.processor.relational.XMLTableNode.nextBatchDirect(XMLTableNode.java:193) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:282) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.query.processor.relational.LimitNode.nextBatchDirect(LimitNode.java:102) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:282) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:69) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:70) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:84) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:92) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.query.processor.relational.NestedTableJoinStrategy.process(NestedTableJoinStrategy.java:119) ~[teiid-engine-9.0.1.jar:9.0.1] at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:227) ~[teiid-engine-9.0.1.jar:9.0.1]
The document being processed is 244 MB and my heap size is set to 1024M. This works with a heap size of 4096 MB. The Teiid result set is being consumed by a JDBC client.