use of org.apache.beam.sdk.extensions.sql.impl.utils.SerializableRexFieldAccess in project beam by apache.
the class BeamJoinTransforms method getJoinColumn.
private static FieldAccessDescriptor getJoinColumn(SerializableRexNode serializableRexNode, int leftRowColumnCount) {
if (serializableRexNode instanceof SerializableRexInputRef) {
SerializableRexInputRef inputRef = (SerializableRexInputRef) serializableRexNode;
return FieldAccessDescriptor.withFieldIds(inputRef.getIndex() - leftRowColumnCount);
} else {
// It can only be SerializableFieldAccess.
List<Integer> indexes = ((SerializableRexFieldAccess) serializableRexNode).getIndexes();
FieldAccessDescriptor fieldAccessDescriptor = FieldAccessDescriptor.withFieldIds(indexes.get(0) - leftRowColumnCount);
for (int i = 1; i < indexes.size(); i++) {
fieldAccessDescriptor = FieldAccessDescriptor.withFieldIds(fieldAccessDescriptor, indexes.get(i));
}
return fieldAccessDescriptor;
}
}
Aggregations