Class InferenceResolver

java.lang.Object
io.deephaven.iceberg.util.InferenceResolver
All Implemented Interfaces:
ResolverProvider

@Immutable public abstract class InferenceResolver extends Object implements ResolverProvider
This provides a consolidated set of inference options for use in LoadTableOptions. This is useful when the caller does not know the structure of the table to be loaded, and wants the resulting Deephaven definition (and mapping to the Iceberg fields) to be inferred. This is a counterpart to the more advanced InferenceInstructions, which requires the callers to be more explicit about the Schema.
  • Constructor Details

    • InferenceResolver

      public InferenceResolver()
  • Method Details

    • builder

      public static InferenceResolver.Builder builder()
    • inferPartitioningColumns

      @Default public boolean inferPartitioningColumns()
      If Partitioning columns should be inferred based on the latest spec. By default, is false.

      Warning: inferring partition columns for general-purpose use is dangerous. This is only meant to be applied in situations where caller knows that the latest spec is safe to use for inference.

      See Also:
    • failOnUnsupportedTypes

      @Default public boolean failOnUnsupportedTypes()
      If inference should fail if any of the Iceberg fields fail to map to Deephaven columns. By default, is false.
    • namerFactory

      @Default public InferenceInstructions.Namer.Factory namerFactory()
      The namer factory. Defaults to fieldName("_"), which will create Deephaven column name by joining together the field names with an underscore and legalize the name if necessary.
      See Also:
    • schema

      @Default public SchemaProvider schema()
      The schema to use for inference. By default, is SchemaProvider.fromCurrent().