Hi Vladislav, Can you share more details regarding your use case?
If you want to share the same object between join inputs, you can use RelShuttleImpl [1] to traverse the RelNode tree and every time you are visiting a Join relation you need to put the object to the stack and remove it from there when you are leaving the Join. In this case the shared object will be available on the top of the stack for both sides of the Join.
[1] https://github.com/apache/calcite/blob/b0420947ddeb2c9e18afe896dbf7adaf49a715a2/core/src/main/java/org/apache/calcite/rel/RelShuttleImpl.java#L49
Thanks, Roman On 24.05.2023 05:44, Vladislav Matyushevski wrote:
Greetings Calcite team! I`m using the Calcite + Avatica and curious to know: Is there a way how I can share an Object (e.g. Map) between left and right parts of join? Sharing is needed due to the fact that the left part is producing data that must be re-used in the right part. I`m thinking of the following solution: There is a getProvider() method, which returns me CalciteJDBC41Connection. And if I have my own implementation of this class then I`ll be able to extend it and enrich the class with methods I need. However, it doesn't feel like a good idea. I believe there might be a proper solution for this. Thanks in advance, Vladislav
