gortiz opened a new pull request, #16603:
URL: https://github.com/apache/pinot/pull/16603

   In https://github.com/apache/pinot/pull/14912, we modified 
`is_colocated_by_join_keys` hint. If included, we should blindly apply joins in 
colocated fashion (even if we cannot verify it is correct to do so!), but 
simple queries like:
   
   ```sql
   select /*+ joinOptions(is_colocated_by_join_keys='true') */ *
   from userAttributes u 
   join userGroups g
   on u.userUUID = g.userUUID
   ```
   
   Shows that mailboxes were sending raw messages. Funny enough, using `explain 
implementation plan for` in this case incorrectly indicates that the mailbox 
was partitioned.
   
   The reason for this is that MailboxAssignmentVisitor was ignoring the 
pre-partitioned flag because `isDirectExchangeCompatible` returned false. This 
PR solves that.
   
   In a future PR, I want to add new tests that verify this hint works as 
expected, given we have errors like this in the past and the semantics of the 
hint have changed several times in the last 3 years. Right now I just only 
tested this feature manually with the query above and with 
   
   ```sql
   select /*+ joinOptions(is_colocated_by_join_keys='true') */ *
   from userAttributes u 
   join userGroups g
   on u.userUUID = g.groupUUID
   ```
   
   which is actually not collocated (see the ON condition), but the hint here 
forces colocation.
   
   I've also opened a request on gitbook to document the hint. See 
https://app.gitbook.com/o/-LtRX9NwSr7Ga7zA4piL/s/-LtH6nl58DdnZnelPdTc-887967055/~/changes/2218/users/user-guide-query/multi-stage-query/join-strategies/colocated-join-strategy#advanced-configuration


-- 
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