LogoLogo
release-1.0.0
release-1.0.0
  • Introduction
  • Basics
    • Concepts
    • Architecture
    • Components
      • Cluster
        • Tenant
        • Server
        • Controller
        • Broker
        • Minion
      • Table
        • Segment
          • Deep Store
        • Schema
      • Pinot Data Explorer
    • Getting Started
      • Running Pinot locally
      • Running Pinot in Docker
      • Quick Start Examples
      • Running in Kubernetes
      • Running on public clouds
        • Running on Azure
        • Running on GCP
        • Running on AWS
      • Batch import example
      • Stream ingestion example
      • HDFS as Deep Storage
      • Troubleshooting Pinot
      • Frequently Asked Questions (FAQs)
        • General
        • Pinot On Kubernetes FAQ
        • Ingestion FAQ
        • Query FAQ
        • Operations FAQ
    • Import Data
      • From Query Console
      • Batch Ingestion
        • Spark
        • Flink
        • Hadoop
        • Backfill Data
        • Dimension table
      • Stream ingestion
        • Apache Kafka
        • Amazon Kinesis
        • Apache Pulsar
      • Stream Ingestion with Upsert
      • Stream Ingestion with Dedup
      • Stream Ingestion with CLP
      • File Systems
        • Amazon S3
        • Azure Data Lake Storage
        • HDFS
        • Google Cloud Storage
      • Input formats
      • Complex Type (Array, Map) Handling
      • Reload a table segment
      • Upload a table segment
    • Indexing
      • Forward Index
      • Inverted Index
      • Star-Tree Index
      • Bloom Filter
      • Range Index
      • Native Text Index
      • Text search support
      • JSON Index
      • Geospatial
      • Timestamp Index
    • Releases
      • Apache Pinot™ 1.0.0 release notes
      • 0.12.1
      • 0.12.0
      • 0.11.0
      • 0.10.0
      • 0.9.3
      • 0.9.2
      • 0.9.1
      • 0.9.0
      • 0.8.0
      • 0.7.1
      • 0.6.0
      • 0.5.0
      • 0.4.0
      • 0.3.0
      • 0.2.0
      • 0.1.0
    • Recipes
      • GitHub Events Stream
  • For Users
    • Query
      • Querying Pinot
      • Querying JSON data
      • Query Options
      • Aggregation Functions
      • Cardinality Estimation
      • Explain Plan
      • Filtering with IdSet
      • GapFill Function For Time-Series Dataset
      • Grouping Algorithm
      • JOINs
      • Lookup UDF Join
      • Transformation Functions
      • User-Defined Functions (UDFs)
      • Window functions
    • APIs
      • Broker Query API
        • Query Response Format
      • Controller Admin API
      • Controller API Reference
    • External Clients
      • JDBC
      • Java
      • Python
      • Golang
    • Tutorials
      • Use OSS as Deep Storage for Pinot
      • Ingest Parquet Files from S3 Using Spark
      • Creating Pinot Segments
      • Use S3 as Deep Storage for Pinot
      • Use S3 and Pinot in Docker
      • Batch Data Ingestion In Practice
      • Schema Evolution
  • For Developers
    • Basics
      • Extending Pinot
        • Writing Custom Aggregation Function
        • Segment Fetchers
      • Contribution Guidelines
      • Code Setup
      • Code Modules and Organization
      • Update documentation
    • Advanced
      • Data Ingestion Overview
      • Ingestion Aggregations
      • Ingestion Transformations
      • Null Value Support
      • Use the multi-stage query engine (v2)
      • Troubleshoot issues with the multi-stage query engine (v2)
      • Advanced Pinot Setup
    • Plugins
      • Write Custom Plugins
        • Input Format Plugin
        • Filesystem Plugin
        • Batch Segment Fetcher Plugin
        • Stream Ingestion Plugin
    • Design Documents
      • Segment Writer API
  • For Operators
    • Deployment and Monitoring
      • Set up cluster
      • Server Startup Status Checkers
      • Set up table
      • Set up ingestion
      • Decoupling Controller from the Data Path
      • Segment Assignment
      • Instance Assignment
      • Rebalance
        • Rebalance Servers
        • Rebalance Brokers
      • Separating data storage by age
        • Using multiple tenants
        • Using multiple directories
      • Pinot managed Offline flows
      • Minion merge rollup task
      • Consistent Push and Rollback
      • Access Control
      • Monitoring
      • Tuning
        • Real-time
        • Routing
        • Query Routing using Adaptive Server Selection
        • Query Scheduling
      • Upgrading Pinot with confidence
      • Managing Logs
      • OOM Protection Using Automatic Query Killing
    • Command-Line Interface (CLI)
    • Configuration Recommendation Engine
    • Tutorials
      • Authentication
        • Basic auth access control
        • ZkBasicAuthAccessControl
      • Configuring TLS/SSL
      • Build Docker Images
      • Running Pinot in Production
      • Kubernetes Deployment
      • Amazon EKS (Kafka)
      • Amazon MSK (Kafka)
      • Monitor Pinot using Prometheus and Grafana
      • Performance Optimization Configurations
  • Configuration Reference
    • Cluster
    • Controller
    • Broker
    • Server
    • Table
    • Schema
    • Ingestion Job Spec
    • Monitoring Metrics
    • Functions
      • ABS
      • ADD
      • ago
      • ARG_MIN / ARG_MAX
      • arrayConcatDouble
      • arrayConcatFloat
      • arrayConcatInt
      • arrayConcatLong
      • arrayConcatString
      • arrayContainsInt
      • arrayContainsString
      • arrayDistinctInt
      • arrayDistinctString
      • arrayIndexOfInt
      • arrayIndexOfString
      • ARRAYLENGTH
      • arrayRemoveInt
      • arrayRemoveString
      • arrayReverseInt
      • arrayReverseString
      • arraySliceInt
      • arraySliceString
      • arraySortInt
      • arraySortString
      • arrayUnionInt
      • arrayUnionString
      • AVGMV
      • Base64
      • caseWhen
      • ceil
      • CHR
      • codepoint
      • concat
      • count
      • COUNTMV
      • COVAR_POP
      • COVAR_SAMP
      • day
      • dayOfWeek
      • dayOfYear
      • DISTINCT
      • DISTINCTAVG
      • DISTINCTAVGMV
      • DISTINCTCOUNT
      • DISTINCTCOUNTBITMAP
      • DISTINCTCOUNTHLLMV
      • DISTINCTCOUNTHLL
      • DISTINCTCOUNTBITMAPMV
      • DISTINCTCOUNTMV
      • DISTINCTCOUNTRAWHLL
      • DISTINCTCOUNTRAWHLLMV
      • DISTINCTCOUNTRAWTHETASKETCH
      • DISTINCTCOUNTTHETASKETCH
      • DISTINCTSUM
      • DISTINCTSUMMV
      • DIV
      • DATETIMECONVERT
      • DATETRUNC
      • exp
      • FLOOR
      • FromDateTime
      • FromEpoch
      • FromEpochBucket
      • FUNNELCOUNT
      • Histogram
      • hour
      • isSubnetOf
      • JSONFORMAT
      • JSONPATH
      • JSONPATHARRAY
      • JSONPATHARRAYDEFAULTEMPTY
      • JSONPATHDOUBLE
      • JSONPATHLONG
      • JSONPATHSTRING
      • jsonextractkey
      • jsonextractscalar
      • length
      • ln
      • lower
      • lpad
      • ltrim
      • max
      • MAXMV
      • MD5
      • millisecond
      • min
      • minmaxrange
      • MINMAXRANGEMV
      • MINMV
      • minute
      • MOD
      • mode
      • month
      • mult
      • now
      • percentile
      • percentileest
      • percentileestmv
      • percentilemv
      • percentiletdigest
      • percentiletdigestmv
      • percentilekll
      • percentilerawkll
      • percentilekllmv
      • percentilerawkllmv
      • quarter
      • regexpExtract
      • regexpReplace
      • remove
      • replace
      • reverse
      • round
      • ROW_NUMBER
      • rpad
      • rtrim
      • second
      • SEGMENTPARTITIONEDDISTINCTCOUNT
      • sha
      • sha256
      • sha512
      • sqrt
      • startswith
      • ST_AsBinary
      • ST_AsText
      • ST_Contains
      • ST_Distance
      • ST_GeogFromText
      • ST_GeogFromWKB
      • ST_GeometryType
      • ST_GeomFromText
      • ST_GeomFromWKB
      • STPOINT
      • ST_Polygon
      • strpos
      • ST_Union
      • SUB
      • substr
      • sum
      • summv
      • TIMECONVERT
      • timezoneHour
      • timezoneMinute
      • ToDateTime
      • ToEpoch
      • ToEpochBucket
      • ToEpochRounded
      • TOJSONMAPSTR
      • toGeometry
      • toSphericalGeography
      • trim
      • upper
      • Url
      • UTF8
      • VALUEIN
      • week
      • year
      • yearOfWeek
      • Extract
    • Plugin Reference
      • Stream Ingestion Connectors
      • VAR_POP
      • VAR_SAMP
      • STDDEV_POP
      • STDDEV_SAMP
  • Reference
    • Single-stage query engine (v1)
    • Multi-stage query engine (v2)
  • RESOURCES
    • Community
    • Team
    • Blogs
    • Presentations
    • Videos
  • Integrations
    • Tableau
    • Trino
    • ThirdEye
    • Superset
    • Presto
    • Spark-Pinot Connector
  • Contributing
    • Contribute Pinot documentation
    • Style guide
Powered by GitBook
On this page
  • 1.0.0 (2023-09-19)
  • Multi-stage query engine new features
  • Multi-stage query engine enhancements
  • Multi-stage query engine bug fixes
  • Index SPI
  • Full list of features added
  • Vulnerability fixes, bugfixes, cleanups and deprecations

Was this helpful?

Export as PDF
  1. Basics
  2. Releases

Apache Pinot™ 1.0.0 release notes

This page covers the latest changes included in the Apache Pinot™ 1.0.0 release, including new features, enhancements, and bug fixes.

PreviousReleasesNext0.12.1

Last updated 1 year ago

Was this helpful?

1.0.0 (2023-09-19)

This release includes several new features, enhancements, and bug fixes, including the following highlights:

  • Multi-stage query engine: , , and . Learn how to or more about how the works.

Multi-stage query engine new features

  • Support for

    • Initial (phase 1) Query runtime for window functions with ORDER BY within the OVER() clause (#10449)

    • Support for the ranking ROW_NUMBER() window function (, )

  • Set operations support:

    • Support SetOperations (UNION, INTERSECT, MINUS) compilation in query planner ()

  • Timestamp and Date Operations

  • Support TIMESTAMP type and date ops functions ()

    • Support more aggregation functions that are currently implementable ()

    • Support multi-value aggregation functions ()

  • Support Sketch based functions (), ()

  • Make Intermediate Stage Worker Assignment Tenant Aware ()

  • Evaluate literal expressions during query parsing, enabling more efficient query execution. (

  • Added support for partition parallelism in partitioned table scans, allowing for more efficient data retrieval ().

  • [multistage]Adding more tuple sketch scalar functions and integration tests ()

Multi-stage query engine enhancements

  • Enhanced the multi-stage group-by executor to support limiting the number of groups,

Multi-stage query engine bug fixes

Index SPI

Null value support for pinot queries

  • NULL support for ORDER BY, DISTINCT, GROUP BY, value transform functions and filtering.

Upsert enhancements

Adds a feature to preload segments from a table that uses the upsert snapshot feature. The segments with validDocIds snapshots can be preloaded in a more efficient manner to speed up the table loading (thus server restarts).

Adds support for specifying expiry TTL for upsert primary key metadata cleanup.

Adds a new minion task to compact segments belonging to a real-time table with upserts.

Adds new implementations of PinotDataBuffer that uses Unsafe java APIs and foreign memory APIs. Also added support for PinotDataBufferFactory to allow plugging in custom PinotDataBuffer implementations.

Query functions enhancements

JSON and CLP encoded message ingestion and querying

  • Allows overriding index configs at tier level, allowing for more flexible index configurations for different tiers.

Ingestion connectors and features

UI enhancements

Pinot docker image improvements and enhancements

Operational improvements

Rebalance

Added new configuration options below which allow use of a bounded thread pool and allocate capacities for it.

pinot.broker.enable.bounded.http.async.executor
pinot.broker.http.async.executor.max.pool.size
pinot.broker.http.async.executor.core.pool.size
pinot.broker.http.async.executor.queue.size

This feature allows better management of broker resources.

Adds a parameter to queryOptions to drop the resultTable from the response. This mode can be used to troubleshoot a query (which may have sensitive data in the result) using metadata only.

In segment metadata and index map, store columns in alphabetical order so that the result is deterministic. Segments generated before/after this PR will have different CRC, so during the upgrade, we might get segments with different CRC from old and new consuming servers. For the segment consumed during the upgrade, some downloads might be needed.

Adds options to configure helix timeouts external.view.dropped.max.wait.ms`` - The duration of time in milliseconds to wait for the external view to be dropped. Default - 20 minutes. external.view.check.interval.ms`` - The period in milliseconds in which to ping ZK for latest EV state.

This PR makes Pinot case insensitive be default, and removes the deprecated property enable.case.insensitive.pql

Newly added APIs and client methods

Cleanup and backward incompatible changes

High level consumers are no longer supported

Type information preservation of query literals

Controller job status ZNode path update

Metric names for mutable indexes to change

Update in controller API to enable / disable / drop instances

Change in substring query function definition

Full list of features added

Vulnerability fixes, bugfixes, cleanups and deprecations

Turn on v2 engine by default ()

Introduced the ability to stream leaf stage blocks for more efficient data processing ().

Early terminate SortOperator if there is a limit ()

Implement ordering for SortExchange ()

Table level Access Validation, QPS Quota, Phase Metrics for multistage queries ()

Support partition based leaf stage processing ()

Populate queryOption down to leaf ()

Pushdown explain plan queries from the controller to the broker ()

improving query performance and resource utilization ().

Improved resilience and reliability of the multi-stage join operator, now with added support for hash join right table protection ().

Fix Predicate Pushdown by Using Rule Collection ()

Try fixing mailbox cancel race condition ()

Catch Throwable to Propagate Proper Error Message ()

Fix tenant detection issues ()

Handle Integer.MIN_VALUE in hashCode based FieldSelectionKeySelector ()

Improve error message in case of non-existent table queried from the controller ()

Derive SUM return type to be PostgreSQL compatible ()

Add the ability to include new index types at runtime in Apache Pinot. This opens the ability of adding third party indexes, including proprietary indexes. More details

Delete support in upsert enabled tables ()

Support added to extend upserts and allow deleting records from a realtime table. The design details can be found .

Preload segments with upsert snapshots to speedup table loading ()

TTL configs for upsert primary keys ()

Segment compaction for upsert real-time tables ()

Pinot Spark Connector for Spark3 ()

Added spark3 support for Pinot Spark Connector ()

Also added support to pass pinot query options to spark connector ()

PinotDataBufferFactory and new PinotDataBuffer implementations ()

Add PercentileKLL aggregation function ()

Support for ARG_MIN and ARG_MAX Functions ()

refactor argmin/max to exprmin/max and make it calcite compliant ()

Integer Tuple Sketch support ()

Adding vector scalar functions ()

[feature] multi-value datetime transform variants ()

FUNNEL_COUNT Aggregation Function ()

[multistage] Add support for RANK and DENSE_RANK ranking window functions ()

add theta sketch scalar ()

Register dateTimeConverter,timeConvert,dateTrunc, regexpReplace to v2 functions ()

Add extract(quarter/dow/doy) support ()

Funnel Count - Multiple Strategies (no partitioning requisites) ()

Add Boolean assertion transform functions. ()

Add clpDecode transform function for decoding CLP-encoded fields. ()

Add CLPDecodeRewriter to make it easier to call clpDecode with a column-group name rather than the individual columns. ()

Add SchemaConformingTransformer to transform records with varying keys to fit a table's schema without dropping fields. ()

Tier level index config override ()

Kinesis stream header extraction ()

Extract record keys, headers and metadata from Pulsar sources ()

Realtime pre-aggregation for Distinct Count HLL & Big Decimal ()

Added support to skip unparseable records in the csv record reader ()

Null support for protobuf ingestion. ()

Adds persistence of authentication details in the browser session. This means that even if you refresh the app, you will still be logged in until the authentication session expires ()

AuthProvider logic updated to decode the access token and extract user name and email. This information will now be available in the app for features to consume. ()

Make Pinot base build and runtime images support Amazon Corretto and MS OpenJDK ()

Support multi-arch pinot docker image ()

Update dockerfile with recent jdk distro changes ()

Rebalance status API ()

Tenant level rebalance API Tenant rebalance and status tracking APIs ()

Config to use customized broker query thread pool ()

Drop results support ()

Make column order deterministic in segment ()

Allow configuring helix timeouts for EV dropped in Instance manager ()

Enable case insensitivity by default ()

Add Server API to get tenant pools ()

Add new broker query point for querying multi-stage engine ()

Add a new controller endpoint for segment deletion with a time window ()

New API to get tenant tags ()

Instance retag validation check api ()

Use PUT request to enable/disable table/instance ()

Update the pinot tenants tables api to support returning broker tagged tables ()

Add requestId for BrokerResponse in pinot-broker and java-client ()

Provide results in CompletableFuture for java clients and expose metrics ()

Cleanup HLC code ()

Remove support for High level consumers in Apache Pinot ()

[feature] [backward-incompat] [null support # 2] Preserve null literal information in literal context and literal transform () String versions of numerical values are no longer accepted. For example, "123" won't be treated as a numerical anymore.

Moving Zk updates for reload, force_commit to their own Znodes which … () The status of previously completed reload jobs will not be available after this change is deployed.

Implement mutable index using index SPI () Due to a change in the IndexType enum used for some logs and metrics in mutable indexes, the metric names may change slightly.

Update getTenantInstances call for controller and separate POST operations on it ()

Change substring to comply with standard sql definition ()

Allow queries on multiple tables of same tenant to be executed from controller UI

Encapsulate changes in IndexLoadingConfig and SegmentGeneratorConfig

[Index SPI] IndexType ()

Simplify filtered aggregate transform operator creation ()

Introduce BaseProjectOperator and ValueBlock ()

Add support to create realtime segment in local ()

Refactor: Pass context instead on individual arguments to operator ()

Add "processAll" mode for MergeRollupTask ()

Upgrade h2 version from 1.x to 2.x ()

Added optional force param to the table configs update API ()

Enhance broker reduce to handle different column names from server response ()

Adding fields to enable/disable dictionary optimization. ()

Remove converted H2 type NUMERIC(200, 100) from BIG_DECIMAL ()

Add JOIN support to PinotQuery ()

Add testng on verifier ()

Clean up temp consuming segment files during server start ()

make pinot k8s sts and deployment start command configurable ()

Fix Bottleneck for Server Bootstrap by Making maxConnsPerRoute Configurable ()

Type match between resultType and function's dataType ()

create segment zk metadata cache ()

Allow ValueBlock length to increase in TransformFunction ()

Allow configuring helix timeouts for EV dropped in Instance manager ()

Enhance error reporting ()

Combine "GET /segments" API & "GET /segments/{tableName}/select" ()

Exposed the CSV header map as part of CSVRecordReader ()

Moving Zk updates for reload,force_commit to their own Znodes which will spread out Zk write load across jobTypes ()

Enabling dictionary override optimization on the segment reload path as well. ()

Make broker's rest resource packages configurable ()

Check EV not exist before allowing creating the table ()

Adding an parameter (toSegments) to the endSegmentReplacement API ()

update target tier for segments if tierConfigs is provided ()

Add support for custom compression factor for Percentile TDigest aggregation functions ()

Utility to convert table config into updated format ()

Segment lifecycle event listener support ()

Add server metrics to capture gRPC activity ()

Separate and parallelize BloomFilter based semgment pruner ()

API to expose the contract/rules imposed by pinot on tableConfig

Add description field to metrics in Pinot ()

changing the dedup store to become pluggable

Make the TimeUnit in the DATETRUNC function case insensitive. ()

[feature] Consider tierConfigs when assigning new offline segment

Compress idealstate according to estimated size

10689: Update for pinot helm release version 0.2.7 ()

Fail the query if a filter's rhs contains NULL. ()

Support Off Heap for Native Text Indices ()

refine segment reload executor to avoid creating threads unbounded

compress nullvector bitmap upon seal ()

Enable case insensitivity by default ()

Push out-of-order events metrics for full upsert ()

[feature] add requestId for BrokerResponse in pinot-broker and java-client

Provide results in CompletableFuture for java clients and expose metrics

Add minion observability for segment upload/download failures ()

Enhance early terminate for combine operator ()

Add fromController method that accepts a PinotClientTransport ()

Ensure min/max value generation in the segment metadata. ()

Apply some allocation optimizations on GrpcSendingMailbox ()

When enable case-insensitive, don't allow to add newly column name which have the same lowercase name with existed columns. ()

Replace Long attributes with primitive values to reduce boxing ()

retry KafkaConsumer creation in KafkaPartitionLevelConnectionHandler.java () ()

Support for new dataTime format in DateTimeGranularitySpec without explicitly setting size ()

Returning 403 status code in case of authorization failures ()

Simplify compatible test to avoid test against itself ()

Updated code for setting value of segment min/max property. ()

Add stat to track number of segments that have valid doc id snapshots ()

Add brokerId and brokerReduceTimeMs to the broker response stats ()

safely multiply integers to prevent overflow ()

Move largest comparison value update logic out of map access ()

Optimize DimensionTableDataManager to abort unnecesarry loading ()

Refine isNullsLast and isAsc functions. ()

Update the pinot tenants tables api to support returning broker tagged tables ()

add multi-value support for native text index ()

Add percentiles report in QuerySummary ()

Add meter for broker responses with unavailable segments ()

Enhance Minion task management ()

add additional lucene index configs ()

Add DECIMAL data type to orc record reader ()

add configuration to fail server startup on non-good status checker ()

allow passing freshness checker after an idle threshold ()

Add broker validation for hybrid tableConfig creation ()

Support partition parallelism for partitioned table scan ()

Remove support for High level consumers in Apache Pinot ()

Fix JDBC driver check for username ()

[Clean up] Remove getColumnName() from AggregationFunction interface ()

fix jersey TerminalWriterInterceptor MessageBodyWriter not found issue ()

Bug fix: Start counting operator execution time from first NoOp block ()

Fix unavailable instances issues for StrictReplicaGroup ()

Change shell to bash ()

Fix the double destroy of segment data manager during server shutdown ()

Remove "isSorted()" precondition check in the ForwardIndexHandler ()

Fix null handling in streaming selection operator ()

Fix jackson dependencies ()

Startree index build enhancement ()

optimize queries where lhs and rhs of predicate are equal ()

Trivial fix on a warning detected by static checker ()

wait for full segment commit protocol on force commit ()

Fix bug and add test for noDict -> Dict conversion for sorted column ()

Make column order deterministic in segment ()

Type match between resultType and function's dataType ()

Allow empty segmentsTo for segment replacement protocol ()

Use string as default compatible type for coalesce ()

Use threadlocal variable for genericRow to make the MemoryOptimizedTable threadsafe ()

Fix shading in spark2 connector pom file ()

Fix ramping delay caused by long lasting sequence of unfiltered messa… ()

Do not serialize metrics in each Operator ()

Make pinot-controller apply webpack production mode when bin-dist profile is used. ()

Fix FS props handling when using /ingestFromUri ()

Clean up v0_deprecated batch ingestion jobs ()

Deprecate kafka 0.9 support ()

safely multiply integers to prevent overflow ()

Reduce timeout for codecov and not fail the job in any case ()

Fix DataTableV3 serde bug for empty array ()

Do not record operator stats when tracing is enabled ()

Forward auth token for logger APIs from controller to other controllers and brokers ()

Bug fix: Partial upsert default strategy is null ()

Fix flaky test caused by EV check during table creation ()

Fix withDissabledTrue typo ()

Cleanup unnecessary mailbox id ser/de ()

no error metric for queries where all segments are pruned ()

bug fix: to keep QueryParser thread safe when handling many read requests on class RealtimeLuceneTextIndex ()

Fix static DictionaryIndexConfig.DEFAULT_OFFHEAP being actually onheap ()

10567: [cleanup pinot-integration-test-base], clean query generations and some other refactoring. ()

Fixes backward incompatability with SegmentGenerationJobSpec for segment push job runners ()

Bug fix to get the toSegments list correctly ()

10661: Fix for failing numeric comparison in where clause for IllegalStateException. ()

Fixes partial upsert not reflecting multiple comparison column values ()

Fix Bug in Reporting Timer Value for Min Consuming Freshness ()

Fix typo of rowSize -> columnSize ()

update segment target tier before table rebalance ()

Fix a bug in star-tree filter operator which can incorrecly filter documents ()

Enhance the instrumentation for a corner case where the query doesn't go through DocIdSetOp ()

bug fix: add missing properties when edit instance config ()

Making segmentMapper do the init and cleanup of RecordReader ()

Fix githubEvents table for quickstart recipes ()

Minor Realtime Segment Commit Upload Improvements ()

Return 503 for all interrupted queries. Refactor the query killing code. ()

Add decoder initialization error to the server's error cache ()

bug fix: add @JsonProperty to SegmentAssignmentConfig ()

ensure we wait the full no query timeout before shutting down ()

Clean up KLL functions with deprecated convention ()

Redefine the semantics of SEGMENT_STREAMED_DOWNLOAD_UNTAR_FAILURES metric to count individual segment fetch failures. ()

fix excpetion during exchange routing causes stucked pipeline ()

[bugfix] fix floating point and integral type backward incompatible issue ()

[pinot-core] Start consumption after creating segment data manager ()

Fix IndexOutOfBoundException in filtered aggregation group-by ()

Fix null pointer exception in segment debug endpoint

Clean up RangeIndexBasedFilterOperator. ()

Fix the escape/unescape issue for property value in metadata ()

Fix a bug in the order by comparator ()

Keeps nullness attributes of merged in comparison column values ()

Add required JSON annotation in H3IndexResolution ()

Fix a bug in SELECT DISTINCT ORDER BY. ()

jsonPathString should return null instead of string literal "null" ()

Bug Fix: Segment Purger cannot purge old segments after schema evolution ()

Fix by giving metainfo more priority than config ()

Close PinotFS after Data Manager Shutdowns ()

bump awssdk version for a bugfix on http conn leakage ()

Fix MultiNodesOfflineClusterIntegrationTest.testServerHardFailure() ()

Fix a bug in SELECT DISTINCT ORDER BY LIMIT. ()

Fix an integer overflow bug. ()

Return true when _resultSet is not null ()

Fixing table name extraction for lateral join queries ()

Fix casting when prefetching mmap'd segment larger than 2GB ()

Null check before closing reader ()

Fixes SQL wildcard escaping in LIKE queries ()

[Clean up] Do not count DISTINCT as aggregation ()

do not readd lucene readers to queue if segment is destroyed

Message batch ingestion lag fix ()

Fix a typo in snapshot lock ()

When extracting root-level field name for complex type handling, use the whole delimiter ()

update jersey to fix Denial of Service (DoS) ()

Update getTenantInstances call for controller and separate POST operations on it ()

update freemaker to fix Server-side Template Injection ()

format double 0 properly to compare with h2 results ()

Fix double-checked locking in ConnectionFactory ()

Remove presto-pinot-driver and pinot-java-client-jdk8 module ()

Make RequestUtils always return a string array when getTableNames ()

Fix BOOL_AND and BOOL_OR result type ()

[cleanup] Consolidate some query and controller/broker methods in integration tests ()

Fix grpc regression on multi-stage engine ()

Delete an obsolete TODO. ()

Minor fix on AddTableCommand.toString() ()

Allow using Lucene text indexes on mutable MV columns. ()

Allow offloading multiple segments from same table in parallel ()

Added serviceAccount to minion-stateless ()

Bug fix: TableUpsertMetadataManager is null ()

Fix reload bug ()

Allow extra aggregation types in RealtimeToOfflineSegmentsTask ()

Fix a bug when use range index to solve EQ predicate ()

Sanitise API inputs used as file path variables ()

Fix NPE when nested query doesn't have gapfill ()

Fix the NPE when query response error stream is null ()

Make interface methods non private, for java 8 compatibility ()

Increment nextDocId even if geo indexing fails ()

Fix the issue of consuming segment entering ERROR state due to stream connection errors ()

In TableRebalancer, remove instance partitions only when reassigning instances ()

Remove JDK 8 unsupported code ()

Fix compat test by adding -am flag to build pinot-integration-tests ()

dont duplicate register scalar function in CalciteSchema ()

Fix the storage quota check for metadata push ()

Delete filtering NULL support dead code paths. ()

[bugfix] Do not move real-time segments to working dir on restart ()

Fix a bug in ExpressionScanDocIdIterator for multi-value. ()

Exclude NULLs when PredicateEvaluator::isAlwaysTrue is true. ()

UI: fix sql query options seperator ()

Fix a NullPointerException bug in ScalarTransformFunctionWrapper. ()

[refactor] improve disk read for partial upsert handler ()

Fix the wrong query time when the response is empty ()

getMessageAtIndex should actually return the value in the streamMessage for compatibility ()

Remove presto jdk8 related dependencies ()

Remove special routing handling for multiple consuming segments ()

Properly handle shutdown of TableDataManager ()

Fixing the stale pinot ServerInstance in _tableTenantServersMap ()

Fix the thread safety issue for mutable forward index ()

Fix RawStringDistinctExecutor integer overflow ()

[logging] fix consume rate logging bug to respect 1 minute threshold ()

#10543
#11472
#11334
#10408
#10534
#11234
#10626
#10505
#11424
#11401
#10409
#10432
#10438
#10546
#10596
#10599
#11151
here
#10703
here
#11020
#10915
#10463
#10394
#10394
#10443
#10528
#10643
#10636
#11296
#10427
#11222
#10841
#10867
#10700
#11153
#11097
#11388
#11092
#11547
#10885
#11006
#11210
#10553
#9713
#10995
#10926
#11487
#11553
#10389
#10925
#10422
#10429
#10963
#10359
#11128
#10614
#10419
#10468
#10510
#10771
#11273
#11341
#10758
#10937
#11077
#11109
#11184
#10943
#10326
#11326
#11017
#10380
#10451
#10687
#10993
#11502
#10336
#10352
#10191
#10410
#10405
#10433
#10413
#10387
#10456
#10441
#10454
#10484
#10483
#10421
#10491
#10489
#10509
#10487
#10472
#10455
#10515
#10510
#10531
#10412
#10542
#10451
#10557
#10588
#10593
#10630
#10642
#10649
#10623
#10536
#10678
#10660
#10655
#10744
#10639
#10750
#10746
#10766
#10723
#11188
#10842
#10837
#10852
#10771
#10944
#10943
#10326
#10978
#10988
#11013
#10891
#11015
#10991
#11059
#253
#11040
#11057
#11136
#11163
#10990
#11110
#11142
#11186
#11157
#11192
#11199
#11184
#11204
#11299
#11301
#11315
#11354
#11377
#11347
#11345
#7908
#11266
#11017
#10416
#10431
#10462
#10450
#10466
#10469
#10475
#10476
#10453
#10477
#10905
#10444
#10492
#10479
#10497
#10468
#10472
#10511
#10516
#10502
#10490
#10418
#10473
#10525
#10480
#10532
#10522
#11186
#10547
#10583
#10447
#10590
#10610
#10616
#10624
#10629
#10589
#10620
#10632
#10648
#10645
#10659
#10662
#10693
#10690
#10699
#10695
#10707
#10729
#10741
#10874
#10716
#10725
#10683
#10773
#10759
#10784
#10795
#10777
#10802
#10650
#11227
#11231
#11228
#11219
#11223
#10818
#10704
#10792
#10827
#10855
#10869
#10713
#10851
#10888
#10898
#10909
#10887
#10940
#10899
#10933
#10936
#10954
#10897
#10985
#10989
#10983
#11007
#11005
#11021
#10993
#11019
#11049
#11014
#11051
#11069
#11033
#11064
#11086
#11080
#11082
#11093
#11107
#11095
#11129
#11131
#10982
#11146
#11132
#11155
#11154
#11164
#11158
#11166
#11169
#11176
#11181
#11190
#11193
#11198
#11226
#11253
#11261
#10770
#11309
#10927
#11349
#11355
#11285
#11371
#11380
#11386
#11392
#11403
#11421
enable and use the multi-stage query engine
multi-stage query engine
window functions
#10527
#10587
#10535
#11350
Aggregate functions
#11208
#11216
#11153
#11517
#10617
#11438
)
#11266
#11517
new features
enhancements
bug fixes