All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.substrait.extendedexpression.ExtendedExpression Maven / Gradle / Ivy

Go to download

Create a well-defined, cross-language specification for data compute operations

There is a newer version: 0.46.1
Show newest version
package io.substrait.extendedexpression;

import io.substrait.expression.Expression;
import io.substrait.proto.AdvancedExtension;
import io.substrait.relation.Aggregate;
import io.substrait.type.NamedStruct;
import java.util.List;
import java.util.Optional;
import org.immutables.value.Value;

@Value.Immutable
public abstract class ExtendedExpression {
  public abstract List getReferredExpressions();

  public abstract NamedStruct getBaseSchema();

  public abstract List getExpectedTypeUrls();

  // creating simple extensions, such as extensionURIs and extensions, is performed on the fly

  public abstract Optional getAdvancedExtension();

  public interface ExpressionReferenceBase {
    List getOutputNames();
  }

  @Value.Immutable
  public abstract static class ExpressionReference implements ExpressionReferenceBase {
    public abstract Expression getExpression();
  }

  @Value.Immutable
  public abstract static class AggregateFunctionReference implements ExpressionReferenceBase {
    public abstract Aggregate.Measure getMeasure();
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy