yuribogomolov opened a new issue, #32367:
URL: https://github.com/apache/superset/issues/32367

   ### Bug description
   
   ### Issue
   After upgrading from Superset 4.0.2 to 4.1.1, charts that rely on JOIN 
operations (such as those using a series limit) fail with a "JOIN is not 
supported" error when using Apache Pinot as the database backend. This issue 
stems from a [recent 
PR](https://github.com/apache/superset/commit/6d2b3b86988b7fbc38399ad6ef5df83e798ac8a3)
 that assumes Pinot supports JOINs by default—even though not all Pinot 
versions (or configurations) actually do.
   
   ### Background on Pinot JOIN Support
   Lates Pinot versions can perform JOINs using the [multi-stage 
engine](https://docs.pinot.apache.org/reference/multi-stage-engine). However:
   
   - Older Pinot releases lack multi-stage engine support entirely.
   - Even in current releases, the multi-stage engine isn’t enabled by default.
   - Enabling the multi-stage engine introduces overheads and degrades 
performance.
   
   Some users might be running older Pinot versions without multi-stage engine 
support. Others, though on newer versions, may opt not to enable the 
multi-stage engine for performance or operational reasons. Consequently, they 
cannot fully leverage JOIN functionality, yet Superset 4.1.1 now assumes they 
can.
   
   ### Steps to Reproduce
   
   - Configure Superset 4.1.1 with Apache Pinot v1 (or any 
version/configuration not running multi-stage engine).
   - Create a bar chart that applies a series limit (which requires a JOIN in 
the generated query).
   - Attempt to run the chart and observe the query failure: Error: "JOIN is 
not supported"
   
   ### Screenshots/recordings
   
   
![Image](https://github.com/user-attachments/assets/96e3f6a7-43fe-43e7-b6c7-1c6940c13179)
   
   ### Superset version
   
   4.1.1
   
   ### Python version
   
   3.11
   
   ### Node version
   
   16
   
   ### Browser
   
   Chrome
   
   ### Additional context
   
   Preferred Approach:
   Ideally, Superset should differentiate between Pinot’s v1 engine and v2 
(multi-stage engine) at the connection level. That way, users can explicitly 
enable or disable JOIN support based on their Pinot version and configuration.
   
   Interim Measure:
   If supporting both engines simultaneously is too large in scope, reverting 
the assumption that Pinot supports JOINs would unblock upgrades to Superset 
4.1.1 for users unable or unwilling to enable the multi-stage engine.
   
   ### Checklist
   
   - [x] I have searched Superset docs and Slack and didn't find a solution to 
my problem.
   - [x] I have searched the GitHub issue tracker and didn't find a similar bug 
report.
   - [x] I have checked Superset's logs for errors and if I found a relevant 
Python stacktrace, I included it here as text in the "additional context" 
section.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to