Record Class PartitionMetadata

java.lang.Object
java.lang.Record
org.elasticsearch.xpack.esql.datasources.PartitionMetadata

public record PartitionMetadata(Map<String,DataType> partitionColumns, Map<StoragePath,Map<String,Object>> filePartitionValues) extends Record
Holds partition information detected from file paths. Maps partition column names to their inferred types, and each file path to its extracted partition key-value pairs. Both maps preserve insertion order so that partition columns appear in the same order they are declared in the path.
  • Field Details

  • Constructor Details

    • PartitionMetadata

      public PartitionMetadata(Map<String,DataType> partitionColumns, Map<StoragePath,Map<String,Object>> filePartitionValues)
      Creates an instance of a PartitionMetadata record class.
      Parameters:
      partitionColumns - the value for the partitionColumns record component
      filePartitionValues - the value for the filePartitionValues record component
  • Method Details

    • isEmpty

      public boolean isEmpty()
    • nullablePartitionColumns

      public Set<String> nullablePartitionColumns()
      Returns the names of partition columns that cannot be proven non-null across the matched fileset. A column is in this set when at least one file in filePartitionValues has null (or no entry) for it — typically because the file lives under a __HIVE_DEFAULT_PARTITION__ directory decoded by HivePartitionDetector. When per-file values are absent altogether (e.g. metadata constructed without scanning files), every declared column is returned: no evidence means no non-null guarantee.

      This is a per-query property: different globs over the same dataset can match different subsets of files and therefore yield different null-bearing column sets. Callers use it to decide per-column Nullability.TRUE/FALSE when building attributes; columns absent from this set are provably non-null in the matched fileset.

    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • partitionColumns

      public Map<String,DataType> partitionColumns()
      Returns the value of the partitionColumns record component.
      Returns:
      the value of the partitionColumns record component
    • filePartitionValues

      public Map<StoragePath,Map<String,Object>> filePartitionValues()
      Returns the value of the filePartitionValues record component.
      Returns:
      the value of the filePartitionValues record component