Skip to content

Query execution error when filtering constant columns from subquery #14010

@richard-misiak-az

Description

@richard-misiak-az

Pinot 1.2.0

The following query

SELECT *
FROM
  (SELECT
          CASE
              WHEN m.userId = 'abc123' THEN 'Test1'
              ELSE 'Test2'
          END as segment
   FROM example m)
WHERE segment in ('Test1', 'Test2')

returns the error

Query execution error on: Server_xxx-pinot-server-0.xxx-pinot-server-headless.xxx.svc.cluster.local_8098 java.lang.RuntimeException: Caught exception while running CombinePlanNode.}
    org.apache.pinot.query.service.dispatch.QueryDispatcher.runReducer(QueryDispatcher.java:306)
    org.apache.pinot.query.service.dispatch.QueryDispatcher.submitAndReduce(QueryDispatcher.java:96)
    org.apache.pinot.broker.requesthandler.MultiStageBrokerRequestHandler.handleRequest(MultiStageBrokerRequestHandler.java:219)
    org.apache.pinot.broker.requesthandler.BaseBrokerRequestHandler.handleRequest(BaseBrokerRequestHandler.java:133)

The same error occurs for the CTE form

WITH data AS (
SELECT
          CASE
              WHEN m.userId = 'abc123' THEN 'Test1'
              ELSE 'Test2'
          END as segment
   FROM example m
)
SELECT * FROM data WHERE segment in ('Test1', 'Test2')

Some other where clause results

  • WHERE segment in ('foo') (i.e find a value that isn't there) - error
  • WHERE segment in ('Test1') - no error
  • WHERE segment = 'Test1' - no error
  • WHERE segment = 'Test1' or segment = 'Test2' - error

Metadata

Metadata

Assignees

Labels

bugmulti-stageRelated to the multi-stage query engine

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions