Search in sources :

Example 1 with SerializableRexFieldAccess

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;
    }
}
Also used : SerializableRexInputRef(org.apache.beam.sdk.extensions.sql.impl.utils.SerializableRexInputRef) FieldAccessDescriptor(org.apache.beam.sdk.schemas.FieldAccessDescriptor) SerializableRexFieldAccess(org.apache.beam.sdk.extensions.sql.impl.utils.SerializableRexFieldAccess)

Aggregations

SerializableRexFieldAccess (org.apache.beam.sdk.extensions.sql.impl.utils.SerializableRexFieldAccess)1 SerializableRexInputRef (org.apache.beam.sdk.extensions.sql.impl.utils.SerializableRexInputRef)1 FieldAccessDescriptor (org.apache.beam.sdk.schemas.FieldAccessDescriptor)1