Class RequestedWildcardColumn

java.lang.Object
org.apache.drill.exec.physical.resultSet.project.BaseRequestedColumn
org.apache.drill.exec.physical.resultSet.project.RequestedWildcardColumn
All Implemented Interfaces:
RequestedColumn

public class RequestedWildcardColumn extends BaseRequestedColumn
  • Constructor Details

  • Method Details

    • isWildcard

      public boolean isWildcard()
      Description copied from interface: RequestedColumn
      Several consumers of this this mechanism process the "raw" projection list which can contain a combination of wildcard and otehr columns. For example: filename, *, dir0. The requested tuple preserves the wildcard within the projection list so that, say, the projection mechanism can insert the actual data columns between the two implicit columns in the example.

      If a column is a wildcard, then none of the other methods apply, since this projected column represents any number or actual columns.

      Returns:
      if this column is the wildcard placeholder
    • isSimple

      public boolean isSimple()
      Returns:
      true if this column has no qualifiers. Example: a.
    • isTuple

      public boolean isTuple()
      Description copied from interface: RequestedColumn
      Report whether the projection implies a tuple. Example: a.b. Not that this method, and others can only tell if the projection implies a tuple; the actual column may be a tuple (MAP), but be projected simply. The map format also describes a DICT with a VARCHAR key.
      Returns:
      true if the column has a map-like projection.
    • tuple

      public RequestedTuple tuple()
      Description copied from interface: RequestedColumn
      Return projection information for the column as a tuple. If projection included references to nested columns (such as a.b, a.c, then the tuple projection will list only the referenced columns. However, if projection is generic (m), then we presume all columns of the map are projected and the returned object assumes all members are projected.
      Returns:
      projection information for a (presumed) map column
    • isArray

      public boolean isArray()
      Description copied from interface: RequestedColumn
      Report whether the first qualifier is an array. Example: a[1]. The array format also describes a DICT with an integer key.
      Returns:
      true if the column must be an array.
    • hasIndexes

      public boolean hasIndexes()
      Description copied from interface: RequestedColumn
      Reports if the projection list included (only) specific element indexes. For example: a[2], a[5]. The user could also project both indexes and the array: a[0], a. In this case isArray() is {code true}, but hasIndexes() is false.
      Returns:
      true if the column has enumerated indexes, false if the column was also projected as a whole, or if this column was not observed to be an array
    • maxIndex

      public int maxIndex()
      Description copied from interface: RequestedColumn
      Return the maximum index value, if only explicit indexes were given. Valid if hasIndexes() returns true.
      Returns:
      the maximum array index value known to the projection, or 0 if isArray() is false. Also returns 0 if hasIndexe() returns false, meaning that either the column was not observed to be an array, or was projected with both indexes and by itself: a[0], a.
    • indexes

      public boolean[] indexes()
      Description copied from interface: RequestedColumn
      Return a bitmap of the selected indexes. Only valid if hasIndexes() returns true.
      Returns:
      a bitmap of the selected array indexes, or null if hasIndexes() returns false.
    • hasIndex

      public boolean hasIndex(int index)
      Description copied from interface: RequestedColumn
      Report is a specific index was selected. Short cut for the other array methods. Used in cases such as the columns column where the user can select specific elements (column) but not others.
      Parameters:
      index - the array index to check
      Returns:
      true if the array element was projected, either explicitly (a[3]) or implicitly (a). Returns false only if hasIndexes() returns true (the user listed only explicit indexes) and the requested index is not among those requested (index >= maxIndex() || !indexes()[index])
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • arrayDims

      public int arrayDims()
      Description copied from interface: RequestedColumn
      If isArray() returns true, reports the number of dimensions observed in projection. That is if projection is a[0][1], then this method returns 2.

      Note that, as with all projection-level information, this number reflects only what was in the project list; not what might be the number of dimensions in the actual input source.

      Returns:
      the maximum number of array dimensions observed in the projection list, or 0 if this column was not observed to be an array (if isArray() returns false.
    • qualifier

      public Qualifier qualifier()
      Description copied from interface: RequestedColumn
      The internal qualifier information for the column. Generally not needed by clients; use the other informations to interpret the qualifier for you.
      Returns:
      detailed column qualifier information, if the column was seen to be complex in the project list