Class TextAggregatePushdownSupport

java.lang.Object
org.elasticsearch.xpack.esql.datasources.TextAggregatePushdownSupport
All Implemented Interfaces:
AggregatePushdownSupport

public class TextAggregatePushdownSupport extends Object implements AggregatePushdownSupport
Aggregate-pushdown opt-in for the line-oriented text-format readers (CSV / TSV / NDJSON). Supports COUNT(*), COUNT(<literal>), COUNT(<column>), MIN(<column>), MAX(<column>) when the column's ESQL data type has byte-stable comparison semantics matching ES|QL's runtime ordering.

MIN/MAX-eligible types: BOOLEAN, INTEGER, LONG, DOUBLE, DATETIME, DATE_NANOS, KEYWORD, TEXT, IP. Other types (VERSION uses semver order — not byte-lex; UNSIGNED_LONG — signed-byte serialization mismatches the logical unsigned ordering) are rejected here to keep correctness ahead of breadth. Virtual columns (_file.*, synthetic engine metadata) are rejected because the per-column statistics layer cannot answer about them — same gate Parquet uses.