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

io.substrait.relation.Extension 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.relation;

import io.substrait.type.NamedStruct;
import io.substrait.type.Type;
import java.util.List;

/** Contains tag interfaces for handling {@link com.google.protobuf.Any} types within Substrait. */
public class Extension {

  /**
   * Optimization associated with an {@link io.substrait.proto.AdvancedExtension}
   *
   * 

An optimization is helpful information that don't influence semantics. May be ignored by a * consumer. */ public interface Optimization extends ToProto {} /** * Enhancement associated with an {@link io.substrait.proto.AdvancedExtension} * *

An enhancement alter semantics. Cannot be ignored by a consumer. */ public interface Enhancement extends ToProto {} public interface LeafRelDetail extends ToProto { /** * @return the record layout for the associated {@link ExtensionLeaf} relation */ Type.Struct deriveRecordType(); } public interface SingleRelDetail extends ToProto { /** * @param input to the associated {@link ExtensionSingle} relation * @return the record layout for the associated {@link ExtensionSingle} relation */ Type.Struct deriveRecordType(Rel input); } public interface MultiRelDetail extends ToProto { /** * @param inputs to the associated {@link ExtensionMulti} relation * @return the record layout for the associated {@link ExtensionMulti} relation */ Type.Struct deriveRecordType(List inputs); } public interface ExtensionTableDetail extends ToProto { /** * @return the table schema for the associated {@link ExtensionTable} relation */ NamedStruct deriveSchema(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy