Apache Pinot Docs
latest
Ask or search…
K

Query Options

This document contains all the available query options

Supported Query Options

Key
Description
Default Behavior
timeoutMs
Timeout of the query in milliseconds
Use table/broker level timeout
enableNullHandling
To enable basic null support (IS NULL and IS NOT NULL) and generate the null index, set nullHandlingEnabled=true in the Table index configuration tableIndexConfig. When null support is enabled, IS NOT NULL and IS NULL evaluate to true or false according to whether a null is detected. See Null value support for more information. (introduced in 0.11.0)
false (disabled)
explainPlanVerbose
Return verbose result for EXPLAIN query (introduced in 0.11.0)
false (not verbose)
useMultistageEngine
Use multi-stage engine to execute the query (introduced in 0.11.0)
false (use single-stage engine)
maxExecutionThreads
Maximum threads to use to execute the query. Useful to limit the resource usage for expensive queries
Half of the CPU cores for non-group-by queries; all CPU cores for group-by queries
numReplicaGroupsToQuery
When replica-group based routing is enabled, use it to query multiple replica-groups (introduced in 0.11.0)
1 (only query servers within the same replica-group)
minSegmentGroupTrimSize
Minimum groups to keep when trimming groups at the segment level for group-by queries. See Configuration Parameters
Server level config
minServerGroupTrimSize
Minimum groups to keep when trimming groups at the server level for group-by queries. See Configuration Parameters
Server level config
skipUpsert
For upsert-enabled table, skip the effect of upsert and query all the records. See Stream Ingestion with Upsert
false (exclude the replaced records)
useStarTree
Useful to debug the star-tree index (introduced in 0.11.0)
true (use star-tree if available)
AndScanReordering
disabled
maxRowsInJoin
Configure maximum rows allowed in join hash-table creation phase
default value read from cluster config
pinot.query.join.max.rows
if not set, the default will be
2^20 (1024*1024)
inPredicatePreSorted
(Only apply to STRING columns) Indicates that the values in the IN clause is already sorted, so that Pinot doesn't need to sort them again at query time
false (values in IN predicate is not pre-sorted)
inPredicateLookupAlgorithm
(Only apply to STRING columns) The algorithm to use to look up the dictionary ids for the IN clause values.
  • DIVIDE_BINARY_SEARCH: Sort the IN clause values and do binary search on both dictionary and IN clause values at same time to reduce the value lookups
  • SCAN: Sort the IN clause values and scan both dictionary and IN clause values to get the matching dictionary ids
  • PLAIN_BINARY_SEARCH: Do not sort the IN clause values, but directly binary search each IN clause value in the dictionary
DIVIDE_BINARY_SEARCH
maxServerResponseSizeBytes
Long value config indicating the maximum length of the serialized response per server for a query.
Overriding priortiy order: 1. QueryOption -> maxServerResponseSizeBytes
2. QueryOption -> maxQueryResponseSizeBytes
3. TableConfig -> maxServerResponseSizeBytes
4. TableConfig -> maxQueryResponseSizeBytes
5. BrokerConfig -> maxServerResponseSizeBytes
6. BrokerConfig -> maxServerResponseSizeBytes
maxQueryResponseSizeBytes
Long value config indicating the maximum serialized response size across all servers for a query. This value is equally divided across all servers processing the query.
Overriding priortiy order: 1. QueryOption -> maxServerResponseSizeBytes
2. QueryOption -> maxQueryResponseSizeBytes
3. TableConfig -> maxServerResponseSizeBytes
4. TableConfig -> maxQueryResponseSizeBytes
5. BrokerConfig -> maxServerResponseSizeBytes
6. BrokerConfig -> maxServerResponseSizeBytes

Set Query Options

SET statement

After release 0.11.0, query options can be set using the SET statement:
SET key1 = 'value1';
SET key2 = 123;
SELECT * FROM myTable

OPTION keyword (deprecated)

Before release 0.11.0, query options can be appended to the query with the OPTION keyword:
SELECT * FROM myTable OPTION(key1=value1, key2=123)
SELECT * FROM myTable OPTION(key1=value1) OPTION(key2=123)
SELECT * FROM myTable OPTION(timeoutMs=30000)