Enum Class EsqlCapabilities.Cap
- All Implemented Interfaces:
Serializable,Comparable<EsqlCapabilities.Cap>,Constable
- Enclosing class:
EsqlCapabilities
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
Enum Constant Summary
Enum ConstantsEnum ConstantDescriptionSupport for the ACOSH function.Fix pushdown of LIMIT past MV_EXPANDSupport timezones in + and - operators.Support for COUNT, COUNT_APPROXIMATE, PRESENT, ABSENT, MV_COUNT with date_range type.Support for booleans in aggregationsMAXandMIN.Support for ips in aggregationsMAXandMIN.Support for strings in aggregationsMAXandMIN.Accept unsigned longs on MAX and MIN aggregations.Support for the SAMPLE aggregation functionSupport for aggregation functionTOP.Support for booleans inTOPaggregation.Support for ips inTOPaggregation.Support forkeywordandtextfields inTOPaggregation.Make optional the order field in the TOP agg command, and default it to "ASC".Support for the extra "map" field inTOPaggregation.The introduction of theVALUESagg.Accept unsigned longs on VALUES and SAMPLE aggregations.Expand theVALUESagg to cover spatial types.Support for WEIGHTED_AVG function.Support avg as a possible default metric for aggregate_metric_doubleSupport binary operators for aggregate_metric_doubleSupport running all aggregations on aggregate_metric_double using the default metricReturn 0 (instead of null) for count on AMD when there are no rowsEnable aggregate_metric_double in non-snapshot buildsFix for 140670, this allows for type conversion functions with no further computation to be evaluated inside default wrapping _over_time functions.Fix query approximation for queries with few source rows, that are expanded (e.g.Bugfix in query approximation to not produce confidence intervals for multivalued functions.Bugfix in query approximation to not rewrite non-approximable FORK branches: #149501Support query approximation with FORK and subqueries.Support query approximation with INLINE STATSSupport query approximation with LOOKUP JOINSupport query approximation.Support for the ASINH function.Fix for async operator sometimes completing the driver without emitting the stored warningsDoes ESQL support async queries.Support sending HTTP headers about the status of an async query.Fix async headers not being sent on "get" requestsSupport for the ATANH function.Fix attribute equality to respect the name id of the attribute.Support for base conversion in TO_LONG and TO_INTEGERBase64 encoding and decoding functions.Consider the upper bound when computing the interval in BUCKET auto mode.Support for the whole number spans in BUCKET function.Support for CASE with date_range type.CASEfolding with DATE_PERIOD and TIME_DURATION return types.CASEproperly handling multivalue conditions.Adds the ability for theCaseto return values of type TDIGEST, type HISTOGRAM, and type AGGREGATE_METRIC_DOUBLE.Support explicit casting from string literal to DATE_PERIOD or TIME_DURATION.Support for the :: casting operatorSupport for the ::date casting operatorSupport for the::tdigestand::exponential_histogramcasting operators.Support for multiple groupings in "CATEGORIZE".Support for the options field of CATEGORIZE.Supported the text categorization function "CATEGORIZE".Support change point detection "CHANGE_POINT".Support the BY grouping clause in CHANGE_POINT to detect change points independently per group.Chunk function.DoesCHUNKprocess all field values?Support for COALESCE with date_range type.COALESCE function support for dense_vector type.Expose resolved bucket interval in_metaonBUCKETgrouping columns, gated behind theSET column_metadata=truesetting.Add CombineBinaryComparisons rule.Support CIDRMatch in CombineDisjunctions rule.Support for COMPLETION commandAdds a conditional block loader for text fields that prefers using the sub-keyword field whenever possible.Support for theCOPY_SIGNfunction.Support correct counting of skipped shards.Cosine vector similarity functionSupport for running the Count aggregation on t-digest and exponential histogram typesSupport metrics counter typesFROM <dataset>resolved through the same pipeline asFROM <index>(Phase 1: dataset-only patterns).Datasource file plugins (CSV, ORC, Parquet) no longer returnTEXTtypes, onlyKEYWORD.Support timezones in DATE_DIFF.Compute year differences in full calendar years.Support timezones in DATE_FORMAT and DATE_PARSE.Support add and subtract on date nanossupport aggregations on date nanosSupport for date nanos type in binary comparisonsSupport date nanos values as the field argument to bucketSupport for mixed comparisons between nanosecond and millisecond datessupport date diff function on date nanos type, and mixed nanos/millissupport date extract function for date nanosSupport running date format function on nanosecond datesSupport implicit casting of strings to date nanosSupport theInoperator for date nanosSupport for date nanos in lookup join.Support for nanosecond dates as a data typeOptional options argument for DATE_PARSEDATE_PARSE supports reading timezonesSupport for the DATE_RANGE field type, RANGE_WITHIN, TO_DATE_RANGE(string), RANGE_MIN, RANGE_MAX.Exceptions parsing date-times are thrown as IllegalArgumentExceptionSupport for date_trunc function on date nanos typeSupport timezones in DATE_TRUNC and dependent functions.Enhanced DATE_TRUNC with arbitrary month and year intervals.Decay function for custom scoring.Fix conversions for parameters forDECAY.Support DECAY with unsigned_long parameters forDECAY.Fix latitude/longitude ordering of the in geo-pointDECAY.Support for theDEDUPcommand, which removes duplicate rows from the result set.Dense_vector aggregation functionsSupport for dense_vector arithmetic operations (+, -, *, /)Support for dense_vector equality and inequality operators (==, !=).Bit elements dense vector field type support.Byte elements dense vector field type support.Dense vector field type supportSupport for arithmetic operations (+, -, *, /) between dense_vector and scalar valuesDense_vector SUM aggregation functionWhen we disabled some broken optimizations aroundnullable.Are thedocuments_foundandvalues_loadedfields available in the response and profile?Dot product vector similarity functionSupport for dots in FUSE attributesUse double parameter markers to represent field or function names.Support for quoting index sources in double quotes.Support for keeping `DROP` attributes when resolving field names.Correctly ask for all fields from lookup indices even when there is e.g.Alias for calling FIRST (or LAST) and only passing the search field.Support for theEMBEDDINGfunction for generating dense vector embeddings using theembeddingtask type.An empty list passed as a query parameter (named or positional) is treated as null instead of producing an NPE.FORK with remote indicesEnable support for index aliases in lookup joinsEnable support for cross-cluster lookup joins.Enables late materialization on node reduce.Enrich works with dense_vector fieldsSupport for loading values over enrich.Enforce strict type checking on ENRICH range types, and warnings for KEYWORD parsing at runtime.Support for equality (==, !=) and IN with date_range type.Support for theDATE_UNIT_COUNTfunction.Enables the feature LIMIT n BY expr1, expr2 for retaining at most n docs per group.Enables the SORT | LIMIT n BY expr1, expr2 support, see ESQL_LIMIT_BY for more contextSupport for `WITHOUT` grouping function that excludes specific dimensions from time-series grouping.(Re)Added EXPLAIN commandEXPLAIN command with remote plans (5 columns: cluster, node, role, type, plan)Support for exponential_histogram fields in the state of when it first was released into tech preview.Support for the EXTERNAL command (datasource access).The CSV/TSV file-leveldatetime_formatoption compiles to an ElasticsearchDateFormatterrather than a raw JDKDateTimeFormatter: zone offsets are honored, date-only patterns parse, and named formats anda||bcomposites are accepted.A present-but-empty field on a string (KEYWORD/TEXT) column in an external CSV/TSV datasource reads as the empty string""instead ofnull.Support for theheader_row(and the relatedcolumn_prefix) CSV options on theEXTERNALcommand, used to read headerless CSV files.Support for the EXTERNAL command (datasource access).Always-on_file.*virtual columns (_file.path,_file.name,_file.directory,_file.size,_file.modified) added to every external-source schema.Correct decoding of aLISTleaf reached through aSTRUCT(e.g.Support for projecting nested STRUCT subfields (e.g.Per-file planner-resolved read schema is threaded down to runtime readers viaFileSplit.readSchema().Standard ES metadata columns (_id,_index,_version,_source, ...) accepted in theMETADATAclause of external-datasetFROM.Multi-file external UNION_BY_NAME widens cross-file type disagreements to KEYWORD instead of throwing at planning time.Support for field aliases in mappings.Pushdown optimizations forfield_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 toBETWEEN) against the same shape.Support for thefield_extractfunction, which reads a sub-key from aflattenedfield root.field_extract(<flattened root>, "<key>")returns the sub-field's value for an explicitly mapped sub-key (one declared underproperties) instead ofnull.The per-row evaluator forfield_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 forVALUE_NULL, instead of always going throughparser.text()(which threw on every non-scalar value).Support for filter in converted null.Support FIRST aggregation on extended types: version, unsigned_long, geo_point, cartesian_point, geo_shape, cartesian_shape, geohash, geotile, geohex.Support FIRST and EARLIEST aggregation on the remaining types: dense_vector, exponential_histogram, tdigest.Support FIRST and EARLIEST aggregation on the flattened data type.Make FIRST agg work with null and multi-value fields.Support aggregating on integers in FIRST/LAST.Allow FIRST/LAST aggs to accept DATE/DATE_NANOS in the search field https://github.com/elastic/elasticsearch/issues/142137Add support for counter doubles, ints, and longs in first_ and last_over_timeSupport passing constants and null in the second parameter of FIRST/LAST aggs.ReplaceStatsFilteredOrNullAggWithEvalnow replaces anAggregateFunctionwith null value with anEval.Fix for a bug when surrogating aTOPwith limit 1 and output field.Fix for an ArrayIndexOutOfBoundsException in the aggregation framework when the same field is passed twice.AVG(long) casts the field to double up-front in its surrogate, so the intermediate sum can no longer overflow.Fix forCompoundOutputEvalcommands not implementingSortAgnostic, causingPruneRedundantOrderByto fail when a SORT precedes these commands.Fix the status code returned when trying to run count_distinct on the _source type (which is not supported).When pushing downSTATS count(field::type)for a union type field, we wrongly used a synthetic attribute name in the query instead of the actual field name.Indicates that https://github.com/elastic/elasticsearch/issues/125439 (incorrect lucene push down for date nanos) is fixedFixes a bug where dates are incorrectly formatted if a where clause compares nanoseconds to both milliseconds and nanoseconds, e.g.Fix for not including metadata _doc_count in the _timeseries column https://github.com/elastic/elasticsearch/issues/143464When creating constant null blocks inValuesSourceReaderOperator, 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.Fix for circular reference in alias chains during PushDownEnrich and aggregate deduplication.Create new block when filtering OrdinalBytesRefBlockFix for an optimization that caused wrong results https://github.com/elastic/elasticsearch/issues/115281Fix folding of coalesce function https://github.com/elastic/elasticsearch/issues/139344Fixes an analysis bug inFORKwithunmapped_fields="nullify".Fix for full-text functions (MATCH, MATCH_PHRASE, :) on constant_keyword fields.Fix for full-text functions failing on renamed fields.Fixes a bug in the planner whereTSqueries without an outer aggregation (group by all) would wrongly fail with anIllegalStateExceptionif any aggregation had a filter.Fix for histogram block loaders (tdigest, exponential_histogram) passingnullsFiltered=trueto sub-block-loaders for min, max and sum.Fix for_index LIKEnot supporting the?wildcard character.Fix for INLINE STATS GROUP BY null being incorrectly pruned by PruneLeftJoinOnNullMatchingField.https://github.com/elastic/elasticsearch/issues/138283During resolution (pre-analysis) we have to consider that joins or enriches can override EVALuated values https://github.com/elastic/elasticsearch/issues/126419During resolution (pre-analysis) we have to consider that joins can override regex extracted values see ES|QL: pruning of JOINs leads to missing fields #127467Allow the merging of the children to useAliases, instead of justReferenceAttributes.Fix LimitOperator truncation with zero columns https://github.com/elastic/elasticsearch/issues/142473Fix for the STATS BY ALL with LIMIT 0.Support for the mv_expand target attribute should be retained in its original position.Fix for https://github.com/elastic/elasticsearch/issues/117054Fix management of plans with no columns https://github.com/elastic/elasticsearch/issues/120272Fix null comparison type check in binary comparisons.Fix a parsing issue where numbers below Long.MIN_VALUE threw an exception instead of parsing as doubles.Fix field caps incorrectly synthesizing object parents under subobjects:false (passthrough) mappers, causing false type conflicts in ES|QL when querying across indices.Fix precision of scaled_float field values retrieved from stored source see Slight inconsistency in ESQL using scaled_float field #122547ReplaceStatsFilteredOrNullAggWithEvalreplaced a stats with false filter with null withPresentorAbsentPromQLquantileandquantile_over_timetake the quantile φ in the range [0, 1], but the φ value was passed straight through to the ES|QLPERCENTILEaggregation (which expects [0, 100]), so e.g.PromQLround(v, to_nearest)uses the Prometheus formula, fixing wrong rounding and floating point junk from dividing by smallto_nearestvalues.Fix for PromQL constant scalar expressions (e.g.Fix for PromQL scalar integer division losing the fractional part.PromQL uses TSTEP instead of TBUCKET, with corrected open-ended range query bounds.Extended time-bucket fix covering scalar float-division step-timestamp alignment.Corrected output shape for PromQLwithout: awithoutover a concrete-output child (e.g.Fix forPropagateNullableincorrectly discarding surviving OR branches when a field is constrained byIS NULLorIS NOT NULLin the same AND conjunction.PruneRedundantAggregateGroupingsrebuilds a pruned derived external grouping reading the attribute the aggregate actually exposes (e.g.Fix forPushCountQueryAndTagsToSourceincorrectly replacing anAggregateExecthat has multiple aggregate functions (e.g.Fix forReorderLimitProjectAndOrderByunconditionally lifting anOrderByabove a renaming/droppingProject: it now rewrites theOrderBy's references through theProject's aliases (so a sort on a renamed column stays valid) and bails out of the swap if a referenced column is dropped altogether.ReplaceAliasingEvalWithProjectdid not fully account for shadowing.SupercedesMAKE_NUMBER_OF_CHANNELS_CONSISTENT_WITH_LAYOUT.Fix full-text functions being rejected after SAMPLE.Create a ScoreOperator only when shard contexts are availableFix for SET reporting wrong line/column number (-1:-1) in validation errors.Fix forSTARTS_WITHandENDS_WITHLucene pushdown on_index: use wildcard escaping instead of query-parser escaping, and honour thestringLikeOnIndexflag so the wildcard query forces string matching on metadata fields.Fix for https://github.com/elastic/elasticsearch/issues/114714Fix for https://github.com/elastic/elasticsearch/issues/114714, againFix for ClassCastException in STATS https://github.com/elastic/elasticsearch/issues/133992 https://github.com/elastic/elasticsearch/issues/136598Fix for multi-value constant propagation after GROUP BY.Makes SUM(long) agg return null+warning instead of a 500 overflow.Fix forSUM(null)producing a type mismatch after surrogate expansion.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.Fix window validation in time-series aggregations when TBUCKET uses a numeric target bucket count.TS window functions use backward window semantics only.Fix for 141627, TO_IP with leading_zeros=octal generates proper warning and returns null when given invalid input.Fix TopN encoding/decoding oflong_rangevalues.Fix for PromQLwithoutand ES|QLTS_WITHOUT: passthrough alias names (e.g.Support lower-open upper-closed boundaries (*;*] in addition to lower-closed upper-open [*;*)Fix windowed over-time/rate aggregations whose window is smaller than the time bucket when the bucket is end-labeled (right-closed), as produced byTSTEPand PromQL range queries.Fix for KQL/QSTR functions failing when used with unmapped fields in NULLIFY mode.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/134706Fix stale row-stride reader state when a conditional block loader uses column-at-a-time loading after row-stride loading across segments.Fixed some profile serialization issuesMake attributes of GROK/DISSECT adjustable and fix a shadowing bug when pushing them down past PROJECT.When resolving renames, consider allAttributes in the plan, not just theReferenceAttributes.Fix for regex folding with case-insensitive pattern https://github.com/elastic/elasticsearch/issues/118371Don't optimize CASE IS NOT NULL function by not requiring the fields to be not null as well.Support for theflatteneddata type in ES|QL, which loads flattened fields as JSON objects.Flattened fields applynull_valuereplacement when loading from_source, matching the doc-values behaviour applied at index time.Flattened field keys are returned in alphabetical order.Aflattenedroot that declares mapped sub-fields (e.g.Support for the==operator on the root of aflattenedfield in ES|QL.support for MV_CONTAINS function Add MV_CONTAINS function #133099Support for the!=operator on the root of aflattenedfield in ES|QL.Temporarily forbid the use of an explicit or implicit LIMIT before INLINE STATS.Fix for column pruning when FORK branches return no columns.Fix for column pruning in FORK.Support for union types in FORKSupport for FORK out of snapshotDeprecated.Full text functions can be used in disjunctionsFull text functions can be used in disjunctions as they are implemented in compute engineFull text functions can be scored when being part of a disjunctionFull text functions in STATSAdding stats for functions (stack telemetry)All functions that take TEXT should never emit TEXT, only KEYWORD.Fixes for multiple functions not serializing their source, and emitting warnings with wrong line number and text.FUSE L2_NORM score normalization supportFUSE 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.FUSE commandSupport directIO rescoring and `bfloat16` for `bbq_hnsw` and `bbq_disk`, and `bfloat16` for `hnsw` ans `bbq_flat` index types.Fold in spatial functions should return null for null input.Do validation check on geo_point and geo_shape fields."time_zone" parameter in request body and inSET time_zone="x".Fix to GROK and DISSECT that allows extracting attributes with the same name as the input https://github.com/elastic/elasticsearch/issues/110184Allow multiple patterns for GROK commandFix to GROK validation in case of multiple fields with same name and different types https://github.com/elastic/elasticsearch/issues/110533Support for using aflattenedfield as a grouping key inSTATS … BYandLIMIT N BY.Support for vector Hamming distance.Catch-and-rethrow determinization complexity errors as 400s rather than 500sHash functionHash function aliases such as MD5Support for theHIGHLIGHTcommand: grammar, plan nodes, serialization, and execution that exposes the generatedhighlight_*columns.Histogram field integrationSupport implicit casting for union typed fields that are mixed with date and date_nanos type.Support implicit casting from string literal to DATE_PERIOD or TIME_DURATION.Support for INCREASE, DELTA timeseries aggregations.Index component selector syntax (my-data-stream-name::failures)Support specifically for *just* the _index METADATA field.Support for thetimeoutoption in theCOMPLETIONandRERANKcommands and theTEXT_EMBEDDINGfunction.Renamed `INLINESTATS` to `INLINE STATS`.Fix double release in inline stats when LocalRelation is reusedFixes https://github.com/elastic/elasticsearch/issues/139359INLINE STATS fix incorrect prunning of null filtering https://github.com/elastic/elasticsearch/pull/135011Added support for having INLINE STATS preceded by a SORT clause, now executable in certain cases.Fix pruning of columns when shadowed in INLINE STATSINLINE STATS supports remote indiceshttps://github.com/elastic/elasticsearch/issues/142219https://github.com/elastic/elasticsearch/issues/136851Support for theINLINESTATSsyntax.Fixes a series of issues with inlinestats which had an incomplete implementation after lookup and inlinestats were refactored.Support for the expressions in grouping inINLINESTATSsyntax.Supports theIP_LOCATIONcommand.Fix pushing down LIMIT past LOOKUP JOIN in case of multiple matching join keys.LOOKUP JOIN skipping MVs and sending warnings (https://github.com/elastic/elasticsearch/issues/118780)LOOKUP JOINWIP on Join planning - Introduce BinaryPlan and co - Refactor INLINESTATS and LOOKUP as a JOIN blockAvid GROK and DISSECT attributes being removed when resolving fields.KNN function adds support for k and visit_percentage optionsSupport knn functionKQL functionSupport for optional parameters in KQL function (case_insensitive, time_zone, default_field, boost).Support timezones in KQL and QSTR.l1 norm vector similarity functionl2 norm vector similarity functionSupport 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).Make LAST agg work with null and multi-value fields.Support Least and Greatest functions on Date Nanos typeSupport for datetime in least and greatest functionsSupport improved behavior for LIKE operator when used with index fields.Support like/rlike parameters https://github.com/elastic/elasticsearch/issues/131356Support for the LIKE operator with a list of wildcards.Allow evaluatable grouping functions (such asBUCKET) insideLIMIT ... BY.Corrects a bug with ENRICH when a shard does not contain an index field and we use LIMIT BY on topFix pushdown of LIMIT BY past MV_EXPAND when grouping on expanded fields.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.Support loading of ip fields if they are not indexed.Disabled support for index aliases in lookup joinsAllow lookup join on boolean expressionsAllow lookup join on mixed numeric fields, among byte, short, int, long, half_float, scaled_float, float and double.Support for lookup join on multiple fields.Fix for lookup join filter pushdown not using semantic equality.Warning when SORT is followed by LOOKUP JOIN which does not preserve order.LOOKUP JOIN with TEXT fields on the right (right side of the join) (#119473)Lookup join with Full Text Function or other Lucene Pushable condition to be applied to the lookup index usedBugfix for lookup join with Full Text FunctionLOOKUP command with - tables using syntax"tables": {"type": [<values>]}- fixed variable shadowing - fixed Join.references(), requiring breaking change to Join serializationLuceneQueryEvaluatorrewrites the query before executing it in Lucene.Make numberOfChannels consistent with layout in DefaultLayout by removing duplicated ChannelSet.Additional types for match function and operatorMATCH functionSupport match options in match functionSupport for the zero_terms_query option in the match function.Support for match operator as a colon.MATCH PHRASE functionMatch function and match operator support for runtime expressions, not just ES mapped fields.Support for metadata fields.Capability for remote metadata testSupport for requesting the "_ignored" metadata field.Support the "METADATA _score" directive to enable _score column.Support for requesting the "_size" metadata field when the mapper-size plugin is enabled.Support for the_slicemetadata field in ES|QL, available on indices withindex.slice.enabled: true.Support for requesting the "_tier" metadata field.Support for requesting the "_tsid" metadata field.Allow wildcards in FROM METADATA, eg FROM idx METADATA _ind*Deprecated.Support for metrics counter fieldsEnables automatically grouping by all dimension fields in TS mode queriesEnables automatically grouping by all dimension fields in TS mode queries and outputs the _timeseries column with all the dimensions.Support for the METRICS_INFO command.Allow mixed numeric types in conditional functions - case, greatest and leastAllow mixed numeric types in coalesceMMR fixes for constant foldingSupport for the MMR result diversification commandSupport for MV_FIRST and MV_LAST with date_range type.Blocks can be labelled withBlock.MvOrdering.SORTED_ASCENDINGfor optimizations.Adds theMV_PSERIES_WEIGHTED_SUMfunction for converting sorted lists of numbers into a bounded score.Introduction ofMV_SORT,MV_SLICE, andMV_ZIP.Allow qualifiers in attribute names.Support simplified syntax for named parameters for field and function names.Support for named or positional parameters in EsqlQueryRequest.Network direction function.Forbid usage of brackets in unquoted index and enrich policy names https://github.com/elastic/elasticsearch/issues/130378Removing support for theMETAkeyword.From now, Literal only accepts strings as BytesRefs.Non full text functions do not contribute to scoreThis enables 60_usage.yml "Basic ESQL usage....non-snapshot" version test.Changed and normalized the LIMIT error message.Nullify unmapped fields in agg filters likeSTATS agg_fun(field) WHERE field..., even whenAnalyzer.ResolveRefsmarks the field as unresolvable with a custom error message.Withunmapped_fields="nullify"or"load", aDROPwildcard that matches no field is a no-op instead of failing with "No matches found for pattern".Fixes count on an unmapped field.Bugfix:IndexResolver.mergedMappingscrashed withUnsupportedOperationExceptionwhen a keyword field with multi-fields (e.g.Unconditionally load partially mapped keyword fields, whether they are mentioned in expressions or not.Fix for LOOKUP JOIN and ENRICH failing when the match field has NULL type from unmapped field nullification.Fix for flattened subfields not being nullified whenunmapped_fields="nullify"is set.Don't implicitly cast a partially unmappeddense_vectorfield underunmapped_fields="load".Fix for aClassCastExceptionwhen an explicitly cast or implicitly widened partially unmapped small numeric field.Fix incorrect detection of unmapped fields in nullify/load mode when unresolved attributes match fields already present in the children's output.Fix for 500 return code when loading from_source(henceKEYWORD) and passing to a convert function that doesn't takeKEYWORDs.Fix for 500 error when querying multiple indices withunmapped_fields="load".Support forunmapped_fields="load"withFORK, subqueries and views (previously rejected).Support forunmapped_fields="load"mode withLOOKUP JOIN.Don't nullify aliases for Aggregate groupings.Support for optional fields (might or might not be present in the mappings) using DEFAULT/NULLIFY only.Fixes a bug when using an EVAL on the grouped by columns after a STATS.Implicit casting of PUNKs that have two types (or legs): KEYWORD by virtue of loading from _source, and exactly one other type where mapped.Null-fallback underunmapped_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.Support for optional fields (might or might not be present in the mappings) using DEFAULT/NULLIFY/LOAD.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.Support named argument for function in map format.Pack dimension values in TS commandSupport parameters for LIMIT command.Support parameters for SAMPLE command.Parquet and ORC filter pushdown for StartsWith (prefix range predicates).Allow filter per individual aggregation.FixPER_AGG_FILTERINGgrouped by ordinals.Percentile over time and other ts-aggregationsPeriodically emit partial aggregation results when the number of groups exceeds the threshold.PromQL label matchers that accept the empty string (e.g.Initial support for simple binary comparisons in PromQL.Support for deriving PromQL time buckets from [start, end, buckets] when [step] is omitted.PromQL support in ESQL, in the state it was when first available in non-snapshot builds.Support for PromQL days_in_month() function.Support for PromQLhistogram_quantile()over classic histograms withlebuckets.Support for PromQLhistogram_quantile()over exponential (native) histograms.Support for PromQLhistogram_quantile()over classic histograms whereleis not an explicit child output.Support for PromQLhistogram_count(),histogram_sum()andhistogram_avg()on native histograms.Support implicit conversion from an instant selector to a range selector for range-vector functions.PromQL functions accept any numeric range vector.Support for PromQLincrease()on exponential histograms.Support for PromQL instant queries.Support for ESQL parameters in PromQL label matchers: #148620Bundle flag for PromQL math functions.Support for nested across-series aggregates in PromQL.Support for the PromQLoffsetmodifier, implemented as a constant time shift of the evaluation timestamp.Support post-processing STATS commands after PROMQL source commands.Unknown PromQL functions now make the error message "Unknown PromQL function".PromQL scalar() function support.Support for the top-level PromQLor(UNION) set operator between two instant vectors.Support for PromQLsum()operator on exponential histograms.Support for PromQL time() function.Support for PromQL time extraction functions: month(), day_of_month(), day_of_week(), day_of_year(), hour(), minute().Queries for unmapped fields return no data instead of an error.Support for PromQLwithoutgrouping.Support for PromQL year() function.Support for pushing down EVAL with SCORE https://github.com/elastic/elasticsearch/issues/133462QSTR functionGuards a fix for the boost parameter in QueryString queriesListing queries and getting information on a specific query.Multivalued query parametersTop-levelsettingsobject on the_queryrequest body, mirroring in-query SET keys.Support options in the query string function.Use RangeQuery for BinaryComparison on DateTime fields.Fixes reset calculation in rates where partitioning data into multiple slices can lead to incorrect results.Rate and increase calculations use interpolation at the boundaries between time bucketsV3 fixes a bug on how we handle single-value time buckets for INCREASE with the sole value falling onto the bucket boundary.Supports the REGISTERED_DOMAIN command.Fix the planning of| ENRICH _remote:policywhen there's a preceding| LOOKUP JOIN, see java.lang.ClassCastException when combining LOOKUP JOIN and remote ENRICHSupport for removing empty attribute in merging output.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 TopNSupport for assignment in RENAME, besides the use of `AS` keyword.Execute `RENAME` operations sequentially from left to right, see ESQL: Align RENAME behavior with EVAL for sequential processing #122250Support for requesting the "REPEAT" command.The_queryAPI now reports the original types.Support for RERANK commandResolve groupings before resolving references to groupings in the aggregations.Support for retain aggregate when grouping.Allows RLIKE to correctly handle the "empty language" flag, `#`.Support for the RLIKE operator with a list of regexes.TheROUND_TOfunction.Support for pushing the ROUND_TO function into field loading viaBlockLoaderExpression.Marks the move to the hash(doc) % shard_count routing function.Support for intra-row field references in ROW command.Support for the SAMPLE commandscore functionChange field caps response for semantic_text fields to be reported as textSupport for the SET command.Changed error messages for fields with conflicting types in different indices.This enables 60_usage.yml "Basic ESQL usage....snapshot" version test.FixSORTwhen the_sourcefield is not a sort key but is being returned.Fix sorting not allowed on histogram and _tsid.Fix sorting not allowed on _source and counters._source field mapping directives: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-source-field.htmlSupport for requesting the "SPACE" function.Fix to bug with spatial aggregations not properly supporting the WHERE clause.Invalid BBOX envelopes (e.g.Fix for spatial centroid when no records are found.Support a number of fixes and enhancements to spatial distance pushdown.Enable spatial distance function to support multi-values.Fix determination of CRS types in spatial functions when folding.Support ST_GEOHASH, ST_GEOTILE and ST_GEOHEX functionsSupport geohash, geotile and geohex in ST_INTERSECTS and ST_DISJOINT.Support geohash, geotile and geohex data types.Changed precision ofgeo_pointandcartesian_pointfields, by loading from source into WKB.Enable spatial predicate functions to support multi-values.Support for loadinggeo_shapeandcartesian_shapefields.Support for named options (quad_segs,endcap,join,mitre_limit) onST_BUFFER.Support for spatial aggregationST_CENTROID.Optimization for ST_CENTROID changed some results in cartesian data.Support for ST_CENTROID_AGG aggregation on geo_shape and cartesian_shape fields.Support for ST_CENTROID_AGG aggregation on shapes from doc-values.Support for spatial aggregationST_CONTAINSandST_WITHIN.Support for spatial aggregationST_DISJOINT.Support for functionST_DISTANCE.Support ST_ENVELOPE function (and related ST_XMIN, etc.).Fix ST_ENVELOPE to support multi-values and doc-values.Support for functionST_EXTENT_AGG.Optimization of ST_EXTENT_AGG with doc-values as IntBlock.Allow ST_EXTENT_AGG to gracefully handle missing spatial shapesSupport for spatial aggregationST_INTERSECTS.Support ST_NPOINTS function.Support for spatial simplificationST_SIMPLIFYIntroduction ofST_XandST_Y.Quantize results ofST_XandST_Yand related functionsLucene query pushdown to StartsWith and EndsWith functions.Send warnings on STATS alias collision https://github.com/elastic/elasticsearch/issues/114970Bugfix for STATS {{expression}} WHERE {{condition}} when the expression is replaced by something else on planning e.g.Support forSTD_DEVaggregation.TheGROK,DISSECT,URI_PARTS, andREGISTERED_DOMAINcommands acceptnulltyped parameters and producenullresults.Cast string literals to a desired data type.Cast string literals to a desired data type for IN predicate and more types for BinaryComparison.Cast string literals to datetime in addition and subtraction when the other side is a date or time interval.Support non-correlated subqueries in the FROM clause.Append an implicit limit to unbounded sorts in subqueries in the FROM clause.Carry over synthetic convert-function attributes introduced byResolveUnionTypesInUnionAllthrough intermediateProjectnodes (e.g.Fix forPruneColumnsleaving an inconsistent plan when anINLINE STATSsits above aUnionAll(from a subquery in FROM) or aFork.Prune no-fields in subquery project.Fix for union types when fields have conflicting types between subqueries.Fix for union types that have counter field renamed, but the data type is inconsistent with union all output.Support non-correlated subqueries in the FROM clause without implicit limit.Support ROW as a source command inside subquery in the from command.Support TS as a source command inside subquery in the from command.The_queryAPI now gives a cast recommendation if multiple types are found in certain instances.Support partial_resultsSupport for tbucket functionSupport for TBUCKET with numeric bucket count and optional from/to parameters.Support forFIRST_OVER_TIMEandLAST_OVER_TIMEontdigesttype fields.Support forMEDIANaggregation ontdigesttype fields.A bugfix we applied to the HISTOGRAM_PERCENTILE algorithm on the tdigest type.Support for the T-Digest elasticsearch field mapper and ES|QL type when they were released into tech preview.Support for configuring T-Digest elasticsearch field as a time series metric.Support for the literalmsuffix as an alias forminutein temporal amounts.Support for theTEXT_EMBEDDINGfunction for generating dense vector embeddings.Move rules for TS translation into the AnalyzerSupport 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)).Supporting grouping window in time-series where the window is smaller than the time bucketSupport grouping window in time-series for example: rate(counter, "1m") or avg_over_time(field, "5m")Support for timespan units abbreviationsSupport forTO_COUNTERfunction and the::countercast operator, which convertslong,integer, anddoublevalues to their counter-typed equivalents.Support for to_date_nanos functionTO_DENSE_VECTOR function.Support for theTO_EXPONENTIAL_HISTOGRAMconversion function.Support forTO_GAUGEfunction and the::gaugecast operator, which convertscounter_long,counter_integer, andcounter_doublevalues to their plain numeric (gauge) equivalents.Support for theleading_zerosnamed parameter.Guards a bug fix matchingTO_LOWER(f) == "".DoTO_LOWERandTO_UPPERprocess all field values?Support for convertingexponential_histogramfields viaTO_TDIGEST.Support for theanalyzeroption onTOP_SNIPPETS: choose a registered analyzer (prebuilt or plugin-contributed) by name, or omit it to default to the standard analyzer.TOP_SNIPPETS checks that the query is foldableReturns the top snippets for given text content and associated query.A fix allowing theTOP_SNIPPETSfunction to process string config parameters like the other functions.Support for highlight markup inTOP_SNIPPETSvia thehighlightoption.DoesTOP_SNIPPETSprocess all field values?Support for theorderoption inTOP_SNIPPETS.Support for theTS_COLLAPSEpipe command, which collapses PromQL results into one multi-valued row per series.Fix bug with TS command where you can't group on aliases (i.e.Support TS command in non-snapshot buildsImplicit SORT @timestamp DESC for TS queries without STATS or explicit SORT.Support for the TS_INFO command — per-time-series granularity variant of METRICS_INFO.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.Permit the data type of a field changing from TEXT to KEYWORD when being grouped on in aggregations on the TS command.Custom error for renamed timestampAdds support for binary operations (such as addition, subtraction, etc.) to the TS|STATS command.TSDB Temporality support.Support cumulative exponential histograms in _over_time aggregations.Support for tstep functionSupport for tstep bucket count variant: TSTEP(count, from, to)Support for tstep explicit bounds variant: TSTEP(step, from, to)Support timezones in the conversion utils and functions, like TO_STRING.Support multiple field mappings if appropriate conversion function is used (union types)Fix for union-types when aggregating over an inline conversion with casting operator.Fix for union-types when renaming unrelated columns.Fix for union-types when aggregating over an inline conversion with conversion function.Fix for union-types when some indexes are missing the required field.Fix for widening of short numeric types in union-types.Fix for union-types when sorting a type-casted field.Fix for resolving union type casts past projections (KEEP) and MV_EXPAND operations.Fix for non-unique attribute names in ROW and logical plans.Support unmapped using the INSIST keyword.Rename theunmapped_fieldsdefault setting from"fail"to"default".Lookup error messages were updated to make them a bit easier to understand.Supports theURI_PARTS) command.URL decoding function.URL encoding function.URL component encoding function.Does the usage information for ESQL contain a histogram oftookvalues?Supports theUSER_AGENTcommand.Support for VALUES with date_range type.Support for vector similarity functions pushdownSupport null elements on vector similarity functionsViews crud actions as index actionsFixed a bug where views are incorrectly de-duplicated.Fixed false circular view reference errors when multiple sibling views are resolved together.Support for views in cluster state (and REST API).Signals thatPUT /_query/view/{name}is exposed with@ServerlessScope(Scope.PUBLIC).Added telemetry for viewsViews with branching (requires subqueries/FORK).Basic Views with no branching (do not need subqueries or FORK).Support IN non-correlated subqueries in WHERE command.FixedTranslateTimeSeriesWithoutandTranslateTimeSeriesAggregateto associate time-series attributes with the correct time-series index when a join presents.Support IN non-correlated subqueries in WHERE command with View.Support IN non-correlated subqueries in WHERE command without View. -
Method Summary
Modifier and TypeMethodDescriptionbooleanstatic EsqlCapabilities.CapReturns the enum constant of this class with the specified name.static EsqlCapabilities.Cap[]values()Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
MV_SORT
Introduction ofMV_SORT,MV_SLICE, andMV_ZIP. Added in #106095. -
DISABLE_NULLABLE_OPTS
When we disabled some broken optimizations aroundnullable. Fixed in #105691. -
ST_X_Y
Introduction ofST_XandST_Y. Added in #105768. -
ST_X_Y_QUANTIZED
Quantize results ofST_XandST_Yand related functions -
SPATIAL_POINTS_FROM_SOURCE
Changed precision ofgeo_pointandcartesian_pointfields, by loading from source into WKB. Done in #103691. -
SPATIAL_SHAPES
Support for loadinggeo_shapeandcartesian_shapefields. Done in #104269. -
GEO_VALIDATION
Do validation check on geo_point and geo_shape fields. Done in #128259. -
GEO_NULL_LITERALS_FOLDING
Fold in spatial functions should return null for null input. -
ST_CENTROID_AGG
Support for spatial aggregationST_CENTROID. Done in #104269. -
ST_INTERSECTS
Support for spatial aggregationST_INTERSECTS. Done in #104907. -
ST_CONTAINS_WITHIN
Support for spatial aggregationST_CONTAINSandST_WITHIN. Done in #106503. -
ST_DISJOINT
Support for spatial aggregationST_DISJOINT. Done in #107007. -
ST_SIMPLIFY
Support for spatial simplificationST_SIMPLIFY -
ST_BUFFER_OPTIONS
Support for named options (quad_segs,endcap,join,mitre_limit) onST_BUFFER. Requires a wire-protocol bump, so gates new csv-spec tests away from mixed-version clusters that pre-date the change. -
AGG_VALUES
The introduction of theVALUESagg. -
AGG_VALUES_SPATIAL
Expand theVALUESagg to cover spatial types. -
AGG_MAX_MIN_UNSIGNED_LONG
Accept unsigned longs on MAX and MIN aggregations. -
AGG_VALUES_SAMPLE_UNSIGNED_LONG
Accept unsigned longs on VALUES and SAMPLE aggregations. -
ASYNC_QUERY
Does ESQL support async queries. -
FROM_OPTIONS
Deprecated.Does ESQL support FROM OPTIONS? -
STRING_LITERAL_AUTO_CASTING
Cast string literals to a desired data type. -
BASE64_DECODE_ENCODE
Base64 encoding and decoding functions. -
CASTING_OPERATOR
Support for the :: casting operator -
CASTING_OPERATOR_FOR_DATE
Support for the ::date casting operator -
CASTING_OPERATOR_FOR_HISTOGRAM_TYPES
Support for the::tdigestand::exponential_histogramcasting operators. -
MV_ORDERING_SORTED_ASCENDING
Blocks can be labelled withBlock.MvOrdering.SORTED_ASCENDINGfor optimizations. -
METRICS_COUNTER_FIELDS
Support for metrics counter fields -
STRING_LITERAL_AUTO_CASTING_EXTENDED
Cast string literals to a desired data type for IN predicate and more types for BinaryComparison. -
METADATA_FIELDS
Support for metadata fields. -
OPTIONAL_FIELDS_NULLIFY_TECH_PREVIEW
Support for optional fields (might or might not be present in the mappings) using DEFAULT/NULLIFY only. Compared toOPTIONAL_FIELDS_V5, this does not enable support for LOAD. -
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
Don't nullify aliases for Aggregate groupings. -
OPTIONAL_FIELDS_DETECT_UNMAPPED_FIELDS_IN_AGG_FILTERS
Nullify unmapped fields in agg filters likeSTATS agg_fun(field) WHERE field..., even whenAnalyzer.ResolveRefsmarks the field as unresolvable with a custom error message. -
OPTIONAL_FIELDS_FIX_UNMAPPED_LOAD_MULTI_INDEX_PATTERN
Fix for 500 error when querying multiple indices withunmapped_fields="load". See https://github.com/elastic/elasticsearch/issues/145555 -
OPTIONAL_FIELDS_FIX_NULLIFY_FLATTENED_SUBFIELD
Fix for flattened subfields not being nullified whenunmapped_fields="nullify"is set. See https://github.com/elastic/elasticsearch/issues/142616 -
OPTIONAL_FIELDS_FIX_UNMAPPED_LOAD_CONVERT_FUNCTION
Fix for 500 return code when loading from_source(henceKEYWORD) and passing to a convert function that doesn't takeKEYWORDs. See https://github.com/elastic/elasticsearch/issues/145998. -
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
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
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
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
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
Fix for aClassCastExceptionwhen 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
Null-fallback underunmapped_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
Bugfix:IndexResolver.mergedMappingscrashed withUnsupportedOperationExceptionwhen a keyword field with multi-fields (e.g.my_field.analyzed) was partially unmapped across the queried indices andSET unmapped_fields="load"was active.PotentiallyUnmappedKeywordEsFieldwas constructed with an immutable empty properties map, preventing child fields from being inserted. -
OPTIONAL_FIELDS_FIX_PARTIALLY_UNMAPPED_DENSE_VECTOR
Don't implicitly cast a partially unmappeddense_vectorfield underunmapped_fields="load". See https://github.com/elastic/elasticsearch/issues/152184. -
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
Withunmapped_fields="nullify"or"load", aDROPwildcard 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
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
Support specifically for *just* the _index METADATA field. Used by CsvTests, since that is the only metadata field currently supported. -
TIMESPAN_ABBREVIATIONS
Support for timespan units abbreviations -
COUNTER_TYPES
Support metrics counter types -
FN_MV_CONTAINS_V1
support for MV_CONTAINS function Add MV_CONTAINS function #133099 -
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
All functions that take TEXT should never emit TEXT, only KEYWORD. #114334 -
INLINESTATS
Support for theINLINESTATSsyntax. -
INLINESTATS_V2
Support for the expressions in grouping inINLINESTATSsyntax. -
AGG_TOP
Support for aggregation functionTOP. -
AGG_MAX_MIN_BOOLEAN_SUPPORT
Support for booleans in aggregationsMAXandMIN. -
AGG_MAX_MIN_IP_SUPPORT
Support for ips in aggregationsMAXandMIN. -
AGG_MAX_MIN_STRING_SUPPORT
Support for strings in aggregationsMAXandMIN. -
AGG_TOP_BOOLEAN_SUPPORT
Support for booleans inTOPaggregation. -
AGG_TOP_IP_SUPPORT
Support for ips inTOPaggregation. -
AGG_TOP_STRING_SUPPORT
Support forkeywordandtextfields inTOPaggregation. -
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
Support for the extra "map" field inTOPaggregation. -
FIX_AGG_TOP_WITH_OUTPUT_FIELD_SURROGATE
Fix for a bug when surrogating aTOPwith limit 1 and output field. -
CASE_MV
CASEproperly handling multivalue conditions. -
CASE_FOLD_TEMPORAL_AMOUNT
CASEfolding with DATE_PERIOD and TIME_DURATION return types. -
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
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
Support for theflatteneddata type in ES|QL, which loads flattened fields as JSON objects. -
FLATTENED_DATATYPE_SORTED_KEYS
Flattened field keys are returned in alphabetical order. -
FLATTENED_DATATYPE_NULL_VALUE
Flattened fields applynull_valuereplacement when loading from_source, matching the doc-values behaviour applied at index time. -
FIELD_EXTRACT_FUNCTION
Support for thefield_extractfunction, which reads a sub-key from aflattenedfield root. -
FIELD_EXTRACT_FLATTENED_PUSHDOWN
Pushdown optimizations forfield_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 toBETWEEN) 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 theSingleValueQuerywarning 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
The per-row evaluator forfield_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 forVALUE_NULL, instead of always going throughparser.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 legacyExpected text at <line>:<col> but found START_ARRAYwarning instead of the new value. -
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 underproperties) instead ofnull. 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 thannull) 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 returnsnull. -
FLATTENED_ROOT_STRINGIFIES_MAPPED_SUBFIELDS
Aflattenedroot 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 mappedlongsub-field reads back as"200", not the native200) and every key is present, including a baretextsub-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_codeorattributes.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
Optimization for ST_CENTROID changed some results in cartesian data. #108713 -
METADATA_IGNORED_FIELD
Support for requesting the "_ignored" metadata field. -
LOOKUP_V4
LOOKUP command with - tables using syntax"tables": {"type": [<values>]}- fixed variable shadowing - fixed Join.references(), requiring breaking change to Join serialization -
REPEAT
Support for requesting the "REPEAT" command. -
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
Support implicit casting for union typed fields that are mixed with date and date_nanos type. -
NAMED_POSITIONAL_PARAMETER
Support for named or positional parameters in EsqlQueryRequest. -
UNION_TYPES
Support multiple field mappings if appropriate conversion function is used (union types) -
UNMAPPED_FIELDS
Support unmapped using the INSIST keyword. -
ST_DISTANCE
Support for functionST_DISTANCE. Done in #108764. -
ST_EXTENT_AGG
Support for functionST_EXTENT_AGG. -
ST_EXTENT_AGG_DOCVALUES
Optimization of ST_EXTENT_AGG with doc-values as IntBlock. -
SPATIAL_AGGS_FILTERING
Fix to bug with spatial aggregations not properly supporting the WHERE clause. Fixes #142329. -
SPATIAL_FUNCTIONS_FIX_CRSTYPE_FOLDING
Fix determination of CRS types in spatial functions when folding. -
SPATIAL_PREDICATES_SUPPORT_MULTIVALUES
Enable spatial predicate functions to support multi-values. Done in #112063. -
SPATIAL_DISTANCE_SUPPORTS_MULTIVALUES
Enable spatial distance function to support multi-values. Done in #114836. -
SPATIAL_DISTANCE_PUSHDOWN_ENHANCEMENTS
Support a number of fixes and enhancements to spatial distance pushdown. Done in #112938. -
SPATIAL_CENTROID_NO_RECORDS
Fix for spatial centroid when no records are found. -
ST_CENTROID_AGG_SHAPES
Support for ST_CENTROID_AGG aggregation on geo_shape and cartesian_shape fields. -
ST_CENTROID_AGG_SHAPES_DOC_VALUES
Support for ST_CENTROID_AGG aggregation on shapes from doc-values. -
ST_ENVELOPE
Support ST_ENVELOPE function (and related ST_XMIN, etc.). -
ST_ENVELOPE_MV_FIX
Fix ST_ENVELOPE to support multi-values and doc-values. -
ST_NPOINTS
Support ST_NPOINTS function. -
SPATIAL_GRID
Support ST_GEOHASH, ST_GEOTILE and ST_GEOHEX functions -
SPATIAL_GRID_TYPES
Support geohash, geotile and geohex data types. Done in #129581 -
SPATIAL_GRID_INTERSECTS
Support geohash, geotile and geohex in ST_INTERSECTS and ST_DISJOINT. Done in #133546 -
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
Support for quoting index sources in double quotes. -
AGG_WEIGHTED_AVG
Support for WEIGHTED_AVG function. -
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
When pushing downSTATS 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
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
Fix for union-types when aggregating over an inline conversion with conversion function. Done in #110652. -
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
Fix for union-types when renaming unrelated columns. https://github.com/elastic/elasticsearch/issues/111452 -
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
Support for assignment in RENAME, besides the use of `AS` keyword. -
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
Support for retain aggregate when grouping. See ES|QL: columns not projected away despite KEEP #126026 -
UNION_TYPES_MISSING_FIELD
Fix for union-types when some indexes are missing the required field. Done in #111932. -
UNION_TYPES_NUMERIC_WIDENING
Fix for widening of short numeric types in union-types. Done in #112610 -
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
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
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
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
Use RangeQuery for BinaryComparison on DateTime fields. -
ENRICH_STRICT_RANGE_TYPES
Enforce strict type checking on ENRICH range types, and warnings for KEYWORD parsing at runtime. Done in #115091. -
UNIQUE_NAMES
Fix for non-unique attribute names in ROW and logical plans. https://github.com/elastic/elasticsearch/issues/110541 -
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
When resolving renames, consider allAttributes in the plan, not just theReferenceAttributes. -
MV_PSERIES_WEIGHTED_SUM
Adds theMV_PSERIES_WEIGHTED_SUMfunction 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
Support for match operator as a colon. Previous support for match operator as MATCH has been removed -
NO_META
Removing support for theMETAkeyword. -
COMBINE_BINARY_COMPARISONS
Add CombineBinaryComparisons rule. -
DATE_NANOS_TYPE
Support for nanosecond dates as a data type -
TO_DATE_NANOS
Support for to_date_nanos function -
DATE_NANOS_BINARY_COMPARISON
Support for date nanos type in binary comparisons -
DATE_NANOS_COMPARE_TO_MILLIS
Support for mixed comparisons between nanosecond and millisecond dates -
DATE_NANOS_IMPLICIT_CASTING
Support implicit casting of strings to date nanos -
LEAST_GREATEST_FOR_DATENANOS
Support Least and Greatest functions on Date Nanos type -
DATE_NANOS_DATE_EXTRACT
support date extract function for date nanos -
DATE_NANOS_ADD_SUBTRACT
Support add and subtract on date nanos -
DATE_TRUNC_DATE_NANOS
Support for date_trunc function on date nanos type -
DATE_NANOS_BUCKET
Support date nanos values as the field argument to bucket -
DATE_NANOS_AGGREGATIONS
support aggregations on date nanos -
DATE_NANOS_IN_OPERATOR
Support theInoperator for date nanos -
DATE_NANOS_DATE_FORMAT
Support running date format function on nanosecond dates -
DATE_NANOS_DATE_DIFF
support date diff function on date nanos type, and mixed nanos/millis -
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
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
Support for date nanos in lookup join. Done in #127962 -
DATE_PARSE_TZ
DATE_PARSE supports reading timezones -
LEAST_GREATEST_FOR_DATES
Support for datetime in least and greatest functions -
COMBINE_DISJUNCTIVE_CIDRMATCHES
Support CIDRMatch in CombineDisjunctions rule. -
ASYNC_QUERY_STATUS_HEADERS
Support sending HTTP headers about the status of an async query. -
ASYNC_QUERY_STATUS_HEADERS_FIX
Fix async headers not being sent on "get" requests -
BUCKET_INCLUSIVE_UPPER_BOUND
Consider the upper bound when computing the interval in BUCKET auto mode. -
DATE_TRUNC_WITH_ARBITRARY_INTERVALS
Enhanced DATE_TRUNC with arbitrary month and year intervals. (#120302) -
SHORT_ERROR_MESSAGES_FOR_UNSUPPORTED_FIELDS
Changed error messages for fields with conflicting types in different indices. -
BUCKET_WHOLE_NUMBER_AS_SPAN
Support for the whole number spans in BUCKET function. -
COLUMN_METADATA_BUCKET_V2
Expose resolved bucket interval in_metaonBUCKETgrouping columns, gated behind theSET column_metadata=truesetting. Without the setting, non-approximation metadata is omitted. -
MIXED_NUMERIC_TYPES_IN_COALESCE
Allow mixed numeric types in coalesce -
SPACE
Support for requesting the "SPACE" function. -
CAST_STRING_LITERAL_TO_TEMPORAL_AMOUNT
Support explicit casting from string literal to DATE_PERIOD or TIME_DURATION. -
CATEGORIZE_V6
Supported the text categorization function "CATEGORIZE". -
CATEGORIZE_MULTIPLE_GROUPINGS
Support for multiple groupings in "CATEGORIZE". -
QSTR_FUNCTION
QSTR function -
QSTR_FUNCTION_BOOST_FIX
Guards a fix for the boost parameter in QueryString queries -
MATCH_FUNCTION
MATCH function -
KQL_FUNCTION
KQL function -
KQL_FUNCTION_OPTIONS
Support for optional parameters in KQL function (case_insensitive, time_zone, default_field, boost). -
HASH_FUNCTION
Hash function -
HASH_FUNCTION_ALIASES_V1
Hash function aliases such as MD5 -
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
Compute year differences in full calendar years. -
SORTING_ON_SOURCE_AND_COUNTERS_FORBIDDEN
Fix sorting not allowed on _source and counters. -
SORTING_ON_HISTOGRAM_AND_TSID_FORBIDDEN
Fix sorting not allowed on histogram and _tsid. -
SORT_RETURNING_SOURCE_OK
FixSORTwhen the_sourcefield is not a sort key but is being returned. -
SOURCE_FIELD_MAPPING
_source field mapping directives: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-source-field.html -
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
Allow filter per individual aggregation. -
PER_AGG_FILTERING_ORDS
FixPER_AGG_FILTERINGgrouped by ordinals. -
STD_DEV
Support forSTD_DEVaggregation. -
FIX_STATS_BY_FOLDABLE_EXPRESSION
Fix for https://github.com/elastic/elasticsearch/issues/114714 -
FUNCTION_STATS
Adding stats for functions (stack telemetry) -
FIX_FILTER_PUSHDOWN_PAST_STATS
Fix for an optimization that caused wrong results https://github.com/elastic/elasticsearch/issues/115281 -
STATS_ALIAS_COLLISION_WARNINGS
Send warnings on STATS alias collision https://github.com/elastic/elasticsearch/issues/114970 -
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
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_SYNTAXSupport simplified syntax for named parameters for field and function names. -
ADD_LIMIT_INSIDE_MV_EXPAND
Fix pushdown of LIMIT past MV_EXPAND -
DELAY_DEBUG_FN
-
METADATA_FIELDS_REMOTE_TEST
Capability for remote metadata test -
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
Support implicit casting from string literal to DATE_PERIOD or TIME_DURATION. -
JOIN_LOOKUP_V12
LOOKUP JOIN -
LOOKUP_JOIN_TEXT
LOOKUP JOIN with TEXT fields on the right (right side of the join) (#119473) -
JOIN_LOOKUP_SKIP_MV_WARNINGS
LOOKUP JOIN skipping MVs and sending warnings (https://github.com/elastic/elasticsearch/issues/118780) -
ASYNC_OPERATOR_WARNINGS_FIX
Fix for async operator sometimes completing the driver without emitting the stored warnings -
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
Fix for https://github.com/elastic/elasticsearch/issues/117054 -
FIX_STATS_BY_FOLDABLE_EXPRESSION_2
Fix for https://github.com/elastic/elasticsearch/issues/114714, again -
METADATA_SCORE
Support the "METADATA _score" directive to enable _score column. -
MATCH_ADDITIONAL_TYPES
Additional types for match function and operator -
FIXED_REGEX_FOLD
Fix for regex folding with case-insensitive pattern https://github.com/elastic/elasticsearch/issues/118371 -
FULL_TEXT_FUNCTIONS_DISJUNCTIONS
Full text functions can be used in disjunctions -
SEMANTIC_TEXT_FIELD_CAPS
Change field caps response for semantic_text fields to be reported as text -
OPTIONAL_NAMED_ARGUMENT_MAP_FOR_FUNCTION
Support named argument for function in map format. -
LOOKUP_JOIN_NO_ALIASES
Disabled support for index aliases in lookup joins -
FULL_TEXT_FUNCTIONS_DISJUNCTIONS_COMPUTE_ENGINE
Full text functions can be used in disjunctions as they are implemented in compute engine -
MATCH_FUNCTION_OPTIONS
Support match options in match function -
QUERY_STRING_FUNCTION_OPTIONS
Support options in the query string function. -
AGGREGATE_METRIC_DOUBLE_V0
Enable aggregate_metric_double in non-snapshot builds -
AGGREGATE_METRIC_DOUBLE_DEFAULT_METRIC
Support running all aggregations on aggregate_metric_double using the default metric -
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
Return 0 (instead of null) for count on AMD when there are no rows -
AGGREGATE_METRIC_DOUBLE_BINARY_OPERATORS
Support binary operators for aggregate_metric_double -
CHANGE_POINT
Support change point detection "CHANGE_POINT". -
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
Fixes a series of issues with inlinestats which had an incomplete implementation after lookup and inlinestats were refactored. -
INLINE_STATS
Renamed `INLINESTATS` to `INLINE STATS`. -
INLINE_STATS_PRECEEDED_BY_SORT
Added support for having INLINE STATS preceded by a SORT clause, now executable in certain cases. -
SUPPORT_PARTIAL_RESULTS
Support partial_results -
RERANK
Support for RERANK command -
COMPLETION
Support for COMPLETION command -
MIXED_NUMERIC_TYPES_IN_CASE_GREATEST_LEAST
Allow mixed numeric types in conditional functions - case, greatest and least -
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
Full text functions can be scored when being part of a disjunction -
TO_LOWER_MV
DoTO_LOWERandTO_UPPERprocess all field values? -
CHUNK_MV
DoesCHUNKprocess all field values? -
DOUBLE_PARAMETER_MARKERS_FOR_IDENTIFIERS
Use double parameter markers to represent field or function names. -
NON_FULL_TEXT_FUNCTIONS_SCORING
Non full text functions do not contribute to score -
REPORT_ORIGINAL_TYPES
The_queryAPI now reports the original types. -
METRICS_COMMAND
Deprecated.The metrics command -
METRICS_GROUP_BY_ALL
Enables automatically grouping by all dimension fields in TS mode queries -
DOCUMENTS_FOUND_AND_VALUES_LOADED
Are thedocuments_foundandvalues_loadedfields available in the response and profile? -
INDEX_COMPONENT_SELECTORS
Index component selector syntax (my-data-stream-name::failures) -
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_LAYOUTSupercedesMAKE_NUMBER_OF_CHANNELS_CONSISTENT_WITH_LAYOUT. -
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
When creating constant null blocks inValuesSourceReaderOperator, 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
Listing queries and getting information on a specific query. -
FORK_V9
Support for FORK out of snapshot -
FORK_UNION_TYPES
Support for union types in FORK -
SUBQUERY_IN_FROM_COMMAND
Support non-correlated subqueries in the FROM clause. -
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_SUBQUERYAppend an implicit limit to unbounded sorts in subqueries in the FROM clause. -
SUBQUERY_IN_FROM_COMMAND_PRUNE_NO_FIELDS
Prune no-fields in subquery project. -
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_ATTRIBUTESCarry over synthetic convert-function attributes introduced byResolveUnionTypesInUnionAllthrough intermediateProjectnodes (e.g. those produced byRENAME,KEEP, orDROP) sitting above theUnionAll. Without this, the synthetic$$<field>$converted_to$<type>attribute referenced by the rewritten convert function would not be visible above theProject, 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_RENAMEFix 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
Fix forPruneColumnsleaving an inconsistent plan when anINLINE STATSsits above aUnionAll(from a subquery in FROM) or aFork. -
WHERE_IN_SUBQUERY
Support IN non-correlated subqueries in WHERE command. -
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
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
Support ROW as a source command inside subquery in the from command. -
SUBQUERY_WITH_TS
Support TS as a source command inside subquery in the from command. -
WHERE_IN_SUBQUERY_WITH_TS
FixedTranslateTimeSeriesWithoutandTranslateTimeSeriesAggregateto associate time-series attributes with the correct time-series index when a join presents. -
VIEWS_IN_CLUSTER_STATE
Support for views in cluster state (and REST API). -
VIEWS_WITH_NO_BRANCHING
Basic Views with no branching (do not need subqueries or FORK). -
VIEWS_CRUD_AS_INDEX_ACTIONS
Views crud actions as index actions -
VIEWS_PUT_SERVERLESS_SCOPE
Signals thatPUT /_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 returnssupported=false. -
VIEWS_WITH_BRANCHING
Views with branching (requires subqueries/FORK). -
VIEWS_TELEMETRY
Added telemetry for views -
VIEWS_DEDUPLICATION_BUGFIX
Fixed a bug where views are incorrectly de-duplicated. -
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
Support for theleading_zerosnamed parameter. -
USAGE_CONTAINS_TOOK
Does the usage information for ESQL contain a histogram oftookvalues? -
LOADING_NON_INDEXED_IP_FIELDS
Support loading of ip fields if they are not indexed. -
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
Support for keeping `DROP` attributes when resolving field names. see ES|QL: no matches for pattern #126418 -
DROP_WITH_WILDCARD_AFTER_LOOKUP_JOIN
Correctly ask for all fields from lookup indices even when there is e.g. aDROP *fieldafter. See ES|QL: missing columns for wildcard drop after lookup join #129561 -
SCORE_FUNCTION
score function -
SAMPLE_V3
Support for the SAMPLE command -
SUGGESTED_CAST
The_queryAPI now gives a cast recommendation if multiple types are found in certain instances. -
TO_COUNTER
Support forTO_COUNTERfunction and the::countercast operator, which convertslong,integer, anddoublevalues to their counter-typed equivalents. -
TO_GAUGE
Support forTO_GAUGEfunction and the::gaugecast operator, which convertscounter_long,counter_integer, andcounter_doublevalues to their plain numeric (gauge) equivalents. -
TO_LOWER_EMPTY_STRING
Guards a bug fix matchingTO_LOWER(f) == "". -
INCREASE
Support for INCREASE, DELTA timeseries aggregations. -
DELTA_TS_AGG
-
CLAMP_FUNCTIONS
-
RESOLVE_GROUPINGS_BEFORE_RESOLVING_REFERENCES_TO_GROUPINGS_IN_AGGREGATIONS
public static final EsqlCapabilities.Cap RESOLVE_GROUPINGS_BEFORE_RESOLVING_REFERENCES_TO_GROUPINGS_IN_AGGREGATIONSResolve groupings before resolving references to groupings in the aggregations. -
AGG_SAMPLE
Support for the SAMPLE aggregation function -
FULL_TEXT_FUNCTIONS_IN_STATS_WHERE
Full text functions in STATS -
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
Allow the merging of the children to useAliases, instead of justReferenceAttributes. -
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
TheROUND_TOfunction. -
COPY_SIGN
Support for theCOPY_SIGNfunction. -
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
LuceneQueryEvaluatorrewrites 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
Support parameters for LIMIT command. -
NORMALIZED_LIMIT_ERROR_MESSAGE
Changed and normalized the LIMIT error message. -
DENSE_VECTOR_FIELD_TYPE_RELEASED
Dense vector field type support -
ENABLE_LOOKUP_JOIN_ON_ALIASES
Enable support for index aliases in lookup joins -
UPDATE_LOOKUP_JOIN_ERROR_MESSAGES
Lookup error messages were updated to make them a bit easier to understand. -
RLIKE_WITH_EMPTY_LANGUAGE_PATTERN
Allows RLIKE to correctly handle the "empty language" flag, `#`. -
ENABLE_LOOKUP_JOIN_ON_REMOTE
Enable support for cross-cluster lookup joins. -
REMOTE_ENRICH_AFTER_LOOKUP_JOIN
Fix the planning of| ENRICH _remote:policywhen there's a preceding| LOOKUP JOIN, see java.lang.ClassCastException when combining LOOKUP JOIN and remote ENRICH -
MATCH_PHRASE_FUNCTION
MATCH PHRASE function -
KNN_FUNCTION_V5
Support knn function -
TEXT_EMBEDDING_FUNCTION
Support for theTEXT_EMBEDDINGfunction for generating dense vector embeddings. -
LIKE_WITH_LIST_OF_PATTERNS
Support for the LIKE operator with a list of wildcards. -
LIKE_LIST_ON_INDEX_FIELDS
-
PARAMETER_FOR_SAMPLE
Support parameters for SAMPLE command. -
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
Support for the mv_expand target attribute should be retained in its original position. see ES|QL: inconsistent column order #129000 -
SET_COMMAND
Support for the SET command. -
DATE_TRUNC_TIMEZONE_SUPPORT
Support timezones in DATE_TRUNC and dependent functions. -
DATE_DIFF_TIMEZONE_SUPPORT
Support timezones in DATE_DIFF. -
KQL_QSTR_TIMEZONE_SUPPORT
Support timezones in KQL and QSTR. -
TYPE_CONVERSION_TIMEZONE_SUPPORT
Support timezones in the conversion utils and functions, like TO_STRING. -
DATE_FORMAT_DATE_PARSE_TIMEZONE_SUPPORT
Support timezones in DATE_FORMAT and DATE_PARSE. -
ADD_SUB_OPERATOR_TIMEZONE_SUPPORT
Support timezones in + and - operators. -
EXPLAIN
(Re)Added EXPLAIN command -
EXPLAIN_WITH_REMOTE_PLANS
EXPLAIN command with remote plans (5 columns: cluster, node, role, type, plan) -
RLIKE_WITH_LIST_OF_PATTERNS
Support for the RLIKE operator with a list of regexes. -
FUSE_V6
FUSE command -
LIKE_ON_INDEX_FIELDS
Support improved behavior for LIKE operator when used with index fields. -
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
Cosine vector similarity function -
FIXED_PROFILE_SERIALIZATION
Fixed some profile serialization issues -
LOOKUP_JOIN_ON_MULTIPLE_FIELDS
Support for lookup join on multiple fields. -
DOT_PRODUCT_VECTOR_SIMILARITY_FUNCTION
Dot product vector similarity function -
L1_NORM_VECTOR_SIMILARITY_FUNCTION
l1 norm vector similarity function -
L2_NORM_VECTOR_SIMILARITY_FUNCTION
l2 norm vector similarity function -
CATEGORIZE_OPTIONS
Support for the options field of CATEGORIZE. -
DECAY_FUNCTION
Decay function for custom scoring. -
DECAY_FUNCTION_PARAMETER_CONVERSION
Fix conversions for parameters forDECAY. -
DECAY_FUNCTION_UNSIGNED_LONG
Support DECAY with unsigned_long parameters forDECAY. -
DECAY_GEO_POINT_ORIGIN_LAT_LON_FIX
Fix latitude/longitude ordering of the in geo-pointDECAY. Previously the origin was serialized as "lon,lat" before being parsed byGeoUtils.parseGeoPoint, which expects "lat,lon", effectively swapping the origin's coordinates and producing incorrect distances wheneverlat != lon. -
CORRECT_SKIPPED_SHARDS_COUNT
Support correct counting of skipped shards. -
MAGNITUDE_SCALAR_VECTOR_FUNCTION
-
DENSE_VECTOR_FIELD_TYPE_BYTE_ELEMENTS
Byte elements dense vector field type support. -
DENSE_VECTOR_FIELD_TYPE_BIT_ELEMENTS
Bit elements dense vector field type support. -
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
Support null elements on vector similarity functions -
HAMMING_VECTOR_SIMILARITY_FUNCTION
Support for vector Hamming distance. -
TBUCKET
Support for tbucket function -
TSTEP
Support for tstep function -
TSTEP_EXPLICIT_BOUNDS
Support for tstep explicit bounds variant: TSTEP(step, from, to) -
TSTEP_BUCKET_COUNT
Support for tstep bucket count variant: TSTEP(count, from, to) -
FIX_TSTEP_BUCKET_ROUNDING
Support lower-open upper-closed boundaries (*;*] in addition to lower-closed upper-open [*;*) -
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 byTSTEPand PromQL range queries. Previously such queries returned empty results because the per-sample window filter looked one bucket past the correct boundary. -
NAME_QUALIFIERS
Allow qualifiers in attribute names. -
URL_ENCODE
URL encoding function. -
URL_ENCODE_COMPONENT
URL component encoding function. -
URL_DECODE
URL decoding function. -
LOOKUP_JOIN_ON_BOOLEAN_EXPRESSION
Allow lookup join on boolean expressions -
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
Bugfix for lookup join with Full Text Function -
ENABLE_FORK_FOR_REMOTE_INDICES_V2
FORK with remote indices -
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
TO_DENSE_VECTOR function. -
COALESCE_DENSE_VECTOR
COALESCE function support for dense_vector type. -
QUERY_PARAMS_MULTI_VALUES
Multivalued query parameters -
FIX_PERCENTILE_PRECISION
-
INLINE_STATS_SUPPORTS_REMOTE
INLINE STATS supports remote indices -
INLINE_STATS_WITH_UNION_TYPES_IN_STUB_RELATION
-
TS_COMMAND_V0
Support TS command in non-snapshot builds -
TS_RENAME_TIMESTAMP_ERROR_MESSAGE
Custom error for renamed timestamp -
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
-
PERCENTILE_OVER_TIME
Percentile over time and other ts-aggregations -
VARIANCE_STDDEV_OVER_TIME
-
TS_LINREG_DERIVATIVE
-
TS_RATE_DATENANOS
-
TS_RATE_DATENANOS_2
-
TS_DERIV_DATENANOS
-
RATE_WITH_INTERPOLATION
Rate and increase calculations use interpolation at the boundaries between time buckets -
RATE_WITH_INTERPOLATION_V2
-
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
INLINE STATS fix incorrect prunning of null filtering https://github.com/elastic/elasticsearch/pull/135011 -
INLINE_STATS_FIX_OPTIMIZED_AS_LOCAL_RELATION
-
DENSE_VECTOR_AGG_METRIC_DOUBLE_IF_FNS
-
DENSE_VECTOR_AGG_METRIC_DOUBLE_IF_VERSION
-
FUSE_L2_NORM
FUSE L2_NORM score normalization support -
METADATA_TSID_FIELD
Support for requesting the "_tsid" metadata field. -
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
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
Fix management of plans with no columns https://github.com/elastic/elasticsearch/issues/120272 -
FIX_LIMIT_TRUNCATION_WITH_ZERO_COLUMNS
Fix LimitOperator truncation with zero columns https://github.com/elastic/elasticsearch/issues/142473 -
DOTS_IN_FUSE
Support for dots in FUSE attributes -
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 returnnullwhen any argument is multi-valued (consistent with ES|QL null-for-MV semantics). The Lucene pushdown usesRECHECKso the row-level evaluator rechecks each candidate and returnsnullfor multi-valued positions, whichFilterOperatortreats asfalse. -
NETWORK_DIRECTION
Network direction function. -
TEMPORAL_AMOUNT_M
Support for the literalmsuffix as an alias forminutein temporal amounts. -
PACK_DIMENSIONS_IN_TS
Pack dimension values in TS command -
EXPONENTIAL_HISTOGRAM_TECH_PREVIEW
Support for exponential_histogram fields in the state of when it first was released into tech preview. -
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
Adds the ability for theCaseto return values of type TDIGEST, type HISTOGRAM, and type AGGREGATE_METRIC_DOUBLE. -
HISTOGRAM_RELEASE_VERSION
Histogram field integration -
COUNT_OF_HISTOGRAM_TYPES
Support for running the Count aggregation on t-digest and exponential histogram types -
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
Create new block when filtering OrdinalBytesRefBlock -
GLOBAL_TIMEZONE_PARAMETER_WITH_OUTPUT
"time_zone" parameter in request body and inSET 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
Top-levelsettingsobject on the_queryrequest body, mirroring in-query SET keys. -
DATE_PARSE_OPTIONS
Optional options argument for DATE_PARSE -
GROK_MULTI_PATTERN
Allow multiple patterns for GROK command -
INLINE_STATS_PRUNE_COLUMN_FIX
Fix pruning of columns when shadowed in INLINE STATS -
INLINE_STATS_DOUBLE_RELEASE_FIX
Fix double release in inline stats when LocalRelation is reused -
PUSHING_DOWN_EVAL_WITH_SCORE
Support for pushing down EVAL with SCORE https://github.com/elastic/elasticsearch/issues/133462 -
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
Fix attribute equality to respect the name id of the attribute. -
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
Warning when SORT is followed by LOOKUP JOIN which does not preserve order. -
FORBID_LIMIT_BEFORE_INLINE_STATS
Temporarily forbid the use of an explicit or implicit LIMIT before INLINE STATS. -
HANDLE_DETERMINIZATION_COMPLEXITY
Catch-and-rethrow determinization complexity errors as 400s rather than 500s -
INLINE_STATS_WITH_NO_COLUMNS
https://github.com/elastic/elasticsearch/issues/136851 -
FIX_MV_CONSTANT_EQUALS_FIELD
-
BASE_CONVERSION
Support for base conversion in TO_LONG and TO_INTEGER -
FIX_REPLACE_ALIASING_EVAL_WITH_PROJECT_SHADOWING
ReplaceAliasingEvalWithProjectdid not fully account for shadowing. https://github.com/elastic/elasticsearch/issues/137019. -
CHUNK_FUNCTION_V2
Chunk function. -
VECTOR_SIMILARITY_FUNCTIONS_PUSHDOWN
Support for vector similarity functions pushdown -
FIX_MV_CONSTANT_COMPARISON_FIELD
-
FULL_TEXT_FUNCTIONS_ACCEPT_NULL_FIELD
-
FIRST_AGG_WITH_NULL_AND_MV_SUPPORT
Make FIRST agg work with null and multi-value fields. -
LAST_AGG_WITH_NULL_AND_MV_SUPPORT
Make LAST agg work with null and multi-value fields. -
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
Allow ST_EXTENT_AGG to gracefully handle missing spatial shapes -
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
Supporting grouping window in time-series where the window is smaller than the time bucket -
FIX_TIME_SERIES_WINDOW_BACKWARD
TS window functions use backward window semantics only. -
FIX_PROMQL_TIME_BUCKET_V2
PromQL uses TSTEP instead of TBUCKET, with corrected open-ended range query bounds. -
FIX_PROMQL_ROUND_TO_NEAREST
PromQLround(v, to_nearest)uses the Prometheus formula, fixing wrong rounding and floating point junk from dividing by smallto_nearestvalues. -
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
Support like/rlike parameters https://github.com/elastic/elasticsearch/issues/131356 -
PROMQL_COMMAND_V0
PromQL support in ESQL, in the state it was when first available in non-snapshot builds. -
PROMQL_MATH_V0
Bundle flag for PromQL math functions. -
ACOSH_FUNCTION
Support for the ACOSH function. -
ASINH_FUNCTION
Support for the ASINH function. -
ATANH_FUNCTION
Support for the ATANH function. -
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
Support for PromQL time() function. -
PROMQL_INSTANT_QUERY
Support for PromQL instant queries. -
ESQL_DATE_UNIT_COUNT_FN
Support for theDATE_UNIT_COUNTfunction. -
PROMQL_BUCKETS_PARAMETER
Support for deriving PromQL time buckets from [start, end, buckets] when [step] is omitted. -
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
Support for nested across-series aggregates in PromQL. E.g., avg(sum by (cluster) (rate(foo[5m]))) -
PROMQL_POST_PROCESSING_STATS
Support post-processing STATS commands after PROMQL source commands. -
PROMQL_SCALAR
PromQL scalar() function support. -
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
PromQL functions accept any numeric range vector. ES|QL translates mismatched counter/gauge types with implicitto_counter()orto_gauge()wraps based on each function'sPromqlFunctionDefinition.CounterSupport. -
PROMQL_WITHOUT_GROUPING
Support for PromQLwithoutgrouping. -
FIX_PROMQL_WITHOUT_OUTPUT
Corrected output shape for PromQLwithout: awithoutover 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_timeseriescolumn. Gates the affected csv-spec tests so mixed-version clusters skip them on older nodes that still emit_timeseries. -
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
Support for the PromQLoffsetmodifier, implemented as a constant time shift of the evaluation timestamp. Heterogeneous offsets within a single source-backed binary operator remain unsupported. -
TS_COLLAPSE
Support for theTS_COLLAPSEpipe command, which collapses PromQL results into one multi-valued row per series. -
ESQL_WITHOUT_GROUPING
Support for `WITHOUT` grouping function that excludes specific dimensions from time-series grouping. -
KNN_FUNCTION_OPTIONS_K_VISIT_PERCENTAGE
KNN function adds support for k and visit_percentage options -
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
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
Returns the top snippets for given text content and associated query. -
TOP_SNIPPETS_FUNCTION_STRING_CONFIG
A fix allowing theTOP_SNIPPETSfunction to process string config parameters like the other functions. -
TOP_SNIPPETS_MV
DoesTOP_SNIPPETSprocess all field values? -
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
https://github.com/elastic/elasticsearch/issues/138283 -
FIX_PRESENT_AND_ABSENT_ON_STATS_WITH_FALSE_FILTER
ReplaceStatsFilteredOrNullAggWithEvalreplaced a stats with false filter with null withPresentorAbsent -
ENABLE_REDUCE_NODE_LATE_MATERIALIZATION
Enables late materialization on node reduce. See also QueryPragmas.NODE_LEVEL_REDUCTION -
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
ReplaceStatsFilteredOrNullAggWithEvalnow replaces anAggregateFunctionwith null value with anEval. https://github.com/elastic/elasticsearch/issues/137544 -
FIX_SUM_AGG_LONG_OVERFLOW
Makes SUM(long) agg return null+warning instead of a 500 overflow. -
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
Support for requesting the "_tier" metadata field. -
FIX_FOLD_COALESCE
Fix folding of coalesce function https://github.com/elastic/elasticsearch/issues/139344 -
DATE_TIME_EXCEPTIONS_HANDLED
Exceptions parsing date-times are thrown as IllegalArgumentException -
ENRICH_DENSE_VECTOR_BUGFIX
Enrich works with dense_vector fields -
DENSE_VECTOR_ARITHMETIC
Support for dense_vector arithmetic operations (+, -, *, /) -
DENSE_VECTOR_SCALAR_ARITHMETIC
Support for arithmetic operations (+, -, *, /) between dense_vector and scalar values -
DENSE_VECTOR_AGG_FUNCTIONS
Dense_vector aggregation functions -
ROUTING_FUNCTION_UPDATE
Marks the move to the hash(doc) % shard_count routing function. Added in #137062. -
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
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
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
Adds a conditional block loader for text fields that prefers using the sub-keyword field whenever possible. -
METADATA_WILDCARDS
Allow wildcards in FROM METADATA, eg FROM idx METADATA _ind* -
RATE_FIX_RESETS_MULTIPLE_SEGMENTS
Fixes reset calculation in rates where partitioning data into multiple slices can lead to incorrect results. -
APPROXIMATION_V7
Support query approximation. -
FIX_SCORE_OPERATOR_PLANNING
Create a ScoreOperator only when shard contexts are available -
PERIODIC_EMIT_PARTIAL_AGGREGATION_RESULTS
Periodically emit partial aggregation results when the number of groups exceeds the threshold. -
METADATA_SIZE_FIELD
Support for requesting the "_size" metadata field when the mapper-size plugin is enabled. -
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
Support for configuring T-Digest elasticsearch field as a time series metric. -
TO_EXPONENTIAL_HISTOGRAM
Support for theTO_EXPONENTIAL_HISTOGRAMconversion function. -
TO_TDIGEST_FROM_EXPONENTIAL_HISTOGRAM
Support for convertingexponential_histogramfields viaTO_TDIGEST. -
TDIGEST_MEDIAN
Support forMEDIANaggregation ontdigesttype fields. -
TDIGEST_FIRST_LAST_OVER_TIME
Support forFIRST_OVER_TIMEandLAST_OVER_TIMEontdigesttype fields. -
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
Fix bug with TS command where you can't group on aliases (i.e. `by c = cluster`) -
TS_IMPLICIT_TIMESTAMP_SORT
Implicit SORT @timestamp DESC for TS queries without STATS or explicit SORT. -
INLINE_STATS_DROP_GROUPINGS_FIX
Fixes https://github.com/elastic/elasticsearch/issues/139359 -
MMR_V2
Support for the MMR result diversification command -
URI_PARTS_COMMAND
Supports theURI_PARTS) command. -
METRICS_INFO_COMMAND
Support for the METRICS_INFO command. -
TBUCKET_FROM_TO
Support for TBUCKET with numeric bucket count and optional from/to parameters. -
REGISTERED_DOMAIN_COMMAND
Supports the REGISTERED_DOMAIN command. -
STR_COMMANDS_ACCEPT_NULL
TheGROK,DISSECT,URI_PARTS, andREGISTERED_DOMAINcommands acceptnulltyped parameters and producenullresults. -
EXTERNAL_COMMAND
Support for the EXTERNAL command (datasource access). -
EXTERNAL_CSV_IP_SUPPORT
Support for the EXTERNAL command (datasource access). -
EXTERNAL_CSV_HEADER_ROW_OPTION
Support for theheader_row(and the relatedcolumn_prefix) CSV options on theEXTERNALcommand, used to read headerless CSV files. -
EXTERNAL_CSV_DATETIME_FORMAT_ES_DATE_FORMATTER
The CSV/TSV file-leveldatetime_formatoption compiles to an ElasticsearchDateFormatterrather than a raw JDKDateTimeFormatter: zone offsets are honored, date-only patterns parse, and named formats anda||bcomposites are accepted. -
EXTERNAL_SOURCE_READ_SCHEMA
Per-file planner-resolved read schema is threaded down to runtime readers viaFileSplit.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
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 withUnknown column [_file.*]when CCQ routes a query against a remote cluster on a pre-feature build, sofileMetadata*csv-spec tests must be gated on this capability rather than onEXTERNAL_COMMAND. -
EXTERNAL_SOURCE_STANDARD_METADATA_COLUMNS
Standard ES metadata columns (_id,_index,_version,_source, ...) accepted in theMETADATAclause of external-datasetFROM. Pre-feature coordinators reject the names withUnknown column; tests exercising these columns gate on this capability. -
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
Correct decoding of aLISTleaf reached through aSTRUCT(e.g.answers.textwhereanswersisstruct<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 fromEXTERNAL_SOURCE_NESTED_STRUCT_PROJECTIONso 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
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
FROM <dataset>resolved through the same pipeline asFROM <index>(Phase 1: dataset-only patterns). -
FIX_PRUNE_RENAMED_DERIVED_EXTERNAL_GROUPING
PruneRedundantAggregateGroupingsrebuilds 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 theoptimized incorrectly due to missing referencesverification failure that old coordinators in a mixed cluster still hit. -
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 ofnull. Genuinely missing fields (a row shorter than the schema) and empty fields on non-string columns still read asnull. 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 tonull. -
DATASOURCE_FILE_READERS_NO_TEXT_TYPE
Datasource file plugins (CSV, ORC, Parquet) no longer returnTEXTtypes, onlyKEYWORD. See #145334. Used to gate the affectedexternal-basic.csv-spectests so they are skipped on mixed clusters where a pre-change coordinator still maps string typed-schema/Parquet-String/ORC-String toTEXT- see #145352 and #145353. -
INLINE_STATS_WITH_CONSTANTS
https://github.com/elastic/elasticsearch/issues/142219 -
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
Support for the TS_INFO command — per-time-series granularity variant of METRICS_INFO. -
DENSE_VECTOR_SUM_FUNCTION
Dense_vector SUM aggregation function -
FIX_AGG_FIRST_LAST_FOLDABLES_IN_SORT_FIELD
Support passing constants and null in the second parameter of FIRST/LAST aggs. -
ROW_FIELD_RESOLUTION
Support for intra-row field references in ROW command. https://github.com/elastic/elasticsearch/issues/140217 -
FIRST_LAST_AGG_ON_INTS
Support aggregating on integers in FIRST/LAST. -
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
Support for dense_vector equality and inequality operators (==, !=). -
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
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
Fix for full-text functions failing on renamed fields. https://github.com/elastic/elasticsearch/issues/143859 -
TOP_SNIPPETS_FOLDABLE_QUERY_CHECK
TOP_SNIPPETS checks that the query is foldable -
FIX_FORK_UNMAPPED_NULLIFY
Fixes an analysis bug inFORKwithunmapped_fields="nullify". Preserve existing attributeNameIds 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
Support for pushing the ROUND_TO function into field loading viaBlockLoaderExpression. -
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
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
Support for highlight markup inTOP_SNIPPETSvia thehighlightoption. -
TOP_SNIPPETS_ORDER
Support for theorderoption inTOP_SNIPPETS. -
TOP_SNIPPETS_ANALYZER
Support for theanalyzeroption onTOP_SNIPPETS: choose a registered analyzer (prebuilt or plugin-contributed) by name, or omit it to default to the standard analyzer. -
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
Enables the SORT | LIMIT n BY expr1, expr2 support, see ESQL_LIMIT_BY for more context -
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
Fix pushdown of LIMIT BY past MV_EXPAND when grouping on expanded fields. See #148513. -
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
TSDB Temporality support. -
TSDB_TEMPORALITY_SUPPORT_V9
Support cumulative exponential histograms in _over_time aggregations. -
CHANGE_POINT_SUPPORT_NULL_COLUMN
-
MMR_FOLDABLE_QUERY_VECTOR_FIX
MMR fixes for constant folding -
CHANGE_POINT_BY
Support the BY grouping clause in CHANGE_POINT to detect change points independently per group. -
FIX_DIV_ERROR_MESSAGE
-
AUTO_PARTITION_DOCS_THRESHOLD
-
UNMAPPED_FIELDS_DEFAULT_SETTING_RENAME
Rename theunmapped_fieldsdefault setting from"fail"to"default". See https://github.com/elastic/elasticsearch/issues/144833 -
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
Move rules for TS translation into the Analyzer -
FIX_SUM_OF_NULL_OPTIMIZATION
Fix forSUM(null)producing a type mismatch after surrogate expansion. See https://github.com/elastic/elasticsearch/issues/144914 -
PROPAGATE_EMPTY_RELATION_PAST_JOINS
-
USER_AGENT_COMMAND
Supports theUSER_AGENTcommand. -
FIX_SAMPLE_AFTER_KQL_OR_QSTR
Fix full-text functions being rejected after SAMPLE. -
KEYWORDS_MV_COUNT_AS_SINGLE_VALUE_FIX
-
PARQUET_ORC_STARTS_WITH_PUSHDOWN
Parquet and ORC filter pushdown for StartsWith (prefix range predicates). -
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
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
Fix forPropagateNullableincorrectly discarding surviving OR branches when a field is constrained byIS NULLorIS NOT NULLin the same AND conjunction. Previously(a IS NOT NULL OR p) AND a IS NULLwas optimized tonull AND a IS NULL(droppingp); now it correctly becomesp AND a IS NULL. Symmetric fix:(a IS NULL OR p) AND a IS NOT NULLnow correctly becomesp AND a IS NOT NULLinstead of remaining unoptimized. See https://github.com/elastic/elasticsearch/issues/141579 -
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
Support for theEMBEDDINGfunction for generating dense vector embeddings using theembeddingtask type. -
FIX_STARTS_WITH_ENDS_WITH_PUSHDOWN_ON_INDEX
Fix forSTARTS_WITHandENDS_WITHLucene pushdown on_index: use wildcard escaping instead of query-parser escaping, and honour thestringLikeOnIndexflag so the wildcard query forces string matching on metadata fields. -
LIMIT_BY_ALLOW_EVALUATABLE_GROUPING_FUNCTIONS
Allow evaluatable grouping functions (such asBUCKET) insideLIMIT ... BY. Stateful grouping functions (such asCATEGORIZE) remain restricted toSTATS. -
FIX_PUSH_COUNT_QUERY_AND_TAGS_WITH_MULTIPLE_AGGS
Fix forPushCountQueryAndTagsToSourceincorrectly replacing anAggregateExecthat has multiple aggregate functions (e.g. COUNT + MAX) with anEsStatsQueryExecthat only handles COUNT, whenCombineProjectionshad removed the grouping key from the aggregates list.See #146479
-
FORK_PRUNE_ALL_COLUMNS_FIX
Fix for column pruning in FORK. -
APPROXIMATION_LOOKUP_JOIN_V2
Support query approximation with LOOKUP JOIN -
APPROXIMATION_INLINE_STATS_V2
Support query approximation with INLINE STATS -
PROMQL_YEAR
Support for PromQL year() function. -
PROMQL_RESOLVE_UNKOWN
Unknown PromQL functions now make the error message "Unknown PromQL function". -
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
Support for PromQL days_in_month() function. -
INFERENCE_ACCEPT_TIMEOUT
Support for thetimeoutoption in theCOMPLETIONandRERANKcommands and theTEXT_EMBEDDINGfunction. -
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
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
-
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. -
MATCH_RUNTIME_SEARCH
Match function and match operator support for runtime expressions, not just ES mapped fields. -
FORK_PROJECT_AWAY_COLUMNS_FIX
Fix for column pruning when FORK branches return no columns. -
FIX_HISTOGRAM_BLOCKLOADERS_ISNULL
Fix for histogram block loaders (tdigest, exponential_histogram) passingnullsFiltered=trueto 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
Fix forCompoundOutputEvalcommands not implementingSortAgnostic, causingPruneRedundantOrderByto fail when a SORT precedes these commands. -
OPTIONAL_FIELDS_LOAD_WITH_LOOKUP_JOIN
Support forunmapped_fields="load"mode withLOOKUP JOIN. Previously the combination was rejected at query validation time. see Issue #142026 -
OPTIONAL_FIELDS_LOAD_WITH_FORK_SUBQUERIES_AND_VIEWS
Support forunmapped_fields="load"withFORK, subqueries and views (previously rejected). See #142033. -
FN_EQUALS_FLATTENED
Support for the==operator on the root of aflattenedfield in ES|QL. -
FN_NOT_EQUALS_FLATTENED
Support for the!=operator on the root of aflattenedfield in ES|QL. -
GROUP_BY_FLATTENED
Support for using aflattenedfield as a grouping key inSTATS … BYandLIMIT N BY. -
FIX_REORDER_LIMIT_PROJECT_AND_ORDER_BY_PRESERVES_REFS
Fix forReorderLimitProjectAndOrderByunconditionally lifting anOrderByabove a renaming/droppingProject: it now rewrites theOrderBy's references through theProject'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
Supports theIP_LOCATIONcommand. -
APPROXIMATION_FORK
Support query approximation with FORK and subqueries. -
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
Support FIRST and EARLIEST aggregation on the remaining types: dense_vector, exponential_histogram, tdigest. -
FIRST_AGG_EXTENDED_TYPES_3
Support FIRST and EARLIEST aggregation on the flattened data type. -
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
Support for theDEDUPcommand, which removes duplicate rows from the result set. Snapshot-only. -
VALUES_DATE_RANGE
Support for VALUES with date_range type. -
COALESCE_DATE_RANGE
Support for COALESCE with date_range type. -
CASE_DATE_RANGE
Support for CASE with date_range type. -
EQUALITY_DATE_RANGE
Support for equality (==, !=) and IN with date_range type. -
FIX_TOPN_LONG_RANGE_ENCODING
Fix TopN encoding/decoding oflong_rangevalues. #150383 -
MV_FIRST_LAST_DATE_RANGE
Support for MV_FIRST and MV_LAST with date_range type. -
AGG_BASIC_DATE_RANGE
Support for COUNT, COUNT_APPROXIMATE, PRESENT, ABSENT, MV_COUNT with date_range type. -
PROMQL_LABEL_MATCHER_PARAMS
Support for ESQL parameters in PromQL label matchers: #148620 -
FIX_PROMQL_SCALAR_FLOAT_DIV
Fix for PromQL scalar integer division losing the fractional part. Integer literals like4/6were 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
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 aROWwithout touching the index. -
FIX_PROMQL_QUANTILE_SCALE
PromQLquantileandquantile_over_timetake the quantile φ in the range [0, 1], but the φ value was passed straight through to the ES|QLPERCENTILEaggregation (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
Bugfix in query approximation to not rewrite non-approximable FORK branches: #149501 -
APPROXIMATION_FIX_MV_FUNCTIONS
Bugfix in query approximation to not produce confidence intervals for multivalued functions. -
PROMQL_HISTOGRAM_SUM_COUNT_AVG
Support for PromQLhistogram_count(),histogram_sum()andhistogram_avg()on native histograms. -
PROMQL_INCREASE_ON_HISTOGRAM
Support for PromQLincrease()on exponential histograms. -
PROMQL_SUM_ON_HISTOGRAM
Support for PromQLsum()operator on exponential histograms. -
HIGHLIGHT_V2
Support for theHIGHLIGHTcommand: grammar, plan nodes, serialization, and execution that exposes the generatedhighlight_*columns. Snapshot-only. -
PROMQL_HISTOGRAM_QUANTILE
Support for PromQLhistogram_quantile()over classic histograms withlebuckets. -
PROMQL_SET_OPERATOR_UNION
Support for the top-level PromQLor(UNION) set operator between two instant vectors. -
PROMQL_HISTOGRAM_QUANTILE_IMPLICIT_LE
Support for PromQLhistogram_quantile()over classic histograms whereleis not an explicit child output. -
PROMQL_HISTOGRAM_QUANTILE_EXPONENTIAL
Support for PromQLhistogram_quantile()over exponential (native) histograms. -
FIX_GROUP_BY_ALL_AGGREGATION_FILTERS
Fixes a bug in the planner whereTSqueries without an outer aggregation (group by all) would wrongly fail with anIllegalStateExceptionif any aggregation had a filter. -
FIX_TS_BLOCK_LOADER_PASSTHROUGH_ALIASING
Fix for PromQLwithoutand ES|QLTS_WITHOUT: passthrough alias names (e.g. OTelcpufor the concrete dimensionattributes.cpu) are now correctly resolved in the_timeseriesblock loader so excluded labels are actually removed from the series key. https://github.com/elastic/elasticsearch/issues/151540 -
METADATA_SLICE
Support for the_slicemetadata field in ES|QL, available on indices withindex.slice.enabled: true. Backed by the_routingsorted doc values field. EnablesFROM index METADATA _slice,KEEP _slice, and pushableWHERE _slice ==/LIKE/RLIKEfilters. -
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
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
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
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
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 nameNullPointerException- if the argument is null
-
isEnabled
public boolean isEnabled() -
capabilityName
-