Enum Class EsqlCapabilities.Cap

java.lang.Object
java.lang.Enum<EsqlCapabilities.Cap>
org.elasticsearch.xpack.esql.action.EsqlCapabilities.Cap
All Implemented Interfaces:
Serializable, Comparable<EsqlCapabilities.Cap>, Constable
Enclosing class:
EsqlCapabilities

public static enum EsqlCapabilities.Cap extends Enum<EsqlCapabilities.Cap>
  • Enum Constant Details

    • MV_SORT

      public static final EsqlCapabilities.Cap MV_SORT
      Introduction of MV_SORT, MV_SLICE, and MV_ZIP. Added in #106095.
    • DISABLE_NULLABLE_OPTS

      public static final EsqlCapabilities.Cap DISABLE_NULLABLE_OPTS
      When we disabled some broken optimizations around nullable. Fixed in #105691.
    • ST_X_Y

      public static final EsqlCapabilities.Cap ST_X_Y
      Introduction of ST_X and ST_Y. Added in #105768.
    • ST_X_Y_QUANTIZED

      public static final EsqlCapabilities.Cap ST_X_Y_QUANTIZED
      Quantize results of ST_X and ST_Y and related functions
    • SPATIAL_POINTS_FROM_SOURCE

      public static final EsqlCapabilities.Cap SPATIAL_POINTS_FROM_SOURCE
      Changed precision of geo_point and cartesian_point fields, by loading from source into WKB. Done in #103691.
    • SPATIAL_SHAPES

      public static final EsqlCapabilities.Cap SPATIAL_SHAPES
      Support for loading geo_shape and cartesian_shape fields. Done in #104269.
    • GEO_VALIDATION

      public static final EsqlCapabilities.Cap GEO_VALIDATION
      Do validation check on geo_point and geo_shape fields. Done in #128259.
    • GEO_NULL_LITERALS_FOLDING

      public static final EsqlCapabilities.Cap GEO_NULL_LITERALS_FOLDING
      Fold in spatial functions should return null for null input.
    • ST_CENTROID_AGG

      public static final EsqlCapabilities.Cap ST_CENTROID_AGG
      Support for spatial aggregation ST_CENTROID. Done in #104269.
    • ST_INTERSECTS

      public static final EsqlCapabilities.Cap ST_INTERSECTS
      Support for spatial aggregation ST_INTERSECTS. Done in #104907.
    • ST_CONTAINS_WITHIN

      public static final EsqlCapabilities.Cap ST_CONTAINS_WITHIN
      Support for spatial aggregation ST_CONTAINS and ST_WITHIN. Done in #106503.
    • ST_DISJOINT

      public static final EsqlCapabilities.Cap ST_DISJOINT
      Support for spatial aggregation ST_DISJOINT. Done in #107007.
    • ST_SIMPLIFY

      public static final EsqlCapabilities.Cap ST_SIMPLIFY
      Support for spatial simplification ST_SIMPLIFY
    • ST_BUFFER_OPTIONS

      public static final EsqlCapabilities.Cap ST_BUFFER_OPTIONS
      Support for named options (quad_segs, endcap, join, mitre_limit) on ST_BUFFER. Requires a wire-protocol bump, so gates new csv-spec tests away from mixed-version clusters that pre-date the change.
    • AGG_VALUES

      public static final EsqlCapabilities.Cap AGG_VALUES
      The introduction of the VALUES agg.
    • AGG_VALUES_SPATIAL

      public static final EsqlCapabilities.Cap AGG_VALUES_SPATIAL
      Expand the VALUES agg to cover spatial types.
    • AGG_MAX_MIN_UNSIGNED_LONG

      public static final EsqlCapabilities.Cap AGG_MAX_MIN_UNSIGNED_LONG
      Accept unsigned longs on MAX and MIN aggregations.
    • AGG_VALUES_SAMPLE_UNSIGNED_LONG

      public static final EsqlCapabilities.Cap AGG_VALUES_SAMPLE_UNSIGNED_LONG
      Accept unsigned longs on VALUES and SAMPLE aggregations.
    • ASYNC_QUERY

      public static final EsqlCapabilities.Cap ASYNC_QUERY
      Does ESQL support async queries.
    • FROM_OPTIONS

      @Deprecated public static final EsqlCapabilities.Cap FROM_OPTIONS
      Deprecated.
      Does ESQL support FROM OPTIONS?
    • STRING_LITERAL_AUTO_CASTING

      public static final EsqlCapabilities.Cap STRING_LITERAL_AUTO_CASTING
      Cast string literals to a desired data type.
    • BASE64_DECODE_ENCODE

      public static final EsqlCapabilities.Cap BASE64_DECODE_ENCODE
      Base64 encoding and decoding functions.
    • CASTING_OPERATOR

      public static final EsqlCapabilities.Cap CASTING_OPERATOR
      Support for the :: casting operator
    • CASTING_OPERATOR_FOR_DATE

      public static final EsqlCapabilities.Cap CASTING_OPERATOR_FOR_DATE
      Support for the ::date casting operator
    • CASTING_OPERATOR_FOR_HISTOGRAM_TYPES

      public static final EsqlCapabilities.Cap CASTING_OPERATOR_FOR_HISTOGRAM_TYPES
      Support for the ::tdigest and ::exponential_histogram casting operators.
    • MV_ORDERING_SORTED_ASCENDING

      public static final EsqlCapabilities.Cap MV_ORDERING_SORTED_ASCENDING
      Blocks can be labelled with Block.MvOrdering.SORTED_ASCENDING for optimizations.
    • METRICS_COUNTER_FIELDS

      public static final EsqlCapabilities.Cap METRICS_COUNTER_FIELDS
      Support for metrics counter fields
    • STRING_LITERAL_AUTO_CASTING_EXTENDED

      public static final EsqlCapabilities.Cap STRING_LITERAL_AUTO_CASTING_EXTENDED
      Cast string literals to a desired data type for IN predicate and more types for BinaryComparison.
    • METADATA_FIELDS

      public static final EsqlCapabilities.Cap METADATA_FIELDS
      Support for metadata fields.
    • OPTIONAL_FIELDS_NULLIFY_TECH_PREVIEW

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_NULLIFY_TECH_PREVIEW
      Support for optional fields (might or might not be present in the mappings) using DEFAULT/NULLIFY only. Compared to OPTIONAL_FIELDS_V5, this does not enable support for LOAD.
    • OPTIONAL_FIELDS_FIX_UNMAPPED_FIELD_DETECTION

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_FIX_UNMAPPED_FIELD_DETECTION
      Fix incorrect detection of unmapped fields in nullify/load mode when unresolved attributes match fields already present in the children's output.
    • OPTIONAL_FIELDS_NULLIFY_SKIP_GROUP_ALIASES

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_NULLIFY_SKIP_GROUP_ALIASES
      Don't nullify aliases for Aggregate groupings.
    • OPTIONAL_FIELDS_DETECT_UNMAPPED_FIELDS_IN_AGG_FILTERS

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_DETECT_UNMAPPED_FIELDS_IN_AGG_FILTERS
      Nullify unmapped fields in agg filters like STATS agg_fun(field) WHERE field..., even when Analyzer.ResolveRefs marks the field as unresolvable with a custom error message.
    • OPTIONAL_FIELDS_FIX_UNMAPPED_LOAD_MULTI_INDEX_PATTERN

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_FIX_UNMAPPED_LOAD_MULTI_INDEX_PATTERN
      Fix for 500 error when querying multiple indices with unmapped_fields="load". See https://github.com/elastic/elasticsearch/issues/145555
    • OPTIONAL_FIELDS_FIX_NULLIFY_FLATTENED_SUBFIELD

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_FIX_NULLIFY_FLATTENED_SUBFIELD
      Fix for flattened subfields not being nullified when unmapped_fields="nullify" is set. See https://github.com/elastic/elasticsearch/issues/142616
    • OPTIONAL_FIELDS_FIX_UNMAPPED_LOAD_CONVERT_FUNCTION

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_FIX_UNMAPPED_LOAD_CONVERT_FUNCTION
      Fix for 500 return code when loading from _source (hence KEYWORD) and passing to a convert function that doesn't take KEYWORDs. See https://github.com/elastic/elasticsearch/issues/145998.
    • OPTIONAL_FIELDS_FIX_NULL_MATCH_FIELD_IN_JOIN_AND_ENRICH

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_FIX_NULL_MATCH_FIELD_IN_JOIN_AND_ENRICH
      Fix for LOOKUP JOIN and ENRICH failing when the match field has NULL type from unmapped field nullification. See https://github.com/elastic/elasticsearch/issues/141827
    • OPTIONAL_FIELDS_V5

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_V5
      Support for optional fields (might or might not be present in the mappings) using DEFAULT/NULLIFY/LOAD. V2: Prevent pushing down filters and sorts to Lucene of potentially unmapped fields. V3: Fix synthetic _source numeric load bug (#143916) V4: Support for union type like resolution for load. V5: Support for rejecting partially unmapped non-keywords unless cast or projected Support for rejecting loading subfields of flattened fields
    • OPTIONAL_FIELDS_FIX_LOAD_PARTIALLY_MAPPED

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_FIX_LOAD_PARTIALLY_MAPPED
      Unconditionally load partially mapped keyword fields, whether they are mentioned in expressions or not.

      Also, always load values of partially mapped fields from the indices where they are mapped.

      Fixes https://github.com/elastic/elasticsearch/issues/141994 and https://github.com/elastic/elasticsearch/issues/145206

    • OPTIONAL_FIELDS_UNMAPPED_LOAD_AUTO_CAST_TWO_LEGGED_PUNKS

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_UNMAPPED_LOAD_AUTO_CAST_TWO_LEGGED_PUNKS
      Implicit casting of PUNKs that have two types (or legs): KEYWORD by virtue of loading from _source, and exactly one other type where mapped. See https://github.com/elastic/elasticsearch/issues/141995
    • OPTIONAL_FIELDS_UNMAPPED_EVAL_AFTER_STATS_FIX

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_UNMAPPED_EVAL_AFTER_STATS_FIX
      Fixes a bug when using an EVAL on the grouped by columns after a STATS. See https://github.com/elastic/elasticsearch/issues/152496.
    • OPTIONAL_FIELDS_FIX_PARTIALLY_UNMAPPED_SMALL_NUMERIC

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_FIX_PARTIALLY_UNMAPPED_SMALL_NUMERIC
      Fix for a ClassCastException when an explicitly cast or implicitly widened partially unmapped small numeric field. See https://github.com/elastic/elasticsearch/issues/151525.
    • OPTIONAL_FIELDS_UNMAPPED_LOAD_NULL_FALLBACK

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_UNMAPPED_LOAD_NULL_FALLBACK
      Null-fallback under unmapped_fields="load": full-text search functions are supported, and single-type partially unmapped non-keyword fields (PUNKs) fall back to their mapped type, nullifying the unmapped rows -- matching the default (no-load) behavior -- instead of being rejected. This also lets such fields be renamed and used in expressions.
    • OPTIONAL_FIELDS_FIX_LOAD_KEYWORD_WITH_MULTIFIELDS

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_FIX_LOAD_KEYWORD_WITH_MULTIFIELDS
      Bugfix: IndexResolver.mergedMappings crashed with UnsupportedOperationException when a keyword field with multi-fields (e.g. my_field.analyzed) was partially unmapped across the queried indices and SET unmapped_fields="load" was active. PotentiallyUnmappedKeywordEsField was constructed with an immutable empty properties map, preventing child fields from being inserted.
    • OPTIONAL_FIELDS_FIX_PARTIALLY_UNMAPPED_DENSE_VECTOR

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_FIX_PARTIALLY_UNMAPPED_DENSE_VECTOR
      Don't implicitly cast a partially unmapped dense_vector field under unmapped_fields="load". See https://github.com/elastic/elasticsearch/issues/152184.
    • OPTIONAL_FIELDS_WARN_NON_LOADABLE_PUNK

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_WARN_NON_LOADABLE_PUNK
      Warn when a partially unmapped field with a single non-KEYWORD mapped type is referenced explicitly, but its type has no KEYWORD converter and so cannot be loaded from _source: it falls back to null in the indices where it is unmapped.
    • OPTIONAL_FIELDS_DROP_NON_MATCHING_PATTERN_NOOP

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_DROP_NON_MATCHING_PATTERN_NOOP
      With unmapped_fields="nullify" or "load", a DROP wildcard that matches no field is a no-op instead of failing with "No matches found for pattern". See https://github.com/elastic/elasticsearch/issues/143226
    • OPTIONAL_FIELDS_FIX_COUNT_ON_UNMAPPED

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_FIX_COUNT_ON_UNMAPPED
      Fixes count on an unmapped field. Previously, it tried to push down a query filter on the unmapped field, leading to a 0-count since the field isn't mapped. See https://github.com/elastic/elasticsearch/issues/152884.
    • INDEX_METADATA_FIELD

      public static final EsqlCapabilities.Cap INDEX_METADATA_FIELD
      Support specifically for *just* the _index METADATA field. Used by CsvTests, since that is the only metadata field currently supported.
    • TIMESPAN_ABBREVIATIONS

      public static final EsqlCapabilities.Cap TIMESPAN_ABBREVIATIONS
      Support for timespan units abbreviations
    • COUNTER_TYPES

      public static final EsqlCapabilities.Cap COUNTER_TYPES
      Support metrics counter types
    • FN_MV_CONTAINS_V1

      public static final EsqlCapabilities.Cap FN_MV_CONTAINS_V1
      support for MV_CONTAINS function Add MV_CONTAINS function #133099
    • FUNCTIONS_SOURCE_SERIALIZATION_WARNINGS

      public static final EsqlCapabilities.Cap FUNCTIONS_SOURCE_SERIALIZATION_WARNINGS
      Fixes for multiple functions not serializing their source, and emitting warnings with wrong line number and text.
    • FUNCTIONS_NEVER_EMIT_TEXT

      public static final EsqlCapabilities.Cap FUNCTIONS_NEVER_EMIT_TEXT
      All functions that take TEXT should never emit TEXT, only KEYWORD. #114334
    • INLINESTATS

      public static final EsqlCapabilities.Cap INLINESTATS
      Support for the INLINESTATS syntax.
    • INLINESTATS_V2

      public static final EsqlCapabilities.Cap INLINESTATS_V2
      Support for the expressions in grouping in INLINESTATS syntax.
    • AGG_TOP

      public static final EsqlCapabilities.Cap AGG_TOP
      Support for aggregation function TOP.
    • AGG_MAX_MIN_BOOLEAN_SUPPORT

      public static final EsqlCapabilities.Cap AGG_MAX_MIN_BOOLEAN_SUPPORT
      Support for booleans in aggregations MAX and MIN.
    • AGG_MAX_MIN_IP_SUPPORT

      public static final EsqlCapabilities.Cap AGG_MAX_MIN_IP_SUPPORT
      Support for ips in aggregations MAX and MIN.
    • AGG_MAX_MIN_STRING_SUPPORT

      public static final EsqlCapabilities.Cap AGG_MAX_MIN_STRING_SUPPORT
      Support for strings in aggregations MAX and MIN.
    • AGG_TOP_BOOLEAN_SUPPORT

      public static final EsqlCapabilities.Cap AGG_TOP_BOOLEAN_SUPPORT
      Support for booleans in TOP aggregation.
    • AGG_TOP_IP_SUPPORT

      public static final EsqlCapabilities.Cap AGG_TOP_IP_SUPPORT
      Support for ips in TOP aggregation.
    • AGG_TOP_STRING_SUPPORT

      public static final EsqlCapabilities.Cap AGG_TOP_STRING_SUPPORT
      Support for keyword and text fields in TOP aggregation.
    • AGG_TOP_WITH_OPTIONAL_ORDER_FIELD

      public static final EsqlCapabilities.Cap AGG_TOP_WITH_OPTIONAL_ORDER_FIELD
      Make optional the order field in the TOP agg command, and default it to "ASC".
    • AGG_TOP_WITH_OUTPUT_FIELD

      public static final EsqlCapabilities.Cap AGG_TOP_WITH_OUTPUT_FIELD
      Support for the extra "map" field in TOP aggregation.
    • FIX_AGG_TOP_WITH_OUTPUT_FIELD_SURROGATE

      public static final EsqlCapabilities.Cap FIX_AGG_TOP_WITH_OUTPUT_FIELD_SURROGATE
      Fix for a bug when surrogating a TOP with limit 1 and output field.
    • CASE_MV

      public static final EsqlCapabilities.Cap CASE_MV
      CASE properly handling multivalue conditions.
    • CASE_FOLD_TEMPORAL_AMOUNT

      public static final EsqlCapabilities.Cap CASE_FOLD_TEMPORAL_AMOUNT
      CASE folding with DATE_PERIOD and TIME_DURATION return types.
    • ENRICH_LOAD

      public static final EsqlCapabilities.Cap ENRICH_LOAD
      Support for loading values over enrich. This is supported by all versions of ESQL but not the unit test CsvTests.
    • LOAD_FLATTENED_FIELD

      public static final EsqlCapabilities.Cap LOAD_FLATTENED_FIELD
      Test-only capability since loading a value from a flattened field is possible using the unmapped field infrastructure, but is only supported by full integration tests. So this capability is used to disable some tests in CsvTests.
    • FLATTENED_DATATYPE

      public static final EsqlCapabilities.Cap FLATTENED_DATATYPE
      Support for the flattened data type in ES|QL, which loads flattened fields as JSON objects.
    • FLATTENED_DATATYPE_SORTED_KEYS

      public static final EsqlCapabilities.Cap FLATTENED_DATATYPE_SORTED_KEYS
      Flattened field keys are returned in alphabetical order.
    • FLATTENED_DATATYPE_NULL_VALUE

      public static final EsqlCapabilities.Cap FLATTENED_DATATYPE_NULL_VALUE
      Flattened fields apply null_value replacement when loading from _source, matching the doc-values behaviour applied at index time.
    • FIELD_EXTRACT_FUNCTION

      public static final EsqlCapabilities.Cap FIELD_EXTRACT_FUNCTION
      Support for the field_extract function, which reads a sub-key from a flattened field root.
    • FIELD_EXTRACT_FLATTENED_PUSHDOWN

      public static final EsqlCapabilities.Cap FIELD_EXTRACT_FLATTENED_PUSHDOWN
      Pushdown optimizations for field_extract(<flattened root>, "<literal key>"): block-loader fusion that reads the keyed sub-field's doc values directly, and Lucene query pushdown for ==, !=, IN, the four range comparators (>, >=, <, <=), and closed ranges (combined >=/<=, equivalent to BETWEEN) against the same shape. The one-sided range forms rely on the keyed flattened mapper substituting a key-prefix sentinel for the open bound so the resulting Lucene query stays inside the open key's portion of the term namespace. Tests that depend on the fused multi-value output or on the SingleValueQuery warning text must require this capability so they skip on mixed clusters where any data node still runs the per-row evaluator.
    • FIELD_EXTRACT_RETURNS_MULTI_VALUE

      public static final EsqlCapabilities.Cap FIELD_EXTRACT_RETURNS_MULTI_VALUE
      The per-row evaluator for field_extract(<flattened root>, "<key>") returns a multi-value keyword block for an array sub-field, a JSON-string keyword for a nested-object sub-field, and a null position for VALUE_NULL, instead of always going through parser.text() (which threw on every non-scalar value). Tests that exercise the parse path on a non-scalar sub-field must require this capability so they skip on mixed clusters where any data node still runs the pre-fix evaluator and would surface the legacy Expected text at &lt;line&gt;:&lt;col&gt; but found START_ARRAY warning instead of the new value.
    • FIELD_EXTRACT_MAPPED_SUBFIELD_RETURNS_VALUE

      public static final EsqlCapabilities.Cap FIELD_EXTRACT_MAPPED_SUBFIELD_RETURNS_VALUE
      field_extract(<flattened root>, "<key>") returns the sub-field's value for an explicitly mapped sub-key (one declared under properties) instead of null. Mapped sub-keys are no longer fused into the keyed block loader nor pushed to a Lucene query - the keyed channel never stores them, and a typed-field query would apply different comparison semantics than the keyword evaluator - so they always go through the per-row evaluator over the merged flattened root. This makes the result independent of whether the optimizer pushed the call. Tests that assert the value (rather than null) for a mapped sub-key, or that a mapped-key comparison is not pushed to Lucene, must require this capability so they skip on mixed clusters where any data node still fuses mapped sub-keys and returns null.
    • FLATTENED_ROOT_STRINGIFIES_MAPPED_SUBFIELDS

      public static final EsqlCapabilities.Cap FLATTENED_ROOT_STRINGIFIES_MAPPED_SUBFIELDS
      A flattened root that declares mapped sub-fields (e.g. KEEP attributes) is always loaded from _source, producing one canonical stringly-typed blob on every loading path: every leaf is a string (a mapped long sub-field reads back as "200", not the native 200) and every key is present, including a bare text sub-field that has no doc values and so could never be rebuilt by the doc-values root loader. Direct access to the typed sub-field column (e.g. attributes.status_code or attributes.message) is unaffected and still returns the native value. Tests that pin this blob shape must require this capability so they skip on mixed clusters where an older data node still builds the root from doc values, rendering mapped sub-fields with their native type and dropping a bare text sub-field.
    • ST_CENTROID_AGG_OPTIMIZED

      public static final EsqlCapabilities.Cap ST_CENTROID_AGG_OPTIMIZED
      Optimization for ST_CENTROID changed some results in cartesian data. #108713
    • METADATA_IGNORED_FIELD

      public static final EsqlCapabilities.Cap METADATA_IGNORED_FIELD
      Support for requesting the "_ignored" metadata field.
    • LOOKUP_V4

      public static final EsqlCapabilities.Cap LOOKUP_V4
      LOOKUP command with - tables using syntax "tables": {"type": [<values>]} - fixed variable shadowing - fixed Join.references(), requiring breaking change to Join serialization
    • REPEAT

      public static final EsqlCapabilities.Cap REPEAT
      Support for requesting the "REPEAT" command.
    • STRING_LITERAL_AUTO_CASTING_TO_DATETIME_ADD_SUB

      public static final EsqlCapabilities.Cap STRING_LITERAL_AUTO_CASTING_TO_DATETIME_ADD_SUB
      Cast string literals to datetime in addition and subtraction when the other side is a date or time interval.
    • IMPLICIT_CASTING_DATE_AND_DATE_NANOS

      public static final EsqlCapabilities.Cap IMPLICIT_CASTING_DATE_AND_DATE_NANOS
      Support implicit casting for union typed fields that are mixed with date and date_nanos type.
    • NAMED_POSITIONAL_PARAMETER

      public static final EsqlCapabilities.Cap NAMED_POSITIONAL_PARAMETER
      Support for named or positional parameters in EsqlQueryRequest.
    • UNION_TYPES

      public static final EsqlCapabilities.Cap UNION_TYPES
      Support multiple field mappings if appropriate conversion function is used (union types)
    • UNMAPPED_FIELDS

      public static final EsqlCapabilities.Cap UNMAPPED_FIELDS
      Support unmapped using the INSIST keyword.
    • ST_DISTANCE

      public static final EsqlCapabilities.Cap ST_DISTANCE
      Support for function ST_DISTANCE. Done in #108764.
    • ST_EXTENT_AGG

      public static final EsqlCapabilities.Cap ST_EXTENT_AGG
      Support for function ST_EXTENT_AGG.
    • ST_EXTENT_AGG_DOCVALUES

      public static final EsqlCapabilities.Cap ST_EXTENT_AGG_DOCVALUES
      Optimization of ST_EXTENT_AGG with doc-values as IntBlock.
    • SPATIAL_AGGS_FILTERING

      public static final EsqlCapabilities.Cap SPATIAL_AGGS_FILTERING
      Fix to bug with spatial aggregations not properly supporting the WHERE clause. Fixes #142329.
    • SPATIAL_FUNCTIONS_FIX_CRSTYPE_FOLDING

      public static final EsqlCapabilities.Cap SPATIAL_FUNCTIONS_FIX_CRSTYPE_FOLDING
      Fix determination of CRS types in spatial functions when folding.
    • SPATIAL_PREDICATES_SUPPORT_MULTIVALUES

      public static final EsqlCapabilities.Cap SPATIAL_PREDICATES_SUPPORT_MULTIVALUES
      Enable spatial predicate functions to support multi-values. Done in #112063.
    • SPATIAL_DISTANCE_SUPPORTS_MULTIVALUES

      public static final EsqlCapabilities.Cap SPATIAL_DISTANCE_SUPPORTS_MULTIVALUES
      Enable spatial distance function to support multi-values. Done in #114836.
    • SPATIAL_DISTANCE_PUSHDOWN_ENHANCEMENTS

      public static final EsqlCapabilities.Cap SPATIAL_DISTANCE_PUSHDOWN_ENHANCEMENTS
      Support a number of fixes and enhancements to spatial distance pushdown. Done in #112938.
    • SPATIAL_CENTROID_NO_RECORDS

      public static final EsqlCapabilities.Cap SPATIAL_CENTROID_NO_RECORDS
      Fix for spatial centroid when no records are found.
    • ST_CENTROID_AGG_SHAPES

      public static final EsqlCapabilities.Cap ST_CENTROID_AGG_SHAPES
      Support for ST_CENTROID_AGG aggregation on geo_shape and cartesian_shape fields.
    • ST_CENTROID_AGG_SHAPES_DOC_VALUES

      public static final EsqlCapabilities.Cap ST_CENTROID_AGG_SHAPES_DOC_VALUES
      Support for ST_CENTROID_AGG aggregation on shapes from doc-values.
    • ST_ENVELOPE

      public static final EsqlCapabilities.Cap ST_ENVELOPE
      Support ST_ENVELOPE function (and related ST_XMIN, etc.).
    • ST_ENVELOPE_MV_FIX

      public static final EsqlCapabilities.Cap ST_ENVELOPE_MV_FIX
      Fix ST_ENVELOPE to support multi-values and doc-values.
    • ST_NPOINTS

      public static final EsqlCapabilities.Cap ST_NPOINTS
      Support ST_NPOINTS function.
    • SPATIAL_GRID

      public static final EsqlCapabilities.Cap SPATIAL_GRID
      Support ST_GEOHASH, ST_GEOTILE and ST_GEOHEX functions
    • SPATIAL_GRID_TYPES

      public static final EsqlCapabilities.Cap SPATIAL_GRID_TYPES
      Support geohash, geotile and geohex data types. Done in #129581
    • SPATIAL_GRID_INTERSECTS

      public static final EsqlCapabilities.Cap SPATIAL_GRID_INTERSECTS
      Support geohash, geotile and geohex in ST_INTERSECTS and ST_DISJOINT. Done in #133546
    • GROK_DISSECT_MASKING

      public static final EsqlCapabilities.Cap GROK_DISSECT_MASKING
      Fix to GROK and DISSECT that allows extracting attributes with the same name as the input https://github.com/elastic/elasticsearch/issues/110184
    • DOUBLE_QUOTES_SOURCE_ENCLOSING

      public static final EsqlCapabilities.Cap DOUBLE_QUOTES_SOURCE_ENCLOSING
      Support for quoting index sources in double quotes.
    • AGG_WEIGHTED_AVG

      public static final EsqlCapabilities.Cap AGG_WEIGHTED_AVG
      Support for WEIGHTED_AVG function.
    • UNION_TYPES_AGG_CAST

      public static final EsqlCapabilities.Cap UNION_TYPES_AGG_CAST
      Fix for union-types when aggregating over an inline conversion with casting operator. Done in #110476.
    • FIX_COUNT_PUSHDOWN_FOR_UNION_TYPES

      public static final EsqlCapabilities.Cap FIX_COUNT_PUSHDOWN_FOR_UNION_TYPES
      When pushing down STATS count(field::type) for a union type field, we wrongly used a synthetic attribute name in the query instead of the actual field name. This led to 0 counts instead of the correct result.
    • GROK_VALIDATION

      public static final EsqlCapabilities.Cap GROK_VALIDATION
      Fix to GROK validation in case of multiple fields with same name and different types https://github.com/elastic/elasticsearch/issues/110533
    • UNION_TYPES_INLINE_FIX

      public static final EsqlCapabilities.Cap UNION_TYPES_INLINE_FIX
      Fix for union-types when aggregating over an inline conversion with conversion function. Done in #110652.
    • UNION_TYPES_REMOVE_FIELDS

      public static final EsqlCapabilities.Cap UNION_TYPES_REMOVE_FIELDS
      Fix for union-types when sorting a type-casted field. We changed how we remove synthetic union-types fields.
    • UNION_TYPES_FIX_RENAME_RESOLUTION

      public static final EsqlCapabilities.Cap UNION_TYPES_FIX_RENAME_RESOLUTION
      Fix for union-types when renaming unrelated columns. https://github.com/elastic/elasticsearch/issues/111452
    • RENAME_SEQUENTIAL_PROCESSING

      public static final EsqlCapabilities.Cap RENAME_SEQUENTIAL_PROCESSING
      Execute `RENAME` operations sequentially from left to right, see ESQL: Align RENAME behavior with EVAL for sequential processing #122250
    • RENAME_ALLOW_ASSIGNMENT

      public static final EsqlCapabilities.Cap RENAME_ALLOW_ASSIGNMENT
      Support for assignment in RENAME, besides the use of `AS` keyword.
    • REMOVE_EMPTY_ATTRIBUTE_IN_MERGING_OUTPUT

      public static final EsqlCapabilities.Cap REMOVE_EMPTY_ATTRIBUTE_IN_MERGING_OUTPUT
      Support for removing empty attribute in merging output. See ESQL: EVAL after STATS produces an empty column #126392
    • RETAIN_AGGREGATE_WHEN_GROUPING

      public static final EsqlCapabilities.Cap RETAIN_AGGREGATE_WHEN_GROUPING
      Support for retain aggregate when grouping. See ES|QL: columns not projected away despite KEEP #126026
    • UNION_TYPES_MISSING_FIELD

      public static final EsqlCapabilities.Cap UNION_TYPES_MISSING_FIELD
      Fix for union-types when some indexes are missing the required field. Done in #111932.
    • UNION_TYPES_NUMERIC_WIDENING

      public static final EsqlCapabilities.Cap UNION_TYPES_NUMERIC_WIDENING
      Fix for widening of short numeric types in union-types. Done in #112610
    • UNION_TYPES_RESOLVE_PAST_PROJECTIONS

      public static final EsqlCapabilities.Cap UNION_TYPES_RESOLVE_PAST_PROJECTIONS
      Fix for resolving union type casts past projections (KEEP) and MV_EXPAND operations. Ensures that casting a union type field works correctly when the field has been projected and expanded through MV_EXPAND. See #137923
    • FIX_PARSING_LARGE_NEGATIVE_NUMBERS

      public static final EsqlCapabilities.Cap FIX_PARSING_LARGE_NEGATIVE_NUMBERS
      Fix a parsing issue where numbers below Long.MIN_VALUE threw an exception instead of parsing as doubles. see Parsing large numbers is inconsistent #104323
    • FIX_PRECISION_OF_SCALED_FLOAT_FIELDS

      public static final EsqlCapabilities.Cap FIX_PRECISION_OF_SCALED_FLOAT_FIELDS
      Fix precision of scaled_float field values retrieved from stored source see Slight inconsistency in ESQL using scaled_float field #122547
    • FIX_COUNT_DISTINCT_SOURCE_ERROR

      public static final EsqlCapabilities.Cap FIX_COUNT_DISTINCT_SOURCE_ERROR
      Fix the status code returned when trying to run count_distinct on the _source type (which is not supported). see count_distinct(_source) returns a 500 response
    • RANGEQUERY_FOR_DATETIME

      public static final EsqlCapabilities.Cap RANGEQUERY_FOR_DATETIME
      Use RangeQuery for BinaryComparison on DateTime fields.
    • ENRICH_STRICT_RANGE_TYPES

      public static final EsqlCapabilities.Cap ENRICH_STRICT_RANGE_TYPES
      Enforce strict type checking on ENRICH range types, and warnings for KEYWORD parsing at runtime. Done in #115091.
    • UNIQUE_NAMES

      public static final EsqlCapabilities.Cap UNIQUE_NAMES
      Fix for non-unique attribute names in ROW and logical plans. https://github.com/elastic/elasticsearch/issues/110541
    • FIXED_PUSHDOWN_PAST_PROJECT

      public static final EsqlCapabilities.Cap FIXED_PUSHDOWN_PAST_PROJECT
      Make attributes of GROK/DISSECT adjustable and fix a shadowing bug when pushing them down past PROJECT. https://github.com/elastic/elasticsearch/issues/108008
    • FIXED_PUSHDOWN_PAST_PROJECT_WITH_ATTRIBUTES_RESOLUTION

      public static final EsqlCapabilities.Cap FIXED_PUSHDOWN_PAST_PROJECT_WITH_ATTRIBUTES_RESOLUTION
      When resolving renames, consider all Attributes in the plan, not just the ReferenceAttributes.
    • MV_PSERIES_WEIGHTED_SUM

      public static final EsqlCapabilities.Cap MV_PSERIES_WEIGHTED_SUM
      Adds the MV_PSERIES_WEIGHTED_SUM function for converting sorted lists of numbers into a bounded score. This is a generalization of the riemann zeta function but we don't name it that because we don't support complex numbers and don't want to make folks think of mystical number theory things. This is just a weighted sum that is adjacent to magic.
    • MATCH_OPERATOR_COLON

      public static final EsqlCapabilities.Cap MATCH_OPERATOR_COLON
      Support for match operator as a colon. Previous support for match operator as MATCH has been removed
    • NO_META

      public static final EsqlCapabilities.Cap NO_META
      Removing support for the META keyword.
    • COMBINE_BINARY_COMPARISONS

      public static final EsqlCapabilities.Cap COMBINE_BINARY_COMPARISONS
      Add CombineBinaryComparisons rule.
    • DATE_NANOS_TYPE

      public static final EsqlCapabilities.Cap DATE_NANOS_TYPE
      Support for nanosecond dates as a data type
    • TO_DATE_NANOS

      public static final EsqlCapabilities.Cap TO_DATE_NANOS
      Support for to_date_nanos function
    • DATE_NANOS_BINARY_COMPARISON

      public static final EsqlCapabilities.Cap DATE_NANOS_BINARY_COMPARISON
      Support for date nanos type in binary comparisons
    • DATE_NANOS_COMPARE_TO_MILLIS

      public static final EsqlCapabilities.Cap DATE_NANOS_COMPARE_TO_MILLIS
      Support for mixed comparisons between nanosecond and millisecond dates
    • DATE_NANOS_IMPLICIT_CASTING

      public static final EsqlCapabilities.Cap DATE_NANOS_IMPLICIT_CASTING
      Support implicit casting of strings to date nanos
    • LEAST_GREATEST_FOR_DATENANOS

      public static final EsqlCapabilities.Cap LEAST_GREATEST_FOR_DATENANOS
      Support Least and Greatest functions on Date Nanos type
    • DATE_NANOS_DATE_EXTRACT

      public static final EsqlCapabilities.Cap DATE_NANOS_DATE_EXTRACT
      support date extract function for date nanos
    • DATE_NANOS_ADD_SUBTRACT

      public static final EsqlCapabilities.Cap DATE_NANOS_ADD_SUBTRACT
      Support add and subtract on date nanos
    • DATE_TRUNC_DATE_NANOS

      public static final EsqlCapabilities.Cap DATE_TRUNC_DATE_NANOS
      Support for date_trunc function on date nanos type
    • DATE_NANOS_BUCKET

      public static final EsqlCapabilities.Cap DATE_NANOS_BUCKET
      Support date nanos values as the field argument to bucket
    • DATE_NANOS_AGGREGATIONS

      public static final EsqlCapabilities.Cap DATE_NANOS_AGGREGATIONS
      support aggregations on date nanos
    • DATE_NANOS_IN_OPERATOR

      public static final EsqlCapabilities.Cap DATE_NANOS_IN_OPERATOR
      Support the In operator for date nanos
    • DATE_NANOS_DATE_FORMAT

      public static final EsqlCapabilities.Cap DATE_NANOS_DATE_FORMAT
      Support running date format function on nanosecond dates
    • DATE_NANOS_DATE_DIFF

      public static final EsqlCapabilities.Cap DATE_NANOS_DATE_DIFF
      support date diff function on date nanos type, and mixed nanos/millis
    • FIX_DATE_NANOS_LUCENE_PUSHDOWN_BUG

      public static final EsqlCapabilities.Cap FIX_DATE_NANOS_LUCENE_PUSHDOWN_BUG
      Indicates that https://github.com/elastic/elasticsearch/issues/125439 (incorrect lucene push down for date nanos) is fixed
    • FIX_DATE_NANOS_MIXED_RANGE_PUSHDOWN_BUG

      public static final EsqlCapabilities.Cap FIX_DATE_NANOS_MIXED_RANGE_PUSHDOWN_BUG
      Fixes a bug where dates are incorrectly formatted if a where clause compares nanoseconds to both milliseconds and nanoseconds, e.g. WHERE millis > to_datenanos("2023-10-23T12:15:03.360103847") AND millis < to_datetime("2023-10-23T13:53:55.832")
    • DATE_NANOS_LOOKUP_JOIN

      public static final EsqlCapabilities.Cap DATE_NANOS_LOOKUP_JOIN
      Support for date nanos in lookup join. Done in #127962
    • DATE_PARSE_TZ

      public static final EsqlCapabilities.Cap DATE_PARSE_TZ
      DATE_PARSE supports reading timezones
    • LEAST_GREATEST_FOR_DATES

      public static final EsqlCapabilities.Cap LEAST_GREATEST_FOR_DATES
      Support for datetime in least and greatest functions
    • COMBINE_DISJUNCTIVE_CIDRMATCHES

      public static final EsqlCapabilities.Cap COMBINE_DISJUNCTIVE_CIDRMATCHES
      Support CIDRMatch in CombineDisjunctions rule.
    • ASYNC_QUERY_STATUS_HEADERS

      public static final EsqlCapabilities.Cap ASYNC_QUERY_STATUS_HEADERS
      Support sending HTTP headers about the status of an async query.
    • ASYNC_QUERY_STATUS_HEADERS_FIX

      public static final EsqlCapabilities.Cap ASYNC_QUERY_STATUS_HEADERS_FIX
      Fix async headers not being sent on "get" requests
    • BUCKET_INCLUSIVE_UPPER_BOUND

      public static final EsqlCapabilities.Cap BUCKET_INCLUSIVE_UPPER_BOUND
      Consider the upper bound when computing the interval in BUCKET auto mode.
    • DATE_TRUNC_WITH_ARBITRARY_INTERVALS

      public static final EsqlCapabilities.Cap DATE_TRUNC_WITH_ARBITRARY_INTERVALS
      Enhanced DATE_TRUNC with arbitrary month and year intervals. (#120302)
    • SHORT_ERROR_MESSAGES_FOR_UNSUPPORTED_FIELDS

      public static final EsqlCapabilities.Cap SHORT_ERROR_MESSAGES_FOR_UNSUPPORTED_FIELDS
      Changed error messages for fields with conflicting types in different indices.
    • BUCKET_WHOLE_NUMBER_AS_SPAN

      public static final EsqlCapabilities.Cap BUCKET_WHOLE_NUMBER_AS_SPAN
      Support for the whole number spans in BUCKET function.
    • COLUMN_METADATA_BUCKET_V2

      public static final EsqlCapabilities.Cap COLUMN_METADATA_BUCKET_V2
      Expose resolved bucket interval in _meta on BUCKET grouping columns, gated behind the SET column_metadata=true setting. Without the setting, non-approximation metadata is omitted.
    • MIXED_NUMERIC_TYPES_IN_COALESCE

      public static final EsqlCapabilities.Cap MIXED_NUMERIC_TYPES_IN_COALESCE
      Allow mixed numeric types in coalesce
    • SPACE

      public static final EsqlCapabilities.Cap SPACE
      Support for requesting the "SPACE" function.
    • CAST_STRING_LITERAL_TO_TEMPORAL_AMOUNT

      public static final EsqlCapabilities.Cap CAST_STRING_LITERAL_TO_TEMPORAL_AMOUNT
      Support explicit casting from string literal to DATE_PERIOD or TIME_DURATION.
    • CATEGORIZE_V6

      public static final EsqlCapabilities.Cap CATEGORIZE_V6
      Supported the text categorization function "CATEGORIZE".
    • CATEGORIZE_MULTIPLE_GROUPINGS

      public static final EsqlCapabilities.Cap CATEGORIZE_MULTIPLE_GROUPINGS
      Support for multiple groupings in "CATEGORIZE".
    • QSTR_FUNCTION

      public static final EsqlCapabilities.Cap QSTR_FUNCTION
      QSTR function
    • QSTR_FUNCTION_BOOST_FIX

      public static final EsqlCapabilities.Cap QSTR_FUNCTION_BOOST_FIX
      Guards a fix for the boost parameter in QueryString queries
    • MATCH_FUNCTION

      public static final EsqlCapabilities.Cap MATCH_FUNCTION
      MATCH function
    • KQL_FUNCTION

      public static final EsqlCapabilities.Cap KQL_FUNCTION
      KQL function
    • KQL_FUNCTION_OPTIONS

      public static final EsqlCapabilities.Cap KQL_FUNCTION_OPTIONS
      Support for optional parameters in KQL function (case_insensitive, time_zone, default_field, boost).
    • HASH_FUNCTION

      public static final EsqlCapabilities.Cap HASH_FUNCTION
      Hash function
    • HASH_FUNCTION_ALIASES_V1

      public static final EsqlCapabilities.Cap HASH_FUNCTION_ALIASES_V1
      Hash function aliases such as MD5
    • FIXED_WRONG_IS_NOT_NULL_CHECK_ON_CASE

      public static final EsqlCapabilities.Cap FIXED_WRONG_IS_NOT_NULL_CHECK_ON_CASE
      Don't optimize CASE IS NOT NULL function by not requiring the fields to be not null as well. https://github.com/elastic/elasticsearch/issues/112704
    • DATE_DIFF_YEAR_CALENDARIAL

      public static final EsqlCapabilities.Cap DATE_DIFF_YEAR_CALENDARIAL
      Compute year differences in full calendar years.
    • SORTING_ON_SOURCE_AND_COUNTERS_FORBIDDEN

      public static final EsqlCapabilities.Cap SORTING_ON_SOURCE_AND_COUNTERS_FORBIDDEN
      Fix sorting not allowed on _source and counters.
    • SORTING_ON_HISTOGRAM_AND_TSID_FORBIDDEN

      public static final EsqlCapabilities.Cap SORTING_ON_HISTOGRAM_AND_TSID_FORBIDDEN
      Fix sorting not allowed on histogram and _tsid.
    • SORT_RETURNING_SOURCE_OK

      public static final EsqlCapabilities.Cap SORT_RETURNING_SOURCE_OK
      Fix SORT when the _source field is not a sort key but is being returned.
    • SOURCE_FIELD_MAPPING

      public static final EsqlCapabilities.Cap SOURCE_FIELD_MAPPING
      _source field mapping directives: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-source-field.html
    • FIELD_ALIAS_SUPPORT

      public static final EsqlCapabilities.Cap FIELD_ALIAS_SUPPORT
      Support for field aliases in mappings. Used by tests, since this was feature wasn't always supported by CsvTests.
    • PER_AGG_FILTERING

      public static final EsqlCapabilities.Cap PER_AGG_FILTERING
      Allow filter per individual aggregation.
    • PER_AGG_FILTERING_ORDS

      public static final EsqlCapabilities.Cap PER_AGG_FILTERING_ORDS
      Fix PER_AGG_FILTERING grouped by ordinals.
    • STD_DEV

      public static final EsqlCapabilities.Cap STD_DEV
      Support for STD_DEV aggregation.
    • FIX_STATS_BY_FOLDABLE_EXPRESSION

      public static final EsqlCapabilities.Cap FIX_STATS_BY_FOLDABLE_EXPRESSION
      Fix for https://github.com/elastic/elasticsearch/issues/114714
    • FUNCTION_STATS

      public static final EsqlCapabilities.Cap FUNCTION_STATS
      Adding stats for functions (stack telemetry)
    • FIX_FILTER_PUSHDOWN_PAST_STATS

      public static final EsqlCapabilities.Cap FIX_FILTER_PUSHDOWN_PAST_STATS
      Fix for an optimization that caused wrong results https://github.com/elastic/elasticsearch/issues/115281
    • STATS_ALIAS_COLLISION_WARNINGS

      public static final EsqlCapabilities.Cap STATS_ALIAS_COLLISION_WARNINGS
      Send warnings on STATS alias collision https://github.com/elastic/elasticsearch/issues/114970
    • SNAPSHOT_TEST_FOR_TELEMETRY_V2

      public static final EsqlCapabilities.Cap SNAPSHOT_TEST_FOR_TELEMETRY_V2
      This enables 60_usage.yml "Basic ESQL usage....snapshot" version test. See also the next capability.
    • NON_SNAPSHOT_TEST_FOR_TELEMETRY_V2

      public static final EsqlCapabilities.Cap NON_SNAPSHOT_TEST_FOR_TELEMETRY_V2
      This enables 60_usage.yml "Basic ESQL usage....non-snapshot" version test. See also the previous capability.
    • NAMED_PARAMETER_FOR_FIELD_AND_FUNCTION_NAMES_SIMPLIFIED_SYNTAX

      public static final EsqlCapabilities.Cap NAMED_PARAMETER_FOR_FIELD_AND_FUNCTION_NAMES_SIMPLIFIED_SYNTAX
      Support simplified syntax for named parameters for field and function names.
    • ADD_LIMIT_INSIDE_MV_EXPAND

      public static final EsqlCapabilities.Cap ADD_LIMIT_INSIDE_MV_EXPAND
      Fix pushdown of LIMIT past MV_EXPAND
    • DELAY_DEBUG_FN

      public static final EsqlCapabilities.Cap DELAY_DEBUG_FN
    • METADATA_FIELDS_REMOTE_TEST

      public static final EsqlCapabilities.Cap METADATA_FIELDS_REMOTE_TEST
      Capability for remote metadata test
    • JOIN_PLANNING_V1

      public static final EsqlCapabilities.Cap JOIN_PLANNING_V1
      WIP on Join planning - Introduce BinaryPlan and co - Refactor INLINESTATS and LOOKUP as a JOIN block
    • IMPLICIT_CASTING_STRING_LITERAL_TO_TEMPORAL_AMOUNT

      public static final EsqlCapabilities.Cap IMPLICIT_CASTING_STRING_LITERAL_TO_TEMPORAL_AMOUNT
      Support implicit casting from string literal to DATE_PERIOD or TIME_DURATION.
    • JOIN_LOOKUP_V12

      public static final EsqlCapabilities.Cap JOIN_LOOKUP_V12
      LOOKUP JOIN
    • LOOKUP_JOIN_TEXT

      public static final EsqlCapabilities.Cap LOOKUP_JOIN_TEXT
      LOOKUP JOIN with TEXT fields on the right (right side of the join) (#119473)
    • JOIN_LOOKUP_SKIP_MV_WARNINGS

      public static final EsqlCapabilities.Cap JOIN_LOOKUP_SKIP_MV_WARNINGS
      LOOKUP JOIN skipping MVs and sending warnings (https://github.com/elastic/elasticsearch/issues/118780)
    • ASYNC_OPERATOR_WARNINGS_FIX

      public static final EsqlCapabilities.Cap ASYNC_OPERATOR_WARNINGS_FIX
      Fix for async operator sometimes completing the driver without emitting the stored warnings
    • JOIN_LOOKUP_FIX_LIMIT_PUSHDOWN

      public static final EsqlCapabilities.Cap JOIN_LOOKUP_FIX_LIMIT_PUSHDOWN
      Fix pushing down LIMIT past LOOKUP JOIN in case of multiple matching join keys.
    • FIX_NESTED_FIELDS_NAME_CLASH_IN_INDEXRESOLVER

      public static final EsqlCapabilities.Cap FIX_NESTED_FIELDS_NAME_CLASH_IN_INDEXRESOLVER
      Fix for https://github.com/elastic/elasticsearch/issues/117054
    • FIX_STATS_BY_FOLDABLE_EXPRESSION_2

      public static final EsqlCapabilities.Cap FIX_STATS_BY_FOLDABLE_EXPRESSION_2
      Fix for https://github.com/elastic/elasticsearch/issues/114714, again
    • METADATA_SCORE

      public static final EsqlCapabilities.Cap METADATA_SCORE
      Support the "METADATA _score" directive to enable _score column.
    • MATCH_ADDITIONAL_TYPES

      public static final EsqlCapabilities.Cap MATCH_ADDITIONAL_TYPES
      Additional types for match function and operator
    • FIXED_REGEX_FOLD

      public static final EsqlCapabilities.Cap FIXED_REGEX_FOLD
      Fix for regex folding with case-insensitive pattern https://github.com/elastic/elasticsearch/issues/118371
    • FULL_TEXT_FUNCTIONS_DISJUNCTIONS

      public static final EsqlCapabilities.Cap FULL_TEXT_FUNCTIONS_DISJUNCTIONS
      Full text functions can be used in disjunctions
    • SEMANTIC_TEXT_FIELD_CAPS

      public static final EsqlCapabilities.Cap SEMANTIC_TEXT_FIELD_CAPS
      Change field caps response for semantic_text fields to be reported as text
    • OPTIONAL_NAMED_ARGUMENT_MAP_FOR_FUNCTION

      public static final EsqlCapabilities.Cap OPTIONAL_NAMED_ARGUMENT_MAP_FOR_FUNCTION
      Support named argument for function in map format.
    • LOOKUP_JOIN_NO_ALIASES

      public static final EsqlCapabilities.Cap LOOKUP_JOIN_NO_ALIASES
      Disabled support for index aliases in lookup joins
    • FULL_TEXT_FUNCTIONS_DISJUNCTIONS_COMPUTE_ENGINE

      public static final EsqlCapabilities.Cap FULL_TEXT_FUNCTIONS_DISJUNCTIONS_COMPUTE_ENGINE
      Full text functions can be used in disjunctions as they are implemented in compute engine
    • MATCH_FUNCTION_OPTIONS

      public static final EsqlCapabilities.Cap MATCH_FUNCTION_OPTIONS
      Support match options in match function
    • QUERY_STRING_FUNCTION_OPTIONS

      public static final EsqlCapabilities.Cap QUERY_STRING_FUNCTION_OPTIONS
      Support options in the query string function.
    • AGGREGATE_METRIC_DOUBLE_V0

      public static final EsqlCapabilities.Cap AGGREGATE_METRIC_DOUBLE_V0
      Enable aggregate_metric_double in non-snapshot builds
    • AGGREGATE_METRIC_DOUBLE_DEFAULT_METRIC

      public static final EsqlCapabilities.Cap AGGREGATE_METRIC_DOUBLE_DEFAULT_METRIC
      Support running all aggregations on aggregate_metric_double using the default metric
    • AGGREGATE_METRIC_DOUBLE_AVG_AS_DEFAULT_METRIC

      public static final EsqlCapabilities.Cap AGGREGATE_METRIC_DOUBLE_AVG_AS_DEFAULT_METRIC
      Support avg as a possible default metric for aggregate_metric_double
    • AGGREGATE_METRIC_DOUBLE_NO_ROWS_COUNT_0

      public static final EsqlCapabilities.Cap AGGREGATE_METRIC_DOUBLE_NO_ROWS_COUNT_0
      Return 0 (instead of null) for count on AMD when there are no rows
    • AGGREGATE_METRIC_DOUBLE_BINARY_OPERATORS

      public static final EsqlCapabilities.Cap AGGREGATE_METRIC_DOUBLE_BINARY_OPERATORS
      Support binary operators for aggregate_metric_double
    • CHANGE_POINT

      public static final EsqlCapabilities.Cap CHANGE_POINT
      Support change point detection "CHANGE_POINT".
    • REMOVE_REDUNDANT_SORT

      public static final EsqlCapabilities.Cap REMOVE_REDUNDANT_SORT
      Fix for https://github.com/elastic/elasticsearch/issues/120817 and https://github.com/elastic/elasticsearch/issues/120803 Support for queries that have multiple SORTs that cannot become TopN
    • INLINESTATS_V11

      public static final EsqlCapabilities.Cap INLINESTATS_V11
      Fixes a series of issues with inlinestats which had an incomplete implementation after lookup and inlinestats were refactored.
    • INLINE_STATS

      public static final EsqlCapabilities.Cap INLINE_STATS
      Renamed `INLINESTATS` to `INLINE STATS`.
    • INLINE_STATS_PRECEEDED_BY_SORT

      public static final EsqlCapabilities.Cap INLINE_STATS_PRECEEDED_BY_SORT
      Added support for having INLINE STATS preceded by a SORT clause, now executable in certain cases.
    • SUPPORT_PARTIAL_RESULTS

      public static final EsqlCapabilities.Cap SUPPORT_PARTIAL_RESULTS
      Support partial_results
    • RERANK

      public static final EsqlCapabilities.Cap RERANK
      Support for RERANK command
    • COMPLETION

      public static final EsqlCapabilities.Cap COMPLETION
      Support for COMPLETION command
    • MIXED_NUMERIC_TYPES_IN_CASE_GREATEST_LEAST

      public static final EsqlCapabilities.Cap MIXED_NUMERIC_TYPES_IN_CASE_GREATEST_LEAST
      Allow mixed numeric types in conditional functions - case, greatest and least
    • STARTS_WITH_ENDS_WITH_LUCENE_PUSHDOWN

      public static final EsqlCapabilities.Cap STARTS_WITH_ENDS_WITH_LUCENE_PUSHDOWN
      Lucene query pushdown to StartsWith and EndsWith functions. This capability was created to avoid receiving wrong warnings from old nodes in mixed clusters
    • FULL_TEXT_FUNCTIONS_DISJUNCTIONS_SCORE

      public static final EsqlCapabilities.Cap FULL_TEXT_FUNCTIONS_DISJUNCTIONS_SCORE
      Full text functions can be scored when being part of a disjunction
    • TO_LOWER_MV

      public static final EsqlCapabilities.Cap TO_LOWER_MV
      Do TO_LOWER and TO_UPPER process all field values?
    • CHUNK_MV

      public static final EsqlCapabilities.Cap CHUNK_MV
      Does CHUNK process all field values?
    • DOUBLE_PARAMETER_MARKERS_FOR_IDENTIFIERS

      public static final EsqlCapabilities.Cap DOUBLE_PARAMETER_MARKERS_FOR_IDENTIFIERS
      Use double parameter markers to represent field or function names.
    • NON_FULL_TEXT_FUNCTIONS_SCORING

      public static final EsqlCapabilities.Cap NON_FULL_TEXT_FUNCTIONS_SCORING
      Non full text functions do not contribute to score
    • REPORT_ORIGINAL_TYPES

      public static final EsqlCapabilities.Cap REPORT_ORIGINAL_TYPES
      The _query API now reports the original types.
    • METRICS_COMMAND

      @Deprecated public static final EsqlCapabilities.Cap METRICS_COMMAND
      Deprecated.
      The metrics command
    • METRICS_GROUP_BY_ALL

      public static final EsqlCapabilities.Cap METRICS_GROUP_BY_ALL
      Enables automatically grouping by all dimension fields in TS mode queries
    • DOCUMENTS_FOUND_AND_VALUES_LOADED

      public static final EsqlCapabilities.Cap DOCUMENTS_FOUND_AND_VALUES_LOADED
      Are the documents_found and values_loaded fields available in the response and profile?
    • INDEX_COMPONENT_SELECTORS

      public static final EsqlCapabilities.Cap INDEX_COMPONENT_SELECTORS
      Index component selector syntax (my-data-stream-name::failures)
    • MAKE_NUMBER_OF_CHANNELS_CONSISTENT_WITH_LAYOUT

      public static final EsqlCapabilities.Cap MAKE_NUMBER_OF_CHANNELS_CONSISTENT_WITH_LAYOUT
      Make numberOfChannels consistent with layout in DefaultLayout by removing duplicated ChannelSet.
    • FIX_REPLACE_MISSING_FIELD_WITH_NULL_DUPLICATE_NAME_ID_IN_LAYOUT

      public static final EsqlCapabilities.Cap FIX_REPLACE_MISSING_FIELD_WITH_NULL_DUPLICATE_NAME_ID_IN_LAYOUT
    • FILTER_IN_CONVERTED_NULL

      public static final EsqlCapabilities.Cap FILTER_IN_CONVERTED_NULL
      Support for filter in converted null. See ESQL: Fix `NULL` handling in `IN` clause #125832
    • FIX_DOUBLY_RELEASED_NULL_BLOCKS_IN_VALUESOURCEREADER

      public static final EsqlCapabilities.Cap FIX_DOUBLY_RELEASED_NULL_BLOCKS_IN_VALUESOURCEREADER
      When creating constant null blocks in ValuesSourceReaderOperator, we also handed off the ownership of that block - but didn't account for the fact that the caller might close it, leading to double releases in some union type queries. C.f. https://github.com/elastic/elasticsearch/issues/125850
    • QUERY_MONITORING

      public static final EsqlCapabilities.Cap QUERY_MONITORING
      Listing queries and getting information on a specific query.
    • FORK_V9

      public static final EsqlCapabilities.Cap FORK_V9
      Support for FORK out of snapshot
    • FORK_UNION_TYPES

      public static final EsqlCapabilities.Cap FORK_UNION_TYPES
      Support for union types in FORK
    • SUBQUERY_IN_FROM_COMMAND

      public static final EsqlCapabilities.Cap SUBQUERY_IN_FROM_COMMAND
      Support non-correlated subqueries in the FROM clause.
    • SUBQUERY_IN_FROM_COMMAND_WITHOUT_IMPLICIT_LIMIT

      public static final EsqlCapabilities.Cap SUBQUERY_IN_FROM_COMMAND_WITHOUT_IMPLICIT_LIMIT
      Support non-correlated subqueries in the FROM clause without implicit limit.
    • SUBQUERY_IN_FROM_COMMAND_APPEND_IMPLICIT_LIMIT_TO_UNBOUNDED_SORT_IN_SUBQUERY

      public static final EsqlCapabilities.Cap SUBQUERY_IN_FROM_COMMAND_APPEND_IMPLICIT_LIMIT_TO_UNBOUNDED_SORT_IN_SUBQUERY
      Append an implicit limit to unbounded sorts in subqueries in the FROM clause.
    • SUBQUERY_IN_FROM_COMMAND_PRUNE_NO_FIELDS

      public static final EsqlCapabilities.Cap SUBQUERY_IN_FROM_COMMAND_PRUNE_NO_FIELDS
      Prune no-fields in subquery project.
    • SUBQUERY_IN_FROM_COMMAND_UNION_TYPES_CONFLICT_RESOLUTION

      public static final EsqlCapabilities.Cap SUBQUERY_IN_FROM_COMMAND_UNION_TYPES_CONFLICT_RESOLUTION
      Fix for union types when fields have conflicting types between subqueries. https://github.com/elastic/elasticsearch/issues/142499
    • SUBQUERY_IN_FROM_COMMAND_CARRY_OVER_SYNTHETIC_CONVERT_ATTRIBUTES

      public static final EsqlCapabilities.Cap SUBQUERY_IN_FROM_COMMAND_CARRY_OVER_SYNTHETIC_CONVERT_ATTRIBUTES
      Carry over synthetic convert-function attributes introduced by ResolveUnionTypesInUnionAll through intermediate Project nodes (e.g. those produced by RENAME, KEEP, or DROP) sitting above the UnionAll. Without this, the synthetic $$<field>$converted_to$<type> attribute referenced by the rewritten convert function would not be visible above the Project, producing a plan with missing references that fails the optimizer's plan consistency check. https://github.com/elastic/elasticsearch/issues/149509
    • SUBQUERY_IN_FROM_COMMAND_UNION_TYPES_IMPLICIT_CASTING_INCONSISTENT_AFTER_RENAME

      public static final EsqlCapabilities.Cap SUBQUERY_IN_FROM_COMMAND_UNION_TYPES_IMPLICIT_CASTING_INCONSISTENT_AFTER_RENAME
      Fix for union types that have counter field renamed, but the data type is inconsistent with union all output.
    • SUBQUERY_IN_FROM_COMMAND_INLINE_STATS_PRUNING

      public static final EsqlCapabilities.Cap SUBQUERY_IN_FROM_COMMAND_INLINE_STATS_PRUNING
      Fix for PruneColumns leaving an inconsistent plan when an INLINE STATS sits above a UnionAll (from a subquery in FROM) or a Fork.
    • WHERE_IN_SUBQUERY

      public static final EsqlCapabilities.Cap WHERE_IN_SUBQUERY
      Support IN non-correlated subqueries in WHERE command.
    • WHERE_IN_SUBQUERY_WITHOUT_VIEW

      public static final EsqlCapabilities.Cap WHERE_IN_SUBQUERY_WITHOUT_VIEW
      Support IN non-correlated subqueries in WHERE command without View. When a view is referenced by an IN subquery, or there is an IN subquery inside the view definition(especially nested views), it is out of the scope of this capability. Add a new capability, so that integration tests don't run on nodes that only have WHERE_IN_SUBQUERY capability.
    • WHERE_IN_SUBQUERY_WITH_VIEW

      public static final EsqlCapabilities.Cap WHERE_IN_SUBQUERY_WITH_VIEW
      Support IN non-correlated subqueries in WHERE command with View. The views can be referenced by IN subqueries, and the view definition can contain IN subqueries.
    • SUBQUERY_WITH_ROW

      public static final EsqlCapabilities.Cap SUBQUERY_WITH_ROW
      Support ROW as a source command inside subquery in the from command.
    • SUBQUERY_WITH_TS

      public static final EsqlCapabilities.Cap SUBQUERY_WITH_TS
      Support TS as a source command inside subquery in the from command.
    • WHERE_IN_SUBQUERY_WITH_TS

      public static final EsqlCapabilities.Cap WHERE_IN_SUBQUERY_WITH_TS
      Fixed TranslateTimeSeriesWithout and TranslateTimeSeriesAggregate to associate time-series attributes with the correct time-series index when a join presents.
    • VIEWS_IN_CLUSTER_STATE

      public static final EsqlCapabilities.Cap VIEWS_IN_CLUSTER_STATE
      Support for views in cluster state (and REST API).
    • VIEWS_WITH_NO_BRANCHING

      public static final EsqlCapabilities.Cap VIEWS_WITH_NO_BRANCHING
      Basic Views with no branching (do not need subqueries or FORK).
    • VIEWS_CRUD_AS_INDEX_ACTIONS

      public static final EsqlCapabilities.Cap VIEWS_CRUD_AS_INDEX_ACTIONS
      Views crud actions as index actions
    • VIEWS_PUT_SERVERLESS_SCOPE

      public static final EsqlCapabilities.Cap VIEWS_PUT_SERVERLESS_SCOPE
      Signals that PUT /_query/view/{name} is exposed with @ServerlessScope(Scope.PUBLIC). Old nodes in a mixed cluster predate this annotation and will not report this capability via /_capabilities, so any mixed cluster containing such a node correctly returns supported=false.
    • VIEWS_WITH_BRANCHING

      public static final EsqlCapabilities.Cap VIEWS_WITH_BRANCHING
      Views with branching (requires subqueries/FORK).
    • VIEWS_TELEMETRY

      public static final EsqlCapabilities.Cap VIEWS_TELEMETRY
      Added telemetry for views
    • VIEWS_DEDUPLICATION_BUGFIX

      public static final EsqlCapabilities.Cap VIEWS_DEDUPLICATION_BUGFIX
      Fixed a bug where views are incorrectly de-duplicated.
    • VIEWS_FALSE_CIRCULAR_REFERENCE_FIX

      public static final EsqlCapabilities.Cap VIEWS_FALSE_CIRCULAR_REFERENCE_FIX
      Fixed false circular view reference errors when multiple sibling views are resolved together. See https://github.com/elastic/elasticsearch/issues/146208
    • TO_IP_LEADING_ZEROS

      public static final EsqlCapabilities.Cap TO_IP_LEADING_ZEROS
      Support for the leading_zeros named parameter.
    • USAGE_CONTAINS_TOOK

      public static final EsqlCapabilities.Cap USAGE_CONTAINS_TOOK
      Does the usage information for ESQL contain a histogram of took values?
    • LOADING_NON_INDEXED_IP_FIELDS

      public static final EsqlCapabilities.Cap LOADING_NON_INDEXED_IP_FIELDS
      Support loading of ip fields if they are not indexed.
    • FIX_JOIN_MASKING_EVAL

      public static final EsqlCapabilities.Cap FIX_JOIN_MASKING_EVAL
      During resolution (pre-analysis) we have to consider that joins or enriches can override EVALuated values https://github.com/elastic/elasticsearch/issues/126419
    • DROP_AGAIN_WITH_WILDCARD_AFTER_EVAL

      public static final EsqlCapabilities.Cap DROP_AGAIN_WITH_WILDCARD_AFTER_EVAL
      Support for keeping `DROP` attributes when resolving field names. see ES|QL: no matches for pattern #126418
    • DROP_WITH_WILDCARD_AFTER_LOOKUP_JOIN

      public static final EsqlCapabilities.Cap DROP_WITH_WILDCARD_AFTER_LOOKUP_JOIN
      Correctly ask for all fields from lookup indices even when there is e.g. a DROP *field after. See ES|QL: missing columns for wildcard drop after lookup join #129561
    • SCORE_FUNCTION

      public static final EsqlCapabilities.Cap SCORE_FUNCTION
      score function
    • SAMPLE_V3

      public static final EsqlCapabilities.Cap SAMPLE_V3
      Support for the SAMPLE command
    • SUGGESTED_CAST

      public static final EsqlCapabilities.Cap SUGGESTED_CAST
      The _query API now gives a cast recommendation if multiple types are found in certain instances.
    • TO_COUNTER

      public static final EsqlCapabilities.Cap TO_COUNTER
      Support for TO_COUNTER function and the ::counter cast operator, which converts long, integer, and double values to their counter-typed equivalents.
    • TO_GAUGE

      public static final EsqlCapabilities.Cap TO_GAUGE
      Support for TO_GAUGE function and the ::gauge cast operator, which converts counter_long, counter_integer, and counter_double values to their plain numeric (gauge) equivalents.
    • TO_LOWER_EMPTY_STRING

      public static final EsqlCapabilities.Cap TO_LOWER_EMPTY_STRING
      Guards a bug fix matching TO_LOWER(f) == "".
    • INCREASE

      public static final EsqlCapabilities.Cap INCREASE
      Support for INCREASE, DELTA timeseries aggregations.
    • DELTA_TS_AGG

      public static final EsqlCapabilities.Cap DELTA_TS_AGG
    • CLAMP_FUNCTIONS

      public static final EsqlCapabilities.Cap CLAMP_FUNCTIONS
    • RESOLVE_GROUPINGS_BEFORE_RESOLVING_REFERENCES_TO_GROUPINGS_IN_AGGREGATIONS

      public static final EsqlCapabilities.Cap RESOLVE_GROUPINGS_BEFORE_RESOLVING_REFERENCES_TO_GROUPINGS_IN_AGGREGATIONS
      Resolve groupings before resolving references to groupings in the aggregations.
    • AGG_SAMPLE

      public static final EsqlCapabilities.Cap AGG_SAMPLE
      Support for the SAMPLE aggregation function
    • FULL_TEXT_FUNCTIONS_IN_STATS_WHERE

      public static final EsqlCapabilities.Cap FULL_TEXT_FUNCTIONS_IN_STATS_WHERE
      Full text functions in STATS
    • FIX_JOIN_MASKING_REGEX_EXTRACT

      public static final EsqlCapabilities.Cap FIX_JOIN_MASKING_REGEX_EXTRACT
      During resolution (pre-analysis) we have to consider that joins can override regex extracted values see ES|QL: pruning of JOINs leads to missing fields #127467
    • FIX_JOIN_OUTPUT_MERGING

      public static final EsqlCapabilities.Cap FIX_JOIN_OUTPUT_MERGING
      Allow the merging of the children to use Aliases, instead of just ReferenceAttributes.
    • KEEP_REGEX_EXTRACT_ATTRIBUTES

      public static final EsqlCapabilities.Cap KEEP_REGEX_EXTRACT_ATTRIBUTES
      Avid GROK and DISSECT attributes being removed when resolving fields. see ES|QL: Grok only supports KEYWORD or TEXT values, found expression [type] type [INTEGER] #127468
    • ROUND_TO

      public static final EsqlCapabilities.Cap ROUND_TO
      The ROUND_TO function.
    • COPY_SIGN

      public static final EsqlCapabilities.Cap COPY_SIGN
      Support for the COPY_SIGN function.
    • LOOKUP_JOIN_ON_MIXED_NUMERIC_FIELDS

      public static final EsqlCapabilities.Cap LOOKUP_JOIN_ON_MIXED_NUMERIC_FIELDS
      Allow lookup join on mixed numeric fields, among byte, short, int, long, half_float, scaled_float, float and double.
    • LUCENE_QUERY_EVALUATOR_QUERY_REWRITE

      public static final EsqlCapabilities.Cap LUCENE_QUERY_EVALUATOR_QUERY_REWRITE
      LuceneQueryEvaluator rewrites the query before executing it in Lucene. This provides support for KQL in a STATS ... BY command that uses a KQL query for filter, for example.
    • PARAMETER_FOR_LIMIT

      public static final EsqlCapabilities.Cap PARAMETER_FOR_LIMIT
      Support parameters for LIMIT command.
    • NORMALIZED_LIMIT_ERROR_MESSAGE

      public static final EsqlCapabilities.Cap NORMALIZED_LIMIT_ERROR_MESSAGE
      Changed and normalized the LIMIT error message.
    • DENSE_VECTOR_FIELD_TYPE_RELEASED

      public static final EsqlCapabilities.Cap DENSE_VECTOR_FIELD_TYPE_RELEASED
      Dense vector field type support
    • ENABLE_LOOKUP_JOIN_ON_ALIASES

      public static final EsqlCapabilities.Cap ENABLE_LOOKUP_JOIN_ON_ALIASES
      Enable support for index aliases in lookup joins
    • UPDATE_LOOKUP_JOIN_ERROR_MESSAGES

      public static final EsqlCapabilities.Cap UPDATE_LOOKUP_JOIN_ERROR_MESSAGES
      Lookup error messages were updated to make them a bit easier to understand.
    • RLIKE_WITH_EMPTY_LANGUAGE_PATTERN

      public static final EsqlCapabilities.Cap RLIKE_WITH_EMPTY_LANGUAGE_PATTERN
      Allows RLIKE to correctly handle the "empty language" flag, `#`.
    • ENABLE_LOOKUP_JOIN_ON_REMOTE

      public static final EsqlCapabilities.Cap ENABLE_LOOKUP_JOIN_ON_REMOTE
      Enable support for cross-cluster lookup joins.
    • REMOTE_ENRICH_AFTER_LOOKUP_JOIN

      public static final EsqlCapabilities.Cap REMOTE_ENRICH_AFTER_LOOKUP_JOIN
      Fix the planning of | ENRICH _remote:policy when there's a preceding | LOOKUP JOIN, see java.lang.ClassCastException when combining LOOKUP JOIN and remote ENRICH
    • MATCH_PHRASE_FUNCTION

      public static final EsqlCapabilities.Cap MATCH_PHRASE_FUNCTION
      MATCH PHRASE function
    • KNN_FUNCTION_V5

      public static final EsqlCapabilities.Cap KNN_FUNCTION_V5
      Support knn function
    • TEXT_EMBEDDING_FUNCTION

      public static final EsqlCapabilities.Cap TEXT_EMBEDDING_FUNCTION
      Support for the TEXT_EMBEDDING function for generating dense vector embeddings.
    • LIKE_WITH_LIST_OF_PATTERNS

      public static final EsqlCapabilities.Cap LIKE_WITH_LIST_OF_PATTERNS
      Support for the LIKE operator with a list of wildcards.
    • LIKE_LIST_ON_INDEX_FIELDS

      public static final EsqlCapabilities.Cap LIKE_LIST_ON_INDEX_FIELDS
    • PARAMETER_FOR_SAMPLE

      public static final EsqlCapabilities.Cap PARAMETER_FOR_SAMPLE
      Support parameters for SAMPLE command.
    • NO_PLAIN_STRINGS_IN_LITERALS

      public static final EsqlCapabilities.Cap NO_PLAIN_STRINGS_IN_LITERALS
      From now, Literal only accepts strings as BytesRefs. No java.lang.String anymore. https://github.com/elastic/elasticsearch/issues/129322
    • FIX_MV_EXPAND_INCONSISTENT_COLUMN_ORDER

      public static final EsqlCapabilities.Cap FIX_MV_EXPAND_INCONSISTENT_COLUMN_ORDER
      Support for the mv_expand target attribute should be retained in its original position. see ES|QL: inconsistent column order #129000
    • SET_COMMAND

      public static final EsqlCapabilities.Cap SET_COMMAND
      Support for the SET command.
    • DATE_TRUNC_TIMEZONE_SUPPORT

      public static final EsqlCapabilities.Cap DATE_TRUNC_TIMEZONE_SUPPORT
      Support timezones in DATE_TRUNC and dependent functions.
    • DATE_DIFF_TIMEZONE_SUPPORT

      public static final EsqlCapabilities.Cap DATE_DIFF_TIMEZONE_SUPPORT
      Support timezones in DATE_DIFF.
    • KQL_QSTR_TIMEZONE_SUPPORT

      public static final EsqlCapabilities.Cap KQL_QSTR_TIMEZONE_SUPPORT
      Support timezones in KQL and QSTR.
    • TYPE_CONVERSION_TIMEZONE_SUPPORT

      public static final EsqlCapabilities.Cap TYPE_CONVERSION_TIMEZONE_SUPPORT
      Support timezones in the conversion utils and functions, like TO_STRING.
    • DATE_FORMAT_DATE_PARSE_TIMEZONE_SUPPORT

      public static final EsqlCapabilities.Cap DATE_FORMAT_DATE_PARSE_TIMEZONE_SUPPORT
      Support timezones in DATE_FORMAT and DATE_PARSE.
    • ADD_SUB_OPERATOR_TIMEZONE_SUPPORT

      public static final EsqlCapabilities.Cap ADD_SUB_OPERATOR_TIMEZONE_SUPPORT
      Support timezones in + and - operators.
    • EXPLAIN

      public static final EsqlCapabilities.Cap EXPLAIN
      (Re)Added EXPLAIN command
    • EXPLAIN_WITH_REMOTE_PLANS

      public static final EsqlCapabilities.Cap EXPLAIN_WITH_REMOTE_PLANS
      EXPLAIN command with remote plans (5 columns: cluster, node, role, type, plan)
    • RLIKE_WITH_LIST_OF_PATTERNS

      public static final EsqlCapabilities.Cap RLIKE_WITH_LIST_OF_PATTERNS
      Support for the RLIKE operator with a list of regexes.
    • FUSE_V6

      public static final EsqlCapabilities.Cap FUSE_V6
      FUSE command
    • LIKE_ON_INDEX_FIELDS

      public static final EsqlCapabilities.Cap LIKE_ON_INDEX_FIELDS
      Support improved behavior for LIKE operator when used with index fields.
    • NO_BRACKETS_IN_UNQUOTED_INDEX_NAMES

      public static final EsqlCapabilities.Cap NO_BRACKETS_IN_UNQUOTED_INDEX_NAMES
      Forbid usage of brackets in unquoted index and enrich policy names https://github.com/elastic/elasticsearch/issues/130378
    • COSINE_VECTOR_SIMILARITY_FUNCTION

      public static final EsqlCapabilities.Cap COSINE_VECTOR_SIMILARITY_FUNCTION
      Cosine vector similarity function
    • FIXED_PROFILE_SERIALIZATION

      public static final EsqlCapabilities.Cap FIXED_PROFILE_SERIALIZATION
      Fixed some profile serialization issues
    • LOOKUP_JOIN_ON_MULTIPLE_FIELDS

      public static final EsqlCapabilities.Cap LOOKUP_JOIN_ON_MULTIPLE_FIELDS
      Support for lookup join on multiple fields.
    • DOT_PRODUCT_VECTOR_SIMILARITY_FUNCTION

      public static final EsqlCapabilities.Cap DOT_PRODUCT_VECTOR_SIMILARITY_FUNCTION
      Dot product vector similarity function
    • L1_NORM_VECTOR_SIMILARITY_FUNCTION

      public static final EsqlCapabilities.Cap L1_NORM_VECTOR_SIMILARITY_FUNCTION
      l1 norm vector similarity function
    • L2_NORM_VECTOR_SIMILARITY_FUNCTION

      public static final EsqlCapabilities.Cap L2_NORM_VECTOR_SIMILARITY_FUNCTION
      l2 norm vector similarity function
    • CATEGORIZE_OPTIONS

      public static final EsqlCapabilities.Cap CATEGORIZE_OPTIONS
      Support for the options field of CATEGORIZE.
    • DECAY_FUNCTION

      public static final EsqlCapabilities.Cap DECAY_FUNCTION
      Decay function for custom scoring.
    • DECAY_FUNCTION_PARAMETER_CONVERSION

      public static final EsqlCapabilities.Cap DECAY_FUNCTION_PARAMETER_CONVERSION
      Fix conversions for parameters for DECAY.
    • DECAY_FUNCTION_UNSIGNED_LONG

      public static final EsqlCapabilities.Cap DECAY_FUNCTION_UNSIGNED_LONG
      Support DECAY with unsigned_long parameters for DECAY.
    • DECAY_GEO_POINT_ORIGIN_LAT_LON_FIX

      public static final EsqlCapabilities.Cap DECAY_GEO_POINT_ORIGIN_LAT_LON_FIX
      Fix latitude/longitude ordering of the in geo-point DECAY. Previously the origin was serialized as "lon,lat" before being parsed by GeoUtils.parseGeoPoint, which expects "lat,lon", effectively swapping the origin's coordinates and producing incorrect distances whenever lat != lon.
    • CORRECT_SKIPPED_SHARDS_COUNT

      public static final EsqlCapabilities.Cap CORRECT_SKIPPED_SHARDS_COUNT
      Support correct counting of skipped shards.
    • MAGNITUDE_SCALAR_VECTOR_FUNCTION

      public static final EsqlCapabilities.Cap MAGNITUDE_SCALAR_VECTOR_FUNCTION
    • DENSE_VECTOR_FIELD_TYPE_BYTE_ELEMENTS

      public static final EsqlCapabilities.Cap DENSE_VECTOR_FIELD_TYPE_BYTE_ELEMENTS
      Byte elements dense vector field type support.
    • DENSE_VECTOR_FIELD_TYPE_BIT_ELEMENTS

      public static final EsqlCapabilities.Cap DENSE_VECTOR_FIELD_TYPE_BIT_ELEMENTS
      Bit elements dense vector field type support.
    • GENERIC_VECTOR_FORMAT

      public static final EsqlCapabilities.Cap GENERIC_VECTOR_FORMAT
      Support directIO rescoring and `bfloat16` for `bbq_hnsw` and `bbq_disk`, and `bfloat16` for `hnsw` ans `bbq_flat` index types.
    • VECTOR_SIMILARITY_FUNCTIONS_SUPPORT_NULL

      public static final EsqlCapabilities.Cap VECTOR_SIMILARITY_FUNCTIONS_SUPPORT_NULL
      Support null elements on vector similarity functions
    • HAMMING_VECTOR_SIMILARITY_FUNCTION

      public static final EsqlCapabilities.Cap HAMMING_VECTOR_SIMILARITY_FUNCTION
      Support for vector Hamming distance.
    • TBUCKET

      public static final EsqlCapabilities.Cap TBUCKET
      Support for tbucket function
    • TSTEP

      public static final EsqlCapabilities.Cap TSTEP
      Support for tstep function
    • TSTEP_EXPLICIT_BOUNDS

      public static final EsqlCapabilities.Cap TSTEP_EXPLICIT_BOUNDS
      Support for tstep explicit bounds variant: TSTEP(step, from, to)
    • TSTEP_BUCKET_COUNT

      public static final EsqlCapabilities.Cap TSTEP_BUCKET_COUNT
      Support for tstep bucket count variant: TSTEP(count, from, to)
    • FIX_TSTEP_BUCKET_ROUNDING

      public static final EsqlCapabilities.Cap FIX_TSTEP_BUCKET_ROUNDING
      Support lower-open upper-closed boundaries (*;*] in addition to lower-closed upper-open [*;*)
    • FIX_TSTEP_WINDOW_FILTER_ROUNDING

      public static final EsqlCapabilities.Cap FIX_TSTEP_WINDOW_FILTER_ROUNDING
      Fix windowed over-time/rate aggregations whose window is smaller than the time bucket when the bucket is end-labeled (right-closed), as produced by TSTEP and PromQL range queries. Previously such queries returned empty results because the per-sample window filter looked one bucket past the correct boundary.
    • NAME_QUALIFIERS

      public static final EsqlCapabilities.Cap NAME_QUALIFIERS
      Allow qualifiers in attribute names.
    • URL_ENCODE

      public static final EsqlCapabilities.Cap URL_ENCODE
      URL encoding function.
    • URL_ENCODE_COMPONENT

      public static final EsqlCapabilities.Cap URL_ENCODE_COMPONENT
      URL component encoding function.
    • URL_DECODE

      public static final EsqlCapabilities.Cap URL_DECODE
      URL decoding function.
    • LOOKUP_JOIN_ON_BOOLEAN_EXPRESSION

      public static final EsqlCapabilities.Cap LOOKUP_JOIN_ON_BOOLEAN_EXPRESSION
      Allow lookup join on boolean expressions
    • LOOKUP_JOIN_WITH_FULL_TEXT_FUNCTION

      public static final EsqlCapabilities.Cap LOOKUP_JOIN_WITH_FULL_TEXT_FUNCTION
      Lookup join with Full Text Function or other Lucene Pushable condition to be applied to the lookup index used
    • LOOKUP_JOIN_WITH_FULL_TEXT_FUNCTION_BUGFIX

      public static final EsqlCapabilities.Cap LOOKUP_JOIN_WITH_FULL_TEXT_FUNCTION_BUGFIX
      Bugfix for lookup join with Full Text Function
    • ENABLE_FORK_FOR_REMOTE_INDICES_V2

      public static final EsqlCapabilities.Cap ENABLE_FORK_FOR_REMOTE_INDICES_V2
      FORK with remote indices
    • STATS_WITH_FILTERED_SURROGATE_FIXED

      public static final EsqlCapabilities.Cap STATS_WITH_FILTERED_SURROGATE_FIXED
      Bugfix for STATS {{expression}} WHERE {{condition}} when the expression is replaced by something else on planning e.g. STATS SUM(1) WHERE x==3 is replaced by STATS MV_SUM(const)*COUNT(*) WHERE x == 3.
    • TO_DENSE_VECTOR_FUNCTION

      public static final EsqlCapabilities.Cap TO_DENSE_VECTOR_FUNCTION
      TO_DENSE_VECTOR function.
    • COALESCE_DENSE_VECTOR

      public static final EsqlCapabilities.Cap COALESCE_DENSE_VECTOR
      COALESCE function support for dense_vector type.
    • QUERY_PARAMS_MULTI_VALUES

      public static final EsqlCapabilities.Cap QUERY_PARAMS_MULTI_VALUES
      Multivalued query parameters
    • FIX_PERCENTILE_PRECISION

      public static final EsqlCapabilities.Cap FIX_PERCENTILE_PRECISION
    • INLINE_STATS_SUPPORTS_REMOTE

      public static final EsqlCapabilities.Cap INLINE_STATS_SUPPORTS_REMOTE
      INLINE STATS supports remote indices
    • INLINE_STATS_WITH_UNION_TYPES_IN_STUB_RELATION

      public static final EsqlCapabilities.Cap INLINE_STATS_WITH_UNION_TYPES_IN_STUB_RELATION
    • TS_COMMAND_V0

      public static final EsqlCapabilities.Cap TS_COMMAND_V0
      Support TS command in non-snapshot builds
    • TS_RENAME_TIMESTAMP_ERROR_MESSAGE

      public static final EsqlCapabilities.Cap TS_RENAME_TIMESTAMP_ERROR_MESSAGE
      Custom error for renamed timestamp
    • FIRST_LAST_OVER_TIME_COUNTER_SUPPORT

      public static final EsqlCapabilities.Cap FIRST_LAST_OVER_TIME_COUNTER_SUPPORT
      Add support for counter doubles, ints, and longs in first_ and last_over_time
    • FIX_ALIAS_ID_WHEN_DROP_ALL_AGGREGATES

      public static final EsqlCapabilities.Cap FIX_ALIAS_ID_WHEN_DROP_ALL_AGGREGATES
    • PERCENTILE_OVER_TIME

      public static final EsqlCapabilities.Cap PERCENTILE_OVER_TIME
      Percentile over time and other ts-aggregations
    • VARIANCE_STDDEV_OVER_TIME

      public static final EsqlCapabilities.Cap VARIANCE_STDDEV_OVER_TIME
    • TS_LINREG_DERIVATIVE

      public static final EsqlCapabilities.Cap TS_LINREG_DERIVATIVE
    • TS_RATE_DATENANOS

      public static final EsqlCapabilities.Cap TS_RATE_DATENANOS
    • TS_RATE_DATENANOS_2

      public static final EsqlCapabilities.Cap TS_RATE_DATENANOS_2
    • TS_DERIV_DATENANOS

      public static final EsqlCapabilities.Cap TS_DERIV_DATENANOS
    • RATE_WITH_INTERPOLATION

      public static final EsqlCapabilities.Cap RATE_WITH_INTERPOLATION
      Rate and increase calculations use interpolation at the boundaries between time buckets
    • RATE_WITH_INTERPOLATION_V2

      public static final EsqlCapabilities.Cap RATE_WITH_INTERPOLATION_V2
    • RATE_WITH_INTERPOLATION_V3

      public static final EsqlCapabilities.Cap RATE_WITH_INTERPOLATION_V3
      V3 fixes a bug on how we handle single-value time buckets for INCREASE with the sole value falling onto the bucket boundary.
    • INLINE_STATS_FIX_PRUNING_NULL_FILTER

      public static final EsqlCapabilities.Cap INLINE_STATS_FIX_PRUNING_NULL_FILTER
      INLINE STATS fix incorrect prunning of null filtering https://github.com/elastic/elasticsearch/pull/135011
    • INLINE_STATS_FIX_OPTIMIZED_AS_LOCAL_RELATION

      public static final EsqlCapabilities.Cap INLINE_STATS_FIX_OPTIMIZED_AS_LOCAL_RELATION
    • DENSE_VECTOR_AGG_METRIC_DOUBLE_IF_FNS

      public static final EsqlCapabilities.Cap DENSE_VECTOR_AGG_METRIC_DOUBLE_IF_FNS
    • DENSE_VECTOR_AGG_METRIC_DOUBLE_IF_VERSION

      public static final EsqlCapabilities.Cap DENSE_VECTOR_AGG_METRIC_DOUBLE_IF_VERSION
    • FUSE_L2_NORM

      public static final EsqlCapabilities.Cap FUSE_L2_NORM
      FUSE L2_NORM score normalization support
    • METADATA_TSID_FIELD

      public static final EsqlCapabilities.Cap METADATA_TSID_FIELD
      Support for requesting the "_tsid" metadata field.
    • TS_PERMIT_TEXT_BECOMING_KEYWORD_WHEN_GROUPED_ON

      public static final EsqlCapabilities.Cap TS_PERMIT_TEXT_BECOMING_KEYWORD_WHEN_GROUPED_ON
      Permit the data type of a field changing from TEXT to KEYWORD when being grouped on in aggregations on the TS command.
    • TS_ORIGINAL_TYPES_BUG_FIXED

      public static final EsqlCapabilities.Cap TS_ORIGINAL_TYPES_BUG_FIXED
      Fix for a bug where if you queried multiple TS indices with a field mapped to different types, the original types/suggested cast sections of the return result would be empty.
    • FIX_NO_COLUMNS

      public static final EsqlCapabilities.Cap FIX_NO_COLUMNS
      Fix management of plans with no columns https://github.com/elastic/elasticsearch/issues/120272
    • FIX_LIMIT_TRUNCATION_WITH_ZERO_COLUMNS

      public static final EsqlCapabilities.Cap FIX_LIMIT_TRUNCATION_WITH_ZERO_COLUMNS
      Fix LimitOperator truncation with zero columns https://github.com/elastic/elasticsearch/issues/142473
    • DOTS_IN_FUSE

      public static final EsqlCapabilities.Cap DOTS_IN_FUSE
      Support for dots in FUSE attributes
    • DATE_RANGE_FIELD_TYPE_V6

      public static final EsqlCapabilities.Cap DATE_RANGE_FIELD_TYPE_V6
      Support for the DATE_RANGE field type, RANGE_WITHIN, TO_DATE_RANGE(string), RANGE_MIN, RANGE_MAX. TO_DATE_RANGE(string) honors the query timezone (Configuration); malformed input produces a warning + null. RANGE_MIN/MAX/WITHIN/INTERSECTS return null when any argument is multi-valued (consistent with ES|QL null-for-MV semantics). The Lucene pushdown uses RECHECK so the row-level evaluator rechecks each candidate and returns null for multi-valued positions, which FilterOperator treats as false.
    • NETWORK_DIRECTION

      public static final EsqlCapabilities.Cap NETWORK_DIRECTION
      Network direction function.
    • TEMPORAL_AMOUNT_M

      public static final EsqlCapabilities.Cap TEMPORAL_AMOUNT_M
      Support for the literal m suffix as an alias for minute in temporal amounts.
    • PACK_DIMENSIONS_IN_TS

      public static final EsqlCapabilities.Cap PACK_DIMENSIONS_IN_TS
      Pack dimension values in TS command
    • EXPONENTIAL_HISTOGRAM_TECH_PREVIEW

      public static final EsqlCapabilities.Cap EXPONENTIAL_HISTOGRAM_TECH_PREVIEW
      Support for exponential_histogram fields in the state of when it first was released into tech preview.
    • TDIGEST_TECH_PREVIEW

      public static final EsqlCapabilities.Cap TDIGEST_TECH_PREVIEW
      Support for the T-Digest elasticsearch field mapper and ES|QL type when they were released into tech preview.
    • CASE_SUPPORT_FOR_SUMMARY_FIELDS

      public static final EsqlCapabilities.Cap CASE_SUPPORT_FOR_SUMMARY_FIELDS
      Adds the ability for the Case to return values of type TDIGEST, type HISTOGRAM, and type AGGREGATE_METRIC_DOUBLE.
    • HISTOGRAM_RELEASE_VERSION

      public static final EsqlCapabilities.Cap HISTOGRAM_RELEASE_VERSION
      Histogram field integration
    • COUNT_OF_HISTOGRAM_TYPES

      public static final EsqlCapabilities.Cap COUNT_OF_HISTOGRAM_TYPES
      Support for running the Count aggregation on t-digest and exponential histogram types
    • ALLOW_CASTING_IN_DEFAULT_TS_AGGS

      public static final EsqlCapabilities.Cap ALLOW_CASTING_IN_DEFAULT_TS_AGGS
      Fix for 140670, this allows for type conversion functions with no further computation to be evaluated inside default wrapping _over_time functions.
    • FIX_FILTER_ORDINALS

      public static final EsqlCapabilities.Cap FIX_FILTER_ORDINALS
      Create new block when filtering OrdinalBytesRefBlock
    • GLOBAL_TIMEZONE_PARAMETER_WITH_OUTPUT

      public static final EsqlCapabilities.Cap GLOBAL_TIMEZONE_PARAMETER_WITH_OUTPUT
      "time_zone" parameter in request body and in SET time_zone="x".

      Originally `GLOBAL_TIMEZONE_PARAMETER`, but changed to "_WITH_OUTPUT" so tests don't fail after formatting the _query output.

    • QUERY_SETTINGS_REQUEST_BODY

      public static final EsqlCapabilities.Cap QUERY_SETTINGS_REQUEST_BODY
      Top-level settings object on the _query request body, mirroring in-query SET keys.
    • DATE_PARSE_OPTIONS

      public static final EsqlCapabilities.Cap DATE_PARSE_OPTIONS
      Optional options argument for DATE_PARSE
    • GROK_MULTI_PATTERN

      public static final EsqlCapabilities.Cap GROK_MULTI_PATTERN
      Allow multiple patterns for GROK command
    • INLINE_STATS_PRUNE_COLUMN_FIX

      public static final EsqlCapabilities.Cap INLINE_STATS_PRUNE_COLUMN_FIX
      Fix pruning of columns when shadowed in INLINE STATS
    • INLINE_STATS_DOUBLE_RELEASE_FIX

      public static final EsqlCapabilities.Cap INLINE_STATS_DOUBLE_RELEASE_FIX
      Fix double release in inline stats when LocalRelation is reused
    • PUSHING_DOWN_EVAL_WITH_SCORE

      public static final EsqlCapabilities.Cap PUSHING_DOWN_EVAL_WITH_SCORE
      Support for pushing down EVAL with SCORE https://github.com/elastic/elasticsearch/issues/133462
    • FIX_STATS_CLASSCAST_EXCEPTION

      public static final EsqlCapabilities.Cap FIX_STATS_CLASSCAST_EXCEPTION
      Fix for ClassCastException in STATS https://github.com/elastic/elasticsearch/issues/133992 https://github.com/elastic/elasticsearch/issues/136598
    • ATTRIBUTE_EQUALS_RESPECTS_NAME_ID

      public static final EsqlCapabilities.Cap ATTRIBUTE_EQUALS_RESPECTS_NAME_ID
      Fix attribute equality to respect the name id of the attribute.
    • LOOKUP_JOIN_SEMANTIC_FILTER_DEDUP

      public static final EsqlCapabilities.Cap LOOKUP_JOIN_SEMANTIC_FILTER_DEDUP
      Fix for lookup join filter pushdown not using semantic equality. This prevents duplicate filters from being pushed down when they are semantically equivalent, causing an infinite loop where BooleanSimplification will simplify the original and duplicate filters, so they'll be pushed down again...
    • LOOKUP_JOIN_SORT_WARNING

      public static final EsqlCapabilities.Cap LOOKUP_JOIN_SORT_WARNING
      Warning when SORT is followed by LOOKUP JOIN which does not preserve order.
    • FORBID_LIMIT_BEFORE_INLINE_STATS

      public static final EsqlCapabilities.Cap FORBID_LIMIT_BEFORE_INLINE_STATS
      Temporarily forbid the use of an explicit or implicit LIMIT before INLINE STATS.
    • HANDLE_DETERMINIZATION_COMPLEXITY

      public static final EsqlCapabilities.Cap HANDLE_DETERMINIZATION_COMPLEXITY
      Catch-and-rethrow determinization complexity errors as 400s rather than 500s
    • INLINE_STATS_WITH_NO_COLUMNS

      public static final EsqlCapabilities.Cap INLINE_STATS_WITH_NO_COLUMNS
      https://github.com/elastic/elasticsearch/issues/136851
    • FIX_MV_CONSTANT_EQUALS_FIELD

      public static final EsqlCapabilities.Cap FIX_MV_CONSTANT_EQUALS_FIELD
    • BASE_CONVERSION

      public static final EsqlCapabilities.Cap BASE_CONVERSION
      Support for base conversion in TO_LONG and TO_INTEGER
    • FIX_REPLACE_ALIASING_EVAL_WITH_PROJECT_SHADOWING

      public static final EsqlCapabilities.Cap FIX_REPLACE_ALIASING_EVAL_WITH_PROJECT_SHADOWING
      ReplaceAliasingEvalWithProject did not fully account for shadowing. https://github.com/elastic/elasticsearch/issues/137019.
    • CHUNK_FUNCTION_V2

      public static final EsqlCapabilities.Cap CHUNK_FUNCTION_V2
      Chunk function.
    • VECTOR_SIMILARITY_FUNCTIONS_PUSHDOWN

      public static final EsqlCapabilities.Cap VECTOR_SIMILARITY_FUNCTIONS_PUSHDOWN
      Support for vector similarity functions pushdown
    • FIX_MV_CONSTANT_COMPARISON_FIELD

      public static final EsqlCapabilities.Cap FIX_MV_CONSTANT_COMPARISON_FIELD
    • FULL_TEXT_FUNCTIONS_ACCEPT_NULL_FIELD

      public static final EsqlCapabilities.Cap FULL_TEXT_FUNCTIONS_ACCEPT_NULL_FIELD
    • FIRST_AGG_WITH_NULL_AND_MV_SUPPORT

      public static final EsqlCapabilities.Cap FIRST_AGG_WITH_NULL_AND_MV_SUPPORT
      Make FIRST agg work with null and multi-value fields.
    • LAST_AGG_WITH_NULL_AND_MV_SUPPORT

      public static final EsqlCapabilities.Cap LAST_AGG_WITH_NULL_AND_MV_SUPPORT
      Make LAST agg work with null and multi-value fields.
    • FIRST_LAST_AGG_WITH_DATES

      public static final EsqlCapabilities.Cap FIRST_LAST_AGG_WITH_DATES
      Allow FIRST/LAST aggs to accept DATE/DATE_NANOS in the search field https://github.com/elastic/elasticsearch/issues/142137
    • ST_EXTENT_AGG_NULL_SUPPORT

      public static final EsqlCapabilities.Cap ST_EXTENT_AGG_NULL_SUPPORT
      Allow ST_EXTENT_AGG to gracefully handle missing spatial shapes
    • TIME_SERIES_WINDOW_V1

      public static final EsqlCapabilities.Cap TIME_SERIES_WINDOW_V1
      Support grouping window in time-series for example: rate(counter, "1m") or avg_over_time(field, "5m")
    • TIME_SERIES_WINDOW_SMALLER_THAN_BUCKET

      public static final EsqlCapabilities.Cap TIME_SERIES_WINDOW_SMALLER_THAN_BUCKET
      Supporting grouping window in time-series where the window is smaller than the time bucket
    • FIX_TIME_SERIES_WINDOW_BACKWARD

      public static final EsqlCapabilities.Cap FIX_TIME_SERIES_WINDOW_BACKWARD
      TS window functions use backward window semantics only.
    • FIX_PROMQL_TIME_BUCKET_V2

      public static final EsqlCapabilities.Cap FIX_PROMQL_TIME_BUCKET_V2
      PromQL uses TSTEP instead of TBUCKET, with corrected open-ended range query bounds.
    • FIX_PROMQL_ROUND_TO_NEAREST

      public static final EsqlCapabilities.Cap FIX_PROMQL_ROUND_TO_NEAREST
      PromQL round(v, to_nearest) uses the Prometheus formula, fixing wrong rounding and floating point junk from dividing by small to_nearest values.
    • FIX_PROMQL_TIME_BUCKET_V3

      public static final EsqlCapabilities.Cap FIX_PROMQL_TIME_BUCKET_V3
      Extended time-bucket fix covering scalar float-division step-timestamp alignment. Disabled until the serverless-side fix for the one-hour timestamp offset is deployed. https://github.com/elastic/elasticsearch-serverless/issues/6817
    • LIKE_PARAMETER_SUPPORT

      public static final EsqlCapabilities.Cap LIKE_PARAMETER_SUPPORT
      Support like/rlike parameters https://github.com/elastic/elasticsearch/issues/131356
    • PROMQL_COMMAND_V0

      public static final EsqlCapabilities.Cap PROMQL_COMMAND_V0
      PromQL support in ESQL, in the state it was when first available in non-snapshot builds.
    • PROMQL_MATH_V0

      public static final EsqlCapabilities.Cap PROMQL_MATH_V0
      Bundle flag for PromQL math functions.
    • ACOSH_FUNCTION

      public static final EsqlCapabilities.Cap ACOSH_FUNCTION
      Support for the ACOSH function.
    • ASINH_FUNCTION

      public static final EsqlCapabilities.Cap ASINH_FUNCTION
      Support for the ASINH function.
    • ATANH_FUNCTION

      public static final EsqlCapabilities.Cap ATANH_FUNCTION
      Support for the ATANH function.
    • PROMQL_BINARY_COMPARISON_V0

      public static final EsqlCapabilities.Cap PROMQL_BINARY_COMPARISON_V0
      Initial support for simple binary comparisons in PromQL. Only top-level comparisons are supported where the right-hand side is a scalar.
    • PROMQL_TIME

      public static final EsqlCapabilities.Cap PROMQL_TIME
      Support for PromQL time() function.
    • PROMQL_INSTANT_QUERY

      public static final EsqlCapabilities.Cap PROMQL_INSTANT_QUERY
      Support for PromQL instant queries.
    • ESQL_DATE_UNIT_COUNT_FN

      public static final EsqlCapabilities.Cap ESQL_DATE_UNIT_COUNT_FN
      Support for the DATE_UNIT_COUNT function.
    • PROMQL_BUCKETS_PARAMETER

      public static final EsqlCapabilities.Cap PROMQL_BUCKETS_PARAMETER
      Support for deriving PromQL time buckets from [start, end, buckets] when [step] is omitted.
    • PROMQL_UNMAPPED_FIELDS_FILTER_NULLS

      public static final EsqlCapabilities.Cap PROMQL_UNMAPPED_FIELDS_FILTER_NULLS
      Queries for unmapped fields return no data instead of an error. Also filters out nulls from results.
    • PROMQL_NESTED_AGGREGATES

      public static final EsqlCapabilities.Cap PROMQL_NESTED_AGGREGATES
      Support for nested across-series aggregates in PromQL. E.g., avg(sum by (cluster) (rate(foo[5m])))
    • PROMQL_POST_PROCESSING_STATS

      public static final EsqlCapabilities.Cap PROMQL_POST_PROCESSING_STATS
      Support post-processing STATS commands after PROMQL source commands.
    • PROMQL_SCALAR

      public static final EsqlCapabilities.Cap PROMQL_SCALAR
      PromQL scalar() function support.
    • PROMQL_IMPLICIT_RANGE_SELECTOR

      public static final EsqlCapabilities.Cap PROMQL_IMPLICIT_RANGE_SELECTOR
      Support implicit conversion from an instant selector to a range selector for range-vector functions. For example, `rate(metric)` is interpreted as `rate(metric[step])`.
    • PROMQL_IMPLICIT_TYPE_COERCION

      public static final EsqlCapabilities.Cap PROMQL_IMPLICIT_TYPE_COERCION
      PromQL functions accept any numeric range vector. ES|QL translates mismatched counter/gauge types with implicit to_counter() or to_gauge() wraps based on each function's PromqlFunctionDefinition.CounterSupport.
    • PROMQL_WITHOUT_GROUPING

      public static final EsqlCapabilities.Cap PROMQL_WITHOUT_GROUPING
      Support for PromQL without grouping.
    • FIX_PROMQL_WITHOUT_OUTPUT

      public static final EsqlCapabilities.Cap FIX_PROMQL_WITHOUT_OUTPUT
      Corrected output shape for PromQL without: a without over a concrete-output child (e.g. sum without(pod) (sum by(cluster,region,pod) (...))) projects the child's concrete grouping columns minus the excluded labels, rather than the opaque _timeseries column. Gates the affected csv-spec tests so mixed-version clusters skip them on older nodes that still emit _timeseries.
    • PROMQL_ABSENT_LABEL_MATCHING

      public static final EsqlCapabilities.Cap PROMQL_ABSENT_LABEL_MATCHING
      PromQL label matchers that accept the empty string (e.g. {label=""} or {label!="foo"}) also match time series where the label is absent (NULL), per PromQL spec.
    • PROMQL_OFFSET_MODIFIER

      public static final EsqlCapabilities.Cap PROMQL_OFFSET_MODIFIER
      Support for the PromQL offset modifier, implemented as a constant time shift of the evaluation timestamp. Heterogeneous offsets within a single source-backed binary operator remain unsupported.
    • TS_COLLAPSE

      public static final EsqlCapabilities.Cap TS_COLLAPSE
      Support for the TS_COLLAPSE pipe command, which collapses PromQL results into one multi-valued row per series.
    • ESQL_WITHOUT_GROUPING

      public static final EsqlCapabilities.Cap ESQL_WITHOUT_GROUPING
      Support for `WITHOUT` grouping function that excludes specific dimensions from time-series grouping.
    • KNN_FUNCTION_OPTIONS_K_VISIT_PERCENTAGE

      public static final EsqlCapabilities.Cap KNN_FUNCTION_OPTIONS_K_VISIT_PERCENTAGE
      KNN function adds support for k and visit_percentage options
    • METRICS_GROUP_BY_ALL_WITH_TS_DIMENSIONS

      public static final EsqlCapabilities.Cap METRICS_GROUP_BY_ALL_WITH_TS_DIMENSIONS
      Enables automatically grouping by all dimension fields in TS mode queries and outputs the _timeseries column with all the dimensions.
    • FIX_ENRICH_ALIAS_CYCLE_IN_DEDUPLICATE_AGGS

      public static final EsqlCapabilities.Cap FIX_ENRICH_ALIAS_CYCLE_IN_DEDUPLICATE_AGGS
      Fix for circular reference in alias chains during PushDownEnrich and aggregate deduplication. Prevents "Potential cycle detected" errors when aliases reference each other. https://github.com/elastic/elasticsearch/issues/138346
    • TOP_SNIPPETS_FUNCTION

      public static final EsqlCapabilities.Cap TOP_SNIPPETS_FUNCTION
      Returns the top snippets for given text content and associated query.
    • TOP_SNIPPETS_FUNCTION_STRING_CONFIG

      public static final EsqlCapabilities.Cap TOP_SNIPPETS_FUNCTION_STRING_CONFIG
      A fix allowing the TOP_SNIPPETS function to process string config parameters like the other functions.
    • TOP_SNIPPETS_MV

      public static final EsqlCapabilities.Cap TOP_SNIPPETS_MV
      Does TOP_SNIPPETS process all field values?
    • FIX_STATS_MV_CONSTANT_FOLD

      public static final EsqlCapabilities.Cap FIX_STATS_MV_CONSTANT_FOLD
      Fix for multi-value constant propagation after GROUP BY. When a multi-value constant (e.g., [1, 2]) is used as GROUP BY key, the aggregation explodes it into single values. Propagating the original multi-value literal after the Aggregate would incorrectly treat the field as still being multi-valued. https://github.com/elastic/elasticsearch/issues/135926
    • FIX_INLINE_STATS_INCORRECT_PRUNNING

      public static final EsqlCapabilities.Cap FIX_INLINE_STATS_INCORRECT_PRUNNING
      https://github.com/elastic/elasticsearch/issues/138283
    • FIX_PRESENT_AND_ABSENT_ON_STATS_WITH_FALSE_FILTER

      public static final EsqlCapabilities.Cap FIX_PRESENT_AND_ABSENT_ON_STATS_WITH_FALSE_FILTER
      ReplaceStatsFilteredOrNullAggWithEval replaced a stats with false filter with null with Present or Absent
    • ENABLE_REDUCE_NODE_LATE_MATERIALIZATION

      public static final EsqlCapabilities.Cap ENABLE_REDUCE_NODE_LATE_MATERIALIZATION
      Enables late materialization on node reduce. See also QueryPragmas.NODE_LEVEL_REDUCTION
    • FIX_VALUES_READER_STALE_ROW_STRIDE_READER

      public static final EsqlCapabilities.Cap FIX_VALUES_READER_STALE_ROW_STRIDE_READER
      Fix stale row-stride reader state when a conditional block loader uses column-at-a-time loading after row-stride loading across segments.
    • FIX_AGG_ON_NULL_BY_REPLACING_WITH_EVAL

      public static final EsqlCapabilities.Cap FIX_AGG_ON_NULL_BY_REPLACING_WITH_EVAL
      ReplaceStatsFilteredOrNullAggWithEval now replaces an AggregateFunction with null value with an Eval. https://github.com/elastic/elasticsearch/issues/137544
    • FIX_SUM_AGG_LONG_OVERFLOW

      public static final EsqlCapabilities.Cap FIX_SUM_AGG_LONG_OVERFLOW
      Makes SUM(long) agg return null+warning instead of a 500 overflow.
    • FIX_AVG_AGG_LONG_OVERFLOW

      public static final EsqlCapabilities.Cap FIX_AVG_AGG_LONG_OVERFLOW
      AVG(long) casts the field to double up-front in its surrogate, so the intermediate sum can no longer overflow. https://github.com/elastic/elasticsearch/issues/99575
    • METADATA_TIER_FIELD

      public static final EsqlCapabilities.Cap METADATA_TIER_FIELD
      Support for requesting the "_tier" metadata field.
    • FIX_FOLD_COALESCE

      public static final EsqlCapabilities.Cap FIX_FOLD_COALESCE
      Fix folding of coalesce function https://github.com/elastic/elasticsearch/issues/139344
    • DATE_TIME_EXCEPTIONS_HANDLED

      public static final EsqlCapabilities.Cap DATE_TIME_EXCEPTIONS_HANDLED
      Exceptions parsing date-times are thrown as IllegalArgumentException
    • ENRICH_DENSE_VECTOR_BUGFIX

      public static final EsqlCapabilities.Cap ENRICH_DENSE_VECTOR_BUGFIX
      Enrich works with dense_vector fields
    • DENSE_VECTOR_ARITHMETIC

      public static final EsqlCapabilities.Cap DENSE_VECTOR_ARITHMETIC
      Support for dense_vector arithmetic operations (+, -, *, /)
    • DENSE_VECTOR_SCALAR_ARITHMETIC

      public static final EsqlCapabilities.Cap DENSE_VECTOR_SCALAR_ARITHMETIC
      Support for arithmetic operations (+, -, *, /) between dense_vector and scalar values
    • DENSE_VECTOR_AGG_FUNCTIONS

      public static final EsqlCapabilities.Cap DENSE_VECTOR_AGG_FUNCTIONS
      Dense_vector aggregation functions
    • ROUTING_FUNCTION_UPDATE

      public static final EsqlCapabilities.Cap ROUTING_FUNCTION_UPDATE
      Marks the move to the hash(doc) % shard_count routing function. Added in #137062.
    • TS_STATS_BINARY_OPS

      public static final EsqlCapabilities.Cap TS_STATS_BINARY_OPS
      Adds support for binary operations (such as addition, subtraction, etc.) to the TS|STATS command.
    • FIX_INLINE_STATS_GROUP_BY_NULL

      public static final EsqlCapabilities.Cap FIX_INLINE_STATS_GROUP_BY_NULL
      Fix for INLINE STATS GROUP BY null being incorrectly pruned by PruneLeftJoinOnNullMatchingField. For INLINE STATS, the right side of the join can be Aggregate or LocalRelation (when optimized). The join key is always the grouping, and since STATS supports GROUP BY null, pruning the join when the join key (grouping) is null would incorrectly change the query results. This fix ensures PruneLeftJoinOnNullMatchingField only applies to LOOKUP JOIN (where right side is EsRelation). https://github.com/elastic/elasticsearch/issues/139887
    • FIX_NULL_COMPARISON_TYPE_CHECK

      public static final EsqlCapabilities.Cap FIX_NULL_COMPARISON_TYPE_CHECK
      Fix null comparison type check in binary comparisons. Null should be compatible with any type in binary comparisons. https://github.com/elastic/elasticsearch/issues/140460
    • CONDITIONAL_BLOCK_LOADER_FOR_TEXT_FIELDS

      public static final EsqlCapabilities.Cap CONDITIONAL_BLOCK_LOADER_FOR_TEXT_FIELDS
      Adds a conditional block loader for text fields that prefers using the sub-keyword field whenever possible.
    • METADATA_WILDCARDS

      public static final EsqlCapabilities.Cap METADATA_WILDCARDS
      Allow wildcards in FROM METADATA, eg FROM idx METADATA _ind*
    • RATE_FIX_RESETS_MULTIPLE_SEGMENTS

      public static final EsqlCapabilities.Cap RATE_FIX_RESETS_MULTIPLE_SEGMENTS
      Fixes reset calculation in rates where partitioning data into multiple slices can lead to incorrect results.
    • APPROXIMATION_V7

      public static final EsqlCapabilities.Cap APPROXIMATION_V7
      Support query approximation.
    • FIX_SCORE_OPERATOR_PLANNING

      public static final EsqlCapabilities.Cap FIX_SCORE_OPERATOR_PLANNING
      Create a ScoreOperator only when shard contexts are available
    • PERIODIC_EMIT_PARTIAL_AGGREGATION_RESULTS

      public static final EsqlCapabilities.Cap PERIODIC_EMIT_PARTIAL_AGGREGATION_RESULTS
      Periodically emit partial aggregation results when the number of groups exceeds the threshold.
    • METADATA_SIZE_FIELD

      public static final EsqlCapabilities.Cap METADATA_SIZE_FIELD
      Support for requesting the "_size" metadata field when the mapper-size plugin is enabled.
    • FIX_TO_IP_LEADING_ZEROS_OCTAL

      public static final EsqlCapabilities.Cap FIX_TO_IP_LEADING_ZEROS_OCTAL
      Fix for 141627, TO_IP with leading_zeros=octal generates proper warning and returns null when given invalid input.
    • TDIGEST_TIME_SERIES_METRIC

      public static final EsqlCapabilities.Cap TDIGEST_TIME_SERIES_METRIC
      Support for configuring T-Digest elasticsearch field as a time series metric.
    • TO_EXPONENTIAL_HISTOGRAM

      public static final EsqlCapabilities.Cap TO_EXPONENTIAL_HISTOGRAM
      Support for the TO_EXPONENTIAL_HISTOGRAM conversion function.
    • TO_TDIGEST_FROM_EXPONENTIAL_HISTOGRAM

      public static final EsqlCapabilities.Cap TO_TDIGEST_FROM_EXPONENTIAL_HISTOGRAM
      Support for converting exponential_histogram fields via TO_TDIGEST.
    • TDIGEST_MEDIAN

      public static final EsqlCapabilities.Cap TDIGEST_MEDIAN
      Support for MEDIAN aggregation on tdigest type fields.
    • TDIGEST_FIRST_LAST_OVER_TIME

      public static final EsqlCapabilities.Cap TDIGEST_FIRST_LAST_OVER_TIME
      Support for FIRST_OVER_TIME and LAST_OVER_TIME on tdigest type fields.
    • TDIGEST_PERCENTILES_USE_MERGING_DIGEST

      public static final EsqlCapabilities.Cap TDIGEST_PERCENTILES_USE_MERGING_DIGEST
      A bugfix we applied to the HISTOGRAM_PERCENTILE algorithm on the tdigest type. We previously were using hybrid-digests by accident and now use a merging digest.
    • TS_COMMAND_GROUP_ON_ALIASES

      public static final EsqlCapabilities.Cap TS_COMMAND_GROUP_ON_ALIASES
      Fix bug with TS command where you can't group on aliases (i.e. `by c = cluster`)
    • TS_IMPLICIT_TIMESTAMP_SORT

      public static final EsqlCapabilities.Cap TS_IMPLICIT_TIMESTAMP_SORT
      Implicit SORT @timestamp DESC for TS queries without STATS or explicit SORT.
    • INLINE_STATS_DROP_GROUPINGS_FIX

      public static final EsqlCapabilities.Cap INLINE_STATS_DROP_GROUPINGS_FIX
      Fixes https://github.com/elastic/elasticsearch/issues/139359
    • MMR_V2

      public static final EsqlCapabilities.Cap MMR_V2
      Support for the MMR result diversification command
    • URI_PARTS_COMMAND

      public static final EsqlCapabilities.Cap URI_PARTS_COMMAND
      Supports the URI_PARTS) command.
    • METRICS_INFO_COMMAND

      public static final EsqlCapabilities.Cap METRICS_INFO_COMMAND
      Support for the METRICS_INFO command.
    • TBUCKET_FROM_TO

      public static final EsqlCapabilities.Cap TBUCKET_FROM_TO
      Support for TBUCKET with numeric bucket count and optional from/to parameters.
    • REGISTERED_DOMAIN_COMMAND

      public static final EsqlCapabilities.Cap REGISTERED_DOMAIN_COMMAND
      Supports the REGISTERED_DOMAIN command.
    • STR_COMMANDS_ACCEPT_NULL

      public static final EsqlCapabilities.Cap STR_COMMANDS_ACCEPT_NULL
      The GROK, DISSECT, URI_PARTS, and REGISTERED_DOMAIN commands accept null typed parameters and produce null results.
    • EXTERNAL_COMMAND

      public static final EsqlCapabilities.Cap EXTERNAL_COMMAND
      Support for the EXTERNAL command (datasource access).
    • EXTERNAL_CSV_IP_SUPPORT

      public static final EsqlCapabilities.Cap EXTERNAL_CSV_IP_SUPPORT
      Support for the EXTERNAL command (datasource access).
    • EXTERNAL_CSV_HEADER_ROW_OPTION

      public static final EsqlCapabilities.Cap EXTERNAL_CSV_HEADER_ROW_OPTION
      Support for the header_row (and the related column_prefix) CSV options on the EXTERNAL command, used to read headerless CSV files.
    • EXTERNAL_CSV_DATETIME_FORMAT_ES_DATE_FORMATTER

      public static final EsqlCapabilities.Cap EXTERNAL_CSV_DATETIME_FORMAT_ES_DATE_FORMATTER
      The CSV/TSV file-level datetime_format option compiles to an Elasticsearch DateFormatter rather than a raw JDK DateTimeFormatter: zone offsets are honored, date-only patterns parse, and named formats and a||b composites are accepted.
    • EXTERNAL_SOURCE_READ_SCHEMA

      public static final EsqlCapabilities.Cap EXTERNAL_SOURCE_READ_SCHEMA
      Per-file planner-resolved read schema is threaded down to runtime readers via FileSplit.readSchema(). Pins each file's column layout to the planner's view, preventing reader self-inference that drifts across files in a multi-file glob.
    • EXTERNAL_SOURCE_FILE_METADATA_COLUMNS

      public static final EsqlCapabilities.Cap EXTERNAL_SOURCE_FILE_METADATA_COLUMNS
      Always-on _file.* virtual columns (_file.path, _file.name, _file.directory, _file.size, _file.modified) added to every external-source schema. Older coordinators do not know these columns and fail verification with Unknown column [_file.*] when CCQ routes a query against a remote cluster on a pre-feature build, so fileMetadata* csv-spec tests must be gated on this capability rather than on EXTERNAL_COMMAND.
    • EXTERNAL_SOURCE_STANDARD_METADATA_COLUMNS

      public static final EsqlCapabilities.Cap EXTERNAL_SOURCE_STANDARD_METADATA_COLUMNS
      Standard ES metadata columns (_id, _index, _version, _source, ...) accepted in the METADATA clause of external-dataset FROM. Pre-feature coordinators reject the names with Unknown column; tests exercising these columns gate on this capability.
    • EXTERNAL_SOURCE_NESTED_STRUCT_PROJECTION

      public static final EsqlCapabilities.Cap EXTERNAL_SOURCE_NESTED_STRUCT_PROJECTION
      Support for projecting nested STRUCT subfields (e.g. event.action) from Parquet (Java) and ORC external sources. Gated so format readers that do not yet implement nested support (parquet-rs, csv, ndjson, etc.) skip the csv-spec tests until they catch up.

      Tracks: elastic/esql-planning#435 (this PR) and elastic/esql-planning#320 (correctness gap for Parquet-Java MAP/STRUCT/nested LIST).

    • EXTERNAL_SOURCE_LIST_UNDER_STRUCT

      public static final EsqlCapabilities.Cap EXTERNAL_SOURCE_LIST_UNDER_STRUCT
      Correct decoding of a LIST leaf reached through a STRUCT (e.g. answers.text where answers is struct<text: list<string>>). Such leaves previously bound to no column descriptor and read as all-null on the Parquet (Java) reader; this capability gates the csv-spec tests that assert the multivalues now round-trip. Separate from EXTERNAL_SOURCE_NESTED_STRUCT_PROJECTION so nodes that predate the fix (and other format readers) skip the tests instead of failing them.

      Tracks: elastic/esql-planning#1055 (correctness gap for Parquet-Java list-under-struct).

    • EXTERNAL_UNION_BY_NAME_KEYWORD_FALLBACK

      public static final EsqlCapabilities.Cap EXTERNAL_UNION_BY_NAME_KEYWORD_FALLBACK
      Multi-file external UNION_BY_NAME widens cross-file type disagreements to KEYWORD instead of throwing at planning time. The reconciler emits a warning header per affected column, the per-file ColumnMapping carries a stringification cast, and the reader's output is adapted via SchemaAdaptingIterator. STRICT mode still throws. See esql-planning#794.
    • DATASET_IN_FROM_COMMAND

      public static final EsqlCapabilities.Cap DATASET_IN_FROM_COMMAND
      FROM <dataset> resolved through the same pipeline as FROM <index> (Phase 1: dataset-only patterns).
    • FIX_PRUNE_RENAMED_DERIVED_EXTERNAL_GROUPING

      public static final EsqlCapabilities.Cap FIX_PRUNE_RENAMED_DERIVED_EXTERNAL_GROUPING
      PruneRedundantAggregateGroupings rebuilds a pruned derived external grouping reading the attribute the aggregate actually exposes (e.g. a rename alias) instead of the pre-aggregate attribute it no longer surfaces, fixing the optimized incorrectly due to missing references verification failure that old coordinators in a mixed cluster still hit.
    • EXTERNAL_CSV_EMPTY_STRING_NOT_NULL

      public static final EsqlCapabilities.Cap EXTERNAL_CSV_EMPTY_STRING_NOT_NULL
      A present-but-empty field on a string (KEYWORD/TEXT) column in an external CSV/TSV datasource reads as the empty string "" instead of null. Genuinely missing fields (a row shorter than the schema) and empty fields on non-string columns still read as null. Used to gate the affected external csv-spec tests so they are skipped on mixed clusters where a pre-change node still maps empty string cells to null.
    • DATASOURCE_FILE_READERS_NO_TEXT_TYPE

      public static final EsqlCapabilities.Cap DATASOURCE_FILE_READERS_NO_TEXT_TYPE
      Datasource file plugins (CSV, ORC, Parquet) no longer return TEXT types, only KEYWORD. See #145334. Used to gate the affected external-basic.csv-spec tests so they are skipped on mixed clusters where a pre-change coordinator still maps string typed-schema/Parquet-String/ORC-String to TEXT - see #145352 and #145353.
    • INLINE_STATS_WITH_CONSTANTS

      public static final EsqlCapabilities.Cap INLINE_STATS_WITH_CONSTANTS
      https://github.com/elastic/elasticsearch/issues/142219
    • FIX_AGGREGATION_FRAMEWORK_CHANNELS

      public static final EsqlCapabilities.Cap FIX_AGGREGATION_FRAMEWORK_CHANNELS
      Fix for an ArrayIndexOutOfBoundsException in the aggregation framework when the same field is passed twice. https://github.com/elastic/elasticsearch/issues/142180
    • TS_INFO_COMMAND

      public static final EsqlCapabilities.Cap TS_INFO_COMMAND
      Support for the TS_INFO command — per-time-series granularity variant of METRICS_INFO.
    • DENSE_VECTOR_SUM_FUNCTION

      public static final EsqlCapabilities.Cap DENSE_VECTOR_SUM_FUNCTION
      Dense_vector SUM aggregation function
    • FIX_AGG_FIRST_LAST_FOLDABLES_IN_SORT_FIELD

      public static final EsqlCapabilities.Cap FIX_AGG_FIRST_LAST_FOLDABLES_IN_SORT_FIELD
      Support passing constants and null in the second parameter of FIRST/LAST aggs.
    • ROW_FIELD_RESOLUTION

      public static final EsqlCapabilities.Cap ROW_FIELD_RESOLUTION
      Support for intra-row field references in ROW command. https://github.com/elastic/elasticsearch/issues/140217
    • FIRST_LAST_AGG_ON_INTS

      public static final EsqlCapabilities.Cap FIRST_LAST_AGG_ON_INTS
      Support aggregating on integers in FIRST/LAST.
    • FIX_UNMAPPED_FIELDS_IN_ESRELATION

      public static final EsqlCapabilities.Cap FIX_UNMAPPED_FIELDS_IN_ESRELATION
      Fix for KQL/QSTR functions failing when used with unmapped fields in NULLIFY mode. Unmapped fields are now added directly to EsRelation output with NULL type instead of using Eval nodes. https://github.com/elastic/elasticsearch/issues/142968
    • DENSE_VECTOR_EQUALITY

      public static final EsqlCapabilities.Cap DENSE_VECTOR_EQUALITY
      Support for dense_vector equality and inequality operators (==, !=).
    • FIX_DISPLAYING_TS_DIMENSIONS_IN_METRICS_GROUP_BY_ALL

      public static final EsqlCapabilities.Cap FIX_DISPLAYING_TS_DIMENSIONS_IN_METRICS_GROUP_BY_ALL
      Fix for not including metadata _doc_count in the _timeseries column https://github.com/elastic/elasticsearch/issues/143464
    • MATCH_FUNCTION_ZERO_TERMS_QUERY

      public static final EsqlCapabilities.Cap MATCH_FUNCTION_ZERO_TERMS_QUERY
      Support for the zero_terms_query option in the match function. https://github.com/elastic/elasticsearch/issues/143070
    • FIX_FULL_TEXT_FUNCTIONS_ON_RENAMED_FIELDS

      public static final EsqlCapabilities.Cap FIX_FULL_TEXT_FUNCTIONS_ON_RENAMED_FIELDS
      Fix for full-text functions failing on renamed fields. https://github.com/elastic/elasticsearch/issues/143859
    • TOP_SNIPPETS_FOLDABLE_QUERY_CHECK

      public static final EsqlCapabilities.Cap TOP_SNIPPETS_FOLDABLE_QUERY_CHECK
      TOP_SNIPPETS checks that the query is foldable
    • FIX_FORK_UNMAPPED_NULLIFY

      public static final EsqlCapabilities.Cap FIX_FORK_UNMAPPED_NULLIFY
      Fixes an analysis bug in FORK with unmapped_fields="nullify". Preserve existing attribute NameIds so that references from upper plan nodes remain valid after sub-plans are updated. Only genuinely new attributes get fresh NameIds. Keeping the same attributes can have unintended side effects when applying optimizations like constant folding. https://github.com/elastic/elasticsearch/issues/142762
    • ROUND_TO_BLOCK_LOADER

      public static final EsqlCapabilities.Cap ROUND_TO_BLOCK_LOADER
      Support for pushing the ROUND_TO function into field loading via BlockLoaderExpression.
    • FIX_LIMIT_ZERO_IN_STATS_BY_ALL

      public static final EsqlCapabilities.Cap FIX_LIMIT_ZERO_IN_STATS_BY_ALL
      Fix for the STATS BY ALL with LIMIT 0. https://github.com/elastic/elasticsearch/issues/144024
    • FIX_PASSTHROUGH_FIELD_CAPS_OBJECT_PARENT

      public static final EsqlCapabilities.Cap FIX_PASSTHROUGH_FIELD_CAPS_OBJECT_PARENT
      Fix field caps incorrectly synthesizing object parents under subobjects:false (passthrough) mappers, causing false type conflicts in ES|QL when querying across indices. https://github.com/elastic/elasticsearch/issues/144179
    • TOP_SNIPPETS_HIGHLIGHT

      public static final EsqlCapabilities.Cap TOP_SNIPPETS_HIGHLIGHT
      Support for highlight markup in TOP_SNIPPETS via the highlight option.
    • TOP_SNIPPETS_ORDER

      public static final EsqlCapabilities.Cap TOP_SNIPPETS_ORDER
      Support for the order option in TOP_SNIPPETS.
    • TOP_SNIPPETS_ANALYZER

      public static final EsqlCapabilities.Cap TOP_SNIPPETS_ANALYZER
      Support for the analyzer option on TOP_SNIPPETS: choose a registered analyzer (prebuilt or plugin-contributed) by name, or omit it to default to the standard analyzer.
    • ESQL_LIMIT_BY

      public static final EsqlCapabilities.Cap ESQL_LIMIT_BY
      Enables the feature LIMIT n BY expr1, expr2 for retaining at most n docs per group. The feature will not work if we had SORT | LIMIT n BY
    • ESQL_TOPN_BY

      public static final EsqlCapabilities.Cap ESQL_TOPN_BY
      Enables the SORT | LIMIT n BY expr1, expr2 support, see ESQL_LIMIT_BY for more context
    • LIMIT_BY_ENRICH_FIX

      public static final EsqlCapabilities.Cap LIMIT_BY_ENRICH_FIX
      Corrects a bug with ENRICH when a shard does not contain an index field and we use LIMIT BY on top
    • LIMIT_BY_MV_EXPAND_GROUPING_FIX

      public static final EsqlCapabilities.Cap LIMIT_BY_MV_EXPAND_GROUPING_FIX
      Fix pushdown of LIMIT BY past MV_EXPAND when grouping on expanded fields. See #148513.
    • FIX_TBUCKET_TARGET_COUNT_WINDOW_VALIDATION

      public static final EsqlCapabilities.Cap FIX_TBUCKET_TARGET_COUNT_WINDOW_VALIDATION
      Fix window validation in time-series aggregations when TBUCKET uses a numeric target bucket count.
    • TSDB_TEMPORALITY_SUPPORT_V8

      public static final EsqlCapabilities.Cap TSDB_TEMPORALITY_SUPPORT_V8
      TSDB Temporality support.
    • TSDB_TEMPORALITY_SUPPORT_V9

      public static final EsqlCapabilities.Cap TSDB_TEMPORALITY_SUPPORT_V9
      Support cumulative exponential histograms in _over_time aggregations.
    • CHANGE_POINT_SUPPORT_NULL_COLUMN

      public static final EsqlCapabilities.Cap CHANGE_POINT_SUPPORT_NULL_COLUMN
      Support the null column type for the CHANGE_POINT command
    • MMR_FOLDABLE_QUERY_VECTOR_FIX

      public static final EsqlCapabilities.Cap MMR_FOLDABLE_QUERY_VECTOR_FIX
      MMR fixes for constant folding
    • CHANGE_POINT_BY

      public static final EsqlCapabilities.Cap CHANGE_POINT_BY
      Support the BY grouping clause in CHANGE_POINT to detect change points independently per group.
    • FIX_DIV_ERROR_MESSAGE

      public static final EsqlCapabilities.Cap FIX_DIV_ERROR_MESSAGE
    • AUTO_PARTITION_DOCS_THRESHOLD

      public static final EsqlCapabilities.Cap AUTO_PARTITION_DOCS_THRESHOLD
    • UNMAPPED_FIELDS_DEFAULT_SETTING_RENAME

      public static final EsqlCapabilities.Cap UNMAPPED_FIELDS_DEFAULT_SETTING_RENAME
      Rename the unmapped_fields default setting from "fail" to "default". See https://github.com/elastic/elasticsearch/issues/144833
    • TIME_SERIES_WINDOW_NON_MULTIPLE

      public static final EsqlCapabilities.Cap TIME_SERIES_WINDOW_NON_MULTIPLE
      Support window durations that are larger than but not exact multiples of the time bucket for time-series aggregations (e.g., rate(counter, 7 minutes) with TBUCKET(5 minutes)).
    • TIME_SERIES_TRANSLATION_IN_ANALYZER

      public static final EsqlCapabilities.Cap TIME_SERIES_TRANSLATION_IN_ANALYZER
      Move rules for TS translation into the Analyzer
    • FIX_SUM_OF_NULL_OPTIMIZATION

      public static final EsqlCapabilities.Cap FIX_SUM_OF_NULL_OPTIMIZATION
      Fix for SUM(null) producing a type mismatch after surrogate expansion. See https://github.com/elastic/elasticsearch/issues/144914
    • PROPAGATE_EMPTY_RELATION_PAST_JOINS

      public static final EsqlCapabilities.Cap PROPAGATE_EMPTY_RELATION_PAST_JOINS
    • USER_AGENT_COMMAND

      public static final EsqlCapabilities.Cap USER_AGENT_COMMAND
      Supports the USER_AGENT command.
    • FIX_SAMPLE_AFTER_KQL_OR_QSTR

      public static final EsqlCapabilities.Cap FIX_SAMPLE_AFTER_KQL_OR_QSTR
      Fix full-text functions being rejected after SAMPLE.
    • KEYWORDS_MV_COUNT_AS_SINGLE_VALUE_FIX

      public static final EsqlCapabilities.Cap KEYWORDS_MV_COUNT_AS_SINGLE_VALUE_FIX
    • PARQUET_ORC_STARTS_WITH_PUSHDOWN

      public static final EsqlCapabilities.Cap PARQUET_ORC_STARTS_WITH_PUSHDOWN
      Parquet and ORC filter pushdown for StartsWith (prefix range predicates).
    • EARLIEST_LATEST_AGGS

      public static final EsqlCapabilities.Cap EARLIEST_LATEST_AGGS
      Alias for calling FIRST (or LAST) and only passing the search field. The sort field is implicitly set to @timestamp. These are not time series agg functions.
    • FIX_FULL_TEXT_FUNCTIONS_ON_CONSTANT_KEYWORD

      public static final EsqlCapabilities.Cap FIX_FULL_TEXT_FUNCTIONS_ON_CONSTANT_KEYWORD
      Fix for full-text functions (MATCH, MATCH_PHRASE, :) on constant_keyword fields. The optimizer no longer replaces their field arguments with literal constants. See https://github.com/elastic/elasticsearch/issues/145570
    • FIX_PROPAGATE_NULLABLE_OR_DISJUNCTION

      public static final EsqlCapabilities.Cap FIX_PROPAGATE_NULLABLE_OR_DISJUNCTION
      Fix for PropagateNullable incorrectly discarding surviving OR branches when a field is constrained by IS NULL or IS NOT NULL in the same AND conjunction. Previously (a IS NOT NULL OR p) AND a IS NULL was optimized to null AND a IS NULL (dropping p); now it correctly becomes p AND a IS NULL. Symmetric fix: (a IS NULL OR p) AND a IS NOT NULL now correctly becomes p AND a IS NOT NULL instead of remaining unoptimized. See https://github.com/elastic/elasticsearch/issues/141579
    • FIX_TBUCKET_NUMERIC_ON_EMPTY_RANGE

      public static final EsqlCapabilities.Cap FIX_TBUCKET_NUMERIC_ON_EMPTY_RANGE
      Fix TBUCKET with a numeric bucket count returning a verification exception instead of empty results when the top-level request filter covers a time range with no matching indices. See https://github.com/elastic/elasticsearch/issues/146354
    • EMBEDDING_FUNCTION

      public static final EsqlCapabilities.Cap EMBEDDING_FUNCTION
      Support for the EMBEDDING function for generating dense vector embeddings using the embedding task type.
    • FIX_STARTS_WITH_ENDS_WITH_PUSHDOWN_ON_INDEX

      public static final EsqlCapabilities.Cap FIX_STARTS_WITH_ENDS_WITH_PUSHDOWN_ON_INDEX
      Fix for STARTS_WITH and ENDS_WITH Lucene pushdown on _index: use wildcard escaping instead of query-parser escaping, and honour the stringLikeOnIndex flag so the wildcard query forces string matching on metadata fields.
    • LIMIT_BY_ALLOW_EVALUATABLE_GROUPING_FUNCTIONS

      public static final EsqlCapabilities.Cap LIMIT_BY_ALLOW_EVALUATABLE_GROUPING_FUNCTIONS
      Allow evaluatable grouping functions (such as BUCKET) inside LIMIT ... BY. Stateful grouping functions (such as CATEGORIZE) remain restricted to STATS.
    • FIX_PUSH_COUNT_QUERY_AND_TAGS_WITH_MULTIPLE_AGGS

      public static final EsqlCapabilities.Cap FIX_PUSH_COUNT_QUERY_AND_TAGS_WITH_MULTIPLE_AGGS
      Fix for PushCountQueryAndTagsToSource incorrectly replacing an AggregateExec that has multiple aggregate functions (e.g. COUNT + MAX) with an EsStatsQueryExec that only handles COUNT, when CombineProjections had removed the grouping key from the aggregates list.

      See #146479

    • FORK_PRUNE_ALL_COLUMNS_FIX

      public static final EsqlCapabilities.Cap FORK_PRUNE_ALL_COLUMNS_FIX
      Fix for column pruning in FORK.
    • APPROXIMATION_LOOKUP_JOIN_V2

      public static final EsqlCapabilities.Cap APPROXIMATION_LOOKUP_JOIN_V2
      Support query approximation with LOOKUP JOIN
    • APPROXIMATION_INLINE_STATS_V2

      public static final EsqlCapabilities.Cap APPROXIMATION_INLINE_STATS_V2
      Support query approximation with INLINE STATS
    • PROMQL_YEAR

      public static final EsqlCapabilities.Cap PROMQL_YEAR
      Support for PromQL year() function.
    • PROMQL_RESOLVE_UNKOWN

      public static final EsqlCapabilities.Cap PROMQL_RESOLVE_UNKOWN
      Unknown PromQL functions now make the error message "Unknown PromQL function".
    • PROMQL_TIME_FUNCTIONS

      public static final EsqlCapabilities.Cap PROMQL_TIME_FUNCTIONS
      Support for PromQL time extraction functions: month(), day_of_month(), day_of_week(), day_of_year(), hour(), minute().
    • PROMQL_DAYS_IN_MONTH

      public static final EsqlCapabilities.Cap PROMQL_DAYS_IN_MONTH
      Support for PromQL days_in_month() function.
    • INFERENCE_ACCEPT_TIMEOUT

      public static final EsqlCapabilities.Cap INFERENCE_ACCEPT_TIMEOUT
      Support for the timeout option in the COMPLETION and RERANK commands and the TEXT_EMBEDDING function.
    • FIX_UNROLLED_FOLDABLE_MV_WARNING

      public static final EsqlCapabilities.Cap FIX_UNROLLED_FOLDABLE_MV_WARNING
      Fix on multi-values that were unrolled and were still producing warnings in expressions that do not accept multi-values See https://github.com/elastic/elasticsearch/issues/134706
    • FIX_SET_WRONG_LINE_COLUMN

      public static final EsqlCapabilities.Cap FIX_SET_WRONG_LINE_COLUMN
      Fix for SET reporting wrong line/column number (-1:-1) in validation errors. see ES|QL: wrong line/column number #145873
    • FIX_INDEX_LIKE_QUESTION_MARK_WILDCARD

      public static final EsqlCapabilities.Cap FIX_INDEX_LIKE_QUESTION_MARK_WILDCARD
      Fix for _index LIKE not supporting the ? wildcard character. see ES|QL: _index LIKE with ? #146364
    • APPROXIMATION_FIX_MIN_SOURCE_ROW_COUNT

      public static final EsqlCapabilities.Cap APPROXIMATION_FIX_MIN_SOURCE_ROW_COUNT
      Fix query approximation for queries with few source rows, that are expanded (e.g. by MV_EXPAND) into many rows reaching the STATS command.
    • FORK_PROJECT_AWAY_COLUMNS_FIX

      public static final EsqlCapabilities.Cap FORK_PROJECT_AWAY_COLUMNS_FIX
      Fix for column pruning when FORK branches return no columns.
    • FIX_HISTOGRAM_BLOCKLOADERS_ISNULL

      public static final EsqlCapabilities.Cap FIX_HISTOGRAM_BLOCKLOADERS_ISNULL
      Fix for histogram block loaders (tdigest, exponential_histogram) passing nullsFiltered=true to sub-block-loaders for min, max and sum. Those sub-fields can be absent for empty histograms even when the histogram field itself is present, so the null-filtered guarantee does not hold for them. See #147854
    • FIX_COMPOUND_OUTPUT_EVAL_SORT_AGNOSTIC

      public static final EsqlCapabilities.Cap FIX_COMPOUND_OUTPUT_EVAL_SORT_AGNOSTIC
      Fix for CompoundOutputEval commands not implementing SortAgnostic, causing PruneRedundantOrderBy to fail when a SORT precedes these commands.
    • OPTIONAL_FIELDS_LOAD_WITH_LOOKUP_JOIN

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_LOAD_WITH_LOOKUP_JOIN
      Support for unmapped_fields="load" mode with LOOKUP JOIN. Previously the combination was rejected at query validation time. see Issue #142026
    • OPTIONAL_FIELDS_LOAD_WITH_FORK_SUBQUERIES_AND_VIEWS

      public static final EsqlCapabilities.Cap OPTIONAL_FIELDS_LOAD_WITH_FORK_SUBQUERIES_AND_VIEWS
      Support for unmapped_fields="load" with FORK, subqueries and views (previously rejected). See #142033.
    • FN_EQUALS_FLATTENED

      public static final EsqlCapabilities.Cap FN_EQUALS_FLATTENED
      Support for the == operator on the root of a flattened field in ES|QL.
    • FN_NOT_EQUALS_FLATTENED

      public static final EsqlCapabilities.Cap FN_NOT_EQUALS_FLATTENED
      Support for the != operator on the root of a flattened field in ES|QL.
    • GROUP_BY_FLATTENED

      public static final EsqlCapabilities.Cap GROUP_BY_FLATTENED
      Support for using a flattened field as a grouping key in STATS … BY and LIMIT N BY.
    • FIX_REORDER_LIMIT_PROJECT_AND_ORDER_BY_PRESERVES_REFS

      public static final EsqlCapabilities.Cap FIX_REORDER_LIMIT_PROJECT_AND_ORDER_BY_PRESERVES_REFS
      Fix for ReorderLimitProjectAndOrderBy unconditionally lifting an OrderBy above a renaming/dropping Project: it now rewrites the OrderBy's references through the Project's aliases (so a sort on a renamed column stays valid) and bails out of the swap if a referenced column is dropped altogether.

      See #148612.

    • IP_LOCATION_COMMAND

      public static final EsqlCapabilities.Cap IP_LOCATION_COMMAND
      Supports the IP_LOCATION command.
    • APPROXIMATION_FORK

      public static final EsqlCapabilities.Cap APPROXIMATION_FORK
      Support query approximation with FORK and subqueries.
    • FIRST_AGG_EXTENDED_TYPES

      public static final EsqlCapabilities.Cap FIRST_AGG_EXTENDED_TYPES
      Support FIRST aggregation on extended types: version, unsigned_long, geo_point, cartesian_point, geo_shape, cartesian_shape, geohash, geotile, geohex.
    • FIRST_AGG_EXTENDED_TYPES_2

      public static final EsqlCapabilities.Cap FIRST_AGG_EXTENDED_TYPES_2
      Support FIRST and EARLIEST aggregation on the remaining types: dense_vector, exponential_histogram, tdigest.
    • FIRST_AGG_EXTENDED_TYPES_3

      public static final EsqlCapabilities.Cap FIRST_AGG_EXTENDED_TYPES_3
      Support FIRST and EARLIEST aggregation on the flattened data type.
    • FUSE_PASSTHROUGH_WITH_FIRST

      public static final EsqlCapabilities.Cap FUSE_PASSTHROUGH_WITH_FIRST
      FUSE uses FIRST(col, NULL) instead of VALUES for passthrough columns, enabling dense_vector, exponential_histogram, and tdigest fields to flow through FORK + FUSE hybrid-search pipelines.
    • DEDUP_COMMAND

      public static final EsqlCapabilities.Cap DEDUP_COMMAND
      Support for the DEDUP command, which removes duplicate rows from the result set. Snapshot-only.
    • VALUES_DATE_RANGE

      public static final EsqlCapabilities.Cap VALUES_DATE_RANGE
      Support for VALUES with date_range type.
    • COALESCE_DATE_RANGE

      public static final EsqlCapabilities.Cap COALESCE_DATE_RANGE
      Support for COALESCE with date_range type.
    • CASE_DATE_RANGE

      public static final EsqlCapabilities.Cap CASE_DATE_RANGE
      Support for CASE with date_range type.
    • EQUALITY_DATE_RANGE

      public static final EsqlCapabilities.Cap EQUALITY_DATE_RANGE
      Support for equality (==, !=) and IN with date_range type.
    • FIX_TOPN_LONG_RANGE_ENCODING

      public static final EsqlCapabilities.Cap FIX_TOPN_LONG_RANGE_ENCODING
      Fix TopN encoding/decoding of long_range values. #150383
    • MV_FIRST_LAST_DATE_RANGE

      public static final EsqlCapabilities.Cap MV_FIRST_LAST_DATE_RANGE
      Support for MV_FIRST and MV_LAST with date_range type.
    • AGG_BASIC_DATE_RANGE

      public static final EsqlCapabilities.Cap AGG_BASIC_DATE_RANGE
      Support for COUNT, COUNT_APPROXIMATE, PRESENT, ABSENT, MV_COUNT with date_range type.
    • PROMQL_LABEL_MATCHER_PARAMS

      public static final EsqlCapabilities.Cap PROMQL_LABEL_MATCHER_PARAMS
      Support for ESQL parameters in PromQL label matchers: #148620
    • FIX_PROMQL_SCALAR_FLOAT_DIV

      public static final EsqlCapabilities.Cap FIX_PROMQL_SCALAR_FLOAT_DIV
      Fix for PromQL scalar integer division losing the fractional part. Integer literals like 4/6 were folded with integer division (result: 0) instead of float64 division (result: ~0.667). https://github.com/elastic/elasticsearch/issues/149792
    • FIX_PROMQL_SCALAR_CONSTANT_RESULTS

      public static final EsqlCapabilities.Cap FIX_PROMQL_SCALAR_CONSTANT_RESULTS
      Fix for PromQL constant scalar expressions (e.g. 3.14, pi()) that were previously evaluated through the full PromqlCommand pipeline and produced no results when the index was empty. They are now folded at planning time and emitted as a ROW without touching the index.
    • FIX_PROMQL_QUANTILE_SCALE

      public static final EsqlCapabilities.Cap FIX_PROMQL_QUANTILE_SCALE
      PromQL quantile and quantile_over_time take the quantile φ in the range [0, 1], but the φ value was passed straight through to the ES|QL PERCENTILE aggregation (which expects [0, 100]), so e.g. quantile(1.0, x) returned ≈ the minimum instead of the maximum. φ is now scaled by 100.
    • APPROXIMATION_FIX_NON_APPROXIMABLE_FORK_BRANCHES

      public static final EsqlCapabilities.Cap APPROXIMATION_FIX_NON_APPROXIMABLE_FORK_BRANCHES
      Bugfix in query approximation to not rewrite non-approximable FORK branches: #149501
    • APPROXIMATION_FIX_MV_FUNCTIONS

      public static final EsqlCapabilities.Cap APPROXIMATION_FIX_MV_FUNCTIONS
      Bugfix in query approximation to not produce confidence intervals for multivalued functions.
    • PROMQL_HISTOGRAM_SUM_COUNT_AVG

      public static final EsqlCapabilities.Cap PROMQL_HISTOGRAM_SUM_COUNT_AVG
      Support for PromQL histogram_count(), histogram_sum() and histogram_avg() on native histograms.
    • PROMQL_INCREASE_ON_HISTOGRAM

      public static final EsqlCapabilities.Cap PROMQL_INCREASE_ON_HISTOGRAM
      Support for PromQL increase() on exponential histograms.
    • PROMQL_SUM_ON_HISTOGRAM

      public static final EsqlCapabilities.Cap PROMQL_SUM_ON_HISTOGRAM
      Support for PromQL sum() operator on exponential histograms.
    • HIGHLIGHT_V2

      public static final EsqlCapabilities.Cap HIGHLIGHT_V2
      Support for the HIGHLIGHT command: grammar, plan nodes, serialization, and execution that exposes the generated highlight_* columns. Snapshot-only.
    • PROMQL_HISTOGRAM_QUANTILE

      public static final EsqlCapabilities.Cap PROMQL_HISTOGRAM_QUANTILE
      Support for PromQL histogram_quantile() over classic histograms with le buckets.
    • PROMQL_SET_OPERATOR_UNION

      public static final EsqlCapabilities.Cap PROMQL_SET_OPERATOR_UNION
      Support for the top-level PromQL or (UNION) set operator between two instant vectors.
    • PROMQL_HISTOGRAM_QUANTILE_IMPLICIT_LE

      public static final EsqlCapabilities.Cap PROMQL_HISTOGRAM_QUANTILE_IMPLICIT_LE
      Support for PromQL histogram_quantile() over classic histograms where le is not an explicit child output.
    • PROMQL_HISTOGRAM_QUANTILE_EXPONENTIAL

      public static final EsqlCapabilities.Cap PROMQL_HISTOGRAM_QUANTILE_EXPONENTIAL
      Support for PromQL histogram_quantile() over exponential (native) histograms.
    • FIX_GROUP_BY_ALL_AGGREGATION_FILTERS

      public static final EsqlCapabilities.Cap FIX_GROUP_BY_ALL_AGGREGATION_FILTERS
      Fixes a bug in the planner where TS queries without an outer aggregation (group by all) would wrongly fail with an IllegalStateException if any aggregation had a filter.
    • FIX_TS_BLOCK_LOADER_PASSTHROUGH_ALIASING

      public static final EsqlCapabilities.Cap FIX_TS_BLOCK_LOADER_PASSTHROUGH_ALIASING
      Fix for PromQL without and ES|QL TS_WITHOUT: passthrough alias names (e.g. OTel cpu for the concrete dimension attributes.cpu) are now correctly resolved in the _timeseries block loader so excluded labels are actually removed from the series key. https://github.com/elastic/elasticsearch/issues/151540
    • METADATA_SLICE

      public static final EsqlCapabilities.Cap METADATA_SLICE
      Support for the _slice metadata field in ES|QL, available on indices with index.slice.enabled: true. Backed by the _routing sorted doc values field. Enables FROM index METADATA _slice, KEEP _slice, and pushable WHERE _slice == / LIKE / RLIKE filters.
    • LAST_AGG_EXTENDED_TYPES

      public static final EsqlCapabilities.Cap LAST_AGG_EXTENDED_TYPES
      Support LAST and LATEST aggregation on the same extended field types as FIRST and EARLIEST (version, unsigned_long, spatial, spatial-grid, dense_vector, exponential_histogram, tdigest, flattened).
    • EMPTY_LIST_PARAM_AS_NULL

      public static final EsqlCapabilities.Cap EMPTY_LIST_PARAM_AS_NULL
      An empty list passed as a query parameter (named or positional) is treated as null instead of producing an NPE. A defined-but-null param used in an identifier or pattern position produces a clean parsing error instead of silently yielding an empty column name. See #147448.
    • SPATIAL_BBOX_VALIDATION_FIX

      public static final EsqlCapabilities.Cap SPATIAL_BBOX_VALIDATION_FIX
      Invalid BBOX envelopes (e.g. maxY < minY, or maxX < minX for cartesian coordinates) are now consistently handled as a null result with a registered warning, both at fold time and at runtime, instead of either being silently accepted (cartesian x-ordering was never validated) or causing an uncaught exception in downstream consumers (ST_GEOHASH/ST_GEOTILE/ST_GEOHEX bounds, ST_DISTANCE, ST_INTERSECTS/ST_DISJOINT/etc. pushdown to Lucene). See #152877.
  • Method Details

    • values

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

      public static EsqlCapabilities.Cap valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (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 class has no constant with the specified name
      NullPointerException - if the argument is null
    • isEnabled

      public boolean isEnabled()
    • capabilityName

      public String capabilityName()