@Override public TupleExpr visit(ASTDescribe node, Object data) throws VisitorException { TupleExpr tupleExpr = (TupleExpr)data; if (tupleExpr == null) { tupleExpr = new SingletonSet(); } Extension e = new Extension(); ProjectionElemList projectionElements = new ProjectionElemList(); for (int i = 0; i < node.jjtGetNumChildren(); i++) { ValueExpr resource = (ValueExpr)node.jjtGetChild(i).jjtAccept(this, null); if (resource instanceof Var) { projectionElements.addElement(new ProjectionElem(((Var)resource).getName())); } else { String alias = "_describe_" + UUID.randomUUID().toString().replaceAll("-", "_"); ExtensionElem elem = new ExtensionElem(resource, alias); e.addElement(elem); projectionElements.addElement(new ProjectionElem(alias)); } } if (!e.getElements().isEmpty()) { e.setArg(tupleExpr); tupleExpr = e; } Projection p = new Projection(tupleExpr, projectionElements); return new DescribeOperator(p); }
@Override public TupleExpr visit(ASTDescribe node, Object data) throws VisitorException { TupleExpr tupleExpr = (TupleExpr)data; if (tupleExpr == null) { tupleExpr = new SingletonSet(); } Extension e = new Extension(); ProjectionElemList projectionElements = new ProjectionElemList(); for (int i = 0; i < node.jjtGetNumChildren(); i++) { ValueExpr resource = (ValueExpr)node.jjtGetChild(i).jjtAccept(this, null); if (resource instanceof Var) { projectionElements.addElement(new ProjectionElem(((Var)resource).getName())); } else { String alias = "_describe_" + UUID.randomUUID().toString().replaceAll("-", "_"); ExtensionElem elem = new ExtensionElem(resource, alias); e.addElement(elem); projectionElements.addElement(new ProjectionElem(alias)); } } if (!e.getElements().isEmpty()) { e.setArg(tupleExpr); tupleExpr = e; } Projection p = new Projection(tupleExpr, projectionElements); return new DescribeOperator(p); }
@Override public TupleExpr visit(ASTDescribe node, Object data) throws VisitorException { TupleExpr tupleExpr = (TupleExpr)data; if (tupleExpr == null) { tupleExpr = new SingletonSet(); } Extension e = new Extension(); ProjectionElemList projectionElements = new ProjectionElemList(); for (int i = 0; i < node.jjtGetNumChildren(); i++) { ValueExpr resource = (ValueExpr)node.jjtGetChild(i).jjtAccept(this, null); if (resource instanceof Var) { projectionElements.addElement(new ProjectionElem(((Var)resource).getName())); } else { String alias = "_describe_" + UUID.randomUUID().toString().replaceAll("-", "_"); ExtensionElem elem = new ExtensionElem(resource, alias); e.addElement(elem); projectionElements.addElement(new ProjectionElem(alias)); } } if (!e.getElements().isEmpty()) { e.setArg(tupleExpr); tupleExpr = e; } Projection p = new Projection(tupleExpr, projectionElements); return new DescribeOperator(p); }
extension.setArg(result); result = extension;
extension.setArg(tupleExpr); tupleExpr = extension;
extension.setArg(tupleExpr); tupleExpr = extension;
extension.setArg(arg); group.setArg(extension);
extension.setArg(arg); group.setArg(extension);
extension.setArg(result); result = extension;
extension.setArg(result); result = extension;
extension.setArg(tupleExpr); tupleExpr = extension;
extension.setArg(arg); group.setArg(extension);
extension.setArg(group); anonymousExtension.addElement(new ExtensionElem(operator, anonVar.getName())); anonymousExtension.setArg(result); result = anonymousExtension; group.addGroupElement(new GroupElem(anonVar.getName(), operator)); extension.setArg(arg); orderClause.setArg(extension); result = orderClause; extension.setArg(result); result = extension;
extension.setArg(group); anonymousExtension.addElement(new ExtensionElem(operator, anonVar.getName())); anonymousExtension.setArg(result); result = anonymousExtension; group.addGroupElement(new GroupElem(anonVar.getName(), operator)); extension.setArg(arg); orderClause.setArg(extension); result = orderClause; extension.setArg(result); result = extension;
extension.setArg(group); tupleExpr = new Filter(extension, expr);
extension.setArg(group); tupleExpr = new Filter(extension, expr);
extension.setArg(group); tupleExpr = new Filter(extension, expr);