org.apache.calcite.rel.RelNode.accept()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(5.7k)|赞(0)|评价(0)|浏览(152)

本文整理了Java中org.apache.calcite.rel.RelNode.accept方法的一些代码示例,展示了RelNode.accept的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RelNode.accept方法的具体详情如下:
包路径:org.apache.calcite.rel.RelNode
类名称:RelNode
方法名:accept

RelNode.accept介绍

[英]Accepts a visit from a shuttle.
[中]接受穿梭机的访问。

代码示例

代码示例来源:origin: apache/hive

public boolean traverse(RelNode root) {
  root.accept(this);
  return mightRequireValueGen;
 }
}

代码示例来源:origin: apache/hive

public void validate(RelNode relNode) {
 try {
  relNode.accept(this);
 } catch (Util.FoundOne e) {
  // Can ignore - the check failed.
 }
}

代码示例来源:origin: apache/hive

@Override public Void visitSubQuery(RexSubQuery subQuery) {
  subQuery.rel.accept(CorelMapBuilder.this);
  return super.visitSubQuery(subQuery);
 }
};

代码示例来源:origin: apache/hive

/** Creates a CorelMap by iterating over a {@link RelNode} tree. */
CorelMap build(RelNode rel) {
 stripHep(rel).accept(this);
 return new CorelMap(mapRefRelToCorRef, mapCorToCorRel,
     mapFieldAccessToCorVar);
}

代码示例来源:origin: apache/drill

@Override public Void visitSubQuery(RexSubQuery subQuery) {
  subQuery.rel.accept(CorelMapBuilder.this);
  return super.visitSubQuery(subQuery);
 }
};

代码示例来源:origin: apache/drill

/** Creates a CorelMap by iterating over a {@link RelNode} tree. */
CorelMap build(RelNode rel) {
 stripHep(rel).accept(this);
 return new CorelMap(mapRefRelToCorRef, mapCorToCorRel,
     mapFieldAccessToCorVar);
}

代码示例来源:origin: apache/drill

@Override
public RelNode visit(RelNode other) {
 if (other instanceof RelSubset) {
  return ((RelSubset) other).getBest().accept(this);
 } else {
  return super.visit(other);
 }
}

代码示例来源:origin: apache/hive

/**
 * Visits a particular child of a parent.
 */
protected RelNode visitChild(RelNode parent, int i, RelNode child) {
  Stacks.push(stack, parent);
  try {
    RelNode child2 = child.accept(this);
    if (child2 != child) {
      final List<RelNode> newInputs =
          new ArrayList<RelNode>(parent.getInputs());
      newInputs.set(i, child2);
      return parent.copy(parent.getTraitSet(), newInputs);
    }
    return parent;
  } finally {
    Stacks.pop(stack, parent);
  }
}

代码示例来源:origin: apache/drill

/**
 * Visits a particular child of a parent.
 */
protected RelNode visitChild(RelNode parent, int i, RelNode child) {
  Stacks.push(stack, parent);
  try {
    RelNode child2 = child.accept(this);
    if (child2 != child) {
      final List<RelNode> newInputs =
          new ArrayList<RelNode>(parent.getInputs());
      newInputs.set(i, child2);
      return parent.copy(parent.getTraitSet(), newInputs);
    }
    return parent;
  } finally {
    Stacks.pop(stack, parent);
  }
}

代码示例来源:origin: apache/hive

rel.accept(
  new CorrelationReferenceFinder() {
   protected RexNode handle(RexFieldAccess fieldAccess) {

代码示例来源:origin: apache/drill

public JdbcPrel(RelOptCluster cluster, RelTraitSet traitSet, JdbcIntermediatePrel prel) {
 super(cluster, traitSet);
 final RelNode input = prel.getInput();
 rows = input.estimateRowCount(cluster.getMetadataQuery());
 convention = (DrillJdbcConvention) input.getTraitSet().getTrait(ConventionTraitDef.INSTANCE);
 // generate sql for tree.
 final SqlDialect dialect = convention.getPlugin().getDialect();
 final JdbcImplementor jdbcImplementor = new JdbcImplementor(
   dialect,
   (JavaTypeFactory) getCluster().getTypeFactory());
 final JdbcImplementor.Result result =
   jdbcImplementor.visitChild(0, input.accept(new SubsetRemover()));
 sql = result.asStatement().toSqlString(dialect).getSql();
 rowType = input.getRowType();
}

代码示例来源:origin: dremio/dremio-oss

@Override
 public RelNode apply(RelNode input) {
  return input.accept(CopyWithCluster.this);
 }
};

代码示例来源:origin: dremio/dremio-oss

private RelNode convertRelSubsets(RelNode root) {
 return root.accept(new RoutingShuttle() {
  @Override
  public RelNode visit(RelNode other) {
   if (other instanceof RelSubset) {
    return visit(((RelSubset) other).getBest());
   }
   return super.visit(other);
  }
 });
}

代码示例来源:origin: dremio/dremio-oss

@Override
 protected RelNode visitChild(RelNode parent, int i, RelNode child) {
  RelNode newParent = parent.accept(flattener);
  return super.visitChild(newParent, i, newParent.getInput(i));
 }
}

代码示例来源:origin: dremio/dremio-oss

@Override
 public RelNode visit(RelNode other) {
  if ((other instanceof ContainerRel)) {
   ((ContainerRel) other).getSubTree().accept(this);
  }
  return super.visit(other);
 }
}

代码示例来源:origin: dremio/dremio-oss

private final com.dremio.exec.planner.sql.handlers.RelTransformer getPostStripNormalizer(MaterializationDescriptor descriptor) {
 // for incremental update, we need to rewrite the queryRel so that it propagates the UPDATE_COLUMN and
 // adds it as a grouping key in aggregates
 if (!descriptor.getIncrementalUpdateSettings().isIncremental()) {
  return com.dremio.exec.planner.sql.handlers.RelTransformer.NO_OP_TRANSFORMER;
 }
 final RelShuttle shuttle = Optional.ofNullable(descriptor.getIncrementalUpdateSettings().getUpdateField())
   .map(IncrementalUpdateUtils.SubstitutionShuttle::new)
   .orElse(IncrementalUpdateUtils.FILE_BASED_SUBSTITUTION_SHUTTLE);
 return (rel) -> rel.accept(shuttle);
}

代码示例来源:origin: Qihoo360/Quicksql

@Override public RelNode visit(RelNode other) {
  other.collectVariablesUsed(vuv.variables);
  other.accept(vuv);
  RelNode result = super.visit(other);
  // Important! Remove stopped variables AFTER we visit
  // children. (which what super.visit() does)
  vuv.variables.removeAll(other.getVariablesSet());
  return result;
 }
}

代码示例来源:origin: dremio/dremio-oss

@Override
 public RelNode copyWith(CopyWithCluster copier) {
  final RelNode copiedSubTree = getSubTree().accept(copier);
  return new JdbcRel(
   copier.getCluster(),
   getTraitSet(),
   copiedSubTree
  );
 }
}

代码示例来源:origin: dremio/dremio-oss

@Override
public RelNode visit(LogicalProject project) {
 final RelNode input = project.getInput().accept(this);
 return new LogicalProject(
  cluster,
  copyOf(project.getTraitSet()),
  input,
  Lists.transform(project.getProjects(), COPY_REX_NODE),
  copyOf(project.getRowType())
 );
}

代码示例来源:origin: Qihoo360/Quicksql

@Override protected RelNode visitChild(RelNode parent, int i, RelNode child) {
  if (child instanceof HepRelVertex) {
   child = ((HepRelVertex) child).getCurrentRel();
  } else if (child instanceof RelSubset) {
   RelSubset subset = (RelSubset) child;
   child = Util.first(subset.getBest(), subset.getOriginal());
  }
  return super.visitChild(parent, i, child).accept(rexVisitor);
 }
}

相关文章