Apache Pinot 1.6.0 RC0
Changes since Apache Pinot 1.5.1.
Highlights
- SQL DDL: manage tables with CREATE TABLE, DROP TABLE, SHOW TABLES, and
SHOW CREATE TABLE through the controller's /sql/ddl endpoint. Materialized
views gain CREATE/SHOW/DROP DDL and single-stage query-rewrite support.
#18241
#18544
#18529 - Analytics: GROUPING SETS, ROLLUP, and CUBE are supported in both query
engines. Multi-stage execution also gains streaming distinct execution
and lookup-join planning improvements.
#18662
#18817
#19419
#18158 - Vector search: add IVF_FLAT, IVF_PQ, and IVF_ON_DISK backends alongside
HNSW, with filter-aware search, radius queries, and backend tuning controls.
#17994
#18090
#18119 - Data handling: introduce OPEN_STRUCT for evolving nested data, a logical
UUID type, Arrow IPC batch ingestion, and BSON input support.
#18368
#19040
#18869
#17871
#18950 - Reliability: improve null-aware filtering, multi-stage buffer cleanup
during failure/cancellation, and transactional Kafka offset handling.
#19440
#19462
#19161
Upgrade notes and removals
- Pinot services now require Java 25 or newer to build and run. Java/JDBC
clients and the explicitly pinned SPI/common artifacts continue to target
Java 11 bytecode. Update service JVMs and check custom service plugins
before upgrading.
#19014 - The default Scala binary version changes to 2.13. Official Spark 3
artifacts, including pinot-spark-3-connector, are compiled for Scala 2.13;
their Maven artifact IDs have no Scala-version suffix. These artifacts
require Java 25 and Spark built for Scala 2.13. Scala 2.12 requires a custom
source build using the scala-2.12 profile.
#18100 - Native text/FST indexes and TEXT_CONTAINS are removed. Migrate affected
configurations and queries to supported Lucene text/FST facilities and
TEXT_MATCH, reviewing the query semantics before upgrading.
#17998 - Spark 2 and Presto integrations, the deprecated Kafka high-level consumer,
and several APIs deprecated in releases through 1.3.0 are removed. Recompile custom
integrations against 1.6.0 and replace removed API calls.
#17950
#17947
#18931
#19139
#19140
#19141
#19142
#19143 - New and updated schemas submitted through the controller reject deprecated
TimeFieldSpec (fieldType=TIME); existing stored schemas can still load.
Use DateTimeFieldSpec (fieldType=DATE_TIME).
#18502 - Legacy controller periodic-task aliases are removed. For example, replace
controller.retention.frequencyInSeconds with
controller.retention.frequencyPeriod and a duration value such as 6h.
8dec968 - Kafka's raw auto.offset.reset property now defaults to earliest when
omitted. This controls recovery from unavailable Kafka offsets and is
separate from Pinot's stream.kafka.consumer.prop.auto.offset.reset initial
partition-offset setting. Set the raw property explicitly if another
recovery behavior is required.
#19359 - Single-stage queries no longer silently ignore HAVING; unsupported QUALIFY
clauses are rejected. Review queries that relied on the earlier behavior.
#19554
#19553
This is release candidate RC0 for community review and voting.
Candidate commit: 54f145f79a083abfb816c4c32e6636fc7acc03f6.
Maven staging repository (closed).
Signing key: F6C06B50BFB7A502B1F95901FE4489E8BC6B342D (Apache Pinot KEYS).
Validation: the matching source content passed an 84-module clean install outside Git (tests skipped). Hosted runtime runs reported 30,211 unit and 1,772 integration tests with zero failures/errors (32/3 skipped); Java 11 client verification, quickstarts, and rolling upgrade/downgrade checks also passed. These hosted runs predate RC0's release, licensing, and build/packaging metadata changes; runtime/test sources and dependency declarations are identical to RC0. The final signed binary tar passed both query engines with COUNT(*)=97,889, no query exceptions or partial results. All staged Maven artifacts passed signature, checksum, and installed-byte verification.