if (proColumn.getSymbol().getType() == DataTypeManager.DefaultDataClasses.XML) { XMLType value = table.getXQueryExpression().createXMLType(pathIter.getAnother(), this.getBufferManager(), false, getContext()); tuple.add(value); continue; if (proColumn.getSymbol().getType().isArray()) { ArrayList<Object> vals = new ArrayList<Object>(); vals.add(getValue(proColumn.getSymbol().getType().getComponentType(), colItem, this.table.getXQueryExpression().getConfig(), getContext())); Item next = null; while ((next = pathIter.next()) != null) { vals.add(getValue(proColumn.getSymbol().getType().getComponentType(), next, this.table.getXQueryExpression().getConfig(), getContext())); Object value = new ArrayImpl(vals.toArray((Object[]) Array.newInstance(proColumn.getSymbol().getType().getComponentType(), vals.size()))); tuple.add(value); continue; throw new TeiidProcessingException(QueryPlugin.Event.TEIID30171, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30171, proColumn.getName())); Object value = getValue(proColumn.getSymbol().getType(), colItem, this.table.getXQueryExpression().getConfig(), getContext()); tuple.add(value); } catch (XPathException e) {
if (proColumn.getSymbol().getType() == DataTypeManager.DefaultDataClasses.XML) { SequenceIterator pushBack = new PushBackSequenceIterator(pathIter, colItem); XMLType value = table.getXQueryExpression().createXMLType(pushBack, this.getBufferManager(), false, getContext()); continue; if (proColumn.getSymbol().getType().isArray()) { ArrayList<Object> vals = new ArrayList<Object>(); vals.add(getValue(proColumn.getSymbol().getType().getComponentType(), colItem, this.table.getXQueryExpression().getConfig(), getContext())); Item next = null; while ((next = pathIter.next()) != null) { vals.add(getValue(proColumn.getSymbol().getType().getComponentType(), next, this.table.getXQueryExpression().getConfig(), getContext())); Object value = new ArrayImpl(vals.toArray((Object[]) Array.newInstance(proColumn.getSymbol().getType().getComponentType(), vals.size()))); tuple.add(value); continue; throw new TeiidProcessingException(QueryPlugin.Event.TEIID30171, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30171, proColumn.getName())); Object value = getValue(proColumn.getSymbol().getType(), colItem, this.table.getXQueryExpression().getConfig(), getContext()); tuple.add(value); } catch (XPathException e) {
if (proColumn.getSymbol().getType() == DataTypeManager.DefaultDataClasses.XML) { SequenceIterator pushBack = new PushBackSequenceIterator(pathIter, colItem); XMLType value = table.getXQueryExpression().createXMLType(pushBack, this.getBufferManager(), false, getContext()); continue; if (proColumn.getSymbol().getType().isArray()) { ArrayList<Object> vals = new ArrayList<Object>(); vals.add(getValue(proColumn.getSymbol().getType().getComponentType(), colItem, this.table.getXQueryExpression().getConfig(), getContext())); Item next = null; while ((next = pathIter.next()) != null) { vals.add(getValue(proColumn.getSymbol().getType().getComponentType(), next, this.table.getXQueryExpression().getConfig(), getContext())); Object value = new ArrayImpl(vals.toArray((Object[]) Array.newInstance(proColumn.getSymbol().getType().getComponentType(), vals.size()))); tuple.add(value); continue; throw new TeiidProcessingException(QueryPlugin.Event.TEIID30171, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30171, proColumn.getName())); Object value = getValue(proColumn.getSymbol().getType(), colItem, this.table.getXQueryExpression().getConfig(), getContext()); tuple.add(value); } catch (XPathException e) {
@Override public void visit(XMLTable obj) { LinkedHashSet<GroupSymbol> saved = preTableFunctionReference(obj); visitNodes(obj.getPassing()); postTableFunctionReference(obj, saved); try { ResolverUtil.setDesiredType(obj.getPassing(), obj); obj.compileXqueryExpression(); for (XMLTable.XMLColumn column : obj.getColumns()) { if (column.getDefaultExpression() == null) { continue; } visitNode(column.getDefaultExpression()); Expression ex = ResolverUtil.convertExpression(column.getDefaultExpression(), DataTypeManager.getDataTypeName(column.getSymbol().getType()), metadata); column.setDefaultExpression(ex); } } catch (TeiidException e) { throw new TeiidRuntimeException(e); } }
@Override public void visit(XMLTable obj) { LinkedHashSet<GroupSymbol> saved = preTableFunctionReference(obj); visitNodes(obj.getPassing()); postTableFunctionReference(obj, saved); try { ResolverUtil.setDesiredType(obj.getPassing(), obj); obj.compileXqueryExpression(); for (XMLTable.XMLColumn column : obj.getColumns()) { if (column.getDefaultExpression() == null) { continue; } visitNode(column.getDefaultExpression()); Expression ex = ResolverUtil.convertExpression(column.getDefaultExpression(), DataTypeManager.getDataTypeName(column.getSymbol().getType()), metadata); column.setDefaultExpression(ex); } } catch (TeiidException e) { throw new TeiidRuntimeException(e); } }
@Override public void visit(XMLTable obj) { LinkedHashSet<GroupSymbol> saved = preTableFunctionReference(obj); visitNodes(obj.getPassing()); postTableFunctionReference(obj, saved); try { ResolverUtil.setDesiredType(obj.getPassing(), obj); obj.compileXqueryExpression(); for (XMLTable.XMLColumn column : obj.getColumns()) { if (column.getDefaultExpression() == null) { continue; } visitNode(column.getDefaultExpression()); Expression ex = ResolverUtil.convertExpression(column.getDefaultExpression(), DataTypeManager.getDataTypeName(column.getSymbol().getType()), metadata); column.setDefaultExpression(ex); } } catch (TeiidException e) { throw new TeiidRuntimeException(e); } }
private void addReturnedArcs(XMLColumn xmlColumn, PathMapNode subNode) { if (xmlColumn.getSymbol().getType() == DataTypeManager.DefaultDataClasses.XML) { subNode.createArc(AxisInfo.DESCENDANT_OR_SELF, AnyNodeTest.getInstance()); } else { //this may not always be needed, but it doesn't harm anything subNode.createArc(AxisInfo.CHILD, NodeKindTest.TEXT); subNode.setAtomized(); } }