Enum DynamicSchemaFilter.NewColumnsMode

java.lang.Object
java.lang.Enum<DynamicSchemaFilter.NewColumnsMode>
org.apache.drill.exec.physical.impl.scan.v3.schema.DynamicSchemaFilter.NewColumnsMode
All Implemented Interfaces:
Serializable, Comparable<DynamicSchemaFilter.NewColumnsMode>
Enclosing class:
DynamicSchemaFilter

public static enum DynamicSchemaFilter.NewColumnsMode extends Enum<DynamicSchemaFilter.NewColumnsMode>
Describes how to handle candidate columns not currently in the scan schema, which turns out to be a surprisingly complex question. At the top level, we add columns only if the query contains a wildcard. But, within maps, there are additional constraints: we can add new members to a map even if the query itself does not contain a wildcard.
  • Enum Constant Details

    • NONE

      public static final DynamicSchemaFilter.NewColumnsMode NONE
      No new columns are allowed at this level or in maps below this level. Occurs when the schema is defined or with a strict provided schema.
    • ALL

      public static final DynamicSchemaFilter.NewColumnsMode ALL
      New columns are allowed at this level and below. Occurs in a wildcard projection in which there are no constraints on the columns which can be added.
    • CHILD_ONLY

      public static final DynamicSchemaFilter.NewColumnsMode CHILD_ONLY
      New columns cannot be added at this level, but can be added in maps below this level. Occurs in a query where the projection list is explicit: a, b, m, and it turns out that m is a map. A simple m projection is logically equivalent to m.*.

      This same logic can apply to maps if the project list contains something like m.a, m.m2, and m2 turns out to be a map.

  • Method Details

    • values

      public static DynamicSchemaFilter.NewColumnsMode[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static DynamicSchemaFilter.NewColumnsMode valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null