本文整理汇总了Java中org.apache.calcite.rel.type.RelDataType.getField方法的典型用法代码示例。如果您正苦于以下问题:Java RelDataType.getField方法的具体用法?Java RelDataType.getField怎么用?Java RelDataType.getField使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.calcite.rel.type.RelDataType
的用法示例。
在下文中一共展示了RelDataType.getField方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: visit
import org.apache.calcite.rel.type.RelDataType; //导入方法依赖的package包/类
@Override
public RelNode visit(LogicalProject project) {
RelNode input = project.getInput().accept(this);
RelDataType incomingRowType = input.getRowType();
List<RexNode> newProjects;
RelDataTypeField modField = incomingRowType.getField(UPDATE_COLUMN, false, false);
if (modField == null) {
return project;
}
newProjects = FluentIterable.from(project.getProjects())
.append(new RexInputRef(modField.getIndex(), modField.getType()))
.toList();
FieldInfoBuilder fieldInfoBuilder = new FieldInfoBuilder(project.getCluster().getTypeFactory());
for (RelDataTypeField field : project.getRowType().getFieldList()) {
fieldInfoBuilder.add(field);
}
fieldInfoBuilder.add(UPDATE_COLUMN, modField.getType());
return new LogicalProject(
project.getCluster(),
project.getTraitSet(),
input,
newProjects,
fieldInfoBuilder.build()
);
}
示例2: resolvePartitionKeys
import org.apache.calcite.rel.type.RelDataType; //导入方法依赖的package包/类
private List<Integer> resolvePartitionKeys(){
final List<Integer> keys = Lists.newArrayList();
final RelDataType inputRowType = getInput().getRowType();
final List<String> partitionCol = getCreateTableEntry().getPartitionColumns();
for (final String col : partitionCol) {
final RelDataTypeField field = inputRowType.getField(col, false, false);
Preconditions.checkArgument(field != null,
String.format("partition col %s could not be resolved in table's column lists!", col));
keys.add(field.getIndex());
}
return keys;
}